:root{color-scheme:light;--font-ui: system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, "SF Mono", "Cascadia Mono", "JetBrains Mono", "DejaVu Sans Mono", Menlo, Consolas, monospace;--radius: 3px;--bg: #e6e4de;--surface: #f6f5f1;--surface-top: #fbfaf7;--inset: #ebe9e3;--input-bg: #ffffff;--text: #1b2024;--text-muted: #555d63;--border: #cdc9bf;--border-strong: #85817a;--heading: #865100;--accent: #3b6a0c;--on-accent: #ffffff;--accent-bg: #e2ebd2;--readout: #2f5806;--lamp-off: #b8b3a8;--prograde: #646a00;--normal: #962bb0;--radial: #006a85;--maneuver: #1d5fb4;--planet: #2f7d4f;--sun: #d39200;--warning: #8c5300;--warning-bg: #f5e8cf;--danger: #b0261d;--danger-bg: #f7e0dc;--button-top: #fdfcf9;--button-bottom: #e4e1d8;--bevel: inset 0 1px 0 rgb(255 255 255 / .8);--shadow: 0 1px 2px rgb(40 36 28 / .14);--backdrop: none}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg: #0a0d10;--surface: #181d21;--surface-top: #1f2529;--inset: #0f1316;--input-bg: #0d1013;--text: #dde3e6;--text-muted: #949ea5;--border: #2c343a;--border-strong: #606c74;--heading: #e8b04a;--accent: #a6d94a;--on-accent: #12180a;--accent-bg: #1f2a16;--readout: #b9e86a;--lamp-off: #3d454b;--prograde: #d4e157;--normal: #d98cf5;--radial: #5fd3f3;--maneuver: #5aa9ff;--planet: #2e7a4c;--sun: #ffc23d;--warning: #f0a33a;--warning-bg: #2a2112;--danger: #ff7a70;--danger-bg: #2c1715;--button-top: #2d3439;--button-bottom: #21272b;--bevel: inset 0 1px 0 rgb(255 255 255 / .06);--shadow: 0 2px 10px rgb(0 0 0 / .45);--backdrop: radial-gradient(1200px 640px at 75% -10%, #142130 0%, transparent 65%)}}:root[data-theme=dark]{color-scheme:dark;--bg: #0a0d10;--surface: #181d21;--surface-top: #1f2529;--inset: #0f1316;--input-bg: #0d1013;--text: #dde3e6;--text-muted: #949ea5;--border: #2c343a;--border-strong: #606c74;--heading: #e8b04a;--accent: #a6d94a;--on-accent: #12180a;--accent-bg: #1f2a16;--readout: #b9e86a;--lamp-off: #3d454b;--prograde: #d4e157;--normal: #d98cf5;--radial: #5fd3f3;--maneuver: #5aa9ff;--planet: #2e7a4c;--sun: #ffc23d;--warning: #f0a33a;--warning-bg: #2a2112;--danger: #ff7a70;--danger-bg: #2c1715;--button-top: #2d3439;--button-bottom: #21272b;--bevel: inset 0 1px 0 rgb(255 255 255 / .06);--shadow: 0 2px 10px rgb(0 0 0 / .45);--backdrop: radial-gradient(1200px 640px at 75% -10%, #142130 0%, transparent 65%)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--backdrop),var(--bg);background-attachment:fixed;color:var(--text);font-family:var(--font-ui);font-size:16px;line-height:1.45;accent-color:var(--accent)}a{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.muted{color:var(--text-muted)}.hint{font-size:.8rem;color:var(--text-muted)}.panel{padding:1.25rem;border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(var(--surface-top),var(--surface));box-shadow:var(--bevel),var(--shadow)}.panel-title{margin:0 0 1rem;color:var(--heading);font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.panel-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem;margin-bottom:1rem}.panel-header .panel-title{margin:0}.callout{margin:0;padding:.75rem 1rem;border:1px solid var(--border);border-left:3px solid var(--callout, var(--accent));border-radius:var(--radius);background:var(--callout-bg, var(--inset));line-height:1.5}.callout.warning{--callout: var(--warning);--callout-bg: var(--warning-bg)}.callout.danger{--callout: var(--danger);--callout-bg: var(--danger-bg)}.button{display:inline-flex;align-items:center;gap:.5rem;padding:.35rem .8rem;border:1px solid var(--border-strong);border-radius:2px;background:linear-gradient(var(--button-top),var(--button-bottom));box-shadow:var(--bevel);color:var(--text);font:inherit;font-size:.875rem;font-weight:600;line-height:1.3;cursor:pointer}.button:hover{border-color:var(--accent)}.button:active{background:var(--button-bottom);box-shadow:inset 0 1px 2px #00000040}.button.small{padding:.2rem .55rem;font-family:var(--font-mono);font-size:.8rem;font-weight:500}.button.lamp:before{content:"";width:.5rem;height:.5rem;border-radius:50%;background:var(--lamp-off);box-shadow:inset 0 1px 1px #00000059}.button.lamp[aria-pressed=true]:before{background:var(--accent);box-shadow:0 0 6px var(--accent)}.segmented{display:inline-flex;gap:2px;padding:2px;border:1px solid var(--border-strong);border-radius:2px;background:var(--inset)}.segmented>button,.segmented>label{position:relative;padding:.3rem .85rem;border:0;border-radius:1px;background:transparent;color:var(--text-muted);font:inherit;font-size:.875rem;cursor:pointer}.segmented>button:hover,.segmented>label:hover{color:var(--text)}.segmented>[aria-pressed=true],.segmented>label:has(input:checked){background:var(--accent);color:var(--on-accent);font-weight:600}.segmented>label input{position:absolute;inset:0;margin:0;opacity:0;cursor:pointer}.segmented>label:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.readouts{display:grid;grid-template-columns:repeat(auto-fit,minmax(7.5rem,1fr));gap:.5rem;margin:0}.readouts>div{padding:.45rem .65rem .5rem;border:1px solid var(--border);border-radius:2px;background:var(--inset)}.readouts dt{color:var(--text-muted);font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.readouts dd{margin:.15rem 0 0;color:var(--readout);font-family:var(--font-mono);font-size:1.05rem;white-space:nowrap}.readouts .prograde dd{color:var(--prograde)}.readouts .normal dd{color:var(--normal)}.readouts .total{border-color:var(--accent)}.readouts .total dd{font-weight:700}.facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(11.5rem,1fr));gap:.75rem 1rem;margin:0}.facts dt{color:var(--text-muted);font-size:.85rem}.facts dd{margin:.125rem 0 0;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.facts .main dd{color:var(--readout);font-size:1.2rem}.step-number{display:inline-grid;flex:none;place-items:center;width:1.5rem;height:1.5rem;border-radius:2px;background:var(--accent);color:var(--on-accent);font-family:var(--font-mono);font-size:.8rem;font-weight:700}.prograde{color:var(--prograde)}.normal{color:var(--normal)}.radial{color:var(--radial)}fieldset{min-width:0;margin:0;padding:0;border:0}legend{margin-bottom:.5rem;padding:0;color:var(--text-muted);font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}label{font-size:.9rem}.row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.row.three{grid-template-columns:repeat(3,1fr)}.field{display:flex;flex-direction:column;gap:.25rem;min-width:0}.choice{display:flex;align-items:center;gap:.45rem}.choice:has(input:disabled){opacity:.55}input[type=number],select{width:100%;min-width:0;padding:.45rem .6rem;border:1px solid var(--border-strong);border-radius:2px;background:var(--input-bg);box-shadow:inset 0 1px 2px #00000026;color:inherit;font:inherit}input[type=number]:focus-visible,select:focus-visible{border-color:var(--accent)}input[type=number]:disabled,select:disabled{opacity:.5}input[type=number][aria-invalid=true],select[aria-invalid=true]{border-color:var(--danger)}input[type=number]{font-family:var(--font-mono)}.with-unit{position:relative}.with-unit input{padding-right:2.5rem}.with-unit .unit{position:absolute;top:50%;right:.6rem;transform:translateY(-50%);color:var(--text-muted);font-family:var(--font-mono);font-size:.85rem;pointer-events:none}.error{color:var(--danger);font-size:.8rem}.error:empty{display:none}.form-summary{display:grid;gap:.15rem;margin:0}.form-summary span{color:var(--text-muted);font-size:.9rem}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{padding:.5rem .8rem;text-align:left}.data-table thead th{border-bottom:1px solid var(--border-strong);color:var(--text-muted);font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.data-table tbody tr+tr{border-top:1px solid var(--border)}.data-table .num{font-family:var(--font-mono);font-size:.95rem;text-align:right;white-space:nowrap}
