:root{--ink:#292d29;--muted:#73796f;--paper:#fffdf7;--line:#dcded2;--green:#375f50;--coral:#c45d45;--yellow:#f5df98;font-family:"Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;color:var(--ink);background:#f4f2e9;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,select,input{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{min-height:40px;border:1px solid var(--line);border-radius:10px;padding:8px 13px;background:#fffdf5;color:var(--ink);cursor:pointer}button:hover{background:var(--yellow)}button[aria-pressed=true],button.active{background:var(--green);border-color:var(--green);color:white}button:disabled{opacity:.45;cursor:not-allowed}:focus-visible{outline:3px solid var(--coral);outline-offset:3px}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}[hidden]{display:none!important}.masthead{height:85px;padding:15px 30px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #d8ded0;background:#fffdf7;position:relative;z-index:10}.brand{display:flex;align-items:center;gap:11px;font-size:23px;color:var(--ink);font-weight:750;letter-spacing:2px;white-space:nowrap}.brand:hover{text-decoration:none}.brand small{display:block;font-size:10px;letter-spacing:1px;color:var(--muted);font-weight:400;margin-top:3px}.brand-mark{display:grid;place-items:center;background:var(--green);color:#f9e3ac;width:42px;height:46px;border-radius:16px 16px 6px 6px;font-size:30px}.masthead nav{display:flex;gap:6px;background:#eeeee4;padding:5px;border-radius:14px}.masthead nav button{border:0;background:none;min-width:95px}.masthead nav button[aria-pressed=true]{background:var(--green)}.outline-link{font-size:12px;border:1px solid var(--line);padding:11px 13px;border-radius:9px;white-space:nowrap}#scene-workspace{position:relative;height:calc(100vh - 270px);min-height:560px;max-height:880px;overflow:hidden;background:radial-gradient(ellipse at 50% 40%,#fffdf8,#e5e7d9)}#canvas-host{position:absolute;inset:0;outline-offset:-4px}#canvas-host canvas{display:block;width:100%;height:100%;touch-action:none}.scene-heading{position:absolute;z-index:3;left:30px;top:26px;pointer-events:none;width:300px}.eyebrow{font:700 10px ui-monospace,monospace;letter-spacing:2px;color:var(--green);margin:0 0 12px}.scene-heading h1{font-size:clamp(27px,2.9vw,42px);line-height:1.4;font-weight:650;margin:0;letter-spacing:1px}.scene-heading em{font-style:normal;color:var(--green)}.scene-heading>p:not(.eyebrow){font-size:12px;color:var(--muted);line-height:1.8;max-width:245px}.mode-tag{display:inline-block;border:1px solid #b8c9b8;background:#eef4e6e6;color:var(--green);font-size:10px;padding:6px 9px;border-radius:6px;margin-top:5px}.scene-controls{position:absolute;left:30px;bottom:65px;display:flex;gap:7px;z-index:4}.scene-controls button{display:flex;flex-direction:column;align-items:center;gap:3px;background:#fffdf7db;backdrop-filter:blur(14px);font-size:19px;width:57px;min-height:57px;padding:7px 3px}.scene-controls button span{font-size:10px}.scene-stats{position:absolute;left:30px;top:243px;display:flex;gap:20px;z-index:3;pointer-events:none}.scene-stats article{border-top:1px solid #b6c3b2;padding-top:10px;max-width:90px}.scene-stats span{font-size:10px;color:var(--muted);display:block}.scene-stats strong{font-family:Georgia,serif;font-size:26px;font-weight:400;display:block;margin-top:6px}.detail-card,.scenario-card{position:absolute;right:26px;top:26px;z-index:4;width:286px;border:1px solid #fff;border-radius:19px;background:#fffdf6ed;box-shadow:0 16px 50px #36473614;padding:22px;backdrop-filter:blur(18px);max-height:calc(100% - 110px);overflow:auto}.detail-card h2,.scenario-card h2{font-size:22px;margin:0 0 5px;line-height:1.5}.muted{font-size:11px;color:var(--muted);line-height:1.7}.detail-value{margin:15px 0}.detail-value strong{display:block;font:italic 58px Georgia,serif;line-height:1.1;color:var(--coral)}.detail-value span{display:block;font-size:11px;margin-top:6px}.detail-card p:not(.eyebrow){font-size:12px;line-height:1.8}.boundary{border-left:2px solid #caa77c;padding-left:10px;color:#786952;font-size:11px!important;line-height:1.7}.mini-periods{display:grid;grid-template-columns:repeat(10,1fr);gap:3px;align-items:end;height:42px;margin-top:15px}.mini-periods button{min-height:4px;border:0;border-radius:3px;padding:0;align-self:end}.mini-periods button[aria-pressed=true]{outline:2px solid var(--ink);outline-offset:1px}.detail-links{display:flex;gap:8px;margin-top:16px}.detail-links button{font-size:11px;padding:8px;flex:1}.map-caption{position:absolute;left:30px;bottom:18px;font-size:10px;color:#53635d;line-height:1.6;z-index:3;pointer-events:none}.map-caption small{font-size:9px}.compass{font-weight:800;margin-right:9px}.scene-legend{position:absolute;right:26px;bottom:22px;display:flex;flex-wrap:wrap;gap:10px;max-width:380px;z-index:3;font-size:10px;color:#53635d}.scene-legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px}.low{background:#4e947c}.high{background:#d0644f}.unknown{background:#a0a6a1}.timeline{position:relative;z-index:5;border-top:1px solid #d9decf;background:#fffdf7;padding:14px 30px 11px}.filters{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.filters label{font-size:10px;color:var(--muted);display:flex;align-items:center;gap:6px}select{max-width:100%;border:1px solid var(--line);border-radius:8px;background:#f7f7ed;padding:8px;color:var(--ink);min-height:37px;font-size:11px}.route-picker select{max-width:220px}.filters .check{white-space:nowrap}.check input{accent-color:var(--green)}.corridor-buttons{display:flex;gap:5px;margin-left:auto}.corridor-buttons button{font-size:11px;padding:7px 9px;min-height:37px}.time-row{display:flex;align-items:center;gap:16px;margin-top:13px}.play{background:var(--green);color:white;border:0;min-width:80px}.time-buttons{display:grid;grid-template-columns:repeat(10,1fr);gap:6px;flex:1}.time-buttons button{min-width:0;border:0;border-radius:7px;padding:7px 4px;color:var(--muted);background:#f0f1e7;font-size:11px}.time-buttons strong{display:block;font-size:11px;font-weight:500;margin-top:3px}.time-buttons button[aria-pressed=true]{background:var(--green);color:#fff}.time-end{font-size:11px;color:var(--muted);text-align:center}.time-end small{font-size:9px}.timeline-foot{display:flex;justify-content:space-between;gap:12px;font-size:10px;color:var(--muted);margin-top:10px}#scope-notice{padding:8px 12px;border-left:3px solid #c99a5f;background:#f4ead7;font-size:11px;margin:10px 0 0}footer{padding:10px 30px;display:flex;gap:20px;justify-content:space-between;font-size:10px;color:var(--muted);border-top:1px solid var(--line)}#loading,#fallback{position:absolute;z-index:6;inset:0;background:#f3f4e8ed;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:30px}#loading h2,#fallback h2{font-size:23px;font-weight:500}#loading p,#fallback p{font-size:13px;color:var(--muted);max-width:480px;line-height:1.8}.loading-icon{font-size:60px;color:var(--green)}.primary-link{background:var(--green);color:white;padding:12px 20px;border-radius:10px;margin:12px}.help-card{position:absolute;z-index:9;left:50%;top:50%;transform:translate(-50%,-50%);width:min(440px,calc(100% - 30px));background:#fffdf6;padding:25px;border:1px solid #d0d6c9;border-radius:20px;box-shadow:0 20px 80px #263a3840;font-size:13px;line-height:1.9}.help-card h2{font-size:20px}.help-card #help-close{float:right;border:0;font-size:22px}.data-panel{padding:28px 35px;min-height:55vh}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.panel-heading h1{margin:0;font-size:28px}.panel-heading p:not(.eyebrow){font-size:12px;color:var(--muted)}.overview-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:22px 0}.overview-grid article{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:16px}.overview-grid span,.overview-grid small{display:block;font-size:11px;color:var(--muted);line-height:1.7}.overview-grid strong{display:block;font-size:27px;font-weight:500;color:var(--green);margin:7px 0}.table-scroll{overflow:auto;max-height:65vh;border:1px solid var(--line);border-radius:12px;background:var(--paper);margin:20px 0}table{border-collapse:collapse;width:100%;min-width:850px;font-size:11px}th,td{padding:11px;border-bottom:1px solid var(--line);text-align:left}thead{background:#e8ecdf;position:sticky;top:0;z-index:1}th{font-weight:500}th small{display:block;color:var(--muted);font-size:9px;margin-top:5px}td button{min-height:32px;width:100%;font-size:11px;border:0;border-radius:5px}th button{background:none;border:0;text-align:left;font-size:12px}tr.selected th{border-left:3px solid var(--coral)}.quality-intro{background:var(--paper);border:1px solid var(--line);padding:20px 24px;border-radius:15px;margin-top:20px;font-size:13px;line-height:1.9}.quality-intro h2{font-size:20px}details{font-size:12px;line-height:1.8;margin:15px 0}summary{cursor:pointer}.map-label{pointer-events:auto;white-space:nowrap;background:#fffdf4ec;color:#3d5048;border:1px solid #d6ddce;box-shadow:0 3px 12px #25423914;border-radius:20px;padding:5px 9px;font-size:11px;min-height:28px}.map-label.selected{background:var(--green);color:white;border-color:#fff}.map-label.major{font-weight:650;letter-spacing:.5px}.map-label.context{pointer-events:none;background:#fffdf3c9;font-size:10px;border:0}.scenario-card{left:26px;right:auto;width:275px}.scenario-card>p{font-size:12px;line-height:1.8;color:var(--muted)}.scenario-card label{display:flex;justify-content:space-between;align-items:center;font-size:11px;margin:15px 0 5px}.scenario-card output{color:var(--green);font-size:20px}.scenario-card input[type=range]{width:100%;accent-color:var(--green)}#scenario-moto{accent-color:#7b89ad}.scenario-card select{width:100%}#scenario-groups{border-top:1px solid var(--line);margin:12px 0}#scenario-groups label{display:grid;grid-template-columns:18px 1fr 96px;gap:5px;font-size:10px;margin-top:9px}#scenario-groups select{padding:4px;font-size:10px}#scenario-groups small{grid-column:2/4;color:var(--muted);font-size:9px}.scenario-results{position:absolute;right:26px;top:26px;width:300px;z-index:4;padding:20px;border-radius:18px;border:1px solid white;background:#fffdf6ed;max-height:calc(100% - 80px);overflow:auto;backdrop-filter:blur(18px)}#scenario-plans{display:grid;gap:9px}.plan-option{border:1px solid var(--line);padding:12px;border-radius:11px;background:#f7f6ed}.plan-option.selected{border-color:var(--green);background:#e9eee0}.plan-option h3{font-size:13px;margin:0 0 8px}.plan-option strong{font:italic 27px Georgia;color:var(--green)}.plan-option strong.moto{color:#7888ac}.plan-option small{font-size:10px;display:block;line-height:1.7;color:var(--muted)}.plan-option button{font-size:10px;min-height:30px;margin-top:8px;padding:5px 8px}.scenario-results>p{font-size:11px;line-height:1.8}.time-label{font-size:11px;pointer-events:none;color:#4f6057;background:#fffdf8c9;padding:3px 6px;border-radius:5px}.time-label.group{font-size:11px;color:#374f43;border:1px solid #becdbb;background:#fffdf6;padding:5px 9px}.scenario-active .scene-heading{left:330px;top:22px}.scenario-active .scene-heading h1{font-size:26px}.scenario-active .scene-heading>p:not(.eyebrow){display:none}.scenario-active .scene-controls{left:330px}.scenario-active .map-caption{left:330px}
@media(max-width:1150px){.masthead{padding:12px 20px}.brand{font-size:19px}.masthead nav button{min-width:76px;font-size:12px}.scene-heading{left:20px;width:230px}.scene-heading h1{font-size:30px}.scene-stats{left:20px;gap:12px;top:225px}.detail-card{width:250px;right:16px;padding:18px}.scene-controls,.map-caption{left:20px}.scene-legend{max-width:275px;right:16px}.filters{gap:9px}.corridor-buttons{margin-left:0}.scenario-card{width:245px;left:16px;padding:16px}.scenario-results{width:245px;right:16px;padding:14px}.scenario-active .scene-heading,.scenario-active .scene-controls,.scenario-active .map-caption{left:280px}}
@media(max-width:800px){.masthead{height:auto;min-height:110px;flex-wrap:wrap;padding:12px 15px;gap:10px}.brand{font-size:19px}.brand small{font-size:9px}.brand-mark{width:35px;height:38px;font-size:26px}.masthead nav{order:3;width:100%;justify-content:space-between;gap:2px}.masthead nav button{min-width:0;flex:1;padding:8px 5px;font-size:12px}.outline-link{font-size:10px;padding:8px}#scene-workspace{height:auto;min-height:0;max-height:none;padding-top:500px;overflow:hidden}#canvas-host{height:500px;bottom:auto}.scene-heading{top:18px;left:17px;width:220px}.scene-heading h1{font-size:25px}.scene-heading .eyebrow{font-size:9px;margin-bottom:7px}.scene-heading>p:not(.eyebrow){display:none}.mode-tag{margin-top:10px;font-size:9px}.scene-stats{top:17px;right:15px;left:auto;display:block}.scene-stats article{max-width:85px;padding-top:5px;margin-bottom:9px}.scene-stats strong{font-size:21px;margin-top:1px}.scene-stats span{font-size:9px}.scene-controls{top:385px;bottom:auto;left:15px;gap:5px}.scene-controls button{width:48px;min-height:50px;font-size:17px}.scene-controls button span{font-size:9px}.detail-card,.scenario-card,.scenario-results{position:relative;left:auto;right:auto;top:auto;width:auto;margin:0 12px 12px;border-radius:17px;max-height:none;padding:17px}.detail-card{display:grid;grid-template-columns:1fr 1fr;column-gap:15px}.detail-card>.eyebrow,.detail-card>h2,.detail-card>#detail-direction{grid-column:1}.detail-card .detail-value{grid-column:2;grid-row:1/4;margin:0;text-align:right}.detail-value strong{font-size:47px}.detail-card h2{font-size:20px}.detail-card>#detail-reading,.detail-card>#detail-boundary,.detail-card>.mini-periods,.detail-card>.detail-links,.detail-card>#detail-scope{grid-column:1/-1}.detail-card p{margin:6px 0}.scene-legend{top:449px;bottom:auto;left:15px;right:15px;max-width:none;font-size:9px}.map-caption{top:475px;bottom:auto;left:15px;font-size:8px}.map-caption small{display:none}.timeline{padding:12px 15px}.filters{gap:8px}.filters label{font-size:10px}.route-picker{width:100%}.route-picker select{max-width:none;flex:1}.corridor-buttons{width:100%}.corridor-buttons button{flex:1;font-size:10px}.time-row{gap:8px;align-items:start}.time-buttons{grid-template-columns:repeat(5,1fr);gap:4px}.time-buttons button{font-size:10px}.time-end{display:none}.play{min-width:62px;padding:8px;font-size:11px}.timeline-foot{flex-direction:column;gap:5px}footer{padding:12px 15px;flex-wrap:wrap;font-size:9px;gap:8px}footer>span:first-child{display:none}.data-panel{padding:20px 15px}.panel-heading h1{font-size:23px}.panel-heading{align-items:start}.panel-heading button{font-size:10px;white-space:nowrap}.overview-grid{grid-template-columns:repeat(2,1fr)}.overview-grid article{padding:12px}.overview-grid strong{font-size:23px}#loading,#fallback{height:500px;bottom:auto}.map-label{font-size:9px;padding:4px 6px;min-height:25px}.map-label.context{font-size:8px}.scenario-active .scene-heading{left:17px;top:18px}.scenario-active .scene-heading h1{font-size:23px}.scenario-active .scene-controls{left:15px}.scenario-active .map-caption{left:15px}.scenario-active .scene-legend{display:none}.scenario-card>h2 br{display:none}.scenario-results{margin-top:12px}.help-card{position:fixed;top:45%;font-size:12px}.time-label{font-size:9px}.time-label.group{font-size:9px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

@media(min-width:801px){.scene-heading h1{font-size:32px;line-height:1.4}.scene-heading{width:310px}.scene-stats{top:235px}.scene-heading>p:not(.eyebrow){margin-top:10px}.mode-tag{margin-top:3px}}

.detail-card .period-label{grid-column:1/-1;font-size:10px!important;margin:8px 0 0}

@media(max-width:800px){.scenario-active .map-caption{top:450px;font-size:9px;line-height:1.6}}

.live-numbers{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0;grid-column:1/-1}.live-numbers div{background:#f1f2e8;border-radius:10px;padding:10px}.live-numbers span{display:block;font-size:10px;color:var(--muted)}.live-numbers strong{font:italic 27px Georgia;color:var(--green)}#live-controls .muted{font-size:12px;line-height:1.7}#live-connection{font-size:12px}#live-detail>p{grid-column:1/-1}#live-detail>h2{grid-column:1}#live-detail .detail-value span{max-width:200px;font-size:11px}@media(max-width:800px){.masthead nav button{font-size:11px}#live-detail .detail-value strong{font-size:38px}#live-detail .detail-value span{max-width:145px}}

@media(max-width:800px){#live-detail>.eyebrow{grid-column:1;grid-row:1}#live-detail>h2{grid-column:1;grid-row:2}#live-detail>#live-direction{grid-column:1;grid-row:3}#live-detail .live-numbers{grid-row:4}}

.vd-label{background:#fff4da;border:2px solid #e66e3e;color:#542d1b;pointer-events:none}.vd-device-id{font-family:ui-monospace,monospace;font-size:15px!important;color:#237e9b}.vd-directions{display:flex;gap:5px;flex-wrap:wrap}.vd-directions button{min-height:34px;padding:6px 10px;font-size:12px}.vd-chain{display:grid;gap:5px;background:#edf3ee;border-radius:10px;padding:12px;margin:12px 0;font-size:11px;overflow-wrap:anywhere}.vd-chain strong{font-family:ui-monospace,monospace;font-size:12px}.vd-times{display:grid;grid-template-columns:90px 1fr;gap:7px;font-size:11px;line-height:1.6}.vd-times dt{color:var(--muted)}.vd-times dd{margin:0;overflow-wrap:anywhere}#vd-detail{max-height:calc(100% - 100px);overflow:auto}#vd-detail details{font-size:12px;margin-top:12px}#vd-detail summary{cursor:pointer;font-weight:600}#vd-detail a{color:#237e9b;font-size:11px}#vd-controls{font-size:12px}#vd-controls input{padding:9px;border:1px solid var(--line);border-radius:9px;max-width:210px;background:var(--paper)}#vd-controls details{margin-top:12px}#vd-sources td{overflow-wrap:anywhere;max-width:480px}#vd-table th button{white-space:nowrap}.masthead nav button{min-width:75px}@media(max-width:800px){.masthead nav button{min-width:0;font-size:10px;padding:8px 3px}#vd-detail{display:block;max-height:none}#vd-controls .filters label{width:100%}#vd-controls input{max-width:none;min-width:0;flex:1}.vd-times{grid-template-columns:110px 1fr}}

.devices-active .scene-stats article{min-width:100px}.devices-active .scene-stats strong{font-size:26px;white-space:nowrap}@media(max-width:800px){.devices-active .scene-stats article{min-width:80px}.devices-active .scene-stats strong{font-size:21px}.devices-active .scene-legend{top:449px}.devices-active .map-caption{top:486px}}

/* Keep metric units next to values in the historical analysis. */
#island-heat .traffic-metric{white-space:nowrap;font-variant-numeric:tabular-nums}#island-heat .traffic-metric strong{font-size:16px;font-weight:600}#island-heat th small{display:block;font-weight:400;color:var(--muted);margin-top:4px}.metric-guide{font-size:13px;line-height:1.8;color:var(--muted)}.metric-guide strong{color:var(--ink)}

.road-hover{position:absolute;z-index:8;pointer-events:none;background:#fffdf6f5;color:#294c40;border:1px solid #becbbb;border-radius:10px;padding:10px 12px;font-size:12px;line-height:1.7;white-space:pre-line;max-width:290px;box-shadow:0 4px 18px #253a3022}.road-coverage{position:absolute;left:28px;bottom:72px;max-width:420px;font-size:10px;line-height:1.6;color:#4c5c4e;pointer-events:none}.island-road-strip{padding:20px 30px;background:#f4f2e8}.island-road-strip .period-scroll{max-height:200px}.island-road-strip .period-intro h2{font-size:19px}.island-road-strip .period-intro p{font-size:12px}.island-road-strip>p{font-size:13px;color:#596357}@media(max-width:800px){.road-coverage{position:relative;left:auto;bottom:auto;grid-column:1/-1;max-width:none;margin:10px 15px}.island-road-strip{padding:16px}}

.history-active .scene-legend .low{background:#c7dfd0}.history-active .scene-legend .high{background:#dc947f}.history-active .scene-legend .unknown{background:#e3e6df}

.road-coverage{position:static;max-width:none;margin:0;padding:12px 30px 0;background:#f4f2e8;font-size:11px;color:#4c5c4e}@media(max-width:800px){.road-coverage{margin:0;padding:12px 16px 0}}

.vd-overlay-note{margin:0;padding:10px 30px;background:#edf4f1;color:#25647a;font-size:12px;line-height:1.7}.vd-overlay-card:not([hidden]){display:block;max-height:calc(100% - 50px);overflow:auto}.vd-overlay-close{float:right;min-width:40px;min-height:40px;font-size:22px}.vd-overlay-card .vd-directions{gap:4px}.vd-overlay-card .vd-directions button{font-size:10px;overflow-wrap:anywhere}.vd-overlay-card .vd-times dd{overflow-wrap:anywhere}.vd-overlay-reading strong{display:block;font-size:28px;color:#355f50;margin-top:8px}#vd-overlay-toggle[aria-pressed=true]{background:#dcece8;color:#237e9b}@media(max-width:800px){.vd-overlay-note{padding:10px 16px}.vd-overlay-card:not([hidden]){max-height:none}.scene-controls{gap:5px}#vd-overlay-toggle{min-width:48px}}

/* Historical commute comparison uses observations, without participation assumptions. */
#commute-panel{max-width:1150px;margin:auto}.commute-intro{font-size:15px;line-height:1.8;max-width:800px}.commute-controls{display:flex;gap:24px;flex-wrap:wrap;margin:22px 0}.commute-controls label{display:flex;align-items:center;gap:12px;font-size:13px}.commute-cards{display:grid;grid-template-columns:1fr 1fr;gap:20px}.commute-card{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:25px}.commute-card h2{margin:10px 0}.commute-card>strong{font:italic 48px Georgia;color:var(--green)}.commute-card p{margin:7px 0}.commute-card small{display:block;color:var(--muted);line-height:1.8;font-size:12px}.commute-flow{border-top:1px solid var(--line);padding:14px 0;margin-top:16px}.commute-card button{font-size:12px}.commute-finding{margin:22px 0;background:#e9eee0;padding:20px 24px;border-radius:12px;line-height:1.8}.commute-finding p,.commute-finding details{font-size:12px;margin-bottom:0}.commute-strip-title{font-size:18px}.commute-strip{display:flex;gap:6px;overflow:auto;padding:5px 2px 14px}.commute-strip button{flex:0 0 78px;border:2px solid transparent;border-radius:10px;padding:12px 4px;line-height:1.6;color:#294d40}.commute-strip button[aria-pressed=true]{border-color:var(--green)}.commute-strip small{display:block;font-size:10px}.commute-strip b{display:block;font-size:15px;margin-top:6px}.commute-uses{border-top:1px solid var(--line);margin-top:20px;padding-top:10px;font-size:13px;line-height:1.8}.commute-uses button{font-size:12px}.commute-uses+.boundary{font-size:13px;line-height:1.8}#commute-panel>.muted{font-size:12px;line-height:1.8}
@media(max-width:800px){.commute-cards{gap:10px}.commute-card{padding:14px;min-width:0}.commute-card h2{font-size:17px}.commute-card>strong{font-size:35px}.commute-card small{font-size:11px}.commute-controls{gap:10px}.commute-controls label{flex-wrap:wrap}.commute-controls select{max-width:100%}.commute-finding{padding:15px}.commute-intro{font-size:13px}}

.company-commute{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:24px;margin:20px 0 32px}.company-commute>h2{font-size:24px;margin:8px 0}.company-commute>p{font-size:13px;line-height:1.8}#company-form{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin:20px 0}#company-form label{display:flex;flex-direction:column;gap:6px;font-size:12px}#company-form input{width:145px;min-height:42px;border:1px solid var(--line);border-radius:9px;padding:9px;background:#fafaf3;font:inherit;color:var(--ink)}#company-form select{min-height:42px}#company-form button{font-size:12px}#company-error{color:#953f63}.company-empty{padding:18px;background:#f1f1e6;border-radius:10px}.company-recommendation{border-left:4px solid var(--green);background:#e9eee0;border-radius:10px;padding:18px;margin:16px 0}.company-recommendation[data-status=DISCUSS_FLEX]{border-color:#b56845;background:#f6e7d8}.company-recommendation strong{font-size:19px}.company-recommendation p,.company-basis{font-size:12px;line-height:1.8}.company-sectors{display:grid;grid-template-columns:1fr 1fr;gap:14px}.company-sector{border:1px solid var(--line);border-radius:12px;padding:16px;min-width:0}.company-sector>header{display:flex;align-items:center;justify-content:space-between;gap:10px}.company-sector h3{font-size:22px;margin:0}.company-sector header span,.company-sector small{font-size:11px;color:var(--muted);line-height:1.8}.company-sector small{display:block}.company-road{border-top:1px solid var(--line);padding-top:12px;margin:12px 0}.company-road h4{font-size:14px;margin:0 0 5px}.company-road p,.company-sector>.muted{font-size:12px;line-height:1.8}.company-hot-slots{display:flex;flex-wrap:wrap;gap:5px;margin:9px 0}.company-hot-slots button{font-size:10px;display:flex;flex-direction:column;gap:4px;padding:7px;background:#f0eee3}.company-hot-slots button.overlap{background:#edc9ac;border-color:#b56845}.company-hot-slots b{font-size:14px}.company-pick-notice{position:absolute;z-index:12;top:15px;left:50%;transform:translateX(-50%);width:min(560px,90%);padding:12px 18px;background:#fff5dd;border:1px solid #b89767;border-radius:12px;font-size:13px;box-shadow:0 4px 30px #0002}.company-pick-notice button{margin-left:12px}.company-map-label{pointer-events:none;background:#953f63;color:white}
@media(max-width:800px){.company-commute{padding:15px}.company-commute>h2{font-size:20px}.company-sectors{grid-template-columns:1fr}#company-form label{max-width:100%}#company-form input{max-width:100%}.company-recommendation strong{font-size:16px}.company-pick-notice{font-size:12px}}
/* Live monitor: give the island a clear central viewport and keep the legend
   in its own strip. Road colours never sit beneath an opaque legend or card. */
body:is(.live-active,.history-active){background:#f2f2e8}
#scene-workspace:is(.live-active,.history-active){height:calc(100dvh - 154px);min-height:640px;max-height:none;background:radial-gradient(ellipse at 52% 45%,#fafaf2,#e8eade)}
:is(.live-active,.history-active) #canvas-host{inset:88px 318px 86px 258px}:is(.live-active,.history-active) .scene-heading{left:24px;top:18px;width:470px}:is(.live-active,.history-active) .scene-heading .eyebrow{font-size:9px;margin-bottom:5px;letter-spacing:1.8px}:is(.live-active,.history-active) .scene-heading h1{font-size:25px;line-height:1.25;letter-spacing:1px}:is(.live-active,.history-active) .scene-heading>p:not(.eyebrow){display:none}:is(.live-active,.history-active) .scene-heading .mode-tag{font-size:10px;border:0;padding:0;background:none;margin-top:7px}:is(.live-active,.history-active) .scene-stats{top:20px;left:auto;right:24px;gap:24px}:is(.live-active,.history-active) .scene-stats article{border:0;padding-top:0;min-width:86px;max-width:none}:is(.live-active,.history-active) .scene-stats strong{font:500 23px ui-monospace,monospace;margin-top:4px;letter-spacing:-1px}:is(.live-active,.history-active) .scene-stats span{font-size:9px}:is(.live-active,.history-active) .scene-controls{left:274px;bottom:101px;gap:5px}:is(.live-active,.history-active) .scene-controls button{width:48px;min-height:48px;font-size:17px}:is(.live-active,.history-active) .scene-controls button span{font-size:9px}:is(.live-active,.history-active) .map-caption{bottom:20px;left:24px;font-size:9px;max-width:230px;line-height:1.6}:is(.live-active,.history-active) .map-caption small{font-size:8px}:is(.live-active,.history-active) #loading,:is(.live-active,.history-active) #fallback{inset:88px 318px 86px 258px;height:auto}
.live-road-panel{position:absolute;left:16px;top:98px;bottom:92px;width:226px;z-index:4;border:1px solid #d6decd;background:#fffdf7f2;border-radius:16px;box-shadow:0 8px 30px #314a3210;overflow:hidden;display:flex;flex-direction:column}.live-list-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;border:0;border-bottom:1px solid #e0e4d7;border-radius:0;background:transparent;padding:14px 15px;font-size:13px;font-weight:650;text-align:left}.live-list-toggle b{display:inline-block;font:500 11px ui-monospace,monospace;background:#e6eddf;border-radius:5px;padding:3px 6px;margin-left:5px;color:#3d6451}.live-collapse-icon{font-size:18px;font-weight:400}.live-road-panel :is(#live-road-content,#history-road-content){min-height:0;overflow:auto;overscroll-behavior:contain;padding:12px}.live-search-label{display:block;font-size:10px;color:#586858;margin-bottom:6px}.live-search{position:relative}.live-search input{width:100%;min-width:0;border:1px solid #cfd8c6;border-radius:9px;background:#f6f7ef;padding:10px 26px 10px 10px;font-size:12px;color:var(--ink)}.live-search input::-webkit-search-cancel-button{display:none}.live-search button{position:absolute;right:2px;top:2px;min-height:31px;min-width:26px;border:0;padding:3px;font-size:18px;background:transparent}.live-road-panel :is(#live-road-count,#history-road-count){font-size:10px;margin:9px 1px}.live-road-group{margin:3px 0;border-bottom:1px solid #e8ebdf}.live-road-group summary{display:flex;align-items:center;justify-content:space-between;gap:5px;list-style:none;padding:10px 3px;font-size:12px;font-weight:600}.live-road-group summary::-webkit-details-marker{display:none}.live-road-group summary:before{content:'›';font:18px Georgia;color:#758c77;flex:none}.live-road-group[open] summary:before{transform:rotate(90deg)}.live-road-group summary>span{flex:1;min-width:0;overflow-wrap:anywhere}.live-road-group summary small{font-size:9px;font-weight:400;color:#748071;white-space:nowrap}.live-road-option{width:100%;min-height:46px;display:flex;gap:8px;align-items:center;border:1px solid transparent;background:transparent;padding:7px 5px;margin-bottom:4px;border-radius:8px;text-align:left}.live-road-option:hover{background:#eff2e7}.live-road-option[aria-pressed=true]{background:#e6eddf;border-color:#a9bca4;color:var(--ink)}.live-route-dot{width:8px;height:17px;border-radius:3px;flex:none}.live-route-copy{flex:1;min-width:0}.live-route-copy strong{display:block;font-size:11px;font-weight:600}.live-route-copy small{display:block;font:9px ui-monospace,monospace;color:#6a7968;margin-top:3px}.live-route-reading{font-size:9px;color:#596d5a;max-width:76px;line-height:1.5;text-align:right}.live-list-note{font-size:9px;line-height:1.7;color:#7c8477;margin:12px 0 3px}.monitor-list-collapsed .live-road-panel{bottom:auto}.monitor-list-collapsed #canvas-host{left:16px}.monitor-list-collapsed .scene-controls{left:24px}
:is(.live-active,.history-active) :is(#live-detail,#detail-card){right:16px;top:98px;bottom:92px;width:286px;max-height:none;padding:18px;border:1px solid #fff;border-radius:16px;display:block;overflow:auto}.live-detail-heading{display:flex;justify-content:space-between;align-items:start;gap:8px}.live-detail-heading .eyebrow{font-size:8px;letter-spacing:1.3px;margin:3px 0 9px}.live-detail-heading button{border:0;background:none;min-height:25px;width:25px;flex:none;padding:0;font-size:22px;margin-top:-5px}:is(.live-active,.history-active) :is(#live-detail,#detail-card) h2{font-size:22px;line-height:1.4;margin:0 0 4px;letter-spacing:.5px}:is(.live-active,.history-active) #live-direction{font-size:11px;margin:0 0 13px}.live-status{border-radius:7px;padding:7px 9px;font-size:12px;font-weight:600;background:color-mix(in srgb,var(--status-color) 13%,#fffdf7);color:#344037;border-left:4px solid var(--status-color)}:is(.live-active,.history-active) :is(#live-detail,#detail-card) .detail-value{margin:15px 0 9px;display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;text-align:left}:is(.live-active,.history-active) :is(#live-detail,#detail-card) .detail-value strong{font:500 49px ui-monospace,monospace;letter-spacing:-3px;line-height:1}:is(.live-active,.history-active) :is(#live-detail,#detail-card) .detail-value span{font-size:10px;max-width:130px;line-height:1.6}.live-grade-basis{font-size:9px!important;line-height:1.65!important;color:#7a806f;margin:5px 0 12px!important}:is(.live-active,.history-active) .live-numbers{gap:8px;margin:12px 0}:is(.live-active,.history-active) .live-numbers div{padding:10px;background:#edf1e7;border:1px solid #e4eadc}:is(.live-active,.history-active) .live-numbers strong{font:500 25px ui-monospace,monospace;display:block;margin:5px 0}:is(.live-active,.history-active) .live-numbers small{font-size:8px;color:#6e7d69}:is(.live-active,.history-active) #live-reading{font-size:10px;line-height:1.8;margin:12px 0}.live-metadata{display:grid;grid-template-columns:1fr;gap:4px;margin:13px 0}.live-metadata dt{font-size:9px;font-weight:600;color:#7e8778;margin-top:8px}.live-metadata dd{font-size:10px;line-height:1.7;margin:0;overflow-wrap:anywhere;word-break:break-word}:is(.live-active,.history-active) #live-geometry{font-size:9px!important;line-height:1.7!important;margin:12px 0}.live-animation-note{font-size:9px!important;line-height:1.75!important;color:#7c8274;border-top:1px solid #dfe6d8;padding-top:11px;margin-bottom:0}
:is(.live-active,.history-active) #scene-legend{position:absolute;left:274px;right:16px;bottom:14px;top:auto;max-width:none;min-height:55px;padding:11px 14px;background:#fffdf7e6;border:1px solid #e0e5d7;border-radius:11px;display:block;color:#4e6050;font-size:10px}.live-legend-colors{display:flex;flex-wrap:wrap;gap:9px 18px}.live-legend-colors>span{white-space:nowrap}:is(.live-active,.history-active) #scene-legend i{width:20px;height:5px;border-radius:2px;vertical-align:middle;margin-right:5px}:is(.live-active,.history-active) #scene-legend p{font-size:9px;line-height:1.6;margin:6px 0 0;color:#74816e}:is(.live-active,.history-active) #scene-legend p span{display:inline}.live-source-strip{padding:12px 24px;background:#fbfcf5}.live-connection-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.live-connection-row>div:first-child{flex:1;min-width:200px;display:flex;align-items:center;gap:7px}.live-source-dot{width:6px;height:6px;flex:none;border-radius:50%;background:#63866c}.live-source-strip #live-connection{font-size:10px;line-height:1.7;color:#667760}.live-source-strip #live-refresh{font-size:11px;min-height:33px;padding:6px 10px;background:#eff3e8;border-color:#d3dfcb}.live-source-details{margin:0;position:relative;font-size:11px}.live-source-details>summary{font-size:10px;color:#667760;padding:6px 0}.live-source-details[open]{width:100%;order:4}.live-source-details[open]>summary{font-weight:600}.live-source-details p{max-width:1050px;font-size:11px;line-height:1.9}.live-source-details .table-scroll{margin:12px 0;max-height:290px}.live-source-details table{font-size:10px;min-width:680px}
@media(min-width:801px) and (max-width:1150px){:is(.live-active,.history-active) #canvas-host{left:224px;right:278px}.live-road-panel{width:196px;left:14px}:is(.live-active,.history-active) :is(#live-detail,#detail-card){width:250px;right:14px;padding:15px}:is(.live-active,.history-active) .scene-controls,:is(.live-active,.history-active) #scene-legend{left:238px}:is(.live-active,.history-active) .map-caption{left:20px;max-width:195px}:is(.live-active,.history-active) .scene-stats{gap:15px;right:20px}:is(.live-active,.history-active) .scene-stats strong{font-size:20px}:is(.live-active,.history-active) .scene-heading{left:20px;width:330px}:is(.live-active,.history-active) .scene-heading h1{font-size:23px}:is(.live-active,.history-active) #loading,:is(.live-active,.history-active) #fallback{left:224px;right:278px}.monitor-list-collapsed #canvas-host{left:14px}.monitor-list-collapsed .scene-controls{left:24px}}
@media(max-width:800px){body{overflow-x:hidden}:is(.live-active,.history-active) #scene-workspace{padding-top:0;height:auto;min-height:0;max-height:none;display:flex;flex-direction:column;overflow:hidden}:is(.live-active,.history-active) .scene-heading{position:relative;top:auto;left:auto;right:auto;order:0;height:91px;min-height:91px;width:100%;padding:15px 16px 10px}:is(.live-active,.history-active) .scene-heading .eyebrow{font-size:8px;letter-spacing:1.6px;margin-bottom:5px}:is(.live-active,.history-active) .scene-heading h1{font-size:23px;line-height:1.2}:is(.live-active,.history-active) .scene-heading .mode-tag{font-size:9px;margin-top:6px}:is(.live-active,.history-active) .scene-stats{display:none}:is(.live-active,.history-active) #canvas-host{position:relative;inset:auto;order:1;flex:none;width:100%;height:440px}:is(.live-active,.history-active) .scene-controls{left:13px;top:467px;bottom:auto;gap:5px}:is(.live-active,.history-active) .scene-controls button{width:44px;min-height:45px;font-size:16px;padding:5px 2px}:is(.live-active,.history-active) .scene-controls button span{font-size:8px}:is(.live-active,.history-active) #scene-legend{position:relative;inset:auto;order:2;max-width:none;min-height:0;margin:0 12px 9px;padding:11px 12px;border-radius:11px;width:auto}.live-legend-colors{gap:9px 13px;font-size:9px}:is(.live-active,.history-active) #scene-legend i{width:16px;margin-right:4px}:is(.live-active,.history-active) #scene-legend p{font-size:8px;margin-top:7px}:is(.live-active,.history-active) #scene-legend p span{display:block;margin-top:2px}:is(.live-active,.history-active) .map-caption{position:relative;inset:auto;order:3;margin:0 16px 12px;max-width:none;font-size:8px;line-height:1.6}:is(.live-active,.history-active) .map-caption small{display:block;font-size:7px}.live-road-panel{position:relative;inset:auto;order:4;width:auto;margin:0 12px 12px;border-radius:13px;max-height:390px}.live-road-panel :is(#live-road-content,#history-road-content){max-height:330px;padding:10px 12px}.live-list-toggle{font-size:12px;padding:11px 13px;min-height:45px}.live-road-group summary{font-size:12px;min-height:42px;padding:8px 3px}.live-road-option{min-height:46px}.live-route-copy strong{font-size:12px}.live-route-copy small,.live-route-reading{font-size:10px}.live-search input{font-size:14px}:is(.live-active,.history-active) :is(#live-detail,#detail-card){position:relative;inset:auto;order:5;width:auto;margin:0 12px 13px;padding:17px;max-height:none;display:block;overflow:visible;border-radius:14px}:is(.live-active,.history-active) :is(#live-detail,#detail-card) h2{font-size:22px}:is(.live-active,.history-active) :is(#live-detail,#detail-card) .detail-value{display:flex;gap:12px;margin:14px 0}:is(.live-active,.history-active) :is(#live-detail,#detail-card) .detail-value strong{font-size:44px}:is(.live-active,.history-active) :is(#live-detail,#detail-card) .detail-value span{max-width:none;font-size:11px}:is(.live-active,.history-active) .live-numbers{margin:12px 0}:is(.live-active,.history-active) .live-numbers strong{font-size:26px}:is(.live-active,.history-active) .live-numbers span{font-size:11px}:is(.live-active,.history-active) .live-numbers small{font-size:9px}:is(.live-active,.history-active) #live-reading{font-size:11px}.live-metadata{grid-template-columns:74px minmax(0,1fr);gap:9px 11px}.live-metadata dt{font-size:10px;margin-top:0}.live-metadata dd{font-size:11px}.live-grade-basis,:is(.live-active,.history-active) #live-geometry,.live-animation-note{font-size:10px!important}.live-source-strip{padding:11px 15px}.live-connection-row{gap:8px}.live-connection-row>div:first-child{min-width:0;flex-basis:calc(100% - 105px)}.live-source-strip #live-connection{font-size:9px}.live-source-details{width:100%;margin:0}.live-source-details p{font-size:10px}:is(.live-active,.history-active) #loading,:is(.live-active,.history-active) #fallback{inset:91px 0 auto;height:440px}:is(.live-active,.history-active) footer{padding:10px 15px}:is(.live-active,.history-active) .map-label{font-size:9px;padding:4px 7px}:is(.live-active,.history-active) .help-card{position:fixed}.monitor-list-collapsed .live-road-panel{inset:auto}.monitor-list-collapsed #canvas-host{left:auto}.monitor-list-collapsed .scene-controls{left:13px}}
@media(min-width:1600px){:is(.live-active,.history-active) #canvas-host{left:274px;right:338px}.live-road-panel{width:240px;left:18px}:is(.live-active,.history-active) :is(#live-detail,#detail-card){width:304px;right:18px}:is(.live-active,.history-active) .scene-controls,:is(.live-active,.history-active) #scene-legend{left:290px}}

/* Reading text remains legible when the monitoring card needs to scroll. */
:is(.live-active,.history-active) :is(#live-detail,#detail-card) .live-grade-basis,:is(.live-active,.history-active) :is(#live-detail,#detail-card) #live-reading,:is(.live-active,.history-active) :is(#live-detail,#detail-card) #live-geometry,:is(.live-active,.history-active) :is(#live-detail,#detail-card) .live-animation-note{font-size:11px!important;line-height:1.75!important}:is(.live-active,.history-active) :is(#live-detail,#detail-card) .live-metadata dt{font-size:10px}:is(.live-active,.history-active) :is(#live-detail,#detail-card) .live-metadata dd{font-size:11px}:is(.live-active,.history-active) #scene-legend p{font-size:10px}:is(.live-active,.history-active) :is(#live-detail,#detail-card) .live-numbers small{font-size:9px}:is(.live-active,.history-active) :is(#live-detail,#detail-card) .live-numbers span{font-size:11px}
@media(max-width:800px){:is(.live-active,.history-active) #scene-legend p{font-size:9px}}

/* Keep the complete island and road search within a phone screen. */
@media(max-width:800px){:is(.live-active,.history-active) #canvas-host{height:350px}:is(.live-active,.history-active) .scene-controls{top:377px}:is(.live-active,.history-active) #loading,:is(.live-active,.history-active) #fallback{height:350px}.live-road-panel{max-height:300px}.live-road-panel :is(#live-road-content,#history-road-content){max-height:240px}}


/* Map toolbar: pressed toggles stay legible; zoom and pan sit beside 全景／鳥瞰. */
.scene-controls button[aria-pressed=true]{background:var(--green);border-color:var(--green);color:#fff}
.scene-controls :is(.nav-zoom,.nav-pad){display:grid;gap:2px;padding:2px;border:1px solid var(--line);border-radius:10px;background:#fffdf7db;backdrop-filter:blur(14px)}
.scene-controls .nav-zoom{width:42px;grid-template-rows:1fr 1fr}
.scene-controls .nav-pad{width:100px;grid-template-columns:repeat(3,1fr);grid-template-rows:1fr 1fr;grid-template-areas:". up ." "left down right"}
.scene-controls :is(.nav-zoom,.nav-pad) button{width:auto;min-height:0;padding:0;border:0;border-radius:7px;background:transparent;backdrop-filter:none;display:grid;place-items:center;font-size:18px;line-height:1;color:var(--green);touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.scene-controls .nav-pad button{font-size:11px}
.scene-controls :is(.nav-zoom,.nav-pad) button:hover{background:var(--yellow)}
.scene-controls :is(.nav-zoom,.nav-pad) button:active{background:#dfe8d8}
.nav-pad [data-pan=up]{grid-area:up}.nav-pad [data-pan=left]{grid-area:left}.nav-pad [data-pan=down]{grid-area:down}.nav-pad [data-pan=right]{grid-area:right}
:is(.live-active,.history-active) .scene-controls .nav-zoom{width:38px}:is(.live-active,.history-active) .scene-controls .nav-pad{width:90px}
#canvas-host canvas{cursor:grab}#canvas-host canvas:active{cursor:grabbing}
.scene-controls button span{white-space:nowrap}
@media(min-width:801px) and (max-width:1150px){:is(.live-active,.history-active) .scene-controls{gap:4px}:is(.live-active,.history-active) .scene-controls>button{width:42px;padding-inline:1px}:is(.live-active,.history-active) .scene-controls .nav-zoom{width:34px}:is(.live-active,.history-active) .scene-controls .nav-pad{width:76px}}
@media(max-width:800px){.scene-controls .nav-zoom,:is(.live-active,.history-active) .scene-controls .nav-zoom{width:36px}.scene-controls .nav-pad,:is(.live-active,.history-active) .scene-controls .nav-pad{width:84px}}

/* Phone road card: anchored beside the selected road by the 3D scene. */
.map-popover{pointer-events:auto;width:224px;padding:10px 12px;background:#fffdf7;border:1px solid #cfd8c6;border-radius:13px;box-shadow:0 10px 28px #2542392e;color:var(--ink);font-size:11px;line-height:1.45;text-align:left;white-space:normal}
.map-popover:after{content:'';position:absolute;left:var(--arrow-x,50%);bottom:-7px;width:12px;height:12px;margin-left:-6px;background:#fffdf7;border:solid #cfd8c6;border-width:0 1px 1px 0;transform:rotate(45deg)}
.map-popover.below:after{bottom:auto;top:-7px;border-width:1px 0 0 1px}
.map-popover.detached:after{display:none}
.map-popover>strong{display:block;font-size:14px;line-height:1.35;padding-right:28px}
.map-popover-close{position:absolute;top:2px;right:2px;width:32px;min-height:32px;padding:0;border:0;border-radius:8px;background:transparent;font-size:19px;line-height:1;color:var(--muted)}
.map-popover-meta{margin:4px 0 0;font-size:10px;color:var(--muted)}
.map-popover-status{display:inline-block;margin-right:6px;padding:1px 6px;border-left:3px solid var(--status-color);border-radius:4px;background:#f0f3e9;font-weight:650;color:var(--ink)}
.map-popover-values{display:flex;align-items:baseline;gap:4px;margin:5px 0 0;font-size:10px;color:#5d6a5c}
.map-popover-values b{font:500 22px/1.1 ui-monospace,monospace;letter-spacing:-1px}
.map-popover-values span{margin-left:auto}
.map-popover-more{width:100%;min-height:30px;margin-top:7px;padding:4px 10px;border-radius:8px;font-size:11px}
@media(min-width:801px){.map-popover{display:none!important}}

/* Month of weekday mornings per road: jam-prone slots, bars and the honest speed note. */
.live-history{margin:14px 0 12px;padding:12px;border:1px solid #e4eadc;border-radius:11px;background:#f6f7ef}
.live-history h3{margin:0;font-size:13px}
.live-history-range{margin:3px 0 9px;font-size:10px;color:var(--muted)}
.live-history ol{display:grid;gap:7px;margin:0 0 11px;padding:0;list-style:none}
.live-history li{display:grid;grid-template-columns:auto 1fr;column-gap:8px;align-items:baseline;font-size:11px}
.live-history li strong{font:600 13px ui-monospace,monospace;color:#9a4a33}
.live-history li span{text-align:right;font-weight:650}
.live-history li small{grid-column:1/-1;font-size:10px;color:var(--muted)}
.live-history li.muted{display:block;line-height:1.6}
.live-history-bars{display:flex;align-items:flex-end;gap:3px;height:46px;border-bottom:1px solid #d9dfd0}
.live-history-bars i{flex:1;border-radius:3px 3px 0 0}
.live-history-axis{display:flex;justify-content:space-between;margin-top:3px;font:9px ui-monospace,monospace;color:#7c8477}
.live-history-speed{margin:9px 0 0;font-size:11px;line-height:1.7}
.map-popover-history{margin-top:8px;padding-top:7px;border-top:1px solid #e3e7da;font-size:10px}
.map-popover-history>b{display:block;margin-bottom:3px;font-size:10px;color:#5d6a5c}
.map-popover-history ol{margin:0;padding:0;list-style:none}
.map-popover-history li{display:flex;justify-content:space-between;gap:6px}
.map-popover-history li strong{font:600 11px ui-monospace,monospace;color:#9a4a33}
.map-popover-history p{margin:3px 0 0;line-height:1.5;color:#5d6a5c}

/* Toolbar with VD 測點 plus zoom/pan groups: wrap on narrow tablets, tighten on phones. */
@media(min-width:801px) and (max-width:1150px){:is(.live-active,.history-active) .scene-controls{flex-wrap:wrap;max-width:calc(100vw - 530px)}}
@media(max-width:800px){.scene-controls,:is(.live-active,.history-active) .scene-controls{gap:4px}.scene-controls>button,:is(.live-active,.history-active) .scene-controls>button,#vd-overlay-toggle{width:40px;min-width:0;padding-inline:1px}.scene-controls .nav-zoom,:is(.live-active,.history-active) .scene-controls .nav-zoom{width:34px}.scene-controls .nav-pad,:is(.live-active,.history-active) .scene-controls .nav-pad{width:76px}}

.quality-sources{margin-top:24px}.quality-sources>h2{font-size:24px;margin:10px 0}.quality-sources>p{font-size:13px;line-height:1.8;max-width:1050px}.api-source-grid,.quality-gap-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0}.api-source-card,.quality-gap-grid article{background:var(--paper);padding:20px;border:1px solid var(--line);border-radius:14px;min-width:0}.api-source-card h3,.quality-gap-grid h3{font-size:17px;margin:5px 0 10px}.api-source-card p,.quality-gap-grid p{font-size:12px;line-height:1.8}.api-source-card small,.quality-gap-grid small{display:block;color:var(--muted);font-size:11px;line-height:1.8}.source-badge{display:inline-block;background:#e7ede1;color:var(--green);padding:4px 9px;border-radius:12px;margin:0 0 8px!important}.quality-sources code{display:block;font-size:11px;line-height:1.8;overflow-wrap:anywhere;word-break:break-word;background:#f1f1e8;padding:8px 10px;border-radius:6px;margin:8px 0}.quality-sources .source-official{font-size:11px;color:var(--muted)}.source-secondary{border:1px solid var(--line);border-radius:12px;padding:15px 20px;background:#f8f8ef}.source-secondary article{border-top:1px solid var(--line);padding-top:10px;margin-top:15px}.source-secondary h3{font-size:15px}.source-endpoints{padding-left:20px}.source-endpoints li{margin:12px 0}.quality-sources .quality-gap-title{margin-top:30px}.gap-effect{padding:10px 12px;background:#e9eee0;border-radius:8px}.source-session{padding:12px 16px;background:#edeedf;border-radius:10px}
@media(max-width:800px){.api-source-grid,.quality-gap-grid{grid-template-columns:1fr}.api-source-card,.quality-gap-grid article{padding:16px}.quality-sources>h2{font-size:21px}.source-secondary{padding:12px}}

/* Pick the ground beneath labels while choosing a company location. */
#canvas-host.company-picking .map-label{pointer-events:none}

.history-active #scene-legend{display:flex;flex-wrap:wrap;align-content:center;gap:6px 12px}

#company-form .company-location{flex:1 0 100%;min-width:0}.company-search-row{display:flex;gap:8px;margin-top:7px}.company-search-row input{flex:1;min-width:0;width:auto!important}.company-search-note,#company-selected-location,#company-search-status{font-size:12px;line-height:1.7;margin:8px 0}.company-search-note{color:var(--muted)}#company-search-results{display:grid;gap:8px;width:100%}#company-search-results button{display:grid;gap:5px;text-align:left;white-space:normal;overflow-wrap:anywhere;background:#f4f6ec;padding:12px 16px}#company-search-results span{font-size:12px}#company-search-results small{font-size:11px;color:var(--muted)}#company-selected-location{border-left:3px solid var(--green);padding:8px 12px;background:#edf1e6}@media(max-width:800px){.company-search-row{flex-wrap:wrap}.company-search-row input{flex-basis:100%}.company-search-row button{width:100%}}

/* Softer studio backdrop for the clay model; observation colours stay unchanged. */
#scene-workspace:is(.live-active,.history-active){background:radial-gradient(ellipse at 52% 45%,#fffaf1,#efe8d9)}
:is(.live-active,.history-active) #canvas-host{border-radius:24px;overflow:hidden}
:is(.live-active,.history-active) .scene-controls{flex-wrap:wrap;max-width:calc(100% - 610px)}
@media(min-width:801px) and (max-width:1150px){:is(.live-active,.history-active) .scene-controls{max-width:calc(100% - 520px)}}
@media(max-width:800px){:is(.live-active,.history-active) #canvas-host{border-radius:18px}:is(.live-active,.history-active) .scene-controls{max-width:calc(100% - 26px);gap:3px}.scene-controls>button,:is(.live-active,.history-active) .scene-controls>button{width:36px;min-height:43px}.scene-controls .nav-pad,:is(.live-active,.history-active) .scene-controls .nav-pad{width:67px}}
