/* RD002: one sizing contract for all dashboard widgets. Loaded after component styles. */
body{--dashboard-height:320px;--dashboard-space:12px;--dashboard-pad:10px;--dashboard-head:32px;--dashboard-foot:56px}
body[data-dashboard-density="standard"]{--dashboard-height:368px;--dashboard-space:16px;--dashboard-pad:12px}
.dashboard-density{font-size:11px;white-space:nowrap;background:var(--card);color:var(--muted)}
.dashboard-top{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:var(--dashboard-space);margin:0}
.dashboard-top>.card.instrument{height:var(--dashboard-height);min-height:0;min-width:0;box-sizing:border-box;border-radius:12px}
.dashboard-top>.card.instrument:last-child{height:var(--dashboard-height);grid-column:auto}
.dashboard-top>.model-3d,.dashboard-top>.attitude-c,.dashboard-top>.sensor-card{padding:var(--dashboard-pad)}
.dashboard-top>.model-3d>.model-viewport{gap:8px}
.dashboard-top>.model-3d>.model-viewport .model-bar{position:static;min-height:var(--dashboard-head);height:var(--dashboard-head);flex-shrink:0;gap:6px}
.dashboard-top>.model-3d>.model-viewport .model-bar button{min-height:26px;font-size:10px;padding:4px 7px}
.dashboard-top>.model-3d>.model-viewport .model-stage{border-radius:10px}
.dashboard-top>.model-3d>.model-viewport .model-state{top:8px;left:8px;max-width:calc(100% - 16px)}
.dashboard-top>.model-3d>.model-viewport .model-description{left:8px;bottom:8px;font-size:9px}
.dashboard-top>.model-3d>.model-viewport .attitude-values{position:static;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;height:var(--dashboard-foot);min-height:var(--dashboard-foot);background:transparent;align-items:stretch}
.dashboard-top>.model-3d>.model-viewport .attitude-values>div{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;padding:4px;background:var(--bg);border:1px solid var(--line);border-radius:8px;gap:0}
.dashboard-top>.model-3d>.model-viewport .attitude-values small,.attitude-c-values small{font-size:9px;color:var(--muted);font-weight:400;white-space:nowrap}
.dashboard-top>.model-3d>.model-viewport .attitude-values em,.attitude-c-values em{font-size:8px;font-style:normal;font-weight:400;color:var(--muted);margin-left:2px}
.dashboard-top>.model-3d>.model-viewport .attitude-values b,.attitude-c-values b{font:600 17px/1.4 ui-monospace,monospace;margin:0;color:var(--text);font-variant-numeric:tabular-nums}
.dashboard-top>.attitude-c{gap:8px}
.dashboard-top .attitude-c-title{height:var(--dashboard-head);min-height:var(--dashboard-head);padding:0 2px;flex-shrink:0;font-size:12px}
.dashboard-top .attitude-c-title small{font-size:9px}
.dashboard-top .attitude-c-screen{border-radius:10px}
.dashboard-top .attitude-c-values{height:var(--dashboard-foot);gap:7px}
.dashboard-top .attitude-c-values>div{padding:4px;border-radius:8px}
.dashboard-top .attitude-c-values i{display:none}
.dashboard-top .attitude-c-values em{display:inline;line-height:inherit}
.dashboard-top>.sensor-card{display:flex;flex-direction:column;gap:8px}
.dashboard-top>.sensor-card>.card-title{height:var(--dashboard-head);min-height:var(--dashboard-head);padding:0 2px;border:0;flex-shrink:0;font-size:12px}
.dashboard-top>.sensor-card>.card-title small{font-size:9px}
.dashboard-top>.sensor-card>.sensor-grid{flex:1;height:auto;min-height:0;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));padding:0;gap:8px;background:transparent}
.dashboard-top>.sensor-card .sensor{min-height:0;min-width:0;margin:0;gap:4px;padding:8px 5px;border:1px solid var(--line);box-shadow:none;background:var(--bg);border-radius:8px;font-size:11px;overflow:hidden}
.dashboard-top>.sensor-card .sensor svg{width:22px;height:22px;flex-shrink:0}
.dashboard-top>.sensor-card .sensor small{display:block;width:100%;font-size:10px;line-height:1.3;overflow-wrap:anywhere;text-align:center;max-height:26px;overflow:auto}
.dashboard-mid,.dashboard-bottom{gap:var(--dashboard-space);margin:var(--dashboard-space) 0 0}
.fusion-summary{border-radius:12px;padding:10px 12px;margin-bottom:12px;box-shadow:none}
.fusion-heading{margin-bottom:8px;align-items:center}.fusion-items{gap:8px 12px}.fusion-items small{font-size:10px}.fusion-items b{font-size:12px}
@media(min-width:751px) and (max-width:1100px){
 .dashboard-top{grid-template-columns:repeat(2,minmax(0,1fr))}
 .dashboard-top>.sensor-card.instrument:last-child{grid-column:1/-1;height:200px}
 .dashboard-top>.sensor-card>.sensor-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}
}
@media(max-width:750px){
 body{--dashboard-height:284px;--dashboard-space:10px;--dashboard-pad:8px;--dashboard-head:30px;--dashboard-foot:54px}
 body[data-dashboard-density="standard"]{--dashboard-height:320px;--dashboard-space:12px;--dashboard-pad:10px}
 .dashboard-top{grid-template-columns:repeat(2,minmax(0,1fr))}
 .dashboard-top>.sensor-card.instrument:last-child{grid-column:1/-1;height:206px}
 .dashboard-top>.sensor-card>.sensor-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}
 .dashboard-top>.model-3d>.model-viewport .model-bar button{font-size:9px;padding:3px 5px;min-height:26px}
 .dashboard-top>.model-3d>.model-viewport .attitude-values em,.dashboard-top .attitude-c-values em{display:block;margin:0;line-height:1.2}
 .dashboard-top>.model-3d>.model-viewport .attitude-values b,.dashboard-top .attitude-c-values b{font-size:15px}
 .dashboard-top>.model-3d>.model-viewport .attitude-values small,.dashboard-top .attitude-c-values small{font-size:9px}
 .head-actions .dashboard-density{font-size:10px;padding:5px 8px}
}
@media(max-width:600px){
 .dashboard-top{grid-template-columns:minmax(0,1fr)}
 .dashboard-top>.sensor-card.instrument:last-child{grid-column:auto;height:218px}
 .dashboard-top>.model-3d>.model-viewport .attitude-values em,.dashboard-top .attitude-c-values em{display:inline;margin-left:3px;line-height:inherit}
 .dashboard-top>.model-3d>.model-viewport .attitude-values b,.dashboard-top .attitude-c-values b{font-size:17px}
 .fusion-items{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
 .dashboard-top .attitude-c-title small{font-size:9px}
}

/* RD002 R2: compact overview; explicit sensor states. */
.dashboard-utility{display:flex;justify-content:flex-end;margin:0 0 6px;min-height:26px}
.fusion-summary{padding:8px 12px;margin:0 0 10px;border-radius:10px}
.fusion-detail>summary.fusion-heading{display:flex;align-items:center;gap:16px;margin:0;cursor:pointer;list-style:none;min-height:24px}
.fusion-detail>summary.fusion-heading::before{content:'›';color:var(--muted);font-size:18px}
.fusion-detail[open]>summary.fusion-heading::before{transform:rotate(90deg)}
.fusion-heading>b{font-size:12px;white-space:nowrap}.fusion-heading>small{margin-left:auto;white-space:nowrap}
.fusion-brief{display:flex;gap:18px;flex-wrap:wrap;font-size:11px;color:var(--muted)}
.fusion-brief strong{font-weight:500;color:var(--text);margin-left:4px}
.fusion-detail[open]>.fusion-items{margin-top:12px}.fusion-detail>p{margin:10px 0}
.dashboard-top>.sensor-card .sensor{gap:3px;padding:5px;color:var(--text)}
.dashboard-top>.sensor-card .sensor svg{width:19px;height:19px;color:var(--muted)}
.dashboard-top>.sensor-card .sensor-status{font-size:11px;font-weight:600;line-height:1.3;color:var(--muted)}
.dashboard-top>.sensor-card .sensor.good .sensor-status{color:#27885a}
.dashboard-top>.sensor-card .sensor.bad .sensor-status{color:#c04444}
.dashboard-top>.sensor-card .sensor.good{border-color:#cce4d6;background:#f6fbf8}
.dashboard-top>.sensor-card .sensor.bad{border-color:#f0cccc;background:#fff8f8}
.dashboard-top>.sensor-card .sensor small{color:var(--muted);font-size:9px;max-height:22px}
.hud-flight-state{position:absolute;left:12px;right:12px;top:38px;display:flex;justify-content:space-between;gap:8px;pointer-events:none;font:500 10px/1.4 ui-monospace,monospace;color:white;text-shadow:0 1px 3px #203452}
.hud-flight-state[hidden]{display:none}
@media(max-width:600px){.fusion-detail>summary.fusion-heading{gap:7px;flex-wrap:wrap}.fusion-brief{gap:9px;font-size:10px}.fusion-heading>b{font-size:11px}.fusion-heading>small{font-size:9px}.dashboard-top>.sensor-card.instrument:last-child{height:240px}}

.dashboard-overview{display:flex;align-items:flex-start;gap:8px;margin-bottom:10px}.dashboard-overview>.fusion-summary{flex:1;min-width:0;margin:0}.dashboard-overview>.dashboard-utility{padding-top:7px;margin:0}@media(max-width:450px){.fusion-brief{gap:5px}.fusion-detail>summary.fusion-heading{gap:5px}.fusion-heading>small{display:none}.dashboard-overview{gap:5px}.dashboard-density{font-size:9px;padding:4px 6px}}

/* R3: single status row, shared card alignment, no repeated model values. */
.dashboard-overview{display:block;margin-bottom:10px}.dashboard-utility{display:none}
.fusion-detail>summary.fusion-heading{flex-wrap:nowrap;gap:14px;white-space:nowrap;overflow-x:auto;min-height:24px}
.fusion-brief{flex-wrap:nowrap;gap:16px;flex-shrink:0}.fusion-heading>small{display:block;margin-left:auto;flex-shrink:0}
.dashboard-top>.model-3d>.model-viewport .model-stage{flex:1;min-height:0}
@media(max-width:600px){.fusion-detail>summary.fusion-heading{flex-wrap:nowrap;gap:10px}.fusion-brief{gap:12px}.fusion-heading>b{font-size:11px}}
