:root{--bg:#0b1220;--panel:#111a2c;--panel-2:#16213a;--line:#24314d;--text:#e5ebf5;--muted:#8d9ab3;--accent:#60a5fa;--warn-bg:#3a2a0a;--warn-line:#f5b83d;--up:#ef4444;--down:#3b82f6;color:var(--text);background:var(--bg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;font-size:14px}*{box-sizing:border-box}body{background:var(--bg);margin:0;overflow:hidden}button,select,input{font:inherit;color:inherit}button{cursor:pointer}h3{letter-spacing:.02em;margin:0 0 10px;font-size:15px}h4{margin:18px 0 8px;font-size:13px}.muted{color:var(--muted)}.small{font-size:12px}.tiny{font-size:11px;line-height:1.4}.big{font-size:22px;font-weight:700}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.between{justify-content:space-between}.num{text-align:right;font-variant-numeric:tabular-nums}.abnormal{color:#fbbf24}.app{grid-template-rows:auto auto 1fr auto;height:100vh;display:grid}.topbar{border-bottom:1px solid var(--line);background:#0d1526;justify-content:space-between;align-items:center;padding:8px 16px;display:flex}.brand{align-items:center;gap:8px;font-size:17px;font-weight:700;display:flex}.brand small{color:var(--muted);margin-left:6px;font-size:12px;font-weight:400}.status .ok{color:#4ade80}.status .err{color:#f87171}.disclaimer{background:var(--warn-bg);border-bottom:2px solid var(--warn-line);color:#fde68a;padding:7px 16px;font-size:12.5px}.disclaimer strong{color:#fcd34d}.layout{grid-template-columns:330px 1fr 460px;min-height:0;display:grid}.panel{background:var(--panel);min-height:0;padding:14px;overflow-y:auto}.panel.left{border-right:1px solid var(--line)}.panel.right{border-left:1px solid var(--line)}.footer{border-top:1px solid var(--line);background:#0d1526;padding:5px 16px}.form-presets{flex-direction:column;gap:6px;margin-bottom:10px;display:flex}.form-presets select,.filter,.tab-body select,.physio select{background:var(--panel-2);border:1px solid var(--line);border-radius:6px;padding:6px 8px}.form-presets .row button,.views button,.tabs button{background:var(--panel-2);border:1px solid var(--line);border-radius:6px;padding:5px 10px}.form-presets .row button:hover,.views button:hover,.tabs button:hover{border-color:var(--accent)}.form-group{border:1px solid var(--line);background:#0f1828;border-radius:8px;margin-bottom:8px}.group-head{background:0 0;border:0;justify-content:space-between;width:100%;padding:8px 10px;font-weight:600;display:flex}.group-body{flex-direction:column;gap:9px;padding:2px 10px 10px;display:flex}.field{flex-direction:column;gap:4px;display:flex}.field-label{color:#c4cee0;font-size:12px}.field-label small{color:var(--muted);font-size:10.5px}.field.abnormal .field-label{color:#fbbf24}.field-binary{flex-direction:row;justify-content:space-between;align-items:center}.switch{border:1px solid var(--line);background:var(--panel-2);min-width:52px;color:var(--muted);border-radius:999px;padding:2px 10px;font-size:11.5px}.switch.on{color:#fecaca;background:#7f1d1d;border-color:#ef4444}.segmented{flex-wrap:wrap;gap:3px;display:flex}.segmented button{border:1px solid var(--line);background:var(--panel-2);border-radius:5px;flex:1;min-width:34px;padding:3px 6px;font-size:11.5px}.segmented button.active{border-color:var(--accent);background:#1e3a8a}.numeric{grid-template-columns:1fr 72px auto;align-items:center;gap:6px;display:grid}.numeric input[type=range]{width:100%;accent-color:var(--accent)}.numeric input[type=number]{background:var(--panel-2);border:1px solid var(--line);border-radius:5px;width:72px;padding:3px 5px}.unit{color:var(--muted);min-width:34px;font-size:11px}.derived-value{font-weight:600}.derived-value small{color:var(--muted);font-weight:400}.stage{background:radial-gradient(#14213b 0%,#0b1220 70%);min-width:0;min-height:0;position:relative}.stage canvas{touch-action:none}.stage-loading{height:100%;color:var(--muted);place-items:center;display:grid}.overlay{pointer-events:none;position:absolute}.overlay>*{pointer-events:auto}.top-left{flex-direction:column;gap:8px;display:flex;top:12px;left:12px}.top-right{top:12px;right:12px}.bottom-left{bottom:12px;left:12px}.bottom-right{bottom:12px;right:12px}.views{flex-wrap:wrap;gap:4px;display:flex}.views button{background:#111a2cd9;font-size:12px}.views button.active,.tabs button.active{border-color:var(--accent);background:#1e3a8a}.toggles{border:1px solid var(--line);background:#111a2ccc;border-radius:8px;flex-direction:column;gap:3px;width:max-content;padding:6px 8px;display:flex}.check{align-items:center;gap:6px;display:flex}.legend-card{border:1px solid var(--line);background:#111a2cd9;border-radius:8px;width:210px;padding:8px 10px}.gradient{border-radius:5px;height:10px;margin:5px 0 3px}.vessel-card{background:#0d1526eb;border:1px solid;border-left-width:4px;border-radius:8px;flex-direction:column;gap:4px;max-width:380px;padding:10px 12px;display:flex}.hint{background:#0d1526b3;border-radius:6px;padding:4px 8px}.vessel-label{white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;background:#0a101ed1;border:1px solid #3a4a6b;border-radius:999px;align-items:center;gap:5px;padding:2px 8px;font-size:11.5px;transition:opacity .15s;display:flex}.vessel-label.selected{border-color:#fff;box-shadow:0 0 10px #ffffff59}.risk-panel{flex-direction:column;gap:8px;display:flex}.cad-card{text-align:left;background:var(--panel-2);border:1px solid var(--line);border-radius:10px;align-items:center;gap:12px;padding:8px 12px;display:flex}.cad-card.selected,.vessel-row.selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.gauge{flex-shrink:0;width:104px;height:104px}.gauge.placeholder{border:8px solid var(--line);border-radius:50%}.gauge-track,.gauge-fill{fill:none;stroke-width:10px;stroke-linecap:round}.gauge-track{stroke:#24314d}.gauge-fill{transition:stroke-dasharray .5s,stroke .5s}.gauge-value{fill:var(--text);text-anchor:middle;font-size:24px;font-weight:700}.gauge-sub{fill:var(--muted);text-anchor:middle;font-size:10px}.eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:11px}.cad-status{margin:2px 0;font-size:21px;font-weight:700}.truth{color:#c4cee0;margin-top:4px}.vessel-list{flex-direction:column;gap:4px;display:flex}.vessel-row{background:var(--panel-2);border:1px solid var(--line);text-align:left;border-radius:8px;grid-template-columns:12px 150px 1fr 42px auto;align-items:center;gap:8px;padding:6px 10px;display:grid}.vessel-dot{border-radius:50%;width:12px;height:12px}.vessel-name{flex-direction:column;line-height:1.15;display:flex}.vessel-name small{color:var(--muted);font-size:10.5px}.bar{background:#24314d;border-radius:4px;height:8px;position:relative;overflow:visible}.bar-fill{border-radius:4px;transition:width .4s,background .4s;position:absolute;inset:0 auto 0 0}.bar-threshold{opacity:.6;background:#cbd5e1;width:1px;position:absolute;top:-3px;bottom:-3px}.vessel-p{text-align:right;font-variant-numeric:tabular-nums;font-weight:700}.truth-chip{border:1px solid;border-radius:999px;padding:1px 6px;font-size:10px}.truth-chip.pos{color:#fca5a5;border-color:#ef4444}.truth-chip.neg{color:#86efac;border-color:#22c55e}.tabs{gap:4px;margin:12px 0 8px;display:flex}.tabs button{flex:1;font-size:12.5px}.tabs.small button{flex:0 auto;padding:3px 9px;font-size:12px}.target-title{margin-bottom:6px}.summary{background:var(--panel-2);border-radius:8px;margin:0 0 10px;padding:8px 10px;font-size:13px;line-height:1.5}.waterfall{flex-direction:column;gap:3px;margin-bottom:6px;display:flex}.wf-row{grid-template-columns:158px 74px 1fr 46px;align-items:center;gap:6px;font-size:12px;display:grid}.wf-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.wf-value{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.wf-value.abnormal{color:#fbbf24}.wf-track{background:#24314d59;border-radius:3px;height:14px;position:relative}.wf-bar{border-radius:2px;transition:left .3s,width .3s;position:absolute;top:2px;bottom:2px}.wf-marker{background:#cbd5e1;width:2px;position:absolute;top:-2px;bottom:-2px}.wf-marker.final{background:#fff;width:3px}.wf-num{text-align:right;font-variant-numeric:tabular-nums;font-size:11.5px}.wf-edge{border-top:1px dashed var(--line);padding-top:3px}.global-imp{margin-top:12px}.global-imp summary{cursor:pointer;color:var(--muted);font-size:12px}.global-bars{flex-direction:column;gap:3px;margin-top:6px;display:flex}.gb-row{grid-template-columns:150px 1fr 48px;align-items:center;gap:6px;font-size:12px;display:grid}.gb-track{background:#24314d;border-radius:4px;height:8px}.gb-fill{background:var(--accent);border-radius:4px;height:100%;display:block}.gb-num{text-align:right;color:var(--muted);font-size:11px}.physio table,table.metrics{border-collapse:collapse;width:100%;margin-top:6px;font-size:12px}.physio th,.physio td,.metrics th,.metrics td{text-align:left;border-bottom:1px solid #1c2740;padding:4px 5px}.physio th,.metrics th{color:var(--muted);font-size:11px;font-weight:500}.group-row td{color:var(--accent);padding-top:8px;font-weight:600}.flag{margin-left:4px;font-size:9px}.contrib-col{width:120px}.diverge{height:10px;display:block;position:relative}.diverge .axis{background:#475569;width:1px;position:absolute;top:-2px;bottom:-2px;left:50%}.dv-bar{border-radius:2px;position:absolute;top:1px;bottom:1px}.table-wrap{overflow-x:auto}.metrics td small{color:var(--muted);font-size:10px}.metrics tr.selected td{background:#60a5fa14}.swatch{border-radius:2px;width:9px;height:9px;margin-right:5px;display:inline-block}.plots{grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;display:grid}.plots figure{background:var(--panel-2);border-radius:8px;margin:0;padding:6px}.plots figcaption{margin-bottom:2px;font-size:12px}.plot{width:100%}.plot-bg{fill:#0f1828}.grid{stroke:#1f2a44;stroke-width:.6px}.diag{stroke:#475569;stroke-dasharray:4 3;stroke-width:.8px}.curve{fill:none;stroke-width:1.4px;opacity:.75}.curve.sel{stroke-width:2.4px;opacity:1}.tick{fill:var(--muted);font-size:9px}.axis-label{fill:var(--muted);font-size:9.5px}.legend{flex-wrap:wrap;gap:8px;display:flex}.cm{grid-template-columns:52px 1fr 1fr;gap:4px;margin-top:10px;font-size:12px;display:grid}.cm-h{color:var(--muted);text-align:center;align-self:center;font-size:11px}.cm-cell{text-align:center;border-radius:6px;padding:14px 0;font-size:16px;font-weight:700}.cm-cell.good{background:#22c55e33}.cm-cell.bad{background:#ef44442e}.fatal{text-align:center;place-items:center;height:100vh;padding:20px;display:grid}@media (width<=1280px){.layout{grid-template-columns:290px 1fr 400px}.vessel-row{grid-template-columns:12px 110px 1fr 40px auto}}@media (width<=980px){body{overflow:auto}.app{height:auto}.layout{grid-template-columns:1fr}.stage{height:70vh}.panel{overflow:visible}}.label-layer{pointer-events:none;position:absolute;inset:0;overflow:hidden}.label-layer .vessel-label{pointer-events:auto;color:var(--text);visibility:hidden;will-change:transform;position:absolute;top:0;left:0}
