:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#eef3fb;--surface:#fff;--surface-2:#f5f8fe;--ink:#0b1b3a;--ink-2:#334766;--muted:#5b6b8a;--line:#e2e9f5;--line-strong:#c9d5ea;--field:#7d8db0;--hover:#f2f6fd;--press:#e6edfb;--accent:#2563eb;--accent-deep:#1d4ed8;--accent-tint:#e8efff;--ok:#15803d;--ok-tint:#e8f6ed;--warn:#b45309;--warn-tint:#fdf2e1;--bad:#b91c1c;--bad-tint:#fdecec;--grad:radial-gradient(80% 100% at 100% 0%, #38bdf838 0%, #38bdf800 65%), linear-gradient(140deg, #1e3a8a 0%, #1d4ed8 60%, #1f55e3 100%);--grad-btn:linear-gradient(135deg, #1d4ed8 0%, #2563eb 100%);--grad-soft:linear-gradient(135deg, #eaf1ff 0%, #e7f5fd 100%);--r-ctl:14px;--r-card:20px;--r-sheet:28px;--shadow-card:0 1px 2px #0f23500d, 0 6px 18px -10px #0f235033;--shadow-float:0 2px 6px #0f235014, 0 16px 36px -16px #0f23506b;--ease:cubic-bezier(.2, .8, .2, 1);--font:"Plus Jakarta Sans Variable", "Plus Jakarta Sans", ui-sans-serif, sans-serif;--tab-h:calc(64px + env(safe-area-inset-bottom,0px));--panel-w:420px}*,:before,:after{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:var(--font);color:var(--ink);background:var(--bg);overscroll-behavior:none;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;caret-color:var(--accent);scrollbar-color:var(--line-strong) transparent;scrollbar-width:thin;font-size:16px;line-height:1.45;overflow:clip}::selection{background:var(--accent-tint);color:var(--ink)}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}a{color:var(--accent-deep);text-underline-offset:3px}button{font:inherit;color:inherit;cursor:pointer}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--muted)}.ms{letter-spacing:normal;text-transform:none;white-space:nowrap;font-feature-settings:"liga";font-variation-settings:"FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;-webkit-user-select:none;user-select:none;direction:ltr;font-family:Material Symbols Outlined;font-size:24px;font-style:normal;font-weight:400;line-height:1;display:inline-block}#app{position:fixed;inset:0;overflow:clip}#map{z-index:0;background:var(--bg);position:absolute;inset:0}.leaflet-container{font-family:var(--font);background:var(--bg)}.leaflet-top.leaflet-left{top:calc(var(--board-bottom,140px) + 6px)}.leaflet-control-attribution.leaflet-control{color:var(--ink-2);background:#ffffffe0;border-radius:999px;margin:0 0 0 10px;padding:1px 8px;font-size:10.5px;line-height:1.5}.leaflet-control-attribution a{color:var(--ink-2)}.stop{width:24px;height:24px;transition:opacity .18s var(--ease)}.stop-dot{background:var(--surface);border:4px solid var(--accent);transition:transform .22s var(--ease), border-color .18s, background .18s;border-radius:50%;position:absolute;inset:2px;box-shadow:0 2px 6px #0f235059}.stop-flag{background:var(--surface);color:var(--ink);font:700 12.5px/1.2 var(--font);font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:999px;align-items:center;padding:3px 9px;display:flex;position:absolute;top:50%;left:27px;transform:translateY(-50%);box-shadow:0 1px 2px #0f23502e,0 6px 14px -6px #0f235066}.stop-flag b{font-weight:700}.stop-flag b+b{border-left:1px solid var(--line-strong);margin-left:6px;padding-left:6px}.stop-flag b.is-full{color:var(--muted);text-decoration:line-through;text-decoration-thickness:1.5px}.stop-flag .ms{color:var(--muted);margin:0 3px 0 -2px;font-size:14px}.stop-warn .stop-dot{border-color:var(--warn)}.stop-fail .stop-dot{border-color:var(--line-strong);box-shadow:none}.stop-fail .stop-flag{color:var(--muted);box-shadow:0 0 0 1px var(--line)}.stop.is-selected .stop-dot{border-color:var(--surface);background:var(--accent);transform:scale(1.3)}.stop.is-selected .stop-flag{background:var(--grad-btn);color:#fff}.stop.is-selected .stop-flag .ms{color:#fff}.stop.is-selected .stop-flag b+b{border-left-color:#ffffff80}.stop.is-dim{opacity:.35}.stop.is-approx .stop-flag{left:50%;transform:translate(-50%,-50%)}.me span{background:var(--accent);border:3px solid #fff;border-radius:50%;position:absolute;inset:0;box-shadow:0 0 0 6px #2563eb2e,0 2px 5px #0f235066}.me.is-area span:after{content:"";border:2px dashed var(--accent);border-radius:50%;position:absolute;inset:-9px}.board{z-index:1000;top:calc(env(safe-area-inset-top,0px) + 8px);background:var(--grad);color:#fff;border-radius:24px;padding:16px 16px 14px;position:absolute;left:8px;right:8px;overflow:hidden;box-shadow:0 14px 32px -16px #1e3a8ab3}.board :focus-visible{outline-color:#fff}.board-top{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.board-title{letter-spacing:-.02em;margin:0;font-size:22px;font-weight:800;line-height:1.15}.board-day{color:#ffffffeb;margin:2px 0 0;font-size:13.5px;font-weight:500}.school-btn{color:#fff;background:#0b1b3a52;border:1px solid #ffffff59;border-radius:999px;flex:none;align-items:center;gap:2px;min-height:40px;padding:0 8px 0 14px;font-size:14px;font-weight:700;transition:background .12s;display:inline-flex}.school-btn:hover{background:#0b1b3a70}.school-btn .ms{font-size:21px}.board-times{color:#fff;flex-wrap:wrap;gap:4px 16px;margin:12px 0 0;font-size:14px;font-weight:500;display:flex}.board-times b{font-variant-numeric:tabular-nums;font-weight:800}.roll-ch{display:inline-block}.locate{z-index:700;right:10px;top:calc(var(--board-bottom,140px) + 10px);background:var(--surface);width:48px;height:48px;color:var(--accent-deep);box-shadow:var(--shadow-float);border:0;border-radius:50%;place-items:center;display:grid;position:absolute}.locate:hover{background:var(--hover)}.credit-btn{z-index:700;right:14px;top:calc(var(--board-bottom,140px) + 68px);width:40px;height:40px;color:var(--ink-2);background:#fffffff0;border:0;border-radius:50%;place-items:center;display:grid;position:absolute;box-shadow:0 1px 3px #0f23502e}.credit-btn .ms{font-size:21px}.credit{z-index:700;right:62px;top:calc(var(--board-bottom,140px) + 68px);background:var(--surface);max-width:min(280px,100% - 80px);box-shadow:var(--shadow-float);color:var(--ink-2);border-radius:14px;margin:0;padding:10px 12px;font-size:12.5px;line-height:1.45;position:absolute}.credit[hidden]{display:none}.sheet{z-index:900;left:0;right:0;bottom:var(--tab-h);background:var(--surface-2);border-radius:var(--r-sheet) var(--r-sheet) 0 0;height:60%;transform:translateY(var(--sheet-y,50%));transition:transform .32s var(--ease);will-change:transform;flex-direction:column;display:flex;position:absolute;box-shadow:0 -1px #0f23500d,0 -14px 34px -18px #0f235066}.sheet.is-dragging{transition:none}.grip{touch-action:none;cursor:grab;flex:none;place-items:center;height:24px;display:grid}.grip span{background:var(--line-strong);border-radius:999px;width:40px;height:5px}.sheet-inner{flex-direction:column;flex:1;min-height:0;display:flex}.sheet-head{touch-action:none;flex:none;padding:0 16px 12px}.head-bar{align-items:center;gap:8px;display:flex}.filter-btn{border:1px solid var(--line-strong);background:var(--surface);width:46px;height:46px;color:var(--ink);border-radius:50%;flex:none;place-items:center;transition:background .12s,border-color .12s;display:grid;position:relative}.filter-btn:hover{background:var(--hover)}.filter-btn.is-on{border-color:var(--accent);background:var(--accent-tint);color:var(--accent-deep)}.filter-count{background:var(--accent);color:#fff;border-radius:999px;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:800;line-height:18px;position:absolute;top:-2px;right:-2px}.seg{background:#e4ebf7;border-radius:999px;flex:none;gap:2px;padding:3px;display:flex}.seg button{min-height:34px;color:var(--ink-2);background:0 0;border:0;border-radius:999px;padding:0 14px;font-size:14px;font-weight:600;transition:background .12s,color .12s}.seg button[aria-pressed=true]{background:var(--surface);color:var(--ink);font-weight:700;box-shadow:0 1px 3px #0f235029}.mode-seg{flex:1;grid-template-columns:1fr 1fr;display:grid}.mode-seg button{min-height:40px;font-size:15px}.mode-seg button[aria-pressed=true]{background:var(--grad-btn);color:#fff;box-shadow:0 6px 14px -8px #2563ebcc}.sheet-scroll{overscroll-behavior:contain;flex:1;min-height:0;padding-bottom:28px;overflow-y:auto}.deps{margin:0;padding:2px 12px 0;list-style:none}.deps li+li{margin-top:10px}.dep{border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface);width:100%;box-shadow:var(--shadow-card);text-align:left;grid-template-columns:58px minmax(0,1fr) auto;align-items:start;gap:12px;padding:14px 14px 14px 16px;transition:background .12s,box-shadow .12s,transform .12s;display:grid}.dep:hover{background:#fbfcff;box-shadow:0 1px 2px #0f23500f,0 10px 22px -12px #0f235047}.dep:active{transform:scale(.99)}.dep-time{font-variant-numeric:tabular-nums;letter-spacing:-.02em;white-space:nowrap;padding-top:1px;font-size:22px;font-weight:800;line-height:1.05}.dep-time small{letter-spacing:0;color:var(--accent-deep);margin-top:5px;font-size:12px;font-weight:700;display:block}.dep-main{flex-direction:column;gap:3px;min-width:0;display:flex}.dep-name{font-size:16px;font-weight:700;line-height:1.3}.dep-meta{color:var(--muted);font-size:13.5px;line-height:1.4}.dep-valid{color:var(--ink-2);align-items:center;gap:7px;margin-top:4px;font-size:13.5px;font-weight:500;line-height:1.3;display:flex}.dep-room{flex-direction:column;align-items:flex-end;gap:8px;padding-top:3px;display:flex}.dep.is-ghost{box-shadow:none;background:#fff9}.dep.is-ghost .dep-time,.dep.is-ghost .dep-name{color:var(--muted)}.dep.is-ghost .meter i.on{background:var(--line-strong)}.flag-note{color:var(--ink);font-weight:700}.tag{background:var(--press);color:var(--ink-2);vertical-align:1px;border-radius:999px;align-items:center;gap:2px;margin-left:6px;padding:0 8px;font-size:11.5px;font-weight:700;line-height:20px;display:inline-flex}.tag .ms{margin-left:-2px;font-size:13px}.tag-old{background:var(--warn-tint);color:var(--warn)}.tag-seen{background:var(--ok-tint);color:var(--ok)}.tag-private{color:#3730a3;background:#eef0fb}.room-word{white-space:nowrap;background:var(--press);color:var(--ink-2);border-radius:999px;padding:2px 9px;font-size:12px;font-weight:700}.room-word.room-space{background:var(--ok-tint);color:var(--ok)}.room-word.room-filling{background:var(--accent-tint);color:var(--accent-deep)}.room-word.room-nearly{background:var(--warn-tint);color:var(--warn)}.room-word.room-full{background:var(--bad-tint);color:var(--bad)}.meter{background:var(--line);border-radius:999px;width:56px;height:6px;display:inline-flex;overflow:hidden}.meter i{flex:1}.meter i.on{background:var(--accent)}.meter.is-full i.on{background:var(--bad)}.meter-wide{width:100%;height:10px;margin:10px 0 14px;display:flex}.mark{border-radius:50%;flex:none;width:18px;height:18px;display:inline-block;position:relative}.mark-pass{background:var(--ok)}.mark-pass:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:4.6px;height:8.6px;position:absolute;top:3.4px;left:6.2px;transform:rotate(45deg)}.mark-fail{background:var(--bad);border-radius:6px}.mark-fail:before,.mark-fail:after{content:"";background:#fff;border-radius:1px;height:2px;position:absolute;top:8px;left:4px;right:4px;transform:rotate(45deg)}.mark-fail:after{transform:rotate(-45deg)}.mark-warn{box-shadow:inset 0 0 0 2px var(--warn)}.mark-warn:before,.mark-warn:after{content:"";background:var(--warn);border-radius:1px;width:2px;position:absolute;left:8px}.mark-warn:before{height:6px;top:4px}.mark-warn:after{height:2px;top:11.5px}.mark-na{box-shadow:inset 0 0 0 1.5px var(--line-strong)}.mark-na:after{content:"";background:var(--line-strong);border-radius:1px;height:2px;position:absolute;top:8px;left:5px;right:5px}.mini-marks{gap:9px;display:flex}.mini{align-items:center;gap:4px;font-size:13px;font-weight:700;display:inline-flex}.empty{border-radius:var(--r-card);background:var(--surface);border:1px solid var(--line);margin:2px 12px 0;padding:22px 18px}.empty p{margin:0 0 12px}.crowded{border-radius:var(--r-card);background:var(--grad-soft);border:1px solid #d9e5fb;margin:12px;padding:16px}.crowded p{color:var(--ink-2);margin:0 0 12px;font-size:14.5px;line-height:1.5}.crowded b{color:var(--ink)}.foot{color:var(--muted);margin:0;padding:16px 20px;font-size:12.5px;line-height:1.5}.detail-head{align-items:flex-start;gap:8px;padding-bottom:10px;display:flex}.icon-btn{border:1px solid var(--line);background:var(--surface);width:44px;height:44px;box-shadow:var(--shadow-card);border-radius:50%;flex:none;place-items:center;display:grid}.icon-btn:hover{background:var(--hover)}.detail-title{min-width:0}.detail-title h2{letter-spacing:-.01em;text-wrap:balance;margin:4px 0 2px;font-size:21px;font-weight:800;line-height:1.2}.detail-sub{color:var(--muted);margin:0;font-size:13.5px}.detail{padding:0 12px 36px}.detail .actions{margin-top:12px}.times-plate{border-radius:var(--r-card);background:var(--grad-soft);border:1px solid #d9e5fb;grid-template-columns:repeat(3,1fr);margin:6px 0 0;display:grid;overflow:hidden}.times-plate.is-two{grid-template-columns:repeat(2,1fr)}.times-plate div{flex-direction:column-reverse;padding:12px 14px 11px;display:flex}.times-plate div+div{border-left:1px solid #d9e5fb}.times-plate dt{color:var(--muted);font-size:12.5px;font-weight:600}.times-plate dd{letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin:0;font-size:26px;font-weight:800;line-height:1.1}.times-plate dd small{font-size:14px;font-weight:600}.stale-note{background:var(--warn-tint);color:#7a3c06;border-radius:16px;margin:12px 0 0;padding:12px 14px}.stale-note b{color:#7a3c06}.private-note{color:var(--ink-2);background:#eef0fb;border-radius:16px;align-items:flex-start;gap:10px;margin:12px 0 0;padding:12px 14px;font-size:14px;line-height:1.45;display:flex}.private-note .ms{color:#3730a3;flex:none;font-size:20px}.private-note b{color:var(--ink)}.detail-meta{color:var(--muted);margin:10px 4px 0;font-size:13.5px}.also{flex-direction:column;gap:8px;margin-top:12px;display:flex}.also-btn{border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--surface);text-align:left;width:100%;min-height:46px;padding:10px 14px;font-size:14px}.also-btn:hover{background:var(--hover)}.also-btn b{font-variant-numeric:tabular-nums;font-size:15px;font-weight:800}.room-block,.valid-block,.facts{border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface);box-shadow:var(--shadow-card);margin-top:12px;padding:16px}.room-top{justify-content:space-between;align-items:center;gap:10px;display:flex}.room-count{color:var(--ink-2);font-variant-numeric:tabular-nums;text-align:right;font-size:14px}.actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.btn{border-radius:var(--r-ctl);text-align:center;border:1.5px solid #0000;justify-content:center;align-items:center;gap:6px;min-height:50px;padding:0 18px;font-size:15.5px;font-weight:700;line-height:1.2;text-decoration:none;transition:background .12s,border-color .12s,box-shadow .12s,filter .12s;display:inline-flex}.btn .ms{font-size:21px}.btn-primary{background:var(--grad-btn);color:#fff;box-shadow:0 8px 18px -10px #2563ebcc}.btn-primary:hover{filter:brightness(1.07)}.btn-quiet{background:var(--surface);border-color:var(--line-strong);color:var(--ink)}.btn-quiet:hover{background:var(--hover)}.btn-on{background:var(--accent-tint);border-color:var(--accent);color:var(--accent-deep)}.btn.is-static{border-style:dashed;border-color:var(--line-strong);color:var(--muted);cursor:default;font-size:14px;font-weight:600}.btn.wide{width:100%}.btn.sm{min-height:42px;padding:0 14px;font-size:14px}.detail h3,.set h3,.preview h3{letter-spacing:-.01em;margin:0 0 10px;font-size:17px;font-weight:800}.school-tabs{background:#eef2fa;border-radius:16px;grid-template-columns:repeat(4,1fr);gap:2px;padding:4px;display:grid}.school-tabs button{min-height:58px;color:var(--muted);background:0 0;border:0;border-radius:12px;flex-direction:column;align-items:center;gap:5px;padding:8px 2px;font-size:13px;font-weight:600;display:flex}.school-tabs button[aria-selected=true]{background:var(--surface);color:var(--ink);font-weight:700;box-shadow:0 1px 3px #0f235029}.conds{margin:6px 0 0;padding:0;list-style:none}.cond{border-bottom:1px solid var(--line);grid-template-columns:16px 18px minmax(0,1fr);align-items:start;gap:10px;padding:12px 0;display:grid}.cond:last-child{border-bottom:0}.cond-n{font-variant-numeric:tabular-nums;color:var(--muted);text-align:right;font-size:13px;font-weight:700;line-height:18px}.cond-label{margin:0;font-size:15px;font-weight:700;line-height:18px}.cond-note{color:var(--ink-2);margin:4px 0 0;font-size:13.5px;line-height:1.45}.cond-na .cond-label{color:var(--muted);font-weight:600}.cond-na .cond-note{color:var(--muted)}.fine{max-width:62ch;color:var(--muted);margin:12px 0 0;font-size:12.5px;line-height:1.5}.facts dl{margin:0 0 18px}.facts dl div{border-bottom:1px solid var(--line);justify-content:space-between;gap:16px;padding:10px 0;font-size:14.5px;display:flex}.facts dl div:last-child{border-bottom:0}.facts dt{color:var(--ink-2)}.facts dd{text-align:right;margin:0;font-weight:700}.valid-sum{align-items:center;gap:8px;margin:0;font-size:15px;font-weight:700;display:flex}details.more>summary{min-height:44px;color:var(--accent-deep);cursor:pointer;justify-content:space-between;align-items:center;gap:12px;margin-top:8px;font-size:15px;font-weight:700;list-style:none;display:flex}details.more>summary::-webkit-details-marker{display:none}details.more>summary:after{content:"";width:9px;height:9px;transition:transform .16s var(--ease);border:2px solid;border-width:0 2px 2px 0;flex:none;margin-right:4px;transform:translateY(-2px)rotate(45deg)}details.more[open]>summary:after{transform:translateY(2px)rotate(-135deg)}details.more[open]>summary{margin-bottom:10px}.facts details.more>summary,.set details.more>summary{color:var(--ink);margin-top:0;font-size:16px;font-weight:800}.facts h3{margin-top:6px}.report-link{margin:14px auto 0;display:block}.filter-list{margin-top:4px}fieldset.plain{box-shadow:none;background:0 0;border:0;margin:0;padding:0}.tabs{z-index:1000;height:var(--tab-h);padding-bottom:env(safe-area-inset-bottom,0px);background:var(--surface);border-top:1px solid var(--line);grid-template-columns:repeat(3,1fr);display:grid;position:absolute;bottom:0;left:0;right:0}.tabs button{color:var(--muted);background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:12px;font-weight:600;display:flex}.tabs .ms{border-radius:999px;place-items:center;width:60px;height:30px;transition:background .16s;display:grid}.tabs button[aria-current=page]{color:var(--accent-deep);font-weight:700}.tabs button[aria-current=page] .ms{background:var(--accent-tint);font-variation-settings:"FILL" 1, "wght" 500, "GRAD" 0, "opsz" 24}.page{z-index:1050;top:0;left:0;right:0;bottom:var(--tab-h);overscroll-behavior:contain;background:var(--bg);position:absolute;overflow-y:auto}.page[hidden]{display:none}.page-inner{max-width:640px;padding:calc(env(safe-area-inset-top,0px) + 22px) 12px 44px;margin:0 auto}.page-head{padding:0 4px}.page-head h2{letter-spacing:-.02em;margin:0 0 6px;font-size:28px;font-weight:800;line-height:1.15}.page-head p{max-width:60ch;color:var(--ink-2);margin:0;font-size:15px}fieldset,.set{border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface);box-shadow:var(--shadow-card);margin:14px 0 0;padding:16px}legend{float:left;letter-spacing:-.01em;width:100%;margin-bottom:12px;padding:0;font-size:18px;font-weight:800}legend+*{clear:both}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.field>span{color:var(--ink-2);font-size:14px;font-weight:700}.field small{color:var(--muted);font-size:13px;line-height:1.45}input,select{border:1.5px solid var(--field);border-radius:var(--r-ctl);background:var(--surface);width:100%;min-height:50px;font:500 16px var(--font);color:var(--ink);padding:0 14px;transition:border-color .12s,box-shadow .12s}input::placeholder{color:var(--muted);font-weight:400}input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--accent);outline:none;box-shadow:0 0 0 4px #2563eb38}input[type=time],input[type=number]{font-variant-numeric:tabular-nums;font-size:18px;font-weight:700}.select,.time{display:block;position:relative}.time .ms{color:var(--ink-2);pointer-events:none;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.time input::-webkit-calendar-picker-indicator{opacity:0;cursor:pointer;width:auto;height:auto;position:absolute;inset:0}.select select{appearance:none;padding-right:44px}.select .ms{pointer-events:none;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.two{grid-template-columns:1fr 1fr;gap:12px;display:grid}.hint{color:var(--ink-2);margin:0;font-size:13.5px;line-height:1.5}.loc-row{border:1.5px dashed var(--field);border-radius:var(--r-ctl);justify-content:space-between;align-items:center;gap:10px;min-height:54px;padding:5px 5px 5px 14px;display:flex}.loc-row p{margin:0;font-size:15px}.access-pick{grid-template-columns:1fr 1fr;gap:10px;display:grid}.access-opt{border:1.5px solid var(--line-strong);cursor:pointer;border-radius:16px;align-items:flex-start;gap:10px;padding:12px;transition:border-color .12s,background .12s;display:flex}.access-opt:has(input:checked){border-color:var(--accent);background:var(--accent-tint)}.access-opt>span{flex-direction:column;gap:2px;display:flex}.access-opt b{align-items:center;gap:3px;font-size:15px;font-weight:700;display:inline-flex}.access-opt b .ms{font-size:17px}.access-opt small{color:var(--muted);font-size:12.5px;line-height:1.4}.switch-row{border-top:1px solid var(--line);cursor:pointer;justify-content:space-between;align-items:center;gap:16px;padding:13px 0;display:flex}.switch-row>span{flex-direction:column;gap:2px;display:flex}.switch-row b{font-size:15px;font-weight:700}.switch-row small{color:var(--muted);font-size:13px;line-height:1.45}.switch{appearance:none;background:var(--field);cursor:pointer;border:0;border-radius:999px;flex:none;width:52px;height:32px;min-height:0;padding:0;transition:background .16s;position:relative}.switch:after{content:"";width:26px;height:26px;transition:transform .18s var(--ease);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0f23504d}.switch:checked{background:var(--accent)}.switch:checked:after{transform:translate(20px)}.switch:focus-visible{box-shadow:0 0 0 4px #2563eb47}.preview{border-radius:var(--r-card);background:var(--grad-soft);border:1px solid #d9e5fb;margin:16px 0;padding:16px 16px 8px}.preview-rows{margin:0;padding:0;list-style:none}.preview-rows li{border-top:1px solid #d9e5fb;grid-template-columns:18px 64px minmax(0,1fr);align-items:start;gap:10px;padding:9px 0;font-size:14px;line-height:1.45;display:grid}.preview-rows b{font-weight:700}.choices{flex-direction:column;gap:4px;display:flex}.choice{cursor:pointer;border-radius:16px;align-items:flex-start;gap:12px;padding:12px;transition:background .12s;display:flex}.choice:hover{background:var(--hover)}.choice:has(input:checked){background:var(--accent-tint)}.choice input{appearance:none;border:2px solid var(--field);width:22px;height:22px;min-height:0;transition:box-shadow .14s var(--ease), border-color .14s;border-radius:50%;flex:none;margin:1px 0 0;padding:0}.choice input:checked{border-color:var(--accent);box-shadow:inset 0 0 0 5px var(--accent)}.choice>span{flex-direction:column;gap:2px;display:flex}.choice b{font-size:15.5px;font-weight:700}.choice small{color:var(--muted);font-size:13px}.table-wrap{margin:0 -16px;padding:0 16px;overflow-x:auto}.cond-table{border-collapse:collapse;width:100%;min-width:580px;font-size:13.5px}.cond-table th,.cond-table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:10px 12px 10px 0}.cond-table thead th{border-bottom-color:var(--line-strong);font-size:14px;font-weight:800}.cond-table tbody th{color:var(--ink-2);font-weight:700}.set .btn{margin-top:10px}.search{margin-top:12px;position:relative}.search .ms{color:var(--muted);pointer-events:none;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.search input{border-radius:999px;padding-left:46px}.results{margin:6px 0 0;padding:0;list-style:none}.results li.muted{padding:10px 6px;font-size:14px}.result{text-align:left;background:0 0;border:0;border-radius:12px;flex-direction:column;gap:1px;width:100%;padding:11px 10px;display:flex}.result:hover{background:var(--hover)}.result small{color:var(--muted);font-size:13px}.pick{z-index:1100;pointer-events:none;position:absolute;inset:0}.pick[hidden]{display:none}.pick-cross{width:48px;height:48px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pick-cross:before,.pick-cross:after{content:"";background:var(--ink);border-radius:1px;position:absolute;box-shadow:0 0 0 2px #fff}.pick-cross:before{height:2px;top:23px;left:0;right:0}.pick-cross:after{width:2px;top:0;bottom:0;left:23px}.pick-cross span{z-index:1;border:4px solid var(--accent);background:#fff;border-radius:50%;position:absolute;inset:14px}.pick-bar{left:8px;right:8px;bottom:calc(env(safe-area-inset-bottom,0px) + 8px);background:var(--surface);box-shadow:var(--shadow-float);pointer-events:auto;border-radius:24px;padding:16px;position:absolute}.pick-bar p{margin:0;font-size:15px;font-weight:600}.pick-actions{grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;display:grid}body.is-picking .sheet,body.is-picking .tabs,body.is-picking .locate{display:none}.dialog{border-radius:var(--r-sheet) var(--r-sheet) 0 0;background:var(--surface);width:100%;max-width:100%;max-height:92dvh;color:var(--ink);border:0;margin:auto 0 0;padding:0;overflow-y:auto;box-shadow:0 -14px 40px -12px #0f235073}.dialog[open]{animation:sheet-in .32s var(--ease)}.dialog::backdrop{background:#0b1b3a66}@keyframes sheet-in{0%{opacity:0;transform:translateY(40px)}}.dialog-body{padding:26px 18px calc(env(safe-area-inset-bottom,0px) + 20px);flex-direction:column;gap:12px;display:flex}.dialog h2{letter-spacing:-.01em;margin:0;font-size:22px;font-weight:800;line-height:1.2}.dialog-lede{max-width:52ch;color:var(--ink-2);margin:0;font-size:15px}.onboard{background:linear-gradient(#e6efff 0%,#fff 240px)}.ob-title{letter-spacing:-.025em;text-wrap:balance;margin:0;font-size:27px;font-weight:800;line-height:1.15}.onboard .choices{margin-top:4px}.host-note{background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2);border-radius:14px;margin:12px 0 0;padding:12px 14px;font-size:14px;line-height:1.45}.form-error{color:var(--bad);margin:0;font-size:14px;font-weight:700}.form-error:before{content:"";background:var(--bad);border-radius:3px;width:10px;height:10px;margin-right:8px;display:inline-block}.code-input{letter-spacing:.3em;font-variant-numeric:tabular-nums;text-align:center;font-size:26px;font-weight:800}.consent-list{background:var(--surface-2);border-radius:16px;margin:0;padding:0 14px;list-style:none}.consent-list li{border-bottom:1px solid var(--line);color:var(--ink-2);padding:10px 0;font-size:14px;line-height:1.45}.consent-list li:last-child{border-bottom:0}.consent-list b{color:var(--ink);font-weight:700}.check-row{cursor:pointer;align-items:flex-start;gap:12px;padding:4px 0;font-size:15px;line-height:1.45;display:flex}.check-row input{appearance:none;border:2px solid var(--field);cursor:pointer;border-radius:7px;flex:none;width:24px;height:24px;min-height:0;margin:0;padding:0;position:relative}.check-row input:checked{border-color:var(--accent);background:var(--accent)}.check-row input:checked:after{content:"";border:2.5px solid #fff;border-width:0 2.5px 2.5px 0;width:6px;height:11px;position:absolute;top:2.5px;left:6.5px;transform:rotate(45deg)}.women-btn,.follow-btn{margin-top:10px}.follow-btn[aria-pressed=true]{border-color:var(--accent);background:var(--accent-tint);color:var(--accent-deep)}.btn:disabled{opacity:.55;cursor:progress}.confirm-block{background:#fff8f8;border:1.5px solid #f3c9c9;border-radius:16px;margin-top:12px;padding:14px}.confirm-block p{margin:0;font-size:15px;line-height:1.45}.btn-danger{background:var(--bad);color:#fff}.btn-danger:hover{filter:brightness(1.08)}.danger-text{color:var(--bad);border-color:var(--line-strong)}.host-top{margin-top:16px}.host-back{margin:-6px 0 8px}.host-h3{margin:26px 4px 10px;font-size:17px;font-weight:800}.host-list,.fri-list,.warn-list{margin:0;padding:0;list-style:none}.host-list li+li{margin-top:10px}.host-row{border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface);width:100%;box-shadow:var(--shadow-card);text-align:left;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.host-row:hover{background:#fbfcff}.host-row-main{flex-direction:column;gap:3px;min-width:0;display:flex}.host-row-main b{font-size:16px;font-weight:700}.host-row-main small{color:var(--muted);font-size:13.5px}.status-tag{background:var(--press);color:var(--ink-2);white-space:nowrap;border-radius:999px;flex:none;padding:2px 10px;font-size:12px;font-weight:700;line-height:1.6;display:inline-block}.status-verified{background:var(--ok-tint);color:var(--ok)}.status-pending{background:var(--warn-tint);color:var(--warn)}.status-rejected,.status-suspended{background:var(--bad-tint);color:var(--bad)}.host-warn-line{align-items:flex-start;gap:8px;margin:8px 0 0;font-size:13.5px;font-weight:700;display:flex;color:var(--ink)!important}.warn-list li{border-top:1px solid var(--line);grid-template-columns:18px 1fr;gap:10px;padding:10px 0;font-size:14px;line-height:1.45;display:grid}.fri-row{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:6px 12px;padding:12px 0;display:grid}.fri-main{flex-direction:column;gap:2px;min-width:0;display:flex}.fri-main b{font-size:16px;font-weight:800}.fri-main small{color:var(--ink-2);font-size:13.5px}.fri-count{color:var(--ink-2);text-align:right;font-variant-numeric:tabular-nums;font-size:13.5px}.fri-actions{grid-column:1/-1;gap:8px;display:flex}.fri-row.is-skipped .fri-main b{color:var(--muted);text-decoration:line-through;text-decoration-thickness:1.5px}.fri-editor{background:var(--surface-2);border:1px solid #d9e5fb;border-radius:16px;margin-bottom:8px;padding:14px}.fact-list{margin:0 0 12px}.fact-list div{border-bottom:1px solid var(--line);justify-content:space-between;gap:16px;padding:10px 0;font-size:14.5px;display:flex}.fact-list dt{color:var(--ink-2)}.fact-list dd{text-align:right;margin:0;font-weight:700}.slot{border:1px solid var(--line);background:var(--surface-2);border-radius:16px;margin-bottom:12px;padding:14px}.slot-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.slot-head b{font-size:16px;font-weight:800}.daily-row{border-top:1px solid var(--line);grid-template-columns:72px minmax(0,1fr) 110px;align-items:center;gap:10px;padding:8px 0;display:grid}.daily-row>b{font-weight:700}.daily-row .select{grid-column:2}.daily-value{grid-column:3}.check-title{margin:14px 0 6px;font-size:15px;font-weight:700}textarea{border:1.5px solid var(--field);border-radius:var(--r-ctl);background:var(--surface);width:100%;font:400 16px/1.5 var(--font);color:var(--ink);resize:vertical;padding:12px 14px}.link-btn{min-height:32px;color:var(--accent-deep);text-underline-offset:3px;background:0 0;border:0;margin-top:6px;padding:4px 0;font-size:13px;font-weight:700;text-decoration:underline}.link-btn:hover{color:var(--ink)}.review-list{margin:0;padding:0;list-style:none}.review-item{border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface);box-shadow:var(--shadow-card);margin-top:12px;padding:16px}.review-title{justify-content:space-between;align-items:center;gap:10px;margin:0 0 8px;display:flex}.review-title b{font-size:17px;font-weight:800}.review-line{flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0 0;font-size:14px;line-height:1.45;display:flex}.mini-name{margin-right:6px;font-size:13px;font-weight:700}.review-form{margin-top:12px}.appoint-form{border-top:1px solid var(--line);margin-top:18px;padding-top:4px}.toast{z-index:1200;left:50%;bottom:calc(var(--tab-h) + 16px);background:var(--ink);color:#fff;max-width:calc(100% - 32px);box-shadow:var(--shadow-float);opacity:0;transition:opacity .18s, transform .24s var(--ease);pointer-events:none;border-radius:16px;padding:12px 16px;font-size:14px;font-weight:600;position:absolute;transform:translate(-50%,12px)}.toast.is-on{opacity:1;transform:translate(-50%)}@media (width>=900px){#app:before{content:"";z-index:850;width:var(--panel-w);background:var(--surface-2);border-right:1px solid var(--line);position:absolute;top:0;bottom:0;left:0}#map,.pick{left:var(--panel-w)}.board{width:calc(var(--panel-w) - 24px);box-shadow:none;top:12px;left:12px;right:auto}.sheet{top:calc(var(--board-bottom,150px) + 6px);bottom:var(--tab-h);width:var(--panel-w);height:auto;box-shadow:none;border-radius:0;left:0;transform:none}.grip{display:none}.sheet-head{padding-top:6px}.tabs,.page{width:var(--panel-w);border-right:1px solid var(--line);right:auto}.locate{top:12px}.credit-btn,.credit{top:70px}.leaflet-top.leaflet-left{top:0}.toast{left:calc(var(--panel-w) / 2)}.dialog{border-radius:24px;max-width:480px;margin:auto}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:0s!important;animation-duration:0s!important}}.no-time{border-radius:var(--r-card);border:1px solid var(--line);background:#fff;margin:12px;padding:16px}.no-time h3{letter-spacing:.02em;text-transform:uppercase;color:var(--ink-2);margin:0 0 10px;font-size:13px;font-weight:700}.no-time ul{margin:0;padding:0;list-style:none}.no-time li+li{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.no-time-head{justify-content:space-between;align-items:baseline;gap:12px;font-size:15px;display:flex}.no-time-head .muted{white-space:nowrap}.no-time p{margin:4px 0 0;font-size:13.5px;line-height:1.5}.no-time-link{margin:6px 0 0;font-size:13.5px}.room-word.room-unknown{background:var(--press);color:var(--ink-2)}.room-note{color:var(--ink-2);margin:8px 0 0;font-size:13.5px;line-height:1.5}.quiet-pin svg{filter:drop-shadow(0 1px 2px #0f235066);width:22px;height:29px;display:block}.quiet-pin path{fill:#8b98af}.quiet-pin circle{fill:#fff}.quiet-pin:hover path,.quiet-pin:focus path{fill:var(--accent)}.no-time-more{border-top:1px solid var(--line);color:var(--ink-2);margin:14px 0 0;padding-top:14px;font-size:13.5px}.quiet-popup .leaflet-popup-content-wrapper{border-radius:var(--r-card);box-shadow:0 10px 30px #0f23502e}.quiet-popup .leaflet-popup-content{margin:14px 16px;font-family:inherit}.quiet-popup h3{margin:0;font-size:15.5px;line-height:1.3}.quiet-address,.quiet-km{color:var(--ink-2);margin:4px 0 0;font-size:13px}.quiet-none{color:var(--ink-2);margin:8px 0 0;font-size:13px;line-height:1.5}.quiet-links{flex-wrap:wrap;gap:6px 14px;margin:10px 0 0;font-size:13.5px;font-weight:600;display:flex}canvas.leaflet-heatmap-layer{opacity:1;transition:opacity .22s}canvas.leaflet-heatmap-layer.is-stale{opacity:0;transition:opacity 90ms}@media (prefers-reduced-motion:reduce){canvas.leaflet-heatmap-layer,canvas.leaflet-heatmap-layer.is-stale{transition:none}}.gsearch{border-radius:var(--r-card);border:1px dashed var(--line);background:#fff;margin:12px;padding:16px}.gsearch h3{letter-spacing:.02em;text-transform:uppercase;color:var(--ink-2);margin:0 0 6px;font-size:13px;font-weight:700}.gsearch p{margin:0 0 10px;font-size:13px;line-height:1.5}.gsearch ul{margin:12px 0;padding:0;list-style:none}.gsearch li+li{border-top:1px solid var(--line);margin-top:10px;padding-top:10px}.gsearch-links{flex-wrap:wrap;gap:4px 14px;display:flex;margin:4px 0 0!important}.gsearch-by{color:var(--ink-3,var(--ink-2));font-size:11px;margin:10px 0 0!important}.btn-link{font:inherit;color:var(--brand,#2f6df6);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.panel-toggle{z-index:700;right:14px;top:calc(var(--board-bottom,140px) + 126px);background:var(--surface);width:40px;height:40px;color:var(--ink-2);cursor:pointer;border:0;border-radius:50%;place-items:center;display:grid;position:absolute;box-shadow:0 2px 10px #0f235029}.panel-toggle .ms{font-size:22px}@media (width>=900px){#app:before,.board,.sheet,.tabs,.page{transition:transform .32s var(--ease)}#app.panel-away:before,#app.panel-away .board,#app.panel-away .sheet,#app.panel-away .tabs,#app.panel-away .page{transform:translateX(calc(-1 * var(--panel-w) - 4px))}#app.panel-away #map,#app.panel-away .pick{left:0}#map,.pick{transition:left .32s var(--ease)}.panel-toggle{top:12px;right:auto;left:calc(var(--panel-w) + 12px);transition:left .32s var(--ease)}#app.panel-away .panel-toggle{left:12px}#app.panel-away .locate{top:64px}}.map-search{z-index:700;left:50%;top:calc(var(--board-bottom,140px) + 12px);border:1px solid var(--line);background:var(--surface);max-width:calc(100% - 120px);color:var(--ink);font:inherit;white-space:nowrap;cursor:pointer;border-radius:999px;align-items:center;gap:7px;padding:9px 16px 9px 12px;font-size:13.5px;font-weight:600;display:inline-flex;position:absolute;transform:translate(-50%);box-shadow:0 3px 14px #0f23502e}.map-search[hidden]{display:none}.map-search .ms{color:var(--accent-deep);font-size:19px}.map-search[disabled]{opacity:.7;cursor:default}.board-fold{width:30px;height:24px;color:inherit;opacity:.75;cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;display:grid;position:absolute;bottom:4px;right:8px}.board-fold .ms{font-size:20px}.board.is-folded{background:var(--surface);color:var(--ink);padding:0;box-shadow:0 2px 10px #0f235024}.board-fold-line{border-radius:inherit;width:100%;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:8px 10px 8px 14px;font-size:13.5px;display:flex}.board-fold-day{font-weight:700}.board-fold-time{color:var(--ink-2)}.board-fold-line .ms{opacity:.7;margin-left:auto;font-size:20px}.stop-far .stop-dot{border-color:var(--ink-3,#7d8db0)}.stop-far .stop-flag{color:var(--ink-2)}.quiet-time{margin:6px 0 0;font-size:13px}.gmap{border:1px solid var(--line);background:var(--surface-2);border-radius:12px;margin:10px 0 12px;overflow:hidden}.gmap iframe{border:0;width:100%;height:280px;display:block}.gsearch li.is-pinned{background:var(--surface-2);border-radius:8px;margin:0 -8px;padding:8px}#map{font-family:var(--font);background:var(--bg)}.gpopup{font-family:var(--font);padding:4px 4px 2px}.gpopup h3{padding-right:22px}.gm-style .gm-style-iw-c{border-radius:var(--r-card);padding:10px 12px;box-shadow:0 10px 30px #0f23502e}.gm-style .gm-style-iw-d{overflow:auto!important}.gm-style .stop,.gm-style .quiet-pin{cursor:pointer}.tag-shut{color:#a6301f;background:#fdebe7}.tag-reported{color:#4a5568;background:#eef1f5}.shut-note{color:#8f2a1b;background:#fdebe7;border-radius:10px;align-items:flex-start;gap:6px;margin:0 0 8px;padding:8px 10px;font-size:13px;line-height:1.45;display:flex}.shut-note .ms{flex:none;font-size:17px}
