:root{--bg:#14171c;--surface:#1b1f26;--surface-raised:#232830;--text:#f2f3f0;--text-muted:#8b93a1;--text-faint:#5b6270;--accent:#35c765;--accent-dim:#1f8f49;--warn:#e8a33d;--alert:#e85c4a;--court:#4e8fe8;--border:hsla(0,0%,100%,.08);--mono:ui-monospace,"SF Mono","Cascadia Code",Menlo,Consolas,monospace;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,sans-serif}:root[data-theme=light]{--bg:#f5f6f8;--surface:#fff;--surface-raised:#eceef1;--text:#14171c;--text-muted:#5b6270;--text-faint:#868d99;--accent:#1a8544;--accent-dim:#2aa257;--warn:#b5760f;--alert:#c8341f;--court:#2b6cc4;--border:rgba(0,0,0,.12)}:root[data-theme=light] .btn-accent,:root[data-theme=light] .cal-booking,:root[data-theme=light] .cal-booking.group,:root[data-theme=light] .cal-booking.pending-mine,:root[data-theme=light] .cal-booking.req-pending{color:#fff}:root[data-theme=light] .cal-booking.pending-counter,:root[data-theme=light] .cal-booking.recurring{color:#241735}:root[data-theme=light] .cal-booking.cancelled,:root[data-theme=light] .cal-booking.completed{color:var(--text-muted)}:root[data-theme=light] .cal-resize-handle:after{background:hsla(0,0%,100%,.55)}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit}.app{max-width:980px;margin:0 auto;padding:28px 20px 100px}.app.wide{max-width:1180px}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:10px}.brand-mark{font-family:var(--mono);font-weight:700;font-size:20px;letter-spacing:-.5px;text-decoration:none}.brand-mark span{color:var(--accent)}.greeting{text-align:right}.greeting-date{font-size:12px;color:var(--text-muted);font-family:var(--mono)}.account-menu{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:4px}.account-name{font-size:12px;color:var(--text);font-weight:600}.account-menu .mini-link{color:var(--text-muted);font-size:11px}.account-menu .mini-link:hover{color:var(--alert)}.status-line{font-size:11px;color:var(--text-faint);margin-bottom:16px;min-height:14px}.status-line.err{color:var(--alert)}.tabs{display:flex;gap:6px;margin-bottom:24px;border-bottom:1px solid var(--border);flex-wrap:wrap}.tab-btn{background:none;color:var(--text-muted);font-family:var(--sans);font-size:13px;font-weight:600;padding:10px 4px;margin-right:18px;cursor:pointer;border:none;border-bottom:2px solid transparent;text-decoration:none;display:inline-block}.tab-btn.active{color:var(--text);border-bottom-color:var(--accent)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:10px;gap:10px;margin-bottom:32px}@media (max-width:640px){.stats{grid-template-columns:1fr 1fr}}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:16px}.stat-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}.stat-value{font-family:var(--mono);font-size:26px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat-value.warn{color:var(--warn)}.stat-sub{font-size:11px;color:var(--text-faint);margin-top:4px}.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;margin-top:8px}.section-title{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.btn{font-family:var(--sans);font-size:12px;font-weight:600;border:none;cursor:pointer;border-radius:7px;padding:8px 12px}.btn-accent{background:var(--accent);color:#0e1712}.btn-ghost{color:var(--accent)}.btn-court,.btn-ghost{background:transparent;padding:4px 0}.btn-court{color:var(--court)}.btn-danger{background:transparent;color:var(--text-faint);font-weight:400}.btn-small{padding:5px 9px;font-size:11px}.btn:disabled{opacity:.5;cursor:default}.section-action{background:none;border:none;color:var(--accent);font-family:var(--sans);font-size:12px;font-weight:600;cursor:pointer;padding:0}.chart-bar-group{cursor:default}.chart-bar{fill:var(--accent-dim)}.chart-bar.projected{fill:var(--accent);opacity:.35}.chart-bar:hover{opacity:.85}.chart-axis-label{fill:var(--text-faint)}.chart-axis-label,.chart-value-label{font-family:var(--mono);font-size:9px}.chart-value-label{fill:var(--text-muted)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:16px;margin-bottom:24px;display:none}.panel.open{display:block}.field-row{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:10px;gap:10px;margin-bottom:10px}@media (max-width:640px){.field-row{grid-template-columns:1fr}}.field{display:flex;flex-direction:column;gap:5px}.field label{font-size:11px;color:var(--text-muted)}.field input:not([type=checkbox]):not([type=radio]),.field select,.panel input:not([type=checkbox]):not([type=radio]),.panel select{background:var(--surface-raised);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:8px 10px;font-size:13px;font-family:var(--sans);width:100%}input[type=checkbox],input[type=radio]{width:14px;height:14px;flex-shrink:0;accent-color:var(--accent)}.toggle-group{display:flex;gap:6px;margin-bottom:10px}.toggle-btn{flex:1 1;padding:8px;border-radius:6px;border:1px solid var(--border);background:var(--surface-raised);color:var(--text-muted);font-size:12px;font-weight:600;cursor:pointer}.toggle-btn.active{border-color:var(--accent);color:var(--accent);background:rgba(53,199,101,.08)}.checkbox-row{gap:6px;font-size:12px;color:var(--text-muted);margin-bottom:10px}.checkbox-row,.panel-actions{display:flex;align-items:center}.panel-actions{gap:8px;margin-top:6px;flex-wrap:wrap}.conditional{display:none}.conditional.show{display:block}.client-checklist{max-height:150px;overflow-y:auto;border:1px solid var(--border);border-radius:6px;padding:8px;background:var(--surface-raised)}.client-check-row{display:flex;align-items:center;gap:7px;font-size:12px;padding:4px 2px}.client-check-row label{color:var(--text)}.roster{display:flex;flex-direction:column;gap:10px}.client-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px 16px}.client-top{gap:12px}.avatar,.client-top{display:flex;align-items:center}.avatar{width:36px;height:36px;border-radius:50%;background:var(--surface-raised);justify-content:center;font-family:var(--mono);font-size:13px;font-weight:700;color:var(--text-muted);flex-shrink:0}.client-info{flex:1 1;min-width:0}.client-name{font-size:14px;font-weight:600}.client-meta{font-size:11px;color:var(--text-faint);margin-top:2px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.tag{font-family:var(--mono);font-size:9px;padding:2px 5px;border-radius:4px;background:var(--surface-raised);color:var(--text-muted);letter-spacing:.03em}.tag.court-tag{color:var(--court);background:rgba(78,143,232,.1)}.tag.group-badge{color:#b98ef0;background:rgba(185,142,240,.12)}.balances{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;margin-top:12px}.balances.single{grid-template-columns:1fr}.balance-box{border-radius:8px;padding:10px 12px}.balance-box.paid{background:rgba(53,199,101,.08);border:1px solid rgba(53,199,101,.2)}.balance-box.unpaid{background:rgba(232,92,74,.06);border:1px solid rgba(232,92,74,.15)}.balance-box.unpaid.zero{background:var(--surface-raised);border:1px solid var(--border)}.balance-box.court{background:rgba(78,143,232,.06);border:1px solid rgba(78,143,232,.18)}.balance-box.court.zero{background:var(--surface-raised);border:1px solid var(--border)}.balance-box.monthly{background:rgba(53,199,101,.08);border:1px solid rgba(53,199,101,.2)}.balance-box.monthly.due{background:rgba(232,92,74,.06);border:1px solid rgba(232,92,74,.15)}.balance-label{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:4px}.balance-box.paid .balance-label{color:var(--accent)}.balance-box.unpaid:not(.zero) .balance-label{color:var(--alert)}.balance-box.court:not(.zero) .balance-label{color:var(--court)}.balance-box.monthly.due .balance-label{color:var(--alert)}.balance-box.monthly:not(.due) .balance-label{color:var(--accent)}.balance-value{font-family:var(--mono);font-size:16px;font-weight:700}.balance-sub{font-size:11px;color:var(--text-faint);margin-top:2px}.court-section{margin-top:8px}.sheet-table{width:100%;border-collapse:collapse;font-size:13px}.sheet-table td,.sheet-table th{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border)}.sheet-table th{color:var(--text-muted);font-size:10px;text-transform:uppercase;letter-spacing:.05em;font-weight:600}.sheet-table td.num,.sheet-table th.num{text-align:right;font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sheet-table tr.total-row td{font-weight:700;border-top:2px solid var(--border);border-bottom:none}.sheet-table td.owed-pos{color:var(--alert)}.sheet-table td.rank{color:var(--text-muted);font-family:var(--mono);width:28px}.sheet-table tr.row-muted td{color:var(--text-faint)}.tag.state-logged{background:rgba(53,199,101,.12);color:var(--accent)}.tag.state-scheduled{background:rgba(78,143,232,.12);color:var(--court)}.tag.state-cancelled{background:rgba(232,92,74,.12);color:var(--alert)}.sheet-table tr.row-muted td:first-child{text-decoration:none}.period-tabs{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}.charges-list{margin-top:8px}.charge-row{justify-content:space-between;font-size:11px;color:var(--text-faint);padding:4px 0;font-family:var(--mono);gap:4px}.charge-row,.charge-row .charge-status{display:flex;align-items:center;flex-wrap:wrap}.charge-row .charge-status{gap:6px}.charge-badge{font-size:9px;padding:2px 6px;border-radius:4px}.charge-badge.paid{background:rgba(53,199,101,.12);color:var(--accent)}.charge-badge.due{background:rgba(232,92,74,.14);color:var(--alert)}.mini-link{background:none;border:none;color:var(--text-faint);font-size:10px;cursor:pointer;text-decoration:underline;font-family:var(--sans)}.client-actions{display:flex;gap:6px;margin-top:12px;flex-wrap:wrap}.sessions{margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.session-row{display:flex;justify-content:space-between;font-size:11px;color:var(--text-faint);padding:3px 0;font-family:var(--mono);gap:8px}.session-group-label,.session-row.upcoming{color:var(--text-muted)}.session-group-label{font-size:10px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}.session-group-label.as-button{background:none;border:none;padding:0;cursor:pointer;font-family:var(--sans);font-weight:600;display:block}.session-attendees{color:var(--text-muted)}.tag.org-badge{background:rgba(185,142,240,.15);color:#b98ef0}.attendee-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.attendee-chip{background:var(--surface-raised);border:1px solid var(--border);color:var(--text-muted);border-radius:999px;padding:3px 9px;font-size:11px;cursor:pointer;font-family:var(--sans)}.attendee-chip.on{background:rgba(53,199,101,.15);border-color:var(--accent);color:var(--accent)}.connect-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;background:rgba(232,163,61,.07);border:1px solid rgba(232,163,61,.25);border-radius:10px;padding:12px 14px;margin-bottom:16px;font-size:12px;color:var(--text-muted)}.connect-banner.ok{background:rgba(53,199,101,.07);border-color:rgba(53,199,101,.25);color:var(--accent)}.connect-banner-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}@media (max-width:720px){.app{padding:16px 12px 80px}.tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-bottom:16px}.tabs::-webkit-scrollbar{display:none}.tab-btn{margin-right:14px;white-space:nowrap;padding:10px 2px}.stats{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:20px}.stat-card{padding:12px}.stat-value{font-size:20px}.calendar-grid{grid-template-columns:38px repeat(7,96px);overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.cal-day-head{padding:6px 2px}.cal-booking{font-size:9px;padding:2px 4px}.cal-hint{font-size:10px}.cal-resize-handle{height:14px}.cal-resize-handle:after{width:26px;height:3px;bottom:4px;background:rgba(0,0,0,.45)}.btn{padding:10px 14px;font-size:13px}.btn-small{padding:8px 11px;font-size:12px}.btn-court,.btn-danger,.btn-ghost{padding:8px 4px}.nav-btn{padding:9px 14px}.client-actions{gap:8px}input,select,textarea{font-size:16px}.balances{grid-template-columns:1fr}.toggle-group{flex-direction:column}.sheet-table{display:block;overflow-x:auto;white-space:nowrap}.sheet-table td,.sheet-table th{padding:8px}.section-head,.week-nav{flex-wrap:wrap;gap:8px}.panel{padding:14px}.inline-form{gap:10px}}@media (max-width:380px){.stats{grid-template-columns:1fr}}.inline-form{display:none;margin-top:12px;padding-top:12px;border-top:1px solid var(--border);gap:8px;flex-wrap:wrap;align-items:end}.inline-form.open{display:flex}.inline-form .field{flex:1 1;min-width:100px}.form-note{font-size:10px;color:var(--text-faint);width:100%;margin-top:-2px}.form-note a{color:var(--accent)}.consent-note{font-size:11px;line-height:1.5;color:var(--text-muted);width:100%;margin-top:14px}.consent-note a{color:var(--accent)}.empty-note{font-size:12px;color:var(--text-faint);text-align:center;padding:24px;border:1px dashed var(--border);border-radius:10px}.week-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:8px}.week-nav .week-label{font-size:13px;font-weight:600;font-family:var(--mono)}.week-nav-btns{display:flex;gap:6px}.nav-btn{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:6px 12px;cursor:pointer;font-size:13px}.cal-hint{font-size:11px;color:var(--text-faint);margin-bottom:12px}.calendar-grid{display:grid;grid-template-columns:46px repeat(7,1fr);border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--surface)}.cal-corner,.cal-day-head{background:var(--surface);border-bottom:1px solid var(--border)}.cal-day-head{padding:8px 4px;text-align:center;border-left:1px solid var(--border)}.cal-day-head .dname{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.cal-day-head .dnum{font-family:var(--mono);font-size:14px;font-weight:700;margin-top:2px}.cal-day-head.today .dnum{color:var(--accent)}.cal-time-col{display:flex;flex-direction:column}.cal-time-label{height:46px;font-size:9px;color:var(--text-faint);text-align:right;padding:2px 5px 0 0;font-family:var(--mono);border-top:1px solid var(--border)}.cal-day-col{position:relative;border-left:1px solid var(--border)}.cal-day-col.drag-over{background:rgba(53,199,101,.06)}.cal-cell{height:46px;border-top:1px solid var(--border);cursor:pointer}.cal-cell:hover{background:var(--surface-raised)}.cal-booking{position:absolute;left:2px;right:2px;border-radius:5px;background:var(--accent-dim);color:#0e1712;font-size:10px;line-height:1.25;padding:3px 5px;overflow:hidden;cursor:-webkit-grab;cursor:grab;z-index:2}.cal-booking.dragging{opacity:.35}.cal-booking.touch-dragging{z-index:50;opacity:.9;pointer-events:none;box-shadow:0 8px 20px rgba(0,0,0,.45);transform-origin:center}.cal-booking.group{background:var(--court);color:#0b1420}.cal-booking.recurring{background:#b98ef0;color:#241735}.cal-booking.pending-mine{background:var(--warn);color:#241a05}.cal-booking.pending-counter{background:#b98ef0;color:#241735}.cal-booking.req-pending{background:var(--warn);color:#241a05;border:1px dashed rgba(0,0,0,.35);opacity:.92}.cal-badge-f{position:absolute;top:2px;right:3px;width:12px;height:12px;border-radius:3px;background:rgba(36,23,53,.85);color:#ebdbff;font-family:var(--mono);font-size:8px;font-weight:800;display:flex;align-items:center;justify-content:center;line-height:1}.cal-booking.cancelled .cal-badge-f,.cal-booking.completed .cal-badge-f{background:rgba(0,0,0,.25);color:var(--text-faint)}.cal-booking.completed{color:var(--text-muted);border:1px dashed var(--border)}.cal-booking.cancelled,.cal-booking.completed{background:var(--surface-raised);cursor:pointer}.cal-booking.cancelled{color:var(--text-faint);text-decoration:line-through;opacity:.6}.cal-booking .cb-name{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.cal-booking:hover{z-index:20;overflow:visible}.cal-booking-expand{position:absolute;top:100%;left:0;margin-top:2px;min-width:130px;max-width:220px;background:var(--surface-raised);border:1px solid var(--border);border-radius:6px;padding:0 10px;box-shadow:0 8px 20px rgba(0,0,0,.4);max-height:0;opacity:0;overflow:hidden;pointer-events:none;transition:max-height .22s ease,opacity .18s ease,padding .22s ease}.cal-booking:hover .cal-booking-expand{max-height:220px;opacity:1;padding:8px 10px}.cal-booking-expand .exp-title{font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:4px}.cal-booking-expand .exp-name{font-size:11px;color:var(--text);line-height:1.5;white-space:nowrap}.cal-booking-expand .exp-name.included{color:var(--court)}.cal-resize-handle{position:absolute;left:0;right:0;bottom:0;height:7px;cursor:ns-resize;touch-action:none}.cal-resize-handle:after{content:"";position:absolute;left:50%;bottom:2px;width:20px;height:2px;background:rgba(0,0,0,.35);transform:translateX(-50%);border-radius:2px}.booking-panel-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.participant-list{margin-top:8px;margin-bottom:6px}.participant-row{font-size:11px;color:var(--text-faint);font-family:var(--mono);padding:2px 0}.groups-list{display:flex;flex-direction:column;gap:10px;margin-bottom:32px}.group-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px 16px}.group-top{justify-content:space-between;gap:10px;flex-wrap:wrap}.group-title-row,.group-top{display:flex;align-items:center}.group-title-row{gap:8px}.group-title{font-size:15px;font-weight:700}.group-meta{font-size:11px;color:var(--text-faint);margin-top:2px}.group-sub-head{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:14px 0 6px}.member-row{display:flex;align-items:center;justify-content:space-between;font-size:12px;padding:4px 0;flex-wrap:wrap;gap:4px}.member-row .member-name{color:var(--text)}.member-row .member-charge{font-size:10px;color:var(--text-faint);gap:6px;flex-wrap:wrap}.member-row .member-charge,.slot-row{font-family:var(--mono);display:flex;align-items:center}.slot-row{justify-content:space-between;font-size:12px;padding:4px 0;color:var(--text-muted)}.add-member-row,.add-slot-row{display:flex;gap:8px;align-items:flex-end;margin-top:8px;flex-wrap:wrap}.add-member-row select,.add-slot-row input,.add-slot-row select{background:var(--surface-raised);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:6px 8px;font-size:12px;font-family:var(--sans)}.add-slot-row input[type=number]{width:70px}.plain-link{text-decoration:none;color:inherit;display:block}.chat-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:10px}.chat-title{font-size:15px;font-weight:700}.chat-box{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px 16px;height:420px;overflow-y:auto;display:flex;flex-direction:column;gap:10px}.chat-msg{max-width:78%}.chat-msg .chat-sender{font-size:10px;color:var(--text-faint);margin-bottom:2px;font-family:var(--mono)}.chat-msg .chat-bubble{background:var(--surface-raised);border:1px solid var(--border);border-radius:8px;padding:8px 11px;font-size:13px;color:var(--text);line-height:1.4;word-wrap:break-word}.chat-msg.mine{align-self:flex-end}.chat-msg.mine .chat-sender{text-align:right}.chat-msg.mine .chat-bubble{background:rgba(53,199,101,.12);border-color:rgba(53,199,101,.25)}.chat-input-row{display:flex;gap:8px;margin-top:10px}.chat-input-row input{flex:1 1;background:var(--surface-raised);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:9px 12px;font-size:13px;font-family:var(--sans)}.legal{max-width:680px;margin:0 auto;font-size:14px;line-height:1.7;color:var(--text-muted)}.legal h1{font-size:26px;color:var(--text);margin:8px 0 4px;letter-spacing:-.4px}.legal h2{font-size:16px;color:var(--text);margin:32px 0 8px;letter-spacing:-.2px}.legal h3{font-size:13px;color:var(--text);margin:18px 0 4px;font-weight:600}.legal p,.legal ul{margin:0 0 12px}.legal ul{padding-left:20px}.legal li{margin-bottom:6px}.legal a{color:var(--accent)}.legal strong{color:var(--text);font-weight:600}.legal hr{border:none;border-top:1px solid var(--border);margin:32px 0 16px}.legal-meta{font-size:12px;color:var(--text-faint);font-family:var(--mono)}.legal-intro{font-size:15px;color:var(--text);margin:16px 0 8px}.legal .sheet-table{margin:12px 0 16px;font-size:12px}.legal-callout{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:6px;padding:12px 14px;color:var(--text);margin:0 0 14px}.danger-zone{border-color:rgba(232,92,74,.35)}.btn-destructive,.danger-zone .client-name{color:var(--alert)}.btn-destructive{background:rgba(232,92,74,.14);border:1px solid rgba(232,92,74,.4)}.btn-destructive:hover:not(:disabled){background:rgba(232,92,74,.24)}.invoice-total{margin-top:14px;padding:12px 14px;background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:6px;font-size:14px;color:var(--text)}.invoice-total strong{font-family:var(--mono);font-size:17px}.invoice-total .form-note{display:block;margin-top:4px}.landing{max-width:860px;margin:0 auto;padding:24px 20px 60px}.landing-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:56px}.landing-hero{margin-bottom:72px}.landing-tag{display:inline-block;margin-bottom:18px;background:rgba(53,199,101,.12);color:var(--accent)}.landing-hero h1{font-size:44px;line-height:1.1;letter-spacing:-1.5px;margin:0 0 18px;font-weight:700;color:var(--text)}.landing-hero h1 span{color:var(--accent)}.landing-lede{font-size:18px;line-height:1.6;color:var(--text-muted);margin:0 0 28px;max-width:620px}.landing-cta{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.landing-btn{display:inline-block;font-size:15px;padding:13px 22px;border-radius:9px}.landing-fineprint{font-size:12px;color:var(--text-faint);margin:14px 0 0}.landing-section{margin-bottom:64px}.landing-section h2{font-size:22px;letter-spacing:-.5px;margin:0 0 20px;color:var(--text)}.landing-problem-lede{line-height:1.7;margin:0 0 16px;max-width:620px}.landing-list,.landing-problem-lede{font-size:15px;color:var(--text-muted)}.landing-list{margin:0;padding-left:20px;line-height:1.75;max-width:640px}.landing-list li{margin-bottom:8px}.landing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-gap:14px;gap:14px}.landing-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:18px}.landing-card h3{font-size:14px;margin:0 0 8px;color:var(--text)}.landing-card p{font-size:13px;line-height:1.6;color:var(--text-muted);margin:0}.landing-honest{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--warn);border-radius:10px;padding:18px 20px}.landing-honest p{font-size:14px;line-height:1.7;color:var(--text-muted);margin:0 0 12px}.landing-honest p:last-child{margin-bottom:0}.landing-honest a{color:var(--accent)}.landing-faq{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:22px;gap:22px}.landing-faq h3{font-size:14px;margin:0 0 6px;color:var(--text)}.landing-faq p{font-size:13px;line-height:1.65;color:var(--text-muted);margin:0}.landing-faq a{color:var(--accent)}.landing-close{text-align:center;padding:44px 20px;background:var(--surface);border:1px solid var(--border);border-radius:12px;margin-bottom:40px}.landing-close h2{font-size:24px;letter-spacing:-.5px;margin:0 0 10px;color:var(--text)}.landing-close p{font-size:15px;color:var(--text-muted);margin:0 0 22px}.landing-footer{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;border-top:1px solid var(--border);padding-top:20px;font-size:12px;color:var(--text-faint)}.landing-footer-links{display:flex;gap:16px;flex-wrap:wrap}.landing-footer a{color:var(--text-muted);text-decoration:none}.landing-footer a:hover{color:var(--accent)}@media (max-width:640px){.landing-hero h1{font-size:32px;letter-spacing:-1px}.landing-lede{font-size:16px}.landing-bar{margin-bottom:36px}.landing-hero,.landing-section{margin-bottom:48px}.landing-cta{gap:12px}.landing-btn{width:100%;text-align:center}}.toast-stack{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(16px + env(safe-area-inset-bottom, 0px));z-index:200;display:flex;flex-direction:column;gap:8px;width:min(440px,calc(100vw - 32px))}.toast{display:flex;align-items:flex-start;gap:10px;background:var(--surface-raised);border:1px solid var(--border);border-left:3px solid var(--text-muted);border-radius:8px;padding:11px 12px;font-size:13px;line-height:1.5;color:var(--text);box-shadow:0 6px 20px rgba(0,0,0,.28)}.toast-error{border-left-color:var(--alert)}.toast-success{border-left-color:var(--accent)}.toast-info{border-left-color:var(--court)}.toast span{flex:1 1;word-break:break-word}.toast-close{background:none;border:none;color:var(--text-faint);font-size:17px;line-height:1;cursor:pointer;padding:0 2px;flex-shrink:0}.toast-close:hover{color:var(--text)}.modal-backdrop{position:fixed;inset:0;z-index:300;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;padding:20px}.modal-panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px;width:min(420px,100%);box-shadow:0 16px 48px rgba(0,0,0,.4)}.modal-title{font-size:15px;font-weight:600;color:var(--text);margin-bottom:8px}.modal-detail{font-size:13px;line-height:1.6;color:var(--text-muted);white-space:pre-line;margin-bottom:4px}.modal-input{width:100%;margin-top:12px;background:var(--surface-raised);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:9px 11px;font-size:15px;font-family:var(--sans)}.modal-actions{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin-top:18px}@media (max-width:480px){.modal-actions{flex-direction:column-reverse;align-items:stretch;gap:8px}.modal-actions .btn{width:100%;padding:11px}}