:root{font:16px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif;color:#eaf3ff;background:#10243b;color-scheme:dark}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}
.lab{max-width:1260px;margin:auto;padding:clamp(14px,2.5vw,28px)}
header{margin-bottom:16px}header h1{font-size:clamp(24px,4vw,43px);line-height:1.1;margin:5px 0}
header p{margin:5px 0;color:#b9c9df}.eyebrow{font-size:12px;letter-spacing:.1em;font-weight:800;color:#8ad8f7}
.steps{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 20px}.steps span{font-size:13px;border:1px solid #344863;padding:5px 10px;border-radius:99px;color:#a5bdd5}
.steps .active{color:#0b2034;background:#80e5ff;border-color:#80e5ff;font-weight:700}
.columns{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(290px,1fr);gap:16px;align-items:start}
.columns>div{min-width:0}.panel{background:#1a3150;border:1px solid #344e70;border-radius:18px;padding:16px;margin-bottom:15px}
.panel h2{font-size:17px;line-height:1.25;margin:0 0 10px}.panel p{margin:8px 0 12px}
.panel-header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;align-items:center}.panel-header span{font-size:13px;color:#b8cce5}
.scene{display:block;width:100%;height:auto;border-radius:12px;overflow:hidden;background:#173453}
.upper{fill:#244a65}.lower{fill:#17526c}.boundary{stroke:#c1f5ff;stroke-width:3}
.normal{stroke:#e5ecf5;stroke-width:2;stroke-dasharray:9 9}.svg-label{fill:#e6f3ff;font:20px system-ui,sans-serif}
.ray{stroke-width:6;stroke-linecap:round}.ray-in{stroke:#ffd37c}.ray-refl{stroke:#f3a0e6}.ray-out{stroke:#86f2fc}
.point{fill:#fff}.legend{display:flex;flex-wrap:wrap;gap:7px 12px;font-size:12px;color:#d6e4f8;margin-top:9px}
.values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}
.values div{background:#12263e;border-radius:11px;padding:9px;min-width:0}.values small{display:block;font-size:12px;color:#b2c9e4}
.values b{display:block;font-variant-numeric:tabular-nums;font-size:clamp(12px,1.8vw,20px);overflow-wrap:anywhere}
.observation{background:#234364;border-left:3px solid #80e5ff;border-radius:8px;padding:10px;color:#f2f8ff;min-height:46px}
fieldset{border:0;padding:0;margin:12px 0;display:grid;gap:7px}
fieldset label{display:flex;align-items:center;gap:9px;padding:9px 11px;border:1px solid #405a7a;border-radius:10px;cursor:pointer}
fieldset label:has(input:checked){border-color:#7aeaff;background:#214769}
fieldset input{accent-color:#65e4ff}
.primary,.secondary{border:0;border-radius:11px;padding:11px 14px;font-weight:700;width:100%}
.primary{background:#81e4ff;color:#10304a}.secondary{background:#305576;color:#eaf7ff;margin-top:9px}
button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #ffdc82;outline-offset:3px}
.range-label{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px;margin:12px 0 5px}
input[type=range]{width:100%;accent-color:#82e3ff;min-height:27px}
select{width:100%;padding:9px;border:1px solid #7892b6;border-radius:9px;background:#162a45;color:#eaf3ff}
output{font-weight:700;font-variant-numeric:tabular-nums;color:#98e7fa}
.presets{display:flex;gap:7px;margin:12px 0}.presets button{padding:8px 10px;border-radius:10px;border:1px solid #537096;color:#e5f0ff;background:#284768;flex:1}
.presets button[aria-pressed=true]{background:#82e4ff;color:#10304a}
.axis{stroke:#b4cade;stroke-width:2}.curve{stroke:#7fe7ff;stroke-width:5;fill:none;stroke-linecap:round;stroke-linejoin:round}
.plot-dot{fill:#ffd37c;stroke:#10243b;stroke-width:2}.chart-label{fill:#d6e6f6;font:18px system-ui}
.graph svg{width:100%;display:block}.fine{font-size:13px;color:#c2d0e2}.table-scroll{overflow:auto}
table{width:100%;border-collapse:collapse;font-size:13px;margin-top:12px;min-width:260px}th,td{padding:7px 5px;text-align:left;border-bottom:1px solid #40597b}
.question{font-weight:700}details{background:#102a46;padding:10px 11px;border-radius:10px;margin:9px 0}
summary{cursor:pointer;font-weight:700}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
[hidden]{display:none!important}footer{font-size:12px;color:#a9bfd7;margin:15px 2px}
@media(max-width:780px){.columns{grid-template-columns:minmax(0,1fr)}.values b{font-size:17px}}
@media(max-width:440px){.lab{padding:10px}.panel{padding:12px;border-radius:13px}.svg-label{font-size:28px}.chart-label{font-size:25px}
.values{gap:5px}.values div{padding:7px}.values b{font-size:13px}.values small{font-size:10px}
.steps span{padding:4px 7px;font-size:11px}.legend{font-size:11px}
}