.bb{--bb-bg: #0B0E12;--bb-card: #12171D;--bb-card-2: #1A2028;--bb-border: #232932;--bb-border-strong: #2A313B;--bb-text: #F1F3F5;--bb-text-2: #C9CFD8;--bb-text-3: #A3ACB9;--bb-text-4: #8B95A3;--bb-ok: #4CC38A;--bb-ok-soft: rgba(76, 195, 138, .14);--bb-warn: #F5B13D;--bb-warn-soft: rgba(245, 177, 61, .14);--bb-warn-text: #F8D394;--bb-bad: #FF8A8F;--bb-bad-soft: rgba(255, 99, 105, .16);--bb-open-bg: rgba(255, 99, 105, .08);--bb-accent: #D93036;--bb-accent-line: #E5484D;--bb-blue: #7CB4FF;--bb-tile-filter: invert(1) hue-rotate(180deg) brightness(.85) contrast(.9) saturate(.6);--bb-map-bg: #111}.bb.bb-day{--bb-bg: #F3F4F6;--bb-card: #FFFFFF;--bb-card-2: #EEF0F3;--bb-border: #DDE1E6;--bb-border-strong: #C5CBD3;--bb-text: #111827;--bb-text-2: #374151;--bb-text-3: #4B5563;--bb-text-4: #5B6472;--bb-ok: #15803D;--bb-ok-soft: rgba(21, 128, 61, .12);--bb-warn: #B45309;--bb-warn-soft: rgba(180, 83, 9, .12);--bb-warn-text: #92400E;--bb-bad: #B91C1C;--bb-bad-soft: rgba(185, 28, 28, .12);--bb-open-bg: rgba(185, 28, 28, .06);--bb-accent: #D12A30;--bb-accent-line: #D12A30;--bb-blue: #1D4ED8;--bb-tile-filter: none;--bb-map-bg: #E5E7EB}.bb{--u: min(1vw, 1.78vh);position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bb-bg);color:var(--bb-text);font-family:var(--font-body);padding:calc(var(--u) * 1.4) calc(var(--u) * 1.8);display:flex;flex-direction:column;gap:calc(var(--u) * 1);overflow:hidden}.bb-mono{font-family:var(--font-mono)}.bb-loading{margin:auto;font-size:calc(var(--u) * 2);color:var(--bb-text-3)}.bb-label{font-size:calc(var(--u) * 1.05);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--bb-text-4);margin:calc(var(--u) * .3) 0 calc(var(--u) * -.2)}.bb-muted{color:var(--bb-text-4);font-size:calc(var(--u) * 1.15);margin-top:calc(var(--u) * .4)}.bb-empty{color:var(--bb-text-4);font-size:calc(var(--u) * 1.6);padding:calc(var(--u) * 2)}.bb-head{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--u) * 2)}.bb-brand{display:flex;align-items:center;gap:calc(var(--u) * 1.1);min-width:0}.bb-logo{height:calc(var(--u) * 5.2);width:auto}.bb-brand-text{display:flex;flex-direction:column;gap:calc(var(--u) * .2);min-width:0}.bb-station{font-family:var(--font-display);font-weight:700;font-size:calc(var(--u) * 2.5);letter-spacing:.05em;line-height:1}.bb-date{font-size:calc(var(--u) * 1.25);color:var(--bb-text-3)}.bb-head-right{display:flex;align-items:center;gap:calc(var(--u) * 2.4)}.bb-weather{display:flex;align-items:baseline;gap:calc(var(--u) * 1.1);font-size:calc(var(--u) * 1.3);color:var(--bb-text-2)}.bb-temp{font-family:var(--font-display);font-weight:700;font-size:calc(var(--u) * 2.4);color:var(--bb-text)}.bb-clock-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:calc(var(--u) * .2)}.bb-time{font-size:calc(var(--u) * 3.4);line-height:1;font-weight:600}.bb-conn{font-size:calc(var(--u) * .95);font-weight:700;letter-spacing:.14em;display:flex;align-items:center}.bb-conn.ok{color:var(--bb-ok)}.bb-conn.bad{color:var(--bb-bad)}.bb-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:calc(var(--u) * 1)}.bb-stat{min-width:0;white-space:nowrap;display:flex;align-items:center;justify-content:center;gap:calc(var(--u) * .9);background:var(--bb-card);border:1px solid var(--bb-border);border-radius:calc(var(--u) * .8);padding:calc(var(--u) * .7) calc(var(--u) * 1);color:var(--bb-text-3)}.bb-stat svg{width:calc(var(--u) * 1.6);height:calc(var(--u) * 1.6)}.bb-stat-label{font-size:calc(var(--u) * 1.15);font-weight:700;letter-spacing:.14em;text-transform:uppercase}.bb-stat-label small{font-weight:500;letter-spacing:.04em;text-transform:none}.bb-stat-value{font-family:var(--font-display);font-weight:700;font-size:calc(var(--u) * 2);line-height:1}.bb-t-ok{color:var(--bb-ok)}.bb-t-warn{color:var(--bb-warn)}.bb-t-bad{color:var(--bb-bad)}.bb-t-neutral{color:var(--bb-text-3)}.bb-main{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) calc(var(--u) * 30);gap:calc(var(--u) * 1.3)}.bb-left{min-height:0;display:flex;flex-direction:column;gap:calc(var(--u) * 1)}.bb-fit{flex:1;min-height:0;overflow:hidden}.bb-units{display:flex;flex-direction:column;gap:calc(var(--u) * .8)}.bb-unit{background:var(--bb-card);border:1px solid var(--bb-border);border-radius:calc(var(--u) * 1);padding:calc(var(--u) * .9) calc(var(--u) * 1.2);display:flex;flex-direction:column;gap:calc(var(--u) * .7)}.bb-unit-head{display:flex;align-items:center;gap:calc(var(--u) * .9)}.bb-unit-head svg{width:calc(var(--u) * 2.2);height:calc(var(--u) * 2.2)}.bb-unit-id{font-family:var(--font-display);font-weight:700;font-size:calc(var(--u) * 3.1);line-height:1}.bb-unit.compact .bb-unit-id{font-size:calc(var(--u) * 2.4)}.bb-count{margin-left:auto;font-size:calc(var(--u) * 1.1);font-weight:700;letter-spacing:.1em}.bb-pill{font-size:calc(var(--u) * 1.05);font-weight:700;letter-spacing:.08em;border-radius:999px;padding:calc(var(--u) * .3) calc(var(--u) * .9)}.bb-pill.sm{font-size:calc(var(--u) * .75);padding:calc(var(--u) * .15) calc(var(--u) * .55)}.bb-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(calc(var(--u) * 14.5),1fr));gap:calc(var(--u) * .8)}.bb-card{background:var(--bb-card-2);border:1px solid var(--bb-border-strong);border-radius:calc(var(--u) * .7);padding:calc(var(--u) * .7) calc(var(--u) * .9);display:flex;flex-direction:column;align-items:center;text-align:center;gap:calc(var(--u) * .25)}.bb-card.later{opacity:.6}.bb-card.open{background:var(--bb-open-bg);border:2px dashed var(--bb-accent-line);justify-content:center}.bb-name{font-family:var(--font-display);font-weight:700;font-size:calc(var(--u) * 1.75);letter-spacing:.04em;text-transform:uppercase;line-height:1.05}.bb-card.open .bb-name{color:var(--bb-bad)}.bb-unit.compact .bb-name{font-size:calc(var(--u) * 1.55)}.bb-seat{font-size:calc(var(--u) * 1);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--bb-text-3);display:inline-flex;align-items:center;gap:calc(var(--u) * .4)}.bb-extra{font-style:normal;font-size:calc(var(--u) * .75);background:var(--bb-accent-line);color:#fff;border-radius:4px;padding:0 calc(var(--u) * .35)}.bb-hours{font-size:calc(var(--u) * 1.6);color:var(--bb-text-2);line-height:1.1}.bb-hours.partial{color:var(--bb-warn)}.bb-unit.compact .bb-hours{font-size:calc(var(--u) * 1.3)}.bb-certs{display:flex;flex-wrap:wrap;justify-content:center;gap:calc(var(--u) * .3);margin-top:calc(var(--u) * .15)}.bb-cert{font-style:normal;font-size:calc(var(--u) * .78);font-weight:700;letter-spacing:.04em;border-radius:4px;padding:calc(var(--u) * .1) calc(var(--u) * .4);border:1px solid currentColor;color:var(--bb-text-2)}.bb-cert.c-red{color:var(--bb-bad)}.bb-cert.c-blue{color:var(--bb-blue)}.bb-cert.c-green{color:var(--bb-ok)}.bb-cert.c-orange{color:var(--bb-warn)}.bb-fleet{display:flex;flex-direction:column;gap:calc(var(--u) * .5)}.bb-fleet-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(calc(var(--u) * 15),1fr));gap:calc(var(--u) * .5)}.bb-fleet-item{background:var(--bb-card);border:1px solid var(--bb-border);border-radius:calc(var(--u) * .6);padding:calc(var(--u) * .45) calc(var(--u) * .7);display:flex;flex-direction:column;gap:calc(var(--u) * .15)}.bb-fleet-top{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--u) * .4);font-size:calc(var(--u) * .8);font-weight:700;letter-spacing:.08em}.bb-fleet-top b{font-family:var(--font-display);font-size:calc(var(--u) * 1.4);letter-spacing:.02em;color:var(--bb-text)}.bb-fleet-row{display:flex;justify-content:space-between;gap:calc(var(--u) * .5);font-size:calc(var(--u) * .85);color:var(--bb-text-2);font-weight:600;white-space:nowrap}.bb-dot-warn{background:var(--bb-warn)}.bb-rail{min-height:0;display:flex;flex-direction:column;gap:calc(var(--u) * 1);overflow:hidden}.bb-panel{background:var(--bb-card);border:1px solid var(--bb-border);border-radius:calc(var(--u) * 1);padding:calc(var(--u) * 1) calc(var(--u) * 1.2);display:flex;flex-direction:column;gap:calc(var(--u) * .6);min-height:0}.bb-panel-title{display:flex;align-items:center;gap:calc(var(--u) * .6);font-size:calc(var(--u) * 1.15);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--bb-text-2)}.bb-panel-title svg{width:calc(var(--u) * 1.4);height:calc(var(--u) * 1.4);color:var(--bb-bad)}.bb-notes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:calc(var(--u) * .6)}.bb-note{border-left:calc(var(--u) * .3) solid var(--bb-border-strong);background:var(--bb-card-2);border-radius:calc(var(--u) * .4);padding:calc(var(--u) * .6) calc(var(--u) * .8);display:flex;flex-direction:column;gap:calc(var(--u) * .2)}.bb-note.p-action-required,.bb-note.p-operational-risk{border-left-color:var(--bb-accent-line)}.bb-note.p-needs-attention{border-left-color:var(--bb-warn)}.bb-note.p-shift-win{border-left-color:var(--bb-ok)}.bb-note-title{font-size:calc(var(--u) * 1.35);font-weight:600;line-height:1.25}.bb-note-desc{font-size:calc(var(--u) * 1.05);color:var(--bb-text-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.bb-note-meta{font-size:calc(var(--u) * .9);color:var(--bb-text-4);letter-spacing:.04em}.bb-group{display:flex;flex-direction:column;gap:calc(var(--u) * .35);border-top:1px solid var(--bb-border);padding-top:calc(var(--u) * .6)}.bb-group-label{font-size:calc(var(--u) * .9);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--bb-text-4)}.bb-people{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:calc(var(--u) * .35) calc(var(--u) * 1.1);font-size:calc(var(--u) * 1.15)}.bb-people b{font-weight:600}.bb-people span{color:var(--bb-text-4);font-size:calc(var(--u) * .95)}.bb-call,.bb-takeover{--bb-bg: #0B0E12;--bb-text: #F1F3F5;--bb-text-2: #C9CFD8;--bb-ok: #4CC38A;--bb-warn: #F5B13D;--bb-bad: #FF8A8F;--bb-blue: #7CB4FF;--bb-accent-line: #E5484D}.bb-call{color:#f1f3f5;background:#3a0f13;border:2px solid var(--bb-accent-line);border-radius:calc(var(--u) * 1);padding:calc(var(--u) * 1) calc(var(--u) * 1.6);display:grid;grid-template-columns:minmax(calc(var(--u) * 30),2fr) minmax(0,3fr) auto;align-items:center;column-gap:calc(var(--u) * 2)}.bb-call-main{min-width:0;display:flex;flex-direction:column;gap:calc(var(--u) * .3)}.bb-call-tag{font-size:calc(var(--u) * 1.1);font-weight:600;letter-spacing:.14em;color:var(--bb-bad);white-space:nowrap}.bb-call-nature{font-family:var(--font-display);font-weight:700;font-size:calc(var(--u) * 3.2);line-height:.95;overflow-wrap:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.bb-call-addr{font-size:calc(var(--u) * 1.7);color:#f4d6d8;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.bb-call-units{min-width:0;display:flex;flex-wrap:wrap;align-content:center;gap:calc(var(--u) * .9)}.bb-take-units{display:flex;flex-wrap:wrap;gap:calc(var(--u) * .9)}.bb-chip{background:var(--bb-bg);border:2px solid currentColor;border-radius:calc(var(--u) * .9);padding:calc(var(--u) * .7) calc(var(--u) * 1.2);display:flex;flex-direction:column;align-items:center;gap:calc(var(--u) * .2);min-width:calc(var(--u) * 9)}.bb-chip b{font-family:var(--font-display);font-size:calc(var(--u) * 2.4);line-height:1;color:var(--bb-text)}.bb-chip span{font-size:calc(var(--u) * 1.1);font-weight:600}.bb-ok{color:var(--bb-ok);background:var(--bb-ok-soft)}.bb-warn{color:var(--bb-warn);background:var(--bb-warn-soft)}.bb-bad{color:var(--bb-bad);background:var(--bb-bad-soft)}.bb-neutral{color:var(--bb-text-3);background:var(--bb-card-2)}.bb-chip.bb-ok,.bb-chip.bb-warn,.bb-chip.bb-bad,.bb-chip.bb-neutral{background:var(--bb-bg)}.bb-foot{display:flex;align-items:center;gap:calc(var(--u) * 1.6);font-size:calc(var(--u) * 1);color:var(--bb-text-2)}.bb-dot{display:inline-block;width:calc(var(--u) * .6);height:calc(var(--u) * .6);border-radius:999px;background:var(--bb-text-3);margin-right:calc(var(--u) * .5)}.bb-dot-ok{background:var(--bb-ok)}.bb-dot-bad{background:var(--bb-bad)}.bb-brandmark{margin-left:auto;color:var(--bb-text-4)}.bb-sound{background:var(--bb-accent);color:#fff;border:0;border-radius:10px;padding:calc(var(--u) * .5) calc(var(--u) * 1.1);font:inherit;font-weight:600;cursor:pointer}.bb-takeover{color:#f1f3f5;background:#2a0b0e;justify-content:center;gap:calc(var(--u) * 2);padding:calc(var(--u) * 4);position:relative}.bb-take-close{position:absolute;top:calc(var(--u) * 1.5);right:calc(var(--u) * 1.5);z-index:2;background:#00000073;color:#f4d6d8;border:1px solid rgba(255,138,143,.5);border-radius:10px;padding:calc(var(--u) * .6) calc(var(--u) * 1.2);font:inherit;font-size:calc(var(--u) * 1.6);font-weight:600;cursor:pointer}.bb-take-close:hover,.bb-take-close:focus-visible{background:#000000b3;outline:2px solid var(--bb-bad)}.bb-take-top{display:flex;justify-content:space-between;font-size:calc(var(--u) * 1.8);font-weight:600;letter-spacing:.14em;color:var(--bb-bad)}.bb-take-nature{font-family:var(--font-display);font-weight:700;font-size:calc(var(--u) * 10);line-height:.92}.bb-take-addr{font-size:calc(var(--u) * 4);color:#f4d6d8}.bb-take-notes{font-size:calc(var(--u) * 1.8);color:#e8c4c6}.bb-take-copy{display:flex;flex-direction:column;gap:calc(var(--u) * 2);justify-content:center;min-width:0}.bb-takeover.has-map{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:calc(var(--u) * 3);align-items:stretch}.bb-take-map{min-height:60vh;height:100%;border-radius:calc(var(--u) * 1.2);border:2px solid var(--bb-accent-line);overflow:hidden;background:#1a0608}.bb-call-map{width:calc(var(--u) * 22);height:calc(var(--u) * 11);border-radius:calc(var(--u) * .7);border:1px solid var(--bb-accent-line);overflow:hidden;justify-self:end}.leaflet-container{background:var(--bb-map-bg);font:inherit}.leaflet-tile-pane{filter:var(--bb-tile-filter)}.leaflet-control-attribution{font-size:10px;background:#0000008c!important;color:#999!important}.leaflet-control-attribution a{color:#bbb!important}.call-map-label{background:var(--bb-accent);color:#fff;border:0;border-radius:6px;font-weight:700;font-size:calc(var(--u) * 1.4);padding:4px 10px;box-shadow:0 4px 16px #00000080}.call-map-label:before{border-top-color:var(--bb-accent)}.call-map-ring{animation:call-ring 1.6s ease-out infinite;transform-origin:center}@keyframes call-ring{0%{opacity:.9}to{opacity:0}}@media (prefers-reduced-motion: no-preference){.bb-takeover{animation:bb-pulse 1.6s ease-in-out 3}@keyframes bb-pulse{50%{background:#4a1015}}}.bb-feedwarn{display:flex;align-items:center;gap:calc(var(--u) * .8);background:var(--bb-warn-soft);border:1px solid var(--bb-warn);color:var(--bb-warn-text);border-radius:calc(var(--u) * .7);padding:calc(var(--u) * .55) calc(var(--u) * 1);font-size:calc(var(--u) * 1.15)}.bb-feedwarn svg{width:calc(var(--u) * 1.5);height:calc(var(--u) * 1.5);color:var(--bb-warn);flex:0 0 auto}.bb-feedwarn b{color:var(--bb-warn)}.bb-unit.is-command .bb-unit-id{font-size:calc(var(--u) * 1.9);letter-spacing:.08em}.bb-command{display:flex;align-items:center;flex-wrap:wrap;gap:calc(var(--u) * .6) calc(var(--u) * 1.6);background:var(--bb-card);border:1px solid var(--bb-border);border-radius:calc(var(--u) * .7);padding:calc(var(--u) * .55) calc(var(--u) * 1.1);font-size:calc(var(--u) * 1.3)}.bb-command-label{font-size:calc(var(--u) * 1);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--bb-bad)}.bb-command b{font-weight:700}.bb-muted-inline{color:var(--bb-text-4);font-size:calc(var(--u) * 1.05)}.bb-btn{display:inline-flex;align-items:center;gap:calc(var(--u) * .4);background:var(--bb-card-2);color:var(--bb-text-2);border:1px solid var(--bb-border-strong);border-radius:10px;padding:calc(var(--u) * .45) calc(var(--u) * 1);font:inherit;font-weight:600;cursor:pointer}.bb-btn:hover{color:var(--bb-text);border-color:var(--bb-text-3)}.bb-cast-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:20;padding:16px}.bb-cast{background:var(--bb-card);border:1px solid var(--bb-border-strong);border-radius:16px;width:min(560px,100%);max-height:90vh;overflow:auto;padding:20px;display:flex;flex-direction:column;gap:14px;font-size:15px;color:var(--bb-text)}.bb-cast-head{display:flex;align-items:center;justify-content:space-between;font-size:18px}.bb-cast-opt{display:flex;flex-direction:column;gap:6px;background:var(--bb-card-2);border:1px solid var(--bb-border-strong);border-radius:12px;padding:14px}.bb-cast-opt>b{font-size:16px;color:var(--bb-text)}.bb-cast-opt span{color:var(--bb-text-2);line-height:1.45}.bb-cast-opt .bb-sound{align-self:flex-start;margin-top:4px;padding:8px 14px}.bb-cast-url{font-family:var(--font-mono);font-size:15px;background:var(--bb-bg);border:1px solid var(--bb-border-strong);border-radius:8px;padding:8px 10px;color:var(--bb-text);word-break:break-all}.bb-cast-msg{color:var(--bb-warn-text);font-size:14px}.bb-fleet-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.bb-fleet-list li{display:grid;grid-template-columns:calc(var(--u) * 6.5) 1fr auto calc(var(--u) * 3.6) calc(var(--u) * 3.6);align-items:center;gap:calc(var(--u) * .6);padding:calc(var(--u) * .32) 0;border-top:1px solid var(--bb-card-2);font-size:calc(var(--u) * 1);font-weight:600}.bb-fleet-list li:first-child{border-top:0}.bb-fleet-list b{font-family:var(--font-display);font-size:calc(var(--u) * 1.35)}.bb-fleet-list li>span:last-child{text-align:right;display:inline-flex;justify-content:flex-end;align-items:center;gap:calc(var(--u) * .25)}.bb-fleet-rig{font-family:var(--font-body, inherit);font-size:calc(var(--u) * .7);font-weight:600;color:var(--bb-text-2);margin-left:calc(var(--u) * .35);letter-spacing:.04em}.bb-fleet-sub{font-size:calc(var(--u) * .7);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--bb-text-2);margin-top:calc(var(--u) * .5);padding-bottom:calc(var(--u) * .15);border-bottom:1px solid var(--bb-border)}.bb-cards{grid-template-columns:repeat(auto-fill,minmax(calc(var(--u) * 16),1fr))}.bb-unit{flex-direction:row;align-items:stretch;gap:calc(var(--u) * 1.1);padding:calc(var(--u) * .8) calc(var(--u) * 1)}.bb-unit-head{flex-direction:column;align-items:flex-start;justify-content:center;gap:calc(var(--u) * .35);width:calc(var(--u) * 9.5);flex:0 0 auto;margin:0}.bb-unit-head .bb-count{margin-left:0;font-size:calc(var(--u) * .95);letter-spacing:.06em}.bb-unit-head .bb-pill{font-size:calc(var(--u) * .85)}.bb-unit .bb-cards{flex:1;min-width:0;align-content:center}.bb-rail-stack{display:flex;flex-direction:column;gap:calc(var(--u) * 1)}.bb-rail{display:flex;flex-direction:column}.call-map-hydrant{background:#000000bf;color:#fff;border:0;border-radius:6px;font-weight:600;font-size:calc(var(--u) * 1.1);padding:2px 7px;box-shadow:none}.bb-take-hydrants{display:flex;flex-wrap:wrap;gap:calc(var(--u) * .7);margin-top:calc(var(--u) * .8)}.bb-take-hydrants .bb-chip{border-color:var(--bb-blue)}.bb-take-hydrants .bb-chip.bad{border-color:var(--bb-accent-line);opacity:.7}.bb-card{overflow:hidden}.bb-card .bb-seat{align-self:stretch;justify-content:center;margin:calc(var(--u) * -.7) calc(var(--u) * -.9) calc(var(--u) * .3);padding:calc(var(--u) * .3) calc(var(--u) * .6);background:var(--bb-border-strong);border-bottom:1px solid var(--bb-text-4);color:var(--bb-text)}.bb-card.open{justify-content:flex-start}.bb-card.open .bb-seat{background:var(--bb-bad-soft);border-bottom:1px dashed var(--bb-accent-line);color:var(--bb-bad)}.bb-card.open .bb-name{margin:auto 0}.bb-main{grid-template-columns:minmax(0,1.08fr) minmax(0,1fr)}.bb-unit .bb-cards{display:flex;flex-wrap:wrap;align-items:stretch}.bb-unit .bb-card{flex:1 1 calc(var(--u) * 11.5);max-width:calc(var(--u) * 17)}.bb-rail-pair{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:calc(var(--u) * 1);align-items:start}.bb-rail-pair>:only-child{grid-column:1 / -1}.bb-duty-week{display:flex;align-items:baseline;flex-wrap:wrap;gap:calc(var(--u) * .3) calc(var(--u) * .9);background:var(--bb-warn-soft);border:2px solid var(--bb-warn);border-radius:calc(var(--u) * .6);padding:calc(var(--u) * .55) calc(var(--u) * .9)}.bb-duty-day{font-size:calc(var(--u) * 1.05);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--bb-warn)}.bb-duty-week-title{font-family:var(--font-display);font-weight:700;font-size:calc(var(--u) * 2.6);line-height:1;letter-spacing:.03em;text-transform:uppercase;color:var(--bb-text)}.bb-duty-week-detail{font-size:calc(var(--u) * 1.2);color:var(--bb-warn-text)}.bb-duty-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:calc(var(--u) * .45) calc(var(--u) * 1.4)}.bb-duty-list li{display:flex;flex-direction:column;border-left:calc(var(--u) * .25) solid var(--bb-border-strong);padding-left:calc(var(--u) * .6);line-height:1.2}.bb-duty-list b{font-size:calc(var(--u) * 1.45);font-weight:700;color:var(--bb-text)}.bb-duty-list span{font-size:calc(var(--u) * 1.05);color:var(--bb-text-3)}.bb-notes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.bb-notes>:only-child{grid-column:1 / -1}.bb-unit.is-command .bb-unit-id{font-size:calc(var(--u) * 1.6);letter-spacing:.06em}.bb-event-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:calc(var(--u) * .45)}.bb-event-list li{display:flex;align-items:baseline;flex-wrap:wrap;gap:calc(var(--u) * .2) calc(var(--u) * .9);border:2px solid var(--bb-blue);background:var(--bb-card);border-radius:calc(var(--u) * .6);padding:calc(var(--u) * .5) calc(var(--u) * .9)}.bb-event-list svg{width:calc(var(--u) * 1.4);height:calc(var(--u) * 1.4);color:var(--bb-blue);align-self:center}.bb-event-list li.on svg{color:var(--bb-ok)}.bb-event-list li.on{border-color:var(--bb-ok)}.bb-event-time{font-size:calc(var(--u) * 1.5);font-weight:600;color:var(--bb-blue);white-space:nowrap}.bb-event-list li.on .bb-event-time,.bb-event-list li.on .bb-event-where{color:var(--bb-ok)}.bb-event-title{font-family:var(--font-display);font-weight:700;font-size:calc(var(--u) * 2.1);line-height:1.05;letter-spacing:.03em;text-transform:uppercase;color:var(--bb-text)}.bb-event-where{font-size:calc(var(--u) * 1.15);color:var(--bb-text-3)}.net-wrap{display:flex;flex-direction:column;gap:14px;max-width:720px;width:100%}.net-fine{font-size:12.5px;color:var(--text-3)}.net-link{background:none;border:0;padding:0;color:var(--text-3);font-size:12px;cursor:pointer;text-decoration:underline}.net-seg{display:inline-flex;gap:2px;padding:3px;border-radius:10px;background:var(--neutral-soft);border:1px solid var(--border)}.net-seg button{border:0;background:transparent;color:var(--text-2);font-weight:600;font-size:13px;padding:7px 12px;border-radius:8px;cursor:pointer;min-height:34px;white-space:nowrap}.net-seg button.on{background:var(--card);color:var(--text);box-shadow:0 1px 2px #0003}.net-scope{align-self:flex-start;max-width:100%;overflow-x:auto}.net-composer{padding:14px 16px;display:flex;flex-direction:column;gap:10px}.net-composer .textarea{min-height:72px}.net-composer-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.net-attach{display:flex;flex-wrap:wrap;gap:6px}.net-attach .pill button{border:0;background:none;color:inherit;margin-left:4px;cursor:pointer;font-size:14px;line-height:1}.net-post{padding:14px 16px;display:flex;flex-direction:column;gap:10px}.net-post.pinned{border-color:var(--warn)}.net-post-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.net-author{display:flex;align-items:center;gap:10px;min-width:0}.net-author-text{display:flex;flex-direction:column;min-width:0}.net-author-text b{font-size:15px}.net-author-text span{font-size:12.5px;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.net-body{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:15.5px;line-height:1.5}.net-body a{color:var(--accent-text)}.net-edit{display:flex;flex-direction:column;gap:8px}.net-photos{display:grid;gap:4px;border-radius:12px;overflow:hidden}.net-photos.n1{grid-template-columns:1fr}.net-photos.n2,.net-photos.n4{grid-template-columns:1fr 1fr}.net-photos.n3{grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr}.net-photos.n3 .net-photo:first-child{grid-row:span 2}.net-photo{position:relative;display:block;width:100%;aspect-ratio:4 / 3;padding:0;border:0;background:var(--neutral-soft);cursor:zoom-in;overflow:hidden}.net-photos.n1 .net-photo{aspect-ratio:auto;max-height:520px}.net-photo img{width:100%;height:100%;object-fit:cover;display:block}.net-photos.n1 .net-photo img{height:auto;max-height:520px;object-fit:contain;background:#000}.net-photo .skeleton{position:absolute;top:0;right:0;bottom:0;left:0}.net-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#000000eb;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:16px}.net-lightbox img{max-width:100%;max-height:85vh;object-fit:contain}.net-actions{display:flex;gap:6px;border-top:1px solid var(--border);padding-top:8px}.net-act{display:inline-flex;align-items:center;gap:6px;background:transparent;border:0;color:var(--text-2);font-weight:600;font-size:13.5px;padding:8px 10px;border-radius:8px;cursor:pointer;min-height:40px}.net-act:hover{background:var(--neutral-soft)}.net-act.on{color:var(--accent-text)}.net-menu{position:relative}.net-menu-list{position:absolute;right:0;top:100%;z-index:5;min-width:160px;background:var(--card);border:1px solid var(--border-strong);border-radius:10px;box-shadow:0 12px 32px #0000004d;padding:4px;display:flex;flex-direction:column}.net-menu-list button{text-align:left;background:none;border:0;padding:10px 12px;border-radius:7px;color:var(--text);font-size:14px;cursor:pointer}.net-menu-list button:hover{background:var(--neutral-soft)}.net-comments{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--border);padding-top:10px}.net-comment{display:flex;gap:8px;align-items:flex-start}.net-comment-body{flex:1;min-width:0;background:var(--neutral-soft);border-radius:10px;padding:8px 10px}.net-comment-body .net-body{font-size:14px}.net-comment-head{display:flex;gap:8px;align-items:baseline;font-size:12.5px;color:var(--text-3);margin-bottom:2px}.net-comment-head b{color:var(--text);font-size:13.5px}.net-comment-head .net-link{margin-left:auto}.net-comment-form{display:flex;gap:8px}.net-comment-form .input{min-height:40px}.net-report{display:flex;flex-direction:column;gap:10px}.net-report-content{display:flex;flex-direction:column;gap:8px;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:var(--bg)}:root{--font-body: "IBM Plex Sans", system-ui, sans-serif;--font-display: "Barlow Condensed", "IBM Plex Sans", sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--radius-sm: 8px;--radius: 14px;--radius-lg: 18px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--bg: #0E1115;--bg-nav: #12161B;--card: #161A20;--card-2: #1A1F26;--border: #272D36;--border-strong: #2F3742;--text: #F1F3F5;--text-2: #A3ACB9;--text-3: #8B95A3;--nav-text: #C9CFD8;--nav-active: #1F252D;--accent: #D93036;--accent-text: #FF6369;--accent-soft: rgba(255, 99, 105, .1);--accent-line: rgba(255, 99, 105, .4);--ok: #4CC38A;--ok-soft: rgba(76, 195, 138, .12);--warn: #F5B13D;--warn-soft: rgba(245, 177, 61, .12);--bad: #FF8A8F;--bad-soft: rgba(255, 99, 105, .12);--neutral-soft: #1F252D;--series-1: #3987e5;color-scheme:dark}@media (prefers-color-scheme: light){:root:not([data-theme=dark]){--bg: #F5F6F8;--bg-nav: #FFFFFF;--card: #FFFFFF;--card-2: #F1F3F6;--border: #E2E5EA;--border-strong: #CDD2D9;--text: #111827;--text-2: #4B5563;--text-3: #5B6472;--nav-text: #374151;--nav-active: #EEF0F3;--accent: #D12A30;--accent-text: #B91C1C;--accent-soft: #FEF2F2;--accent-line: #F3A6A9;--ok: #15803D;--ok-soft: #F0FDF4;--warn: #B45309;--warn-soft: #FFFBEB;--bad: #B91C1C;--bad-soft: #FEF2F2;--neutral-soft: #EEF0F3;--series-1: #2a78d6;color-scheme:light}}:root[data-theme=light]{--bg: #F5F6F8;--bg-nav: #FFFFFF;--card: #FFFFFF;--card-2: #F1F3F6;--border: #E2E5EA;--border-strong: #CDD2D9;--text: #111827;--text-2: #4B5563;--text-3: #5B6472;--nav-text: #374151;--nav-active: #EEF0F3;--accent: #D12A30;--accent-text: #B91C1C;--accent-soft: #FEF2F2;--accent-line: #F3A6A9;--ok: #15803D;--ok-soft: #F0FDF4;--warn: #B45309;--warn-soft: #FFFBEB;--bad: #B91C1C;--bad-soft: #FEF2F2;--neutral-soft: #EEF0F3;--series-1: #2a78d6;color-scheme:light}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent-text);outline-offset:2px;border-radius:6px}h1,h2,h3{font-family:var(--font-display);font-weight:700;letter-spacing:.02em;margin:0;line-height:1.05}.mono{font-family:var(--font-mono)}.muted{color:var(--text-2)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.shell{display:flex;min-height:100vh}.sidebar{width:248px;flex:0 0 248px;background:var(--bg-nav);border-right:1px solid var(--border);padding:20px 14px;display:flex;flex-direction:column;gap:20px;position:sticky;top:0;height:100vh;overflow-y:auto}.brand{display:flex;align-items:center;gap:10px;padding:0 8px}.brand-name{font-family:var(--font-display);font-weight:700;font-size:22px;letter-spacing:.06em;line-height:1}.brand-sub{font-size:12px;color:var(--text-2)}.dept-logo{height:46px;width:auto;flex:0 0 auto}.dept-name{font-family:var(--font-display);font-weight:700;font-size:17px;line-height:1.1;letter-spacing:.02em}.search{display:flex;align-items:center;gap:8px;background:var(--card-2);border:1px solid var(--border-strong);border-radius:10px;padding:0 12px;min-height:42px;color:var(--text-2)}.search input{flex:1;min-width:0;background:transparent;border:0;outline:none;color:var(--text)}.kbd{font-family:var(--font-mono);font-size:11px;border:1px solid var(--border-strong);border-radius:4px;padding:1px 5px}.nav-group{display:flex;flex-direction:column;gap:2px}.nav-label{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-3);padding:0 10px 6px}.nav-link{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--radius-sm);font-size:14px;min-height:40px;color:var(--nav-text)}.nav-link:hover{background:var(--nav-active);color:var(--text)}.nav-link.active{background:var(--nav-active);color:var(--text);font-weight:600;box-shadow:inset 2px 0 0 var(--accent-text)}.nav-badge{margin-left:auto;background:var(--accent);color:#fff;font-size:11px;font-weight:600;border-radius:999px;padding:1px 7px}.me{margin-top:auto;display:flex;align-items:center;gap:10px;padding:10px;border-top:1px solid var(--border)}.avatar{width:34px;height:34px;border-radius:999px;background:var(--border-strong);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:13px}.main{flex:1;min-width:0;padding:28px 32px 48px;display:flex;flex-direction:column;gap:22px}.tabbar,.phonebar{display:none}@media (max-width: 899px){.sidebar{display:none}.phonebar{display:flex;align-items:center;justify-content:space-between;margin:-4px 0 4px}.main{padding:calc(20px + env(safe-area-inset-top)) 16px 110px;gap:16px}.tabbar{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--bg-nav);border-top:1px solid var(--border);padding:8px 6px calc(10px + env(safe-area-inset-bottom))}.tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:11px;font-weight:600;min-height:48px;color:var(--text-2)}.tab.active{color:var(--accent-text)}}.page-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px}.page-head h1{font-size:44px}.page-eyebrow{font-size:13px;color:var(--text-2);margin-bottom:4px}.actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}@media (max-width: 899px){.page-head h1{font-size:34px}}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius)}.card-pad{padding:16px 18px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border)}.section-title{font-family:var(--font-display);font-weight:600;font-size:22px;letter-spacing:.03em}.grid-auto{display:grid;grid-template-columns:repeat(auto-fit,minmax(var(--min, 280px),1fr));gap:14px}.row{display:flex;align-items:center;gap:10px}.split{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-start}.split>.wide{flex:999 1 520px;min-width:0;display:flex;flex-direction:column;gap:14px}.split>.narrow{flex:1 1 320px;min-width:0;display:flex;flex-direction:column;gap:18px}.stat{display:flex;flex-direction:column;gap:6px}.stat-label,.stat-sub{font-size:13px;color:var(--text-2)}.stat-value{font-family:var(--font-display);font-weight:700;font-size:38px;line-height:1}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 16px;border-radius:10px;border:1px solid var(--border-strong);background:var(--card-2);color:var(--text);font-weight:500;cursor:pointer;white-space:nowrap}.btn:hover{border-color:var(--text-3)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.btn-primary:hover{filter:brightness(1.08)}.btn-ghost{background:transparent}.btn-ok{background:transparent;color:var(--ok);border-color:var(--ok)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-sm{min-height:36px;padding:0 12px;font-size:13px}.pill{display:inline-flex;align-items:center;font-size:12px;font-weight:600;border-radius:999px;padding:3px 10px;white-space:nowrap}.pill-ok{color:var(--ok);background:var(--ok-soft)}.pill-warn{color:var(--warn);background:var(--warn-soft)}.pill-bad{color:var(--bad);background:var(--bad-soft)}.pill-neutral{color:var(--text-2);background:var(--neutral-soft)}.badge{font-size:11px;font-weight:600;color:var(--text-2);background:var(--neutral-soft);border-radius:4px;padding:2px 6px}.dot{width:8px;height:8px;border-radius:999px;flex:0 0 8px}.list{list-style:none;margin:0;padding:0}.list-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 16px;border-top:1px solid var(--border)}.list-row:first-child{border-top:0}.seat{display:flex;gap:12px;align-items:center;border-radius:10px;padding:10px 12px;border:1px solid var(--border);background:var(--card-2)}.seat.open{border:1px dashed var(--accent-text);background:var(--accent-soft)}.seat.seat-add{justify-content:center;gap:6px;border-style:dashed;background:transparent;color:var(--text-2);font:inherit;font-weight:600;cursor:pointer}.seat.seat-add:hover:not(:disabled){color:var(--text);border-color:var(--border-strong)}.seat-label{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-2)}.seat-name{font-weight:600;font-size:16px}.seat.open .seat-name,.seat.open .seat-time{color:var(--accent-text)}.seat-time{font-family:var(--font-mono);font-size:12px;color:var(--text-2)}.banner{display:flex;flex-wrap:wrap;align-items:center;gap:12px;border-radius:12px;padding:12px 16px}.banner-warn{background:var(--warn-soft);border:1px solid var(--warn)}.banner-bad{background:var(--bad-soft);border:1px solid var(--accent-text)}.error-box{background:var(--bad-soft);border:1px solid var(--accent-line);color:var(--bad);border-radius:12px;padding:12px 16px}.empty{text-align:center;padding:40px 20px;color:var(--text-2);display:flex;flex-direction:column;gap:6px;align-items:center}.empty strong{color:var(--text);font-size:16px}.skeleton{background:linear-gradient(90deg,var(--card) 0%,var(--card-2) 50%,var(--card) 100%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:var(--radius);border:1px solid var(--border)}.skeleton-labeled{display:flex;flex-direction:column;gap:12px;padding:18px;overflow:hidden}.skeleton-label{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--text-2);font-weight:500}.skeleton-dot{width:8px;height:8px;border-radius:999px;background:var(--accent-text);animation:pulse-dot 1s ease-in-out infinite}.skeleton-bar{display:block;height:12px;border-radius:6px;background:var(--neutral-soft)}@keyframes pulse-dot{0%,to{opacity:.3}50%{opacity:1}}@media (prefers-reduced-motion: reduce){.skeleton-dot{animation:none}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion: reduce){.skeleton{animation:none}}.field{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:var(--nav-text)}.input,.select,.textarea{background:var(--bg);border:1px solid var(--border-strong);border-radius:10px;padding:10px 12px;min-height:44px;color:var(--text);font-weight:400;font-size:15px;width:100%}.textarea{min-height:80px;resize:vertical}.check{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--nav-text);min-height:44px;cursor:pointer}.check input{width:18px;height:18px;accent-color:var(--accent)}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:40}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(440px,100vw);z-index:41;background:var(--card);border-left:1px solid var(--border);display:flex;flex-direction:column}.drawer-wide{width:min(880px,100vw)}.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:calc(16px + env(safe-area-inset-top)) 18px 16px;border-bottom:1px solid var(--border)}.drawer-body{flex:1;overflow-y:auto;padding:18px 18px calc(18px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:16px}.icon-btn{width:40px;height:40px;border-radius:10px;border:1px solid var(--border-strong);background:var(--card-2);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text)}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:14px;min-width:760px}.table th{text-align:left;font-size:12px;font-weight:600;letter-spacing:.04em;color:var(--text-2);padding:10px 12px}.table td,.table tbody th{padding:12px;border-top:1px solid var(--border)}.table .num{text-align:right;font-family:var(--font-mono)}.bar{flex:1;height:6px;background:var(--neutral-soft);border-radius:3px;overflow:hidden;display:flex}.bar>span{display:block;height:100%}.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;min-width:700px}.cal-dow{font-size:12px;font-weight:600;letter-spacing:.08em;color:var(--text-2);text-align:center;padding-bottom:4px}.cal-day{min-height:96px;border-radius:10px;padding:8px;display:flex;flex-direction:column;gap:5px;background:var(--card);border:1px solid var(--border)}.cal-day.past{opacity:.7;background:var(--bg-nav)}.cal-day.today{border:2px solid var(--accent-text)}.cal-num{font-size:13px;font-weight:600}.cal-shift{font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);margin-top:2px}.slot{display:flex;align-items:center;justify-content:space-between;gap:6px;width:100%;border-radius:6px;padding:5px 7px;font-size:12px;font-weight:600;text-align:left;min-height:28px;cursor:pointer;background:var(--accent-soft);color:var(--accent-text);border:1px solid var(--accent-line)}.slot.selected{background:var(--accent);color:#fff;border-color:var(--accent)}.slot.requested{background:transparent;color:var(--ok);border-color:var(--ok)}.slot.locked{background:transparent;color:var(--text-3);border:1px dashed var(--border-strong);cursor:default}.slot .t{font-family:var(--font-mono);font-size:11px;flex:0 0 auto}.crew-line{display:flex;justify-content:space-between;gap:6px;font-size:11px;color:var(--text-2)}.crew-line.me{color:var(--text);font-weight:600}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:40}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:41;max-height:82dvh;overflow-y:auto;background:var(--bg-nav);border-top:1px solid var(--border);border-radius:18px 18px 0 0;padding:14px 16px calc(18px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:6px}.sheet-head{display:flex;align-items:center;justify-content:space-between}.sheet-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.sheet-link{display:flex;align-items:center;gap:10px;min-height:48px;padding:8px 12px;border-radius:12px;background:var(--card);border:1px solid var(--border);color:var(--text);font-size:14px;font-weight:500}.sheet-link.active{border-color:var(--accent-line);color:var(--accent-text)}.sheet-link .nav-badge{margin-left:auto}@media (min-width: 900px){.sheet,.sheet-backdrop{display:none}}.ai-wrap{display:grid;grid-template-columns:280px minmax(0,1fr);gap:16px;height:calc(100dvh - 76px);min-height:480px}.ai-side{display:flex;flex-direction:column;min-height:0;overflow:hidden}.ai-side-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px}.ai-title{display:flex;align-items:center;gap:8px;font-size:24px;margin:0;white-space:nowrap}.ai-conv-list{list-style:none;margin:0;padding:0 6px 8px;overflow-y:auto;flex:1}.ai-conv-list li{display:flex;align-items:center;gap:4px;border-radius:10px}.ai-conv-list li.active,.ai-conv-list li:hover{background:var(--nav-active)}.ai-conv{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;text-align:left;background:none;border:0;padding:9px 10px;color:var(--text);cursor:pointer;font:inherit}.ai-conv-title{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-conv-meta{font-size:12px;color:var(--text-3)}.ai-del{background:none;border:0;color:var(--text-3);padding:8px;border-radius:8px;cursor:pointer;opacity:.6}.ai-del:hover{opacity:1;color:var(--bad)}.ai-del-confirm{display:flex;gap:4px;padding-right:6px}.ai-conv-group{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);padding:10px 10px 4px}.ai-conv-list li.ai-conv-group,.ai-conv-list li.ai-conv-group:hover{background:none}.ai-pin{background:none;border:0;color:var(--text-3);padding:8px 4px;border-radius:8px;cursor:pointer;opacity:.5}.ai-pin:hover{opacity:1}.ai-pin.on,.ai-star.on{color:var(--warn, #d4a017);opacity:1}.ai-plan{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:10px;padding:12px 14px;border:1px solid var(--accent-line, var(--border));border-radius:12px;background:var(--neutral-soft)}@media (max-width: 520px){.ai-star-label{display:none}}.ai-chat{display:flex;flex-direction:column;min-height:0;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.ai-chat-head{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--border)}.ai-chat-title{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-back{display:none}.ai-mode-pick .select{min-height:36px;padding-top:4px;padding-bottom:4px}.ai-messages{flex:1;overflow-y:auto;padding:18px 16px;display:flex;flex-direction:column;gap:14px}.ai-msg{max-width:760px}.ai-user{align-self:flex-end;background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:16px 16px 4px;padding:10px 14px;max-width:min(620px,88%)}.ai-user-text{white-space:pre-wrap;overflow-wrap:anywhere}.ai-assistant{align-self:flex-start;width:100%}.ai-thinking{display:flex;align-items:center;gap:4px}.ai-thinking .dot{width:7px;height:7px;border-radius:50%;background:var(--accent-text);animation:aiDot 1.2s infinite ease-in-out}.ai-thinking .dot:nth-child(2){animation-delay:.15s}.ai-thinking .dot:nth-child(3){animation-delay:.3s}@keyframes aiDot{0%,80%,to{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}@media (prefers-reduced-motion: reduce){.ai-thinking .dot{animation:none;opacity:.7}}.ai-empty{margin:auto;text-align:center;max-width:560px;display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 0}.ai-empty h2{font-size:30px;margin:4px 0 0}.ai-empty p{margin:0}.ai-ideas{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:12px}.ai-idea{background:var(--card-2);border:1px solid var(--border);color:var(--text);border-radius:999px;padding:8px 14px;font:inherit;font-size:14px;cursor:pointer;min-height:40px;text-align:left}.ai-idea:hover{border-color:var(--accent-line)}.ai-composer{display:flex;gap:8px;align-items:flex-end;padding:12px;border-top:1px solid var(--border);background:var(--card)}.ai-composer .textarea{flex:1;min-height:46px;max-height:180px;resize:none;line-height:1.4}.ai-send{min-width:46px;min-height:46px;padding:0;justify-content:center}.ai-voice{flex-direction:column;align-items:stretch;gap:10px}.ai-voice-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.ai-voice-status{display:flex;align-items:center;gap:10px;min-height:46px}.ai-voice-actions{display:flex;gap:8px;flex-wrap:wrap}.ai-voice-actions .btn{min-height:46px}.ai-voice-dot{width:12px;height:12px;border-radius:50%;background:var(--text-3);flex:none}.ai-voice-connecting .ai-voice-dot,.ai-voice-thinking .ai-voice-dot{background:var(--warn);animation:aiVoicePulse 1.1s infinite ease-in-out}.ai-voice-listening .ai-voice-dot{background:var(--ok);animation:aiVoicePulse 1.8s infinite ease-in-out}.ai-voice-speaking .ai-voice-dot{background:var(--accent);animation:aiVoicePulse .7s infinite ease-in-out}@keyframes aiVoicePulse{0%,to{transform:scale(.8);opacity:.65}50%{transform:scale(1.25);opacity:1}}@media (prefers-reduced-motion: reduce){.ai-voice-dot{animation:none!important}}.ai-voice-pick{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ai-voice-pick .select{min-height:36px;padding-top:4px;padding-bottom:4px;width:auto}.ai-quiz{margin-top:12px;border:1px solid var(--border);border-radius:14px;padding:14px;background:var(--card-2);display:flex;flex-direction:column;gap:12px}.ai-quiz-list{margin:0;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:14px}.ai-quiz fieldset{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.ai-quiz legend{font-weight:600;margin-bottom:6px;padding:0}.ai-opt{display:flex;align-items:center;gap:10px;padding:8px 12px;min-height:44px;border:1px solid var(--border);border-radius:10px;cursor:pointer;background:var(--card)}.ai-opt input{width:18px;height:18px;accent-color:var(--accent);flex:none}.ai-opt.chosen{border-color:var(--accent-line)}.ai-opt.right{border-color:var(--ok);background:var(--ok-soft)}.ai-opt.wrong{border-color:var(--bad);background:var(--bad-soft)}.ai-expl{margin:2px 0 0;font-size:14px;color:var(--text-2)}@media (max-width: 899px){.ai-wrap{display:block;height:auto;min-height:0;margin:-4px -16px 0}.ai-side{display:none;border-radius:0;border-left:0;border-right:0}.ai-show-history .ai-side{display:flex}.ai-show-history .ai-chat{display:none}.ai-chat{border-radius:0;border-left:0;border-right:0;overflow:visible;min-height:calc(100dvh - 190px)}.ai-back{display:inline-flex}.ai-chat-head{position:sticky;top:0;z-index:5;background:var(--card);padding:10px 12px}.ai-messages{overflow:visible;padding:14px 14px 8px}.ai-composer{position:sticky;bottom:calc(74px + env(safe-area-inset-bottom));z-index:5}.ai-title{font-size:22px}}.md{display:flex;flex-direction:column;gap:10px;line-height:1.55;overflow-wrap:anywhere}.md-p{margin:0}.md-h{margin:6px 0 0;font-family:var(--font-body);font-size:17px;font-weight:700;letter-spacing:0}h2.md-h{font-size:19px}.md-list{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:4px}.md-list .md-list{margin-top:4px}.md-code{font-family:var(--font-mono);font-size:.9em;background:var(--card-2);border:1px solid var(--border);border-radius:6px;padding:1px 5px}.md-pre{margin:0;padding:12px;background:var(--card-2);border:1px solid var(--border);border-radius:10px;overflow-x:auto;font-family:var(--font-mono);font-size:13px}.md-hr{border:0;border-top:1px solid var(--border);margin:4px 0;width:100%}.md a{color:var(--accent-text);text-decoration:underline}.md-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:10px}.md-table{border-collapse:collapse;width:100%;font-size:14px}.md-table th,.md-table td{padding:7px 10px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}.md-table th{background:var(--card-2);font-weight:600;white-space:nowrap}.md-table tr:last-child td{border-bottom:0}@media (max-width: 899px){.input,.select,.textarea,.search input,input,select,textarea{font-size:16px}}.qz-edit-q{border:1px solid var(--border);border-radius:14px;padding:12px;margin:0;display:flex;flex-direction:column;gap:8px;background:var(--card-2)}.qz-edit-q legend{font-weight:700;padding:0 6px}.ev-chip{display:flex;align-items:center;gap:4px;width:100%;min-width:0;text-align:left;font:inherit;font-size:11px;line-height:1.3;padding:2px 5px;border-radius:6px;border:0;border-left:3px solid var(--ev, var(--text-3));background:var(--card-2);color:var(--text);cursor:pointer}.ev-chip .t{font-family:var(--font-mono);color:var(--text-2);flex:none}.ev-chip .ev-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.ev-chip.cancelled .ev-title{text-decoration:line-through;opacity:.6}.ev-bar{width:4px;min-height:34px;border-radius:2px;flex:none}.ev-dot{display:inline-block;width:9px;height:9px;border-radius:50%}.ev-dl{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;margin:0;font-size:15px}.ev-dl dt{color:var(--text-2)}.ev-dl dd{margin:0}@media (max-width: 699px){.cal-month{display:none}}.seat-grab{all:unset;font-weight:600;font-size:16px;color:var(--text);cursor:grab;display:inline-flex;align-items:center;gap:6px;border-radius:6px;padding:1px 4px;margin:-1px -4px}.seat-grab:hover{background:var(--nav-active)}.seat-grab:focus-visible{outline:2px solid var(--accent-text)}.seat-grab[aria-pressed=true]{background:var(--accent-soft);color:var(--accent-text)}.seat-grab .grip{color:var(--text-3);font-size:14px}.seat.target{outline:1px dashed var(--border-strong)}.seat.source{outline:2px solid var(--accent-text)}.seat.over{outline:2px solid var(--ok);background:var(--ok-soft)}.move-banner{position:sticky;top:8px;z-index:6;background:var(--card);border:1px solid var(--accent-line)}.pa{max-width:960px;margin:0 auto;padding:0 16px 96px}.pa-head{position:sticky;top:0;z-index:25;display:flex;align-items:center;gap:16px;min-height:64px;margin:0 -16px 8px;padding:calc(10px + env(safe-area-inset-top)) 16px 10px;background:color-mix(in srgb,var(--bg) 90%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.pa-nav{display:flex;align-items:center;gap:2px;margin-left:auto}.pa-link{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:0 12px;border-radius:10px;color:var(--text-2);font-weight:500;font-size:15px}.pa-link:hover{color:var(--text);background:var(--nav-active)}.pa-link.active{color:var(--text);background:var(--nav-active);font-weight:600;box-shadow:inset 0 -2px 0 var(--accent-text)}.pa-avatar{background:none;border:0;padding:2px;border-radius:999px;cursor:pointer;display:flex}.pa-avatar:focus-visible{outline:2px solid var(--accent-text);outline-offset:2px}.pa-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:40;min-width:240px;padding:6px;border-radius:14px;background:var(--card);border:1px solid var(--border-strong);box-shadow:0 18px 50px #00000059;display:flex;flex-direction:column}.pa-menu-name{display:flex;flex-direction:column;gap:2px;padding:10px 12px 12px;border-bottom:1px solid var(--border);margin-bottom:4px;font-size:14px}.pa-menu-name .muted{font-size:13px;overflow-wrap:anywhere}.pa-menu-item{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 12px;border-radius:10px;color:var(--text);font:inherit;font-size:15px;background:none;border:0;text-align:left;cursor:pointer;width:100%}.pa-menu-item:hover{background:var(--nav-active)}@media (max-width: 899px){.pa-nav{display:none}.pa-head{justify-content:space-between}.pa{padding-bottom:110px}.pa .tabbar{grid-template-columns:repeat(7,minmax(0,1fr))}.pa .tab{font-size:10px}}.call-detail-map{height:220px;border-radius:10px;overflow:hidden;border:1px solid var(--border)}.call-map-hydrant{background:#000000bf;color:#fff;border:0;border-radius:6px;font-weight:600;font-size:11px;padding:2px 7px;box-shadow:none}.call-map-hydrant:before{display:none}.call-map-label{background:#d93036;color:#fff;border:0;border-radius:6px;font-weight:700;padding:3px 8px}.call-map-label:before{border-top-color:#d93036}.welcome-banner{position:fixed;left:0;right:0;top:18vh;z-index:1000;overflow:hidden;pointer-events:none;padding:14px 0;background:color-mix(in srgb,var(--bg) 88%,transparent);border-top:2px solid var(--accent);border-bottom:2px solid var(--accent);box-shadow:0 12px 40px #00000059}.welcome-banner-text{display:inline-block;white-space:nowrap;padding-left:100vw;font-family:var(--font-display);font-weight:700;font-size:clamp(54px,10vw,150px);line-height:1.05;letter-spacing:.01em;color:var(--accent-text);animation:welcomeSweep 13s linear;will-change:transform}@keyframes welcomeSweep{0%{transform:translate(0)}to{transform:translate(-100%)}}@media (prefers-reduced-motion: reduce){.welcome-banner-text{display:block;white-space:normal;padding:0 16px;text-align:center;font-size:clamp(34px,6vw,80px);animation:welcomeFade 8s ease-in both;animation-iteration-count:1!important}@keyframes welcomeFade{0%,80%{opacity:1}to{opacity:0}}}.pro-tag{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:999px;font-size:10.5px;font-weight:700;letter-spacing:.02em;line-height:1.5;color:var(--accent-text);background:var(--accent-soft, var(--neutral-soft));border:1px solid var(--accent-line, var(--border));vertical-align:middle}.pro-tag-dot{position:absolute;top:-6px;right:-18px;margin:0;font-size:9px;padding:0 4px}
