:root{color-scheme:light;--bg: #f8fafc;--text: #0f172a;--muted: #64748b;--accent: #1e40af;--card: #ffffff;--border: #e2e8f0;--danger: #b91c1c;font-family:DM Sans,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,#eef2ff 0%,var(--bg) 40%);color:var(--text);min-height:100vh}.shell{max-width:960px;margin:0 auto;padding:1.5rem 1.25rem 3rem}.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;font-weight:600;color:var(--accent);margin:0 0 .35rem}h1{margin:0 0 .5rem;letter-spacing:-.03em}h2{margin:0 0 .75rem;font-size:1.1rem}.muted{color:var(--muted)}.error{color:var(--danger)}.topnav{display:flex;gap:.75rem;align-items:center;margin-bottom:1.5rem}.spacer{flex:1}.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:1.1rem;margin-bottom:1rem}.btn,button,.row button{font:inherit;cursor:pointer;border-radius:10px;border:1px solid var(--border);background:var(--accent);color:#fff;padding:.55rem .9rem}button:disabled{opacity:.5;cursor:not-allowed}a.btn{text-decoration:none;display:inline-block}.row{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.row input,.form input,.form textarea{font:inherit;padding:.55rem .7rem;border:1px solid var(--border);border-radius:10px}.book__layout{display:grid;grid-template-columns:1.1fr 1fr;gap:1rem}@media (max-width: 800px){.book__layout{grid-template-columns:1fr}}.cal-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.cal-toolbar button{background:#fff;color:var(--text)}.cal-weekdays,.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.35rem}.cal-weekdays{margin-bottom:.35rem;font-size:.75rem;color:var(--muted);text-align:center}.cal-cell{aspect-ratio:1;background:transparent;color:var(--text);border:1px solid transparent}.cal-cell.open{background:#1e40af14;border-color:#1e40af33}.cal-cell.selected{background:var(--accent);color:#fff}.cal-cell.empty{pointer-events:none;border:none;background:transparent}.slots{display:flex;flex-wrap:wrap;gap:.45rem;margin:.75rem 0 1rem}.slot{background:#fff;color:var(--text);border-radius:999px;min-width:4.5rem}.slot.active{background:var(--accent);color:#fff;border-color:var(--accent)}.form{display:grid;gap:.75rem}.form label{display:grid;gap:.3rem;font-size:.875rem;font-weight:600}.cal-list{list-style:none;padding:0;margin:0 0 1rem;display:grid;gap:.5rem}.cal-list li{display:flex;gap:.75rem;align-items:center}.cal-list button{background:#fff;color:var(--text)}.cal-list button.active{background:var(--accent);color:#fff}
