/* Road-first workspace. Keep document scrolling natural at laptop heights. */
html{scrollbar-gutter:stable}
.studio-page{--green:#73ceca;--green-ink:#236563;--ink:#23332d;--border:#dee7e7;background:#f3f7f7}
.studio-page .workspace{max-width:2048px;padding:24px 28px 14px}
.studio-page .app-header{height:72px;border-top:3px solid var(--green);gap:60px}
.studio-page .page-heading{margin-bottom:20px}
.studio-page .page-heading p{font-size:12px;color:#5e7271}
.studio-page h1{font-size:30px;font-weight:600;letter-spacing:-1px}
.studio-page .eyebrow{color:#5a7876;font-size:9px;letter-spacing:1.5px}
.studio-page .kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:18px}
.studio-page .kpi{padding:14px 16px 12px;border-radius:10px;min-width:0;position:relative;box-shadow:none}
.studio-page .kpi:first-child{border-color:#90d5d2;background:linear-gradient(115deg,#e3fffe,#fff 80%)}
.studio-page .kpi-label{font-size:11px;gap:8px;color:#4d6564;line-height:1.4}
.studio-page .kpi-label svg{width:15px;height:15px;color:#5b9a97}
.studio-page .kpi-value{font-size:29px;font-weight:550;letter-spacing:-.7px;margin-top:10px;line-height:1.1}
.studio-page .kpi-value small{font-size:10px;letter-spacing:0;margin-left:5px;color:#607877}
.studio-page .kpi-foot{font-size:9px;margin-top:8px;line-height:1.4;white-space:normal;color:#5a7675}
.studio-page .workspace-grid{grid-template-columns:minmax(0,1fr) 322px;gap:18px;align-items:start}
.studio-page .visual-column{min-width:0;display:flex;flex-direction:column;gap:18px}
.studio-page .scene-card{border-radius:12px;border-color:#d2e5e4;box-shadow:0 5px 22px #143d3b06;overflow:hidden}
.studio-page .scene-canvas{height:clamp(620px,74vh,1000px);background:#ebf4f4}
.studio-page .scene-top{gap:14px;left:18px;right:18px;top:16px;align-items:flex-start}
.studio-page .scene-top>div:first-child{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.studio-page .scene-live{padding:7px 9px;border:1px solid #c5e8e6;background:#f4fffeed;border-radius:5px;font-size:9px;letter-spacing:.9px;white-space:nowrap;color:#276d6a}
.studio-page .scene-coordinate{background:#ffffffe0;color:#557170;padding:5px 7px;border-radius:4px;font-size:8px}
.studio-page .scene-top-actions{background:#fffffff0;backdrop-filter:blur(8px);border:1px solid #d8e9e8;border-radius:7px;padding:4px 7px;gap:8px;color:#4b6362;font-size:10px;flex-shrink:0}
.studio-page .scene-card[data-night=true] .scene-top-actions{background:#20333de8;border-color:#465c62;color:#e0e9e9}
.studio-page .scene-card[data-night=true] .scene-live{background:#1c3437df;border-color:#597d7b;color:#b4f3f0}
.studio-page .scene-card[data-night=true] .scene-coordinate{background:#1c3437df;color:#d3dfde}
.studio-page .lighting-button{background:#e6f9f8;color:#316360;border-color:#cbeae8;min-height:29px}
.studio-page .scene-canvas>.scene-caption{bottom:17px;left:17px;right:auto;max-width:calc(100% - 34px);padding:7px 10px;background:#fffffff0;border:1px solid #dcebea;border-radius:5px}
.studio-page .scene-card[data-night=true] .scene-caption{background:#1d333bdc;border-color:#536c65}
.studio-page .location-pin{font-size:9px;letter-spacing:.5px;color:#436b69;flex-wrap:wrap;gap:6px}
.studio-page .camera-bar{min-height:54px;padding:7px 12px;gap:10px;align-items:center;background:#fff;border-top:2px solid var(--green)}
.studio-page .camera-presets{gap:4px;flex-wrap:wrap}
.studio-page .camera-view{padding:8px 9px;font-size:10px;color:#476261;gap:6px;min-height:32px}
.studio-page .camera-view.active{background:#ccfaf8;border-color:#81dcd7;color:#1c5c59}
.studio-page .camera-view svg{width:13px;height:13px}
.studio-page .canvas-hint{font-size:9px;min-height:31px;line-height:1.5;padding:7px 12px;color:#5b7776;border-top:1px solid #ebf3f3;flex-wrap:wrap}
.studio-page .control-column{display:flex;flex-direction:column;gap:14px;max-height:none;min-height:0;overflow:visible;padding:0;position:static}
.studio-page .panel{padding:18px;border-radius:10px;box-shadow:none;min-width:0}
.studio-page .panel h2{font-size:14px;font-weight:600;letter-spacing:-.2px}
.studio-page .section-heading{margin-bottom:16px;gap:12px;align-items:center}
.studio-page .control-panel{border-top:3px solid var(--green)}
.studio-page .field-label{font-size:10px;letter-spacing:1px;margin-top:17px;margin-bottom:7px}
.studio-page select,.studio-page input[type=number]{font-size:11px;min-height:37px;color:#3a5352;border-color:#d4e5e4;background:#fbfdfd}
.studio-page .dataset-detail{font-size:10px;line-height:1.7;margin-top:8px;color:#51706e;overflow-wrap:anywhere}
.studio-page .segmented{margin-top:4px}
.studio-page .segmented button{font-size:11px;min-height:34px}
.studio-page .segmented button.active{box-shadow:inset 0 -2px var(--green);color:#1e5552}
.studio-page .playback-controls{margin-top:15px}
.studio-page .button{font-size:11px;min-height:36px;gap:7px;border-radius:6px}
.studio-page .button.primary{background:var(--green);border-color:#2dd5cd;color:#0e3e3c;font-weight:600;box-shadow:0 2px 0 #39b9b315}
.studio-page .button.primary:hover{background:#2bede3}
.studio-page .button.dark{background:#263c3b;border-color:#263c3b;color:#dbfffd}
.studio-page .status-badge{font-size:8px;letter-spacing:.6px;padding:5px 7px;white-space:nowrap}
.studio-page .status-badge.live{background:#cffbf9;color:#216360;border-color:#ade8e5}
.studio-page .speed-label{font-size:11px;margin-top:18px}
.studio-page .checkbox{font-size:10px;align-items:flex-start;margin:17px 0}
.studio-page .checkbox small{font-size:9px}
.studio-page .status-message{font-size:10px;line-height:1.6;margin-top:9px}
.studio-page .signal-display{gap:10px}
.studio-page .signal-display>div:nth-child(2){min-width:0}
.studio-page .signal-display>div:nth-child(2) span{font-size:10px;line-height:1.5}
.studio-page #signalCountdown{font-size:25px;flex-shrink:0}
.studio-page .weather-buttons{gap:7px;margin-bottom:13px}
.studio-page .weather-buttons button{font-size:10px;padding:11px 0;gap:7px}
.studio-page .weather-buttons button.active{background:#cffffd;border-color:#8bdfdb;color:#2b6865}
.studio-page .panel-bottom-actions{gap:12px;flex-wrap:wrap}
.studio-page .text-button{font-size:10px;color:#2d6a67;line-height:1.5}
.studio-page .text-button svg{width:12px;height:12px}
.studio-page .traffic-pulse{padding:20px 22px 15px;border-radius:10px;min-height:250px;box-shadow:none;flex:none}
.studio-page .traffic-pulse .section-heading{margin-bottom:16px;flex-wrap:wrap}
.studio-page .traffic-pulse h2{font-size:16px;font-weight:600;margin-top:4px}
.studio-page .chart-legend{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:10px}
.studio-page .chart-legend select{min-height:30px;padding:4px 9px}
.studio-page .pulse-chart-wrap{height:160px;position:relative}
.studio-page #pulseChart{height:160px!important;width:100%;display:block}
.studio-page .chart-axis{font-size:9px;padding:4px 30px 0}
.studio-page .chart-empty{position:absolute;inset:0;display:grid;place-items:center;font-size:11px;color:#617e7d;pointer-events:none}
.studio-page .chart-empty[hidden]{display:none}
.studio-page .statistics-section{margin-top:28px;scroll-margin-top:20px}
.studio-page .statistics-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 18px}
.studio-page .statistics-heading h2{font-size:25px;font-weight:550;letter-spacing:-.7px;margin:7px 0}
.studio-page .statistics-heading p{font-size:12px;color:#5a7675}
.studio-page .statistics-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.studio-page .stat-card{border:1px solid var(--border);background:white;border-radius:10px;padding:22px;min-width:0}
.studio-page .stat-card h3{font-size:15px;letter-spacing:-.3px;font-weight:600;margin:5px 0 0}
.studio-page .statistics-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin-top:16px}
.studio-page .disruption-card{border-left:3px solid var(--green)}
.studio-page .disruption-body{display:grid;grid-template-columns:minmax(240px,1fr) 2fr;gap:26px;align-items:center}
.studio-page .impact-incidents{font-size:11px;line-height:1.7}
.studio-page .impact-incident{padding:6px 0;display:flex;gap:9px;align-items:flex-start}
.studio-page .impact-incident>i{width:6px;height:6px;background:#db9863;border-radius:50%;margin-top:6px;flex-shrink:0}
.studio-page .impact-incident small{display:block;font-size:10px;color:#627e7d}
.studio-page .impact-values{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.studio-page .impact-values>div{padding-left:18px;border-left:1px solid #ddeae9;display:flex;flex-direction:column;gap:6px}
.studio-page .impact-values span{font-size:10px;color:#517270}
.studio-page .impact-values strong{font-weight:550;font-size:25px;letter-spacing:-.6px;font-variant-numeric:tabular-nums}
.studio-page .impact-values small{font-size:10px;color:#627a79}
.studio-page .stat-note{font-size:10px;line-height:1.7;color:#5a7675;margin-top:15px}
.studio-page .empty-message{font-size:11px;line-height:1.8;color:#577473}
.studio-page .summary-values{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;padding:9px 0 5px}
.studio-page .summary-values>div{min-width:0;border-right:1px solid #dfeceb}
.studio-page .summary-values>div:last-child{border:0}
.studio-page .summary-values span{font-size:10px;color:#527573;display:block;margin-bottom:8px}
.studio-page .summary-values strong{font-size:26px;font-weight:550;letter-spacing:-.6px;font-variant-numeric:tabular-nums}
.studio-page .summary-values small{font-size:10px;margin-left:3px;letter-spacing:0;font-weight:400}
.studio-page .time-chip{font-size:10px;padding:6px 8px;background:#e5f8f7;border:1px solid #ccecea;border-radius:5px;white-space:nowrap}
.studio-page .summary-history{font-size:10px;margin-top:12px;color:#587b79;line-height:1.8}
.studio-page .summary-history>div{padding-top:6px;border-top:1px solid #e7f2f1;margin-top:6px;display:flex;justify-content:space-between;gap:8px}
.studio-page .stats-lane-list .lane-row{padding:9px 0;font-size:11px;gap:9px;border-bottom:1px solid #ebf3f3}
.studio-page .stats-lane-list .lane-name{width:46px;font-size:10px}
.studio-page .stats-lane-list .lane-speed{font-size:10px;width:54px}
.studio-page .lane-occupancy{width:30px;font-size:10px;text-align:right;color:#376361;font-variant-numeric:tabular-nums}
.studio-page .lane-meter{height:5px;background:#e9f4f3}
.studio-page .lane-meter b{background:#5bd6d0}
.studio-page .response-card{display:flex;flex-direction:column}
.studio-page .response-card .button.small{padding:6px 8px;font-size:10px;min-height:31px}
.studio-page .response-card .button.small svg{width:12px;height:12px}
.studio-page .response-actions{margin-top:auto;padding-top:18px;display:flex;gap:20px;flex-wrap:wrap}
.studio-page #decisionOutput ol{padding-left:18px;font-size:11px;line-height:1.8;margin:0}
.studio-page #decisionOutput li{margin-bottom:8px}
.studio-page #decisionOutput small{display:block;font-size:9px;line-height:1.6;color:#577473;margin-top:12px}
.studio-page .engine-strip{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:17px 19px;margin-top:16px;border:1px solid #cbe8e7;background:#e7f7f6;border-radius:8px;font-size:11px;color:#3d6563}
.studio-page .engine-name{display:flex;align-items:center;gap:8px}
.studio-page .engine-name svg{width:16px;height:16px}
.studio-page .engine-strip>.text-button{margin-left:auto}
.studio-page .workspace-footer{font-size:8px;padding-top:16px;margin-top:8px;line-height:1.7}
.studio-page .vehicle-inspector{z-index:4;font-size:11px;line-height:1.7}
.studio-page .scene-card:fullscreen .scene-canvas{height:auto;flex:1}
@media(min-width:1800px){.studio-page .workspace-grid{grid-template-columns:minmax(0,1fr) 350px}.studio-page .scene-canvas{height:78vh}}
@media(max-width:1200px){.studio-page .workspace{padding:20px}.studio-page .workspace-grid{grid-template-columns:minmax(0,1fr) 300px;gap:15px}.studio-page .kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.studio-page .scene-canvas{height:620px}.studio-page .statistics-grid{grid-template-columns:1fr 1fr}.studio-page .response-card{grid-column:1/-1}.studio-page .scene-coordinate{display:none}.studio-page .scene-top{left:12px;right:12px}.studio-page .weather-label{display:none}}
@media(max-width:950px){.studio-page .workspace-grid{grid-template-columns:1fr}.studio-page .control-column{display:grid;grid-template-columns:1fr 1fr;align-items:start}.studio-page .control-panel{grid-row:span 2}.studio-page .environment-panel{grid-column:auto}.studio-page .scene-canvas{height:620px}.studio-page .disruption-body{grid-template-columns:1fr;gap:18px}.studio-page .statistics-grid{grid-template-columns:1fr 1fr}.studio-page .app-header{gap:30px}}
@media(max-width:640px){.studio-page .workspace{padding:18px 12px 12px}.studio-page .app-header{height:66px;gap:14px;padding:0 12px}.studio-page .app-header nav{gap:12px}.studio-page .app-header nav a{font-size:10px}.studio-page .app-header nav a[href="#statistics"]{display:none}.studio-page .brand{font-size:22px}.studio-page h1{font-size:26px}.studio-page .kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.studio-page .kpi{padding:12px}.studio-page .kpi-value{font-size:27px}.studio-page .kpi-foot{font-size:9px}.studio-page .scene-canvas{height:510px}.studio-page .scene-top{top:10px;left:10px;right:10px;gap:6px;flex-wrap:wrap}.studio-page .scene-top-actions{gap:5px;padding:3px 5px}.studio-page #weatherLabel{display:none}.studio-page .scene-live{font-size:8px;padding:6px}.studio-page .camera-view{font-size:9px;padding:7px 6px}.studio-page .camera-bar{padding:7px;gap:5px}.studio-page .camera-presets{gap:2px}.studio-page .canvas-hint{font-size:8px;text-align:center;gap:5px}.studio-page .control-column{display:flex;flex-direction:column}.studio-page .control-column>.panel{width:100%}.studio-page .traffic-pulse{padding:17px 15px 12px}.studio-page .chart-legend{gap:10px;font-size:9px}.studio-page .traffic-pulse .section-heading{gap:12px}.studio-page .statistics-grid{grid-template-columns:1fr}.studio-page .response-card{grid-column:auto}.studio-page .statistics-heading{align-items:flex-start;flex-direction:column}.studio-page .statistics-heading h2{font-size:23px}.studio-page .stat-card{padding:18px}.studio-page .impact-values{grid-template-columns:1fr 1fr;gap:18px}.studio-page .impact-values>div{padding-left:12px}.studio-page .impact-values strong{font-size:24px}.studio-page .statistics-actions{width:100%;justify-content:space-between}.studio-page .engine-strip{gap:10px;font-size:10px;padding:15px}.studio-page .engine-strip>.text-button{margin-left:0}.studio-page .location-pin{font-size:8px}.studio-page .workspace-footer{font-size:7px}}

/* Statistics is an on-demand drawer; the simulator stays in place behind it. */
.studio-page{padding-bottom:52px}
.studio-page .dashboard-launcher{position:fixed;bottom:14px;left:50%;transform:translateX(-50%);z-index:31;display:flex;align-items:center;gap:10px;padding:11px 18px;border:1px solid #6fd9d4;border-top:3px solid var(--green);border-radius:10px;background:#fffffff5;backdrop-filter:blur(12px);box-shadow:0 5px 26px #13393729;color:#215754;font-size:12px;font-weight:550;transition:transform .3s,opacity .2s;white-space:nowrap}
.studio-page .dashboard-launcher:hover{background:#e7fffe;border-color:#44afaa;box-shadow:0 6px 28px #1c646030}
.studio-page .dashboard-launcher>svg{width:17px;height:17px;transition:transform .25s}
.studio-page .dashboard-launcher:hover>svg{transform:translateY(-2px)}
.studio-page .dashboard-live-dot{width:6px;height:6px;border-radius:50%;background:#4ac9c3;box-shadow:0 0 0 3px #d2f7f5}
.studio-page .dashboard-backdrop{position:fixed;inset:0;z-index:40;background:#20353432;backdrop-filter:blur(3px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .35s,visibility 0s .4s}
.studio-page .statistics-section{position:fixed;z-index:41;bottom:0;left:50%;width:calc(100% - 32px);max-width:1660px;height:min(82vh,860px);max-height:calc(100dvh - 30px);margin:0;background:#f1f8f8;border:1px solid #b9dad8;border-top:3px solid var(--green);border-radius:18px 18px 0 0;box-shadow:0 -15px 70px #1d3c3a29;display:flex;flex-direction:column;transform:translate(-50%,calc(100% + 25px));visibility:hidden;pointer-events:none;transition:transform .44s cubic-bezier(.2,.8,.2,1),visibility 0s .44s;overflow:hidden;isolation:isolate}
.studio-page .statistics-heading{flex-shrink:0;padding:20px 24px;margin:0;background:#fff;border-bottom:1px solid #dbebea;gap:16px;position:relative}
.studio-page .statistics-heading::before{content:"";position:absolute;top:6px;left:50%;width:38px;height:3px;background:#b4d5d3;border-radius:3px;transform:translateX(-50%)}
.studio-page .statistics-heading h2{font-size:24px;margin:6px 0 4px}
.studio-page .statistics-heading p{font-size:11px}
.studio-page .dashboard-content{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#95cecb transparent;padding:20px 24px 24px;flex:1;min-height:0}
.studio-page .dashboard-close{width:37px;height:37px;display:grid;place-items:center;flex-shrink:0;border:1px solid #aedcda;background:#e2f9f8;border-radius:8px;color:#2c6461}
.studio-page .dashboard-close:hover{background:#c4f5f3}
.studio-page .dashboard-close svg{width:21px;height:21px}
.studio-page.dashboard-open{overflow:hidden}
.studio-page.dashboard-open .statistics-section{transform:translate(-50%,0);visibility:visible;pointer-events:auto;transition:transform .44s cubic-bezier(.2,.8,.2,1),visibility 0s}
.studio-page.dashboard-open .dashboard-backdrop{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .35s,visibility 0s}
.studio-page.dashboard-open .dashboard-launcher{transform:translate(-50%,75px);opacity:0;pointer-events:none}
@media(max-width:640px){.studio-page .statistics-section{width:100%;height:87dvh;max-height:calc(100dvh - 18px);border-radius:15px 15px 0 0}.studio-page .statistics-heading{padding:20px 15px 15px;gap:12px}.studio-page .statistics-heading h2{font-size:22px}.studio-page .statistics-actions{gap:9px}.studio-page .statistics-heading .statistics-actions .status-badge{margin-right:auto}.studio-page .dashboard-content{padding:14px 12px 22px}.studio-page .dashboard-launcher{font-size:11px;padding:10px 14px;bottom:11px}}
@media(prefers-reduced-motion:reduce){.studio-page .statistics-section,.studio-page .dashboard-backdrop,.studio-page .dashboard-launcher{transition:none!important}}
