body.preflight-shell{--accent:#ffbb00;--bg:#090b0e;--card:#11151b;--subtle:#171b21;--border:#262c34;font-family:'Segoe UI',sans-serif}
body.preflight-shell>header{height:74px;padding:6px 28px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;background:#090b0e}
.preflight-shell>header .logo{grid-column:2;grid-row:1;justify-self:center;width:auto!important;justify-content:center!important}
.preflight-shell>header img{width:200.2px!important;height:auto!important;display:block}
#back-to-preflight{width:auto!important;justify-self:start;background:none;border:0;padding:8px 0;font-size:12px}
#analysis-app.main{max-width:none;width:100%;padding:10px 28px;margin:0 auto;gap:10px}
.analysis-ready #upload-card{display:none}
#analysis-app #recipe-card{margin:0;background:transparent;border:0;box-shadow:none}
#recipe-card>div:first-child{padding:0!important;gap:24px!important;background:none!important}
#recipe-card>div:first-child>div{font-size:12px;padding:8px 0!important}
#tab-pids{padding:10px 0!important}
#fs-badge-wrap{display:inline-block;padding:0;margin:0 14px 6px 0;background:none;border:0;font-size:11px}
#calibration-details{display:inline-block;margin:0 0 6px!important;line-height:1.4!important;font-size:11px}
#calibration-details p{margin:0}
.results-layout{--chart-height:clamp(140px,calc(100svh - 550px),228px);display:flex!important;flex-direction:column;gap:10px!important}
.panel-right{order:0;min-width:0}.panel-left{order:1;min-width:0;display:grid;grid-template-columns:minmax(390px,2fr) minmax(0,3fr);gap:28px;align-items:stretch}
.analysis-config{display:flex;flex-direction:column;gap:8px;min-width:0}
#tab-pids .panel-right{display:grid;grid-template-columns:96px minmax(0,1fr);column-gap:12px;row-gap:0;align-items:start}
#global-legend{grid-column:1;grid-row:1;display:flex;flex-direction:column;flex-wrap:nowrap;height:var(--chart-height);margin:0!important;gap:4px;font-size:10px;overflow-y:auto}
#global-legend .legend-badge{width:100%;flex:1 0 20px;min-height:20px;padding:2px 10px;justify-content:flex-start;border-radius:7px;font-family:inherit;font-size:10px;font-weight:600;letter-spacing:.65px;line-height:1.1;text-align:left;text-transform:uppercase;box-shadow:none;outline:none;transition:background .15s,border-color .15s,color .15s}
#global-legend .legend-color{width:7px;height:7px;flex-shrink:0}
#global-legend .legend-badge.disabled{opacity:1;background:#0c0f13;border-color:#1b2027;color:#626b76;filter:none}
#global-legend .legend-badge.disabled .legend-color{background:#48505a!important}
#global-legend .legend-badge:not(.disabled){background:#171d25;border-color:#45505e;color:#edf0f4}
#global-legend .legend-badge:hover{background:#202731;border-color:#657181;color:#fff}
#global-legend .legend-badge.response-selected{box-shadow:inset 0 0 0 1px #8894a4;border-color:#8894a4}
#global-legend .legend-badge:focus-visible{outline:2px solid var(--accent);outline-offset:-4px}
.legend-badge{font-size:10px;padding:3px 8px}
#analysis-charts{grid-column:2;grid-row:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.axis-chart{position:relative;height:var(--chart-height);min-width:0}
.axis-chart canvas{display:block;width:100%;height:100%;margin:0}
#yaw-status{grid-column:2;grid-row:2;font-size:10px!important;margin:5px 0;line-height:1.3}
.islider-section{display:block;padding:8px 14px}
.islider-title{display:flex;align-items:center;justify-content:space-between;font-size:10px;margin-bottom:3px;letter-spacing:.6px;gap:8px}
.islider-row{grid-template-columns:120px 38px minmax(0,1fr);gap:10px;padding:2px 0;border-bottom:1px solid var(--border);min-width:0;min-height:28px}
.islider-name{font-size:11px;line-height:1.25}.islider-name small{display:block;font-size:9px;line-height:1.15}.islider-val{font-size:12px}
.islider-row input{width:100%;margin:0;height:6px}
#analysis-actions{display:flex;flex-direction:column;gap:5px;min-width:0}
#prediction-status{font-size:10px;margin:0!important;line-height:1.4}
.analysis-tools{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.analysis-tools .btn{font-size:10px;background:none;border:0;padding:4px 0;margin:0!important;width:auto}
#analysis-details,#recipe-review{color:var(--text);background:#11151b;border:1px solid var(--border);border-radius:12px;padding:24px;width:min(760px,90vw);max-height:85svh;overflow:auto}
body.preflight-shell dialog{position:fixed;inset:0;margin:auto;max-width:calc(100vw - 32px);max-height:calc(100svh - 32px)}
dialog::backdrop{background:#000b;backdrop-filter:blur(5px)}
#analysis-details .metrics-grid{margin-top:12px!important;font-size:11px}
#validation-panel{margin:0!important;background:transparent;border:0;border-radius:0;padding:0}
.recipe-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.recipe-actions .btn{width:auto;padding:10px 16px;font-size:12px}
#analysis-actions .recipe-actions{align-items:stretch;flex-direction:row;gap:8px}
#analysis-actions .recipe-actions .btn{min-width:0;flex:1;white-space:normal;line-height:1.3;padding-left:10px;padding-right:10px}
#validation-status,#saved-recipe{font-size:11px;line-height:1.4;margin:6px 0}
#saved-recipe{color:var(--muted)}#validation-status:empty{display:none}
#round-history{font-size:11px;max-width:240px;background:var(--bg);color:var(--text);border:1px solid var(--border);padding:6px}
#comparison-results{grid-column:1 / -1;grid-row:1;margin:0}#comparison-results h3{font-size:14px;margin:8px 0}
#overlay-caption{font-size:10px;margin:4px 0}#comparison-legend{font-size:10px;margin:6px 0}
.comparison-charts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.comparison-charts canvas{width:100%;height:clamp(140px,calc(100svh - 700px),270px)}
#comparison-metrics{font-size:10px}#comparison-metrics td,#comparison-metrics th{padding:4px!important}
body.preflight-shell:has(#analysis-app:not([hidden]))>details:has(#export-session){display:none}
#recipe-review pre{font-size:11px;white-space:pre-wrap;max-height:32svh;overflow:auto}#recipe-review label{display:block;margin:16px 0;font-size:12px}
@media(max-height:760px) and (min-width:900px){body.preflight-shell>header{height:62px}#analysis-app.main{padding-top:6px}.axis-chart,.comparison-charts canvas{height:140px}#tab-pids{padding:5px 0!important}.recipe-actions .btn{padding:8px 10px}#saved-recipe{font-size:10px}.islider-row{min-height:25px}.analysis-config{gap:5px}.results-layout{gap:6px!important}}
@media(max-width:1000px){.panel-left{grid-template-columns:minmax(360px,2fr) minmax(0,3fr);gap:16px}.islider-row{grid-template-columns:105px 32px minmax(0,1fr);gap:8px}#analysis-actions .recipe-actions .btn{font-size:11px}.islider-title{flex-wrap:wrap}}
@media(max-width:800px){#analysis-app.main{padding:12px}.panel-left{grid-template-columns:1fr}#analysis-charts,.comparison-charts{gap:5px}.axis-chart,.comparison-charts canvas{height:170px}body.preflight-shell>header{padding:6px 14px}.preflight-shell>header img{width:145.6px!important}.islider-row{grid-template-columns:125px 36px minmax(0,1fr)}}

#analysis-app .btn,#analysis-details .btn,#recipe-review .btn{color:var(--text);background:#1c232d;border:1px solid var(--border);border-radius:7px}
#analysis-app .btn-primary,#recipe-review .btn-primary{background:var(--accent);border-color:var(--accent);color:#131313}
#analysis-app .analysis-tools .btn{background:transparent;border:0;color:var(--muted)}
#analysis-app .btn:disabled{opacity:.45;cursor:not-allowed}

.is-comparing #fs-badge-wrap,.is-comparing #calibration-details{display:none}

#analysis-app #reset-sliders-btn{width:auto;margin:0!important;padding:6px 10px;font-size:10px;letter-spacing:0;text-transform:none;color:var(--accent);background:#ffbb000d;border:1px solid #ffbb0055;white-space:nowrap}
#analysis-app #reset-sliders-btn:hover:not(:disabled){background:#ffbb0022;border-color:var(--accent)}
#response-replay{--yellow:#ffbb00;--curve:#ffbb00;min-width:0;display:flex;flex-direction:column;gap:5px;padding:3px 0;position:relative}
.response-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:1px}
#response-source{color:var(--curve);text-transform:none;letter-spacing:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.response-tabs{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.response-tabs button{background:transparent;border:1px solid var(--border);color:var(--muted);border-radius:6px;padding:5px 10px;font-size:11px;cursor:pointer}
.response-tabs button[aria-pressed="true"]{color:var(--text);border-color:var(--curve);background:color-mix(in srgb,var(--curve) 9%,transparent)}
#response-logs button::before{content:'';display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--curve);margin-right:5px;vertical-align:middle}
.response-stage{position:relative;min-height:170px;flex:1}
#response-drone{width:100%;height:100%;min-height:170px;position:absolute;inset:0;display:block}
.response-stage .model-status{position:absolute;top:50%;left:0;right:0;text-align:center;color:var(--muted);font-size:11px;pointer-events:none}
.response-camera{position:absolute;left:0;top:8px;font-size:9px;color:var(--muted);pointer-events:none}
.response-zoom{position:absolute;right:0;bottom:0;display:flex;align-items:center;gap:7px;padding:5px 7px;border:1px solid var(--border);border-radius:6px;background:#090b0ee8;font-size:10px;color:var(--muted)}
.response-zoom input{width:80px;height:4px;accent-color:var(--accent);cursor:pointer}.response-zoom output{min-width:31px;font-variant-numeric:tabular-nums}
.response-zoom button{font:inherit;background:none;border:0;color:var(--text);cursor:pointer;padding:2px 4px}.response-zoom button:hover{color:var(--accent)}
.response-readout{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:10px;min-height:14px}
#response-cue{color:var(--muted)}#response-rate{color:var(--curve);white-space:nowrap;font-variant-numeric:tabular-nums}
#response-timeline{width:100%;height:32px;display:block}
.response-controls{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap}
#analysis-app #response-play{width:auto;min-width:70px;padding:5px 8px;font-size:10px;background:transparent}
.response-controls label{font-size:10px;color:var(--muted);display:flex;align-items:center;gap:5px}.response-controls select{font:inherit;background:#151a21;color:var(--text);border:1px solid var(--border);border-radius:5px;padding:4px}
.response-note{color:var(--muted);text-align:center;font-size:9px;margin:0}
.legend-badge.response-selected{box-shadow:0 0 0 1px #9da6b5}
.axis-chart.response-axis{outline:1px solid #535d6b;border-radius:8px}
@media(min-height:850px) and (min-width:1000px){.islider-row{min-height:33px}.islider-name{font-size:12px}.islider-name small{font-size:10px}.response-tabs button{padding:6px 13px;font-size:12px}.response-heading{font-size:11px}}
@media(max-width:800px){.response-stage{height:260px;flex:none}.response-controls{gap:8px}}
@media(max-width:800px){#tab-pids .panel-right{--chart-height:170px;grid-template-columns:76px minmax(0,1fr);column-gap:6px}#global-legend .legend-badge{font-size:9px;padding:2px 5px}}

/* Match the chart legend and use spare desktop height for the controls and model. */
#response-replay{display:grid;grid-template-columns:96px minmax(0,1fr);grid-template-rows:auto minmax(170px,1fr) auto auto auto auto;column-gap:12px;align-items:stretch}
.response-heading,.response-readout,#response-timeline,.response-controls,.response-note{grid-column:1 / -1}
#response-logs{grid-column:1;grid-row:2;display:grid;grid-template-columns:1fr;grid-auto-rows:max(20px,calc((var(--chart-height) - 20px)/6));gap:4px;align-content:start;align-items:stretch}
#response-logs button{width:100%;min-width:0;min-height:0;box-sizing:border-box;display:flex;align-items:center;white-space:nowrap;text-align:left;text-transform:uppercase;font-family:inherit;font-size:10px;font-weight:600;letter-spacing:.65px;padding:2px 10px;border-radius:7px;background:#0c0f13;line-height:1.1}
#response-logs button[aria-pressed="true"]{background:color-mix(in srgb,var(--curve) 9%,#11151b);border-color:var(--curve)}
#response-logs button:focus-visible{outline:2px solid var(--accent);outline-offset:-4px}
#response-replay .response-stage{grid-column:2;grid-row:2;min-width:0}
@media(min-width:1000px) and (min-height:850px){.islider-row{min-height:clamp(33px,calc(33px + (100svh - 850px)*.08),49px)}}
@media(max-width:800px){.results-layout{--chart-height:170px}#response-replay{grid-template-columns:88px minmax(0,1fr)}#response-logs button{font-size:9px;padding:2px 8px}}

.response-scale input{width:90px;height:5px;accent-color:var(--accent);margin:0}.response-scale output{min-width:42px;font-variant-numeric:tabular-nums}

#response-logs button::before{flex:0 0 5px}

/* Size both flight columns to their longest label with equal side padding. */
#tab-pids .panel-right,#response-replay{grid-template-columns:max-content minmax(0,1fr)}
#global-legend,#response-logs{width:max-content}
#global-legend .legend-badge,#response-logs button{width:100%;box-sizing:border-box;padding-inline:10px;gap:6px;white-space:nowrap;justify-content:flex-start}
#global-legend .legend-color{width:7px;height:7px;flex:0 0 7px}
#response-logs button::before{width:7px;height:7px;flex:0 0 7px;margin-right:0}
@media(max-width:800px){#global-legend .legend-badge,#response-logs button{padding-inline:8px;font-size:9px}}
body.preflight-shell>header{position:relative}
#analysis-drone{position:absolute;left:28px;top:10px;display:flex;flex-direction:column;gap:3px;max-width:32%;text-align:left}
#analysis-drone small{font-size:9px;letter-spacing:2px;color:#aab6c4}
#analysis-drone strong{font-size:16px;line-height:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#analysis-drone #back-to-preflight{position:static;padding:0;margin:0;font-size:10px;align-self:flex-start;min-height:0}
#analysis-connection{position:absolute;right:28px;top:0;height:100%;display:flex;align-items:center;gap:16px}
#analysis-connection .pill,#analysis-connection button{border:1px solid #353d48;border-radius:30px;padding:5px 10px;font-family:inherit;font-size:10px;font-weight:400;line-height:normal;white-space:nowrap;background:transparent;color:#aab6c4}
#analysis-connection .pill.good{color:#80d6b1;border-color:#304a40;background:#80d6b108}
#analysis-connection .disconnect-pill{border-color:#a74349;color:#ff858b;cursor:pointer}
#analysis-connection .disconnect-pill:hover{background:#ff555512;border-color:#ff858b}
#analysis-connection button:disabled{opacity:.45;cursor:default}
@media(max-width:640px){#analysis-drone{left:12px;max-width:25%}#analysis-drone strong{font-size:12px}#analysis-connection{right:12px;gap:4px}#analysis-connection .pill,#analysis-connection button{font-size:8px;padding:5px}}
@media(max-width:600px){
  body.preflight-shell>header{height:auto;row-gap:8px;padding-bottom:10px}
  #analysis-connection{position:static;grid-column:1 / -1;grid-row:2;height:auto;justify-content:center;gap:12px}
}
