:root{--bg: #091423;--bg-soft: #11233a;--panel: #0f1e32;--panel-border: #2b4667;--text: #d7e5f7;--muted: #87a5c7;--accent: #4dd4ac;--accent-soft: #31b7d1}*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;color:var(--text);background:radial-gradient(circle at 20% 20%,#163357 0%,var(--bg) 45%,#040b13 100%);height:100vh;overflow:hidden}.sim-app{height:100vh;display:grid;grid-template-columns:340px 1fr}.sim-panel{border-right:1px solid var(--panel-border);background:linear-gradient(180deg,#102137f2,#091221f2);padding:.72rem;overflow-y:auto;overflow-x:hidden}.sim-panel h1{margin:0;font-size:1.25rem}.sim-subtitle{margin-top:.12rem;margin-bottom:.62rem;color:var(--muted)}.sim-top-actions{display:grid;grid-template-columns:1fr 1fr;gap:.4rem;margin-bottom:.62rem}.sim-top-btn{border:1px solid #3d5f82;border-radius:8px;background:#12263e;color:var(--text);padding:.4rem .55rem;font-size:.78rem;font-weight:600;text-align:center;text-decoration:none;cursor:pointer;transition:border-color .14s ease,background .14s ease}.sim-top-btn:hover{border-color:#5f89b6}.control-group{border:1px solid var(--panel-border);background:#07101db3;border-radius:10px;margin-bottom:.55rem;padding:.58rem .62rem}.control-group>summary{list-style:none;cursor:pointer;margin:-.08rem -.04rem 0;padding:.08rem .04rem .3rem;font-size:.88rem;color:var(--accent);font-weight:600}.control-group>summary::-webkit-details-marker{display:none}.control-group>summary:after{content:"v";float:right;color:var(--muted);font-size:.8rem}.control-group:not([open])>summary:after{content:">"}.control-body{display:grid;min-width:0}.axis-group{border:1px solid rgba(62,96,131,.75);border-radius:8px;background:#08121f8f;margin-top:.45rem;padding:.42rem .5rem}.axis-group>summary{list-style:none;cursor:pointer;color:#8bd7ef;font-size:.78rem;font-weight:600;margin:0;padding:.02rem .02rem .25rem}.axis-group>summary::-webkit-details-marker{display:none}.axis-group>summary:after{content:"v";float:right;color:var(--muted);font-size:.74rem}.axis-group:not([open])>summary:after{content:">"}.control-group label{display:block;font-size:.76rem;margin-top:.33rem}.range-field{margin-top:.34rem}.dial-field{margin-top:.4rem}.heading-dial-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin-top:.35rem}.heading-dial-row .dial-field{margin-top:0}.heading-dial-row .range-head{justify-content:center;gap:0}.heading-dial-row .range-head label{text-align:center;width:100%}.dial-hidden-range{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;margin:0!important}.range-head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.range-head label{margin-top:0}.heading-dial{position:relative;width:min(120px,100%);margin:.2rem auto .1rem;border-radius:50%;cursor:pointer;touch-action:none;user-select:none}.heading-dial:before{content:"";position:absolute;inset:10%;border-radius:50%;z-index:0;pointer-events:none;opacity:.85}.heading-dial:after{content:"";position:absolute;inset:-4%;border-radius:50%;z-index:0;pointer-events:none}.heading-dial:focus-visible{outline:none;box-shadow:0 0 0 2px #4bbce559}.heading-dial.is-disabled{opacity:.45;cursor:default}.heading-dial-svg{width:100%;display:block;position:relative;z-index:1}.heading-dial-ring{fill:#08101df7;stroke:#5bbad7;stroke-width:2;filter:drop-shadow(0 0 4px rgba(93,219,255,.35))}.heading-dial-ring-inner{fill:#050c17fa;stroke:#78d0e65c;stroke-width:1.2}.heading-dial-tick{stroke:#b8f4ff;stroke-width:2;stroke-linecap:round;filter:drop-shadow(0 0 2px rgba(160,248,255,.5))}.heading-dial-tick-soft{stroke:#76abc4;stroke-width:1.25;stroke-linecap:round}.heading-dial-needle{stroke:#8dffcc;stroke-width:2.4;stroke-linecap:round;filter:drop-shadow(0 0 5px rgba(120,255,191,.65))}.heading-dial-center{fill:#defff5;stroke:#3f8e78;stroke-width:1;filter:drop-shadow(0 0 4px rgba(124,255,193,.55))}.heading-dial-readout{position:absolute;left:50%;top:50%;transform:translate(-50%,11px);color:#a8fff1;font-size:.68rem;letter-spacing:.01em;text-shadow:0 0 6px rgba(135,255,218,.7);pointer-events:none;z-index:2}.heading-dial--radium-a:before{background:radial-gradient(circle at 48% 42%,#75ffd042,#1a6a582e 45%,#060e1a00 70%)}.heading-dial--radium-a:after{box-shadow:inset 0 0 0 1px #76ffcd42,0 0 14px #52ffc433}.heading-dial--radium-a .heading-dial-needle{stroke:#8dffcc}.heading-dial--radium-b:before{background:radial-gradient(circle at 46% 38%,#97e2ff38,#295f8033 48%,#060e1a00 72%)}.heading-dial--radium-b:after{box-shadow:inset 0 0 0 1px #8ce3ff3d,0 0 14px #7fcfff33}.heading-dial--radium-b .heading-dial-ring{stroke:#7ecff1;filter:drop-shadow(0 0 4px rgba(133,207,255,.36))}.heading-dial--radium-b .heading-dial-needle{stroke:#8fdcff;filter:drop-shadow(0 0 5px rgba(136,221,255,.62))}.heading-dial--radium-b .heading-dial-center{fill:#ddf5ff;stroke:#4a86a3;filter:drop-shadow(0 0 4px rgba(149,225,255,.5))}.heading-dial--radium-b .heading-dial-readout{color:#b8ebff;text-shadow:0 0 6px rgba(137,224,255,.68)}@media (max-width: 420px){.heading-dial-row{grid-template-columns:1fr}}.toggle-row{display:flex!important;align-items:center;justify-content:flex-start;gap:.42rem}.toggle-row span{flex:1 1 auto;min-width:0}.toggle-row input[type=checkbox]{width:auto}.toggle-row input[type=range]{flex:0 0 92px;width:92px;margin:0}.toggle-row input[type=color]{width:2.1rem;height:1.35rem;padding:.08rem;border:1px solid #3d5f82;border-radius:4px;background:#12263e}.range-end-labels{margin-top:.12rem;margin-bottom:.12rem;display:flex;justify-content:space-between;color:var(--muted);font-size:.68rem}.control-group input,.control-group select{width:100%}.control-group select{-webkit-appearance:none;appearance:none;color-scheme:dark;border:1px solid #3c6084;border-radius:8px;color:var(--text);font-size:.76rem;padding:.42rem 2rem .42rem .55rem;box-shadow:inset 0 0 0 1px #97ceff14;background-image:linear-gradient(180deg,#1d3d5ce6,#112740f2),linear-gradient(45deg,transparent 50%,#87b8e3 50%),linear-gradient(135deg,#87b8e3 50%,transparent 50%);background-position:0 0,calc(100% - 14px) 53%,calc(100% - 9px) 53%;background-size:100% 100%,5px 5px,5px 5px;background-repeat:no-repeat}.control-group select option,.control-group select optgroup{background-color:#12263e;color:var(--text)}.control-group select:hover{border-color:#6d97bf}.control-group select:focus-visible{outline:none;border-color:#78b8df;box-shadow:0 0 0 2px #58ade147}.control-group input[type=range]{-webkit-appearance:none;appearance:none;margin:.2rem 0 0;height:8px;border-radius:999px;background:linear-gradient(90deg,#48b0e2f2,#4dd4acf2) padding-box,#0b1a2bf2;border:1px solid #2f516f}.control-group input[type=range]:disabled{opacity:.46}.control-group input[type=range]:focus-visible{outline:none;box-shadow:0 0 0 2px #4bbce53d}.control-group input[type=range]::-webkit-slider-runnable-track{height:8px;border-radius:999px;background:transparent}.control-group input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;margin-top:-4px;border:1px solid #9ddcff;background:radial-gradient(circle at 30% 30%,#ecfbff,#8de4ff 65%,#3ba4d1);box-shadow:0 0 0 2px #06101eb3}.control-group input[type=range]::-moz-range-track{height:8px;border-radius:999px;background:#0b1a2bf2;border:1px solid #2f516f}.control-group input[type=range]::-moz-range-progress{height:8px;border-radius:999px;background:linear-gradient(90deg,#48b0e2f2,#4dd4acf2)}.control-group input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;border:1px solid #9ddcff;background:radial-gradient(circle at 30% 30%,#ecfbff,#8de4ff 65%,#3ba4d1);box-shadow:0 0 0 2px #06101eb3}.dual-range-field .range-head{margin-bottom:.15rem}.dual-range{position:relative;height:18px;margin-top:.1rem;--min-pct: 0%;--max-pct: 100%}.dual-range-track{position:absolute;left:0;right:0;top:50%;height:8px;transform:translateY(-50%);border-radius:999px;border:1px solid #2f516f;background:var(--ramp-gradient, linear-gradient(90deg, #0c2c84, #ffffcc));box-shadow:inset 0 0 0 1px #0000002e}.dual-range-input{position:absolute;left:0;top:0;width:100%;height:18px;margin:0;background:transparent!important;border:0!important;pointer-events:none;-webkit-appearance:none;appearance:none}.dual-range-input::-webkit-slider-runnable-track{background:transparent;height:18px}.dual-range-input::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;pointer-events:auto;width:14px;height:14px;border-radius:50%;margin-top:2px;border:1px solid #9ddcff;background:radial-gradient(circle at 30% 30%,#ecfbff,#8de4ff 65%,#3ba4d1);box-shadow:0 0 0 2px #06101eb3;cursor:pointer}.dual-range-input::-moz-range-track{background:transparent;border:0;height:18px}.dual-range-input::-moz-range-progress{background:transparent}.dual-range-input::-moz-range-thumb{pointer-events:auto;width:14px;height:14px;border-radius:50%;border:1px solid #9ddcff;background:radial-gradient(circle at 30% 30%,#ecfbff,#8de4ff 65%,#3ba4d1);box-shadow:0 0 0 2px #06101eb3;cursor:pointer}.dual-range-input:disabled::-webkit-slider-thumb,.dual-range-input:disabled::-moz-range-thumb{opacity:.46;cursor:default}.dual-range-values{display:flex;justify-content:space-between;margin-top:.16rem;color:var(--accent-soft);font-size:.75rem}.control-group button{border:1px solid #3d5f82;border-radius:6px;background:#12263e;color:var(--text);padding:.35rem .45rem;font-size:.75rem;cursor:pointer}.control-group button:hover{border-color:#5f89b6}.playback-row{display:grid;grid-template-columns:repeat(4,1fr);gap:.35rem}.icon-btn{display:grid;place-items:center;aspect-ratio:1;padding:0}.icon-btn svg{width:14px;height:14px;fill:currentColor}.icon-btn.active{border-color:#7dd8c3;color:#b6ffe3;background:linear-gradient(180deg,#295f52f2,#15372ef2)}#record-btn.active{border-color:#ff8b8b;color:#ffd5d5;background:linear-gradient(180deg,#7e2323f2,#491313f2)}.control-group output{display:inline-block;text-align:right;color:var(--accent-soft);font-size:.8rem;margin-bottom:0;min-width:3.4ch}.subcontrols{border-top:1px dashed #335879;margin-top:.35rem;padding-top:.35rem;min-width:0}.state-actions{display:grid;grid-template-columns:1fr 1fr;gap:.4rem;margin-top:.42rem}.small-status{margin-top:.4rem;font-size:.7rem;color:var(--muted);min-height:1.2rem;max-width:100%;white-space:normal;overflow-wrap:anywhere;word-break:break-word}.mini-progress{margin-top:.38rem;width:100%;height:8px;border-radius:999px;background:#0e1f31f2;border:1px solid #2e4f6f;overflow:hidden}.mini-progress-bar{height:100%;width:0%;border-radius:999px;background:linear-gradient(90deg,#4cb5df,#4dd4ac);transition:width .14s linear}.sim-stage{display:grid;grid-template-rows:1fr auto;min-height:0}.scene-host{min-height:0}.scene-grid{min-height:0;display:grid;grid-template-columns:1fr;gap:.5rem;padding:.55rem}.scene-grid.compare{grid-template-columns:1fr 1fr}.scene-wrap{border:1px solid var(--panel-border);background:#060e198c;border-radius:10px;min-height:0;display:grid;grid-template-rows:auto 1fr}.scene-wrap h3,.waterfall-panel h3{margin:0;font-size:.82rem;color:var(--muted);padding:0}.scene-topbar,.scene-wrap h3{border-bottom:1px solid var(--panel-border)}.scene-wrap .scene-host{min-height:280px}.scene-wrap{position:relative}.scene-topbar{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.45rem .65rem;min-height:3.15rem;flex-wrap:nowrap}.scene-topbar-actions{display:flex;align-items:center;gap:.45rem;flex-wrap:nowrap;flex:0 0 auto}.scene-right-stack{position:absolute;right:.65rem;top:5.7rem;bottom:.65rem;display:flex;flex-direction:column;gap:.55rem;z-index:3;width:230px;max-height:none;overflow-y:auto;overflow-x:hidden;padding-right:0;scrollbar-width:thin;scrollbar-gutter:stable}.scene-left-stack{position:absolute;left:.65rem;top:5.7rem;z-index:4;display:flex;flex-direction:column;gap:.55rem;pointer-events:none}.scene-vert-exag{width:260px;border:1px solid rgba(88,145,190,.7);border-radius:8px;background:#070e19d1;backdrop-filter:blur(3px);padding:.45rem .6rem .5rem;pointer-events:auto;z-index:5}.scene-vert-exag-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.35rem;font-size:.76rem;font-weight:600;color:var(--text)}.scene-vert-exag-head output{color:var(--accent);font-weight:700}.scene-vert-exag input[type=range]{width:100%;margin:0}.scene-playback{border:1px solid rgba(88,145,190,.7);border-radius:8px;background:#070e19d1;backdrop-filter:blur(3px);width:230px;flex:0 0 230px;box-sizing:border-box;padding:.3rem;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.3rem;z-index:5}.scene-overlay-toggles{border:1px solid rgba(88,145,190,.7);border-radius:8px;background:#070e19d1;backdrop-filter:blur(3px);padding:.3rem;display:grid;grid-template-columns:repeat(2,1fr);gap:.3rem;z-index:5}.attitude-graph{width:100%;border:1px solid rgba(88,145,190,.7);border-radius:8px;background:#070e19d1;backdrop-filter:blur(3px);padding:.32rem;z-index:3}.attitude-graph canvas{width:100%;height:96px;display:block;border:1px solid #2f4d6e;border-radius:6px;background:#040a12e6}.nadir-graph{width:100%;border:1px solid rgba(88,145,190,.7);border-radius:8px;background:#070e19d1;backdrop-filter:blur(3px);padding:.32rem;z-index:3}.nadir-graph canvas{width:100%;height:68px;display:block;border:1px solid #2f4d6e;border-radius:6px;background:#040a12e6}.raw-strip-graph{width:100%;border:1px solid rgba(88,145,190,.7);border-radius:8px;background:#070e19d1;backdrop-filter:blur(3px);padding:.32rem;z-index:3}.raw-strip-graph canvas{width:100%;height:96px;display:block;border:1px solid #2f4d6e;border-radius:6px;background:#040a12e6}.density-quality-graph{width:100%;border:1px solid rgba(88,145,190,.7);border-radius:8px;background:#070e19d1;backdrop-filter:blur(3px);padding:.32rem;z-index:3}.density-quality-graph canvas{width:100%;height:68px;display:block;border:1px solid #2f4d6e;border-radius:6px;background:#040a12e6}.attitude-legend{margin-top:.24rem;display:flex;gap:.5rem;font-size:.68rem}.attitude-legend .roll{color:#7cc6ff}.attitude-legend .pitch{color:#94efb6}.attitude-legend .yaw{color:#ffcf7c}.nadir-legend{margin-top:.22rem;display:flex;font-size:.72rem;color:#8fd8ff;line-height:1.2}.raw-strip-legend{margin-top:.22rem;display:flex;font-size:.72rem;color:#ffd89d;line-height:1.22;white-space:normal;text-wrap:pretty}.density-quality-legend{margin-top:.22rem;display:flex;font-size:.72rem;color:#9be2ae;line-height:1.2}.density-histogram-graph{width:100%;border:1px solid rgba(88,145,190,.7);border-radius:8px;background:linear-gradient(180deg,#1c0a28d9,#0b0616e0);backdrop-filter:blur(3px);padding:.32rem;z-index:3;box-shadow:inset 0 0 0 1px #f599ff24,0 0 12px #d159ff33}.density-histogram-graph canvas{width:100%;height:88px;display:block;border:1px solid #2f4d6e;border-radius:6px;background:#080410eb}.density-histogram-legend{margin-top:.22rem;display:flex;font-size:.72rem;color:#f1a7ff;text-shadow:0 0 7px rgba(226,118,255,.38);line-height:1.2;white-space:normal;text-wrap:pretty}.density-stats{width:100%;border:1px solid rgba(88,145,190,.7);border-radius:8px;background:#070e19d1;backdrop-filter:blur(3px);padding:.38rem .42rem;z-index:3}.density-title{font-size:.7rem;color:#8fd8ff;letter-spacing:.02em;margin-bottom:.26rem}.density-row{display:flex;align-items:center;justify-content:space-between;gap:.4rem;font-size:.75rem;color:#a3bed8;padding:.05rem 0}.density-row strong{color:#c8e7ff;font-size:.75rem;font-weight:600}.density-subtitle{margin-top:.28rem;padding-top:.22rem;border-top:1px solid rgba(88,145,190,.35);font-size:.64rem;letter-spacing:.02em;color:#7abce4}.waterfall-panel{border-top:1px solid var(--panel-border);border-bottom:1px solid var(--panel-border);background:#070d17b3}.waterfall-grid{display:grid;grid-template-columns:1fr;gap:.5rem;padding:.5rem}.waterfall-grid.compare{grid-template-columns:1fr 1fr}.waterfall-wrap{border:1px solid var(--panel-border);border-radius:10px;padding:.45rem;background:#060e19b3}.waterfall-wrap h4{margin:0 0 .35rem;font-size:.75rem;color:var(--muted);font-weight:600}.waterfall-wrap canvas{width:100%;height:120px;display:block;border:1px solid #253f5e;border-radius:8px;background:#020b16}.is-hidden{display:none}.sim-footer{border-top:1px solid var(--panel-border);background:#070d17d9;padding:.7rem .9rem;color:var(--muted);font-size:.82rem}@media (max-width: 960px){body{height:auto;overflow:auto}.sim-app{height:auto;grid-template-columns:1fr;grid-template-rows:auto 1fr}.sim-panel{border-right:0;border-bottom:1px solid var(--panel-border)}.scene-wrap .scene-host{min-height:42vh}.scene-grid.compare,.waterfall-grid.compare{grid-template-columns:1fr}}
