:root{--navy-900:#0a1420;--navy-800:#0d1b2a;--navy-700:#132437;--navy-600:#1b3047;--line:#223c56;--line-soft:#1a2e44;--text:#e8eef5;--text-dim:#93a8bd;--text-faint:#64798f;--accent:#4cc9f0;--accent-dim:#2d8fb3;--danger:#ef5d5d;--warn:#f2b134;--ok:#5ec98a;--radius:8px;--mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:var(--navy-900);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font:14px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.app{flex-direction:column;min-height:100%;display:flex}.topbar{background:var(--navy-800);border-bottom:1px solid var(--line);z-index:5;align-items:center;gap:10px;padding:10px 20px;display:flex;position:sticky;top:0}.topbar strong{letter-spacing:.2px;font-size:15px}.tag{color:var(--text-faint);border-left:1px solid var(--line);padding-left:10px;font-size:12px}.grow{flex:1}.foot{border-top:1px solid var(--line-soft);color:var(--text-faint);justify-content:space-between;gap:16px;margin-top:auto;padding:14px 20px;font-size:12px;display:flex}.cols{grid-template-columns:minmax(340px,420px) 1fr;align-items:start;gap:16px;padding:16px;display:grid}@media (width<=900px){.cols{grid-template-columns:1fr}}.col{flex-direction:column;gap:16px;min-width:0;display:flex}.panel{background:var(--navy-800);border:1px solid var(--line-soft);border-radius:var(--radius)}.panel-head{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.panel-head h2{text-transform:uppercase;letter-spacing:.7px;margin:0;font-size:13px}.panel-head .sub{color:var(--text-faint);margin:3px 0 0;font-size:12px}.panel-body{flex-direction:column;gap:12px;padding:14px;display:flex}.row{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.field{flex-direction:column;flex:auto;gap:4px;min-width:0;display:flex}.field.wide{width:100%}.field-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;font-size:11px}.field-input{align-items:center;display:flex;position:relative}input,select{background:var(--navy-900);border:1px solid var(--line);width:100%;color:var(--text);font:inherit;font-variant-numeric:tabular-nums;border-radius:6px;padding:7px 9px}input:focus,select:focus{outline:2px solid var(--accent-dim);outline-offset:-1px}.suffix{color:var(--text-faint);pointer-events:none;font-size:12px;position:absolute;right:9px}input[type=number]{padding-right:34px}.segmented{border:1px solid var(--line);border-radius:6px;display:flex;overflow:hidden}.segmented button{background:var(--navy-900);border:0;border-right:1px solid var(--line);color:var(--text-dim);font:inherit;cursor:pointer;white-space:nowrap;flex:1;padding:7px 10px}.segmented button:last-child{border-right:0}.segmented button.on{background:var(--navy-600);color:var(--text)}.btn{background:var(--navy-700);border:1px solid var(--line);color:var(--text);font:inherit;cursor:pointer;white-space:nowrap;border-radius:6px;padding:6px 11px}.btn:hover{background:var(--navy-600)}.btn.ghost{color:var(--text-dim);background:0 0}.hint{color:var(--text-faint);margin:0;font-size:12px}.hint strong{color:var(--text-dim)}.empty{color:var(--text-faint);margin:0;font-size:13px}.derived{color:var(--text-faint);font-size:12px;font-family:var(--mono);padding-bottom:8px}.stats{flex-wrap:wrap;gap:10px;display:flex}.stat{background:var(--navy-900);border:1px solid var(--line-soft);border-radius:6px;flex:140px;padding:9px 11px}.stat-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;font-size:11px}.stat-value{font-size:19px;font-family:var(--mono);margin-top:2px}.stat-note{color:var(--text-faint);font-size:11px}.stat.t-ok .stat-value{color:var(--ok)}.stat.t-warn .stat-value{color:var(--warn)}.stat.t-danger .stat-value{color:var(--danger)}.grid{border-collapse:collapse;width:100%;font-size:13px}.grid th{text-align:left;text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);border-bottom:1px solid var(--line);padding:5px 8px 5px 0;font-size:11px;font-weight:600}.grid td{border-bottom:1px solid var(--line-soft);padding:6px 8px 6px 0}.grid tr.is-ref{background:#4cc9f00d}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.dim{color:var(--text-dim)}.bad{color:var(--danger)}.pill{text-transform:uppercase;letter-spacing:.5px;color:var(--accent);border:1px solid var(--accent-dim);border-radius:3px;margin-left:6px;padding:0 4px;font-size:10px}.warnings{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.warnings li{border-left:3px solid var(--line);color:var(--text-dim);padding-left:10px;font-size:12.5px;line-height:1.5}.warnings .w-error{border-left-color:var(--danger);color:var(--text)}.warnings .w-warn{border-left-color:var(--warn)}.warnings .w-note{border-left-color:var(--accent-dim)}.w-code{font-family:var(--mono);color:var(--text-faint);margin-right:8px;font-size:10.5px;display:inline-block}.code{background:var(--navy-900);border:1px solid var(--line-soft);max-height:260px;font-family:var(--mono);color:var(--text-dim);border-radius:6px;margin:8px 0 0;padding:10px;font-size:11.5px;overflow:auto}details summary{cursor:pointer;color:var(--text-dim);font-size:13px}.viz-wrap{width:100%;overflow-x:auto}.viz{width:100%;min-width:480px;display:block}.viz-cap{fill:var(--text-dim);letter-spacing:.4px;font-size:11px}.viz-name{fill:var(--text);text-anchor:middle;font-size:12px}.viz-ratio{fill:var(--text);text-anchor:middle;font-size:15px;font-family:var(--mono);font-variant-numeric:tabular-nums}.viz-detail{fill:var(--text-faint);text-anchor:middle;font-size:10.5px}.viz-tag{fill:var(--accent);text-anchor:middle;text-transform:uppercase;letter-spacing:.8px;font-size:9.5px}
