.workspace{display:grid;grid-template-columns:minmax(290px,380px) minmax(0,1fr);gap:20px;margin-bottom:20px;align-items:start}.workspace .card{min-width:0}.workspace label{margin-top:4px}.workspace select{width:100%;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--input-bg);color:var(--text);font:inherit}.controls{position:sticky;top:16px}.controls fieldset{margin:2px 0;padding:0;border:0}.controls legend{margin-bottom:7px;font-size:.9rem}.segmented{display:grid;grid-template-columns:1fr 1fr;overflow:hidden;border:1px solid var(--border);border-radius:9px}.segmented button{border-radius:0;background:var(--input-bg);color:var(--accent-soft)}.segmented button:hover:not(:disabled){background:var(--surface-strong)}.segmented button+button{border-left:1px solid var(--border)}.segmented button.active{background:var(--accent);color:var(--accent-text)}.segmented button.active:hover:not(:disabled){background:var(--accent-strong)}.segmented button:focus-visible{position:relative;z-index:1;outline:2px solid var(--focus);outline-offset:-2px}.numeric-control{display:grid;gap:7px;margin-top:4px}.numeric-control>label{margin:0}.slider-row{display:grid;grid-template-columns:max-content minmax(0,1fr) max-content;align-items:center;gap:9px;color:var(--muted-soft);font-size:.7rem}.value-slider{width:100%;height:24px;margin:0;padding:0;border:0;background:transparent;accent-color:var(--accent);cursor:pointer;appearance:none;-webkit-appearance:none}.value-slider::-webkit-slider-runnable-track{height:6px;border-radius:999px;background:var(--slider-track)}.value-slider::-webkit-slider-thumb{width:20px;height:20px;margin-top:-7px;border:2px solid var(--input-bg);border-radius:50%;background:var(--accent);box-shadow:0 0 0 2px var(--focus);appearance:none;-webkit-appearance:none}.value-slider::-moz-range-track{height:6px;border-radius:999px;background:var(--slider-track)}.value-slider::-moz-range-thumb{width:18px;height:18px;border:2px solid var(--input-bg);border-radius:50%;background:var(--accent)}.value-slider:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.fixed{padding:10px;border:1px solid var(--border-subtle);border-radius:8px;font-size:.82rem}.fineprint{font-size:.78rem}.check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center}.check input{width:auto}.chart{overflow:hidden}.result-readings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;margin:16px 0;padding:14px;border:1px solid var(--border-subtle);border-radius:9px}.result-readings div{min-width:0}.result-readings dt{color:var(--accent-soft);font-size:.78rem}.result-readings dd{margin:3px 0 0;font-weight:700}.chart-viewer{position:relative;max-width:760px;margin:16px auto}.chart-expand-button{position:absolute;z-index:3;top:10px;right:10px;width:auto;padding:9px 13px;border:1px solid var(--accent);border-radius:8px;background:var(--chart-control-bg);color:var(--chart-control-text);box-shadow:0 4px 16px #00000038;font-size:.82rem}.chart-expand-button:hover:not(:disabled){background:var(--chart-control-hover)}.chart-image{position:relative;margin:0;background:#fff}.chart-image img{display:block;width:100%;height:auto}.chart-image svg{position:absolute;inset:0;width:100%;height:100%}.chart-viewer.is-expanded{position:fixed;inset:0;z-index:10000;max-width:none;margin:0;padding:62px 18px 18px;overflow:auto;background:var(--expanded-bg)}.chart-viewer.is-expanded .chart-image{width:100%;max-width:calc((100vh - 82px)*.7072);margin:0 auto;box-shadow:0 20px 60px #00000059}.chart-viewer.is-expanded .chart-expand-button{position:fixed;top:14px;right:18px;font-size:.9rem}.chart-expanded{overflow:hidden}.source-line{font-family:ui-monospace,monospace;font-size:.8rem}.warning-text{color:var(--warning)}.error{color:var(--error)}.modules{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:20px}@media(max-width:780px){.workspace,.modules{grid-template-columns:1fr}.controls{position:static}.result-readings{grid-template-columns:1fr}.chart-viewer.is-expanded{padding:58px 8px 8px}.chart-viewer.is-expanded .chart-expand-button{right:10px}}:root,:root[data-theme=dark]{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,sans-serif;--page-bg: #071a30;--surface: #102d46;--surface-strong: #0b2439;--text: #edf7f5;--muted: #b7ccd4;--muted-soft: #91acb8;--accent: #42d39e;--accent-strong: #2fbd8c;--accent-soft: #8de8c6;--accent-text: #06241d;--border: #3f6885;--border-subtle: #28506d;--input-bg: #071a30;--focus: #83e7c1;--warning: #d7a74a;--error: #ff8d8d;--slider-track: #365d78;--expanded-bg: rgba(2, 14, 26, .98);--chart-control-bg: rgba(18, 58, 86, .94);--chart-control-hover: #174562;--chart-control-text: #9aefd0;--shadow: 0 12px 30px rgba(0, 0, 0, .18);color:var(--text);background:var(--page-bg)}:root[data-theme=light]{color-scheme:light;--page-bg: #e4eef5;--surface: #f7fbfd;--surface-strong: #ffffff;--text: #092a43;--muted: #496775;--muted-soft: #5e7a87;--accent: #157f70;--accent-strong: #116c60;--accent-soft: #197f72;--accent-text: #ffffff;--border: #8eafc0;--border-subtle: #acc6d4;--input-bg: #ffffff;--focus: #0c665d;--warning: #a96a05;--error: #b42318;--slider-track: #acc6d4;--expanded-bg: rgba(226, 238, 245, .98);--chart-control-bg: rgba(247, 251, 253, .96);--chart-control-hover: #e1eef2;--chart-control-text: #126f64;--shadow: 0 12px 30px rgba(9, 42, 67, .1);color:var(--text);background:var(--page-bg)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--page-bg);color:var(--text);transition:background-color .2s ease,color .2s ease}main{max-width:1050px;margin:auto;padding:40px 24px}header,.login{display:flex;justify-content:space-between;gap:28px;align-items:center}header h1,.hero h1{margin:.25rem 0;font-size:clamp(2rem,5vw,3.8rem);letter-spacing:-.05em}span{letter-spacing:.13em;font-size:.75rem;color:var(--accent-soft);font-weight:700}.login{position:relative;min-height:100vh}.hero{max-width:570px}.hero p,p{color:var(--muted);line-height:1.6}.card{min-width:min(100%,360px);margin-bottom:20px;padding:28px;border:1px solid var(--border-subtle);border-radius:16px;background:var(--surface);box-shadow:var(--shadow)}.warning{border-color:var(--warning)}form{display:grid;gap:16px}label{display:grid;gap:7px;font-size:.9rem}input{padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--input-bg);color:var(--text);font:inherit}input:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}button{padding:12px 16px;border:0;border-radius:8px;background:var(--accent);color:var(--accent-text);font:inherit;font-weight:750;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease}button:hover:not(:disabled){background:var(--accent-strong)}button:disabled{cursor:wait;opacity:.65}.secondary,.link{border:1px solid var(--border);background:transparent;color:var(--accent-soft)}.secondary:hover:not(:disabled),.link:hover:not(:disabled){background:var(--surface-strong);color:var(--text)}.link{padding:10px 0;border:0}.actions,.header-actions{display:flex;align-items:center;gap:10px}.actions{gap:18px;margin-top:8px}a{display:block;margin-top:10px;color:var(--accent-soft)}.status{margin-right:0;padding:7px;border:1px solid var(--border);border-radius:99px}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap}.theme-toggle-icon{color:inherit;font-size:1rem;line-height:1;letter-spacing:0}.access-theme-toggle{position:absolute;top:24px;right:24px}dl{display:grid;grid-template-columns:max-content 1fr;gap:8px 18px}dt{color:var(--accent-soft)}.request{display:grid;gap:7px;padding:16px 0;border-top:1px solid var(--border-subtle)}.request span{font-weight:400;letter-spacing:0}.request button{justify-self:start}.center{padding-top:20vh;text-align:center}footer{margin-top:24px;color:var(--muted-soft);font-size:.82rem}@media(max-width:700px){.login,header{align-items:flex-start;flex-direction:column}header{gap:14px}.header-actions{flex-wrap:wrap}.login{justify-content:center;padding-top:90px}.card{width:100%}.access-theme-toggle{top:24px;right:24px}}
