:root{--bg:#f6f7f9;--surface:#fff;--surface-2:#f2f4f7;--border:#e3e6ea;--border-strong:#cfd4da;--text:#16191d;--text-muted:#666f7a;--text-faint:#98a1ac;--accent:#0f766e;--accent-hover:#0c5f59;--accent-soft:#e5f3f1;--danger:#b42318;--danger-soft:#fdeceb;--warning:#b54708;--warning-soft:#fdf3e7;--success:#067647;--success-soft:#e7f6ee;--radius:10px;--radius-sm:7px;--shadow:0 1px 2px #1018280d;--shadow-lg:0 8px 28px #10182817;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace}@media (prefers-color-scheme:dark){:root{--bg:#14161a;--surface:#1c1f24;--surface-2:#24282e;--border:#2e333a;--border-strong:#3d434b;--text:#e9ecef;--text-muted:#a0a8b2;--text-faint:#767e88;--accent:#2dd4bf;--accent-hover:#5eead4;--accent-soft:#16302e;--danger:#f97066;--danger-soft:#35201e;--warning:#f79009;--warning-soft:#33261a;--success:#47cd89;--success-soft:#17301f;--shadow:0 1px 2px #00000059;--shadow-lg:0 10px 32px #00000073}}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.55}h1,h2,h3,h4{letter-spacing:-.01em;margin:0;line-height:1.25}h1{font-size:24px}h2{font-size:18px}h3{font-size:15px}p{margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.app-shell{grid-template-columns:232px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;gap:22px;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0;overflow-y:auto}.brand{color:var(--text);align-items:center;gap:9px;padding:0 8px;font-size:15px;font-weight:650;display:flex}.brand-mark{background:var(--accent);color:#fff;border-radius:7px;flex-shrink:0;place-items:center;width:26px;height:26px;font-size:13px;font-weight:700;display:grid}.nav{flex-direction:column;gap:2px;display:flex}.nav a{border-radius:var(--radius-sm);color:var(--text-muted);align-items:center;gap:9px;padding:8px 10px;font-weight:500;display:flex}.nav a:hover{background:var(--surface-2);color:var(--text);text-decoration:none}.nav a.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.sidebar-footer{border-top:1px solid var(--border);margin-top:auto;padding-top:14px;font-size:13px}.main{width:100%;max-width:1100px;padding:28px 32px 60px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:22px;display:flex}.page-head p{color:var(--text-muted);margin-top:4px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.card+.card{margin-top:14px}.card-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.stack{flex-direction:column;gap:14px;display:flex}.stack-sm{flex-direction:column;gap:8px;display:flex}.row{align-items:center;gap:10px;display:flex}.row-wrap{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.spread{justify-content:space-between;align-items:center;gap:12px;display:flex}.grow{flex:1}.grid-2{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.grid-3{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;display:grid}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.small{font-size:13px}.tiny{font-size:12px}.mono{font-family:var(--mono);font-size:12px}.center{text-align:center}.btn{appearance:none;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;padding:8px 14px;font-family:inherit;font-size:13.5px;font-weight:550;transition:background .12s,border-color .12s,opacity .12s}.btn:hover:not(:disabled){background:var(--surface-2)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn-danger{color:var(--danger);border-color:var(--border-strong)}.btn-danger:hover:not(:disabled){background:var(--danger-soft)}.btn-ghost{color:var(--text-muted);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.btn-sm{padding:5px 10px;font-size:12.5px}label{margin-bottom:5px;font-size:13px;font-weight:550;display:block}.field{margin-bottom:14px}.hint{color:var(--text-faint);margin-top:4px;font-size:12.5px}input[type=text],input[type=email],input[type=password],input[type=url],input[type=tel],input[type=number],input[type=date],input[type=time],select,textarea{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);width:100%;color:var(--text);padding:8px 10px;font-family:inherit;font-size:14px}textarea{resize:vertical;min-height:76px}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--accent);margin:0}.check{cursor:pointer;align-items:center;gap:8px;margin:0;font-size:13.5px;font-weight:500;display:flex}.badge{background:var(--surface-2);color:var(--text-muted);white-space:nowrap;border-radius:20px;align-items:center;gap:5px;padding:2px 8px;font-size:11.5px;font-weight:600;display:inline-flex}.badge-success{background:var(--success-soft);color:var(--success)}.badge-danger{background:var(--danger-soft);color:var(--danger)}.badge-warning{background:var(--warning-soft);color:var(--warning)}.badge-accent{background:var(--accent-soft);color:var(--accent)}.alert{border-radius:var(--radius-sm);border:1px solid #0000;padding:10px 13px;font-size:13.5px}.alert-error{background:var(--danger-soft);color:var(--danger);border-color:currentColor}.alert-warning{background:var(--warning-soft);color:var(--warning);border-color:currentColor}.alert-success{background:var(--success-soft);color:var(--success);border-color:currentColor}.alert-info{background:var(--surface-2);color:var(--text-muted);border-color:var(--border)}.empty{text-align:center;color:var(--text-muted);border:1px dashed var(--border-strong);border-radius:var(--radius);padding:44px 20px}.spinner{border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.calendar{-webkit-user-select:none;user-select:none}.calendar-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.calendar-month{font-size:15px;font-weight:600}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.calendar-dow{text-align:center;color:var(--text-faint);text-transform:uppercase;letter-spacing:.04em;padding-bottom:6px;font-size:11px;font-weight:600}.day{aspect-ratio:1;border-radius:var(--radius-sm);color:var(--text);cursor:pointer;background:0 0;border:1px solid #0000;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-family:inherit;font-size:14px;font-weight:500;transition:background .1s,border-color .1s;display:flex;position:relative}.day-open{background:var(--accent-soft);color:var(--accent);font-weight:650}.day-open:hover{border-color:var(--accent)}.day-selected{background:var(--accent);color:#fff;border-color:var(--accent)}.day-closed{color:var(--text-faint);cursor:not-allowed;text-decoration:line-through;text-decoration-thickness:1px}.day-conflict{color:var(--warning);background:var(--warning-soft);cursor:not-allowed;text-decoration:none}.day-outside{visibility:hidden}.day-dot{opacity:.75;background:currentColor;border-radius:50%;width:4px;height:4px}.calendar-legend{color:var(--text-muted);flex-wrap:wrap;gap:14px;margin-top:14px;font-size:12px;display:flex}.legend-swatch{vertical-align:-1px;border-radius:3px;width:11px;height:11px;margin-right:5px;display:inline-block}.slots{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;max-height:380px;padding-right:4px;display:grid;overflow-y:auto}.slot{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--accent);cursor:pointer;padding:9px 6px;font-family:inherit;font-size:13.5px;font-weight:600;transition:background .1s,border-color .1s}.slot:hover{border-color:var(--accent);background:var(--accent-soft)}.slot-selected{background:var(--accent);border-color:var(--accent);color:#fff}.public-page{justify-content:center;align-items:flex-start;min-height:100vh;padding:40px 18px 60px;display:flex}.booking-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);border-radius:14px;grid-template-columns:290px 1fr;width:100%;max-width:940px;display:grid;overflow:hidden}.booking-aside{border-right:1px solid var(--border);background:var(--surface);padding:26px 24px}.booking-body{min-width:0;padding:26px 24px}.host-avatar{background:var(--accent-soft);width:44px;height:44px;color:var(--accent);border-radius:50%;place-items:center;margin-bottom:12px;font-size:16px;font-weight:700;display:grid}.meta-line{color:var(--text-muted);align-items:center;gap:8px;margin-top:7px;font-size:13.5px;display:flex}.meta-icon{text-align:center;opacity:.8;flex-shrink:0;width:15px}@media (width<=820px){.booking-card{grid-template-columns:1fr}.booking-aside{border-right:none;border-bottom:1px solid var(--border)}.app-shell{grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid var(--border);flex-direction:row;align-items:center;height:auto;position:static;overflow-x:auto}.nav{flex-direction:row}.sidebar-footer{border-top:none;margin-top:0;padding-top:0}.main{padding:20px 16px 48px}}.table{border-collapse:collapse;width:100%;font-size:13.5px}.table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--text-faint);padding:0 10px 8px;font-size:11.5px;font-weight:600}.table td{border-top:1px solid var(--border);vertical-align:top;padding:11px 10px}.code-block{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--mono);white-space:pre;color:var(--text);margin:0;padding:11px 13px;font-size:12px;overflow-x:auto}.divider{background:var(--border);border:0;height:1px;margin:16px 0}.rule-pill{border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent);align-items:center;gap:8px;padding:6px 10px;font-size:13px;font-weight:550;display:inline-flex}.rule-pill.blocked{background:var(--danger-soft);color:var(--danger)}.auth-page{place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{width:100%;max-width:380px}.landing{flex-direction:column;min-height:100vh;display:flex}.landing-nav{border-bottom:1px solid var(--border);background:var(--surface);z-index:10;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:16px 24px;display:flex;position:sticky;top:0}.landing-hero{text-align:center;max-width:780px;margin:0 auto;padding:72px 24px 48px}.landing-hero h1{letter-spacing:-.025em;margin:18px 0 0;font-size:clamp(30px,5vw,46px);line-height:1.12}.landing-lede{color:var(--text-muted);max-width:620px;margin:16px auto 0;font-size:16.5px}.landing-section{width:100%;max-width:1040px;margin:0 auto;padding:20px 24px 56px}.landing-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;display:grid}.landing-grid .card{margin-top:0}.landing-cta{text-align:center;padding:36px 24px}.landing-footer{border-top:1px solid var(--border);background:var(--surface);margin-top:auto;padding:20px 24px}.landing-footer .row-wrap{max-width:1040px;margin:0 auto}.policy{width:100%;max-width:760px;margin:0 auto;padding:48px 24px 64px}.policy h1{font-size:30px}.policy h2{margin:32px 0 10px;font-size:19px}.policy h3{margin:22px 0 8px;font-size:15.5px}.policy p,.policy li{color:var(--text-muted);font-size:15px;line-height:1.7}.policy p{margin-bottom:12px}.policy ul{margin:0 0 14px;padding-left:22px}.policy li{margin-bottom:7px}.policy strong{color:var(--text)}.policy code{font-family:var(--mono);background:var(--surface-2);border:1px solid var(--border);border-radius:4px;padding:1px 5px;font-size:13px}.google-btn{justify-content:center;align-items:center;gap:10px;width:100%;font-weight:550;display:flex}.or-divider{color:var(--text-faint);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:12px;margin:16px 0;font-size:12px;display:flex}.or-divider:before,.or-divider:after{content:"";background:var(--border);flex:1;height:1px}
