:root{--bg:#f4f4f5;--card:#ffffff;--border:#e5e7eb;--text:#111827;--muted:#6b7280;--subtle:#f3f4f6;--day:#e9eaec;--day-hover:#dcdde0;--brand:#111827;--brand-text:#ffffff;--danger:#dc2626;--ok:#16a34a;--radius:14px;--radius-sm:8px;--font:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}:root[data-theme=dark]{--bg:#0a0a0a;--card:#151515;--border:#2a2a2a;--text:#f5f5f5;--muted:#a1a1aa;--subtle:#1f1f1f;--day:#262626;--day-hover:#333333;--brand:#fafafa;--brand-text:#111111;color-scheme:dark}html{transition:background-color .2s}body{transition:background-color .2s,color .2s}.theme-btn{position:fixed;right:20px;bottom:20px;z-index:50;width:44px;height:44px;border-radius:999px;display:grid;place-items:center;background:var(--card);color:var(--text);border:1px solid var(--border);box-shadow:0 4px 14px rgba(0,0,0,.08);transition:transform .15s,background .2s}.theme-btn:hover{transform:scale(1.06)}.theme-btn svg{width:20px;height:20px}.theme-btn .moon{display:block}.theme-btn .sun,:root[data-theme=dark] .theme-btn .moon{display:none}:root[data-theme=dark] .theme-btn .sun{display:block}@media (max-width:900px){.theme-btn{right:14px;bottom:14px}}*{box-sizing:border-box}body,html{margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;cursor:pointer;background:none;border:0;padding:0}button:disabled{cursor:default}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.shell{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 16px}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 1px 3px rgba(0,0,0,.04),0 8px 24px rgba(0,0,0,.04);width:100%;overflow:hidden;animation:in .25s ease}@keyframes in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.card.booker{max-width:1060px;display:grid;grid-template-columns:290px 1fr 270px;min-height:500px}.card.form{max-width:860px;display:grid;grid-template-columns:290px 1fr}.card.events,.card.success{max-width:620px}.foot{margin-top:20px;color:var(--muted);font-size:12px}.foot a{color:inherit}.meta{padding:24px;border-right:1px solid var(--border)}.back{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:13px;margin-bottom:18px}.back:hover{color:var(--text)}.avatar{width:40px;height:40px;border-radius:999px;background:var(--brand);color:var(--brand-text);display:grid;place-items:center;font-weight:600;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.company{color:var(--muted);font-weight:500;margin-top:12px}.meta h1{font-size:22px;line-height:1.25;font-weight:700;margin:4px 0 18px;letter-spacing:-.01em}.row{display:flex;gap:10px;align-items:flex-start;color:var(--text);font-weight:500;margin:10px 0}.row svg{flex:none;width:16px;height:16px;margin-top:2px}.desc,.row svg{color:var(--muted)}.desc{margin:18px 0 0;white-space:pre-line}.cal{padding:24px}.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.cal-title{font-size:16px;font-weight:600}.cal-title span{color:var(--muted);font-weight:500}.nav{display:flex;gap:4px}.icon-btn{width:32px;height:32px;border-radius:var(--radius-sm);display:grid;place-items:center}.icon-btn:hover:not(:disabled){background:var(--subtle)}.icon-btn:disabled{opacity:.3}.icon-btn svg{width:16px;height:16px}.days,.week{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:6px;gap:6px}.week div{text-align:center;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding-bottom:6px}.day,.week div{color:var(--muted)}.day{aspect-ratio:1;max-height:64px;border-radius:var(--radius-sm);font-weight:500;font-size:15px;position:relative;border:1px solid transparent}.day.on{background:var(--day);color:var(--text);font-weight:600}.day.on:hover{border-color:var(--brand)}.day.sel{background:var(--brand);color:var(--brand-text)}.day.today:after{content:"";position:absolute;left:50%;bottom:7px;width:4px;height:4px;border-radius:9px;background:currentColor;transform:translateX(-50%)}.days.loading .day.on{opacity:.4}.month-off{margin-top:16px;padding:12px 14px;border-radius:var(--radius-sm);background:var(--subtle);color:var(--muted);font-size:13px}.slots{padding:24px 16px;border-left:1px solid var(--border);max-height:560px;overflow-y:auto}.slots-head{font-size:15px;font-weight:600;margin:4px 4px 16px}.slots-head span{color:var(--muted);font-weight:500}.slot{width:100%;height:42px;border:1px solid var(--border);border-radius:var(--radius-sm);font-weight:600;display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:8px;transition:border-color .12s}.slot:hover{border-color:var(--brand)}.slot i{width:6px;height:6px;border-radius:9px;background:var(--ok)}.empty{color:var(--muted);text-align:center;padding:40px 8px;font-size:13px}.sk{height:42px;border-radius:var(--radius-sm);background:var(--subtle);margin-bottom:8px;animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{50%{opacity:.5}}.formbox{padding:24px;display:flex;flex-direction:column;gap:16px}.field label{display:block;font-weight:600;margin-bottom:6px}.field label em{color:var(--muted);font-style:normal;font-weight:400}.input{width:100%;height:40px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);color:var(--text);padding:0 12px;font:inherit}textarea.input{height:auto;padding:10px 12px;resize:vertical;min-height:96px}.input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 12%,transparent)}.err{color:var(--danger);font-size:13px;background:color-mix(in srgb,var(--danger) 8%,transparent);padding:10px 12px;border-radius:var(--radius-sm)}.actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.btn{height:40px;padding:0 16px;border-radius:var(--radius-sm);font-weight:600}.btn.ghost:hover{background:var(--subtle)}.btn.primary{background:var(--brand);color:var(--brand-text)}.btn.primary:hover{opacity:.9}.btn:disabled{opacity:.6}.profile{padding:28px 24px 20px;text-align:center;border-bottom:1px solid var(--border)}.profile .avatar{width:56px;height:56px;margin:0 auto 12px;font-size:20px}.profile h1{font-size:20px;margin:0}.profile p{color:var(--muted);margin:4px 0 0}.event{display:flex;align-items:center;gap:16px;width:100%;text-align:left;padding:18px 24px;border-bottom:1px solid var(--border)}.event:last-child{border-bottom:0}.event:hover{background:var(--subtle)}.event b{display:block;font-size:15px}.event p{color:var(--muted);margin:2px 0 8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.chip{display:inline-flex;align-items:center;gap:5px;background:var(--subtle);border-radius:6px;padding:2px 8px;font-size:12px;font-weight:600}.chip svg{width:12px;height:12px}.event .chev{margin-left:auto;color:var(--muted);flex:none}.success{padding:40px 32px;text-align:center}.check{width:52px;height:52px;border-radius:99px;background:color-mix(in srgb,var(--ok) 14%,transparent);color:var(--ok);display:grid;place-items:center;margin:0 auto 16px}.success h1{font-size:22px;margin:0 0 6px}.success>p{color:var(--muted);margin:0 0 24px}.summary{text-align:left;border-top:1px solid var(--border);padding-top:20px;display:grid;grid-template-columns:90px 1fr;grid-gap:12px 16px;gap:12px 16px;margin-bottom:24px}.summary dt{font-weight:600}.summary dd{margin:0;color:var(--muted)}@media (max-width:900px){.shell{padding:16px;justify-content:flex-start}.card.booker,.card.form{grid-template-columns:1fr}.meta{border-right:0;border-bottom:1px solid var(--border)}.slots{border-left:0;border-top:1px solid var(--border);max-height:none}}a.btn{display:inline-flex;align-items:center;text-decoration:none}.chev-btn{margin-left:auto;flex:none}.note{margin:0;padding:12px 24px;font-size:13px;border-bottom:1px solid var(--border)}.note.ok{color:var(--ok)}.note.bad{color:var(--danger)}.card.legal{max-width:720px;padding:32px;line-height:1.65}.card.legal h1{font-size:22px;margin:0 0 4px}.card.legal h2{font-size:16px;margin:24px 0 6px}.card.legal p{margin:0 0 8px}.card.legal a,.card.legal p,.summary dd a{color:var(--text)}.summary dd a{text-decoration:underline;text-underline-offset:2px}