:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none;color-scheme:light;--bg:#f6f9fd;--card:#ffffff;--text:#14233d;--muted:#66748d;--line:#e1e8f1;--blue:#3778f6;--blue-d:#2760d7;--blue-pale:#edf4ff;--soft:#f2f6fc;--field:#fff;--shadow:0 12px 38px rgba(30,63,111,.045);--warn:#aa6529;--error:#bc3b39;--focus:rgba(55,120,246,.28)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-size:14px;line-height:1.45}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--focus);outline-offset:3px}a{color:var(--blue-d)}.shell{width:min(1312px,calc(100% - 54px));margin-inline:auto}.skip{position:absolute;left:10px;top:-60px;background:var(--card);color:var(--text);z-index:11;padding:10px 18px}.skip:focus{top:10px}.topbar{height:76px;background:var(--card);border-bottom:1px solid var(--line)}.topbar-inner{display:flex;align-items:center;justify-content:space-between;height:100%}.brand{display:flex;gap:10px;align-items:center;text-decoration:none;color:var(--text);font-size:20px;font-weight:760;letter-spacing:-.75px}.brandmark{background:linear-gradient(140deg,#61b8ff,#3074f7);width:34px;height:34px;border-radius:11px;display:grid;place-items:center;color:#fff;font-size:21px;box-shadow:0 6px 14px #3f8aff30}.brand-dot{color:var(--blue)}.topbar-right{display:flex;align-items:center;gap:22px}.top-category{color:var(--muted);font-size:12px}.icon-button{background:var(--soft);color:var(--text);display:grid;place-items:center;width:38px;height:38px;border-radius:12px;border:1px solid var(--line)}.intro{padding:47px 0 32px}.eyebrow{font-size:10px;font-weight:850;color:var(--blue-d);letter-spacing:2px;display:flex;gap:10px;align-items:center}.live-dot{width:8px;height:8px;background:#63b7ff;border-radius:50%;box-shadow:0 0 0 4px #478bf623}.intro h1{font-size:clamp(35px,4vw,56px);line-height:1.12;letter-spacing:-2.2px;font-weight:800;margin:15px 0 13px}.intro h1 span{color:var(--blue)}.intro>p{max-width:700px;color:var(--muted);font-size:15px;line-height:1.75;margin:0}.intro-meta{display:flex;gap:22px;flex-wrap:wrap;color:#72819a;font-size:12px;font-weight:550;margin-top:20px}.workspace{display:grid;grid-template-columns:minmax(305px,390px) minmax(0,1fr);gap:22px;align-items:start}.card{background:var(--card);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:25px}.results-stack,.side-stack{display:grid;gap:22px;min-width:0}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:25px}.panel-heading.small{margin-bottom:16px}.overline{color:#8596b4;font-size:10px;letter-spacing:1.55px;font-weight:830;margin:0 0 7px}.panel-heading h2{font-size:20px;letter-spacing:-.55px;line-height:1.2;margin:0}.field{display:flex;flex-direction:column;gap:9px;margin-bottom:19px;min-width:0}.field label,.label-line label{font-size:12px;font-weight:720;display:inline-block}.field label small{color:var(--muted);font-weight:540}.fieldpair{display:grid;grid-template-columns:1fr 1fr;gap:13px}.fieldpair .field{min-width:0}.field input,.field select,.share-output input{height:43px;width:100%;background:var(--field);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:0 12px;min-width:0}.field input:hover,.field select:hover{border-color:#adbfe0}.field input:focus,.field select:focus{border-color:var(--blue);outline:3px solid var(--focus)}.field select{padding-right:10px;cursor:pointer}.sensor-note{color:var(--muted);font-size:11.5px;line-height:1.55;margin:-8px 0 14px}.sensor-note strong{color:var(--text)}.section-divider{height:1px;background:var(--line);margin:17px 0 22px}.label-line{display:flex;align-items:center;justify-content:space-between}.unit-toggle{display:flex;background:var(--soft);border:1px solid var(--line);border-radius:9px;padding:3px}.unit{padding:4px 10px;min-width:34px;border:0;border-radius:6px;background:0 0;color:var(--muted);font-weight:700;font-size:11px}.unit.selected{background:var(--card);color:var(--blue-d);box-shadow:0 1px 4px #0a296a1c}.distance-wrap{position:relative}.distance-wrap input{padding-right:72px}.distance-wrap span{position:absolute;right:13px;top:12px;color:var(--muted);font-size:12px;pointer-events:none}.help{background:var(--soft);color:var(--muted);border:1px solid var(--line);font-size:10px;line-height:14px;display:inline-block;text-align:center;border-radius:50%;width:16px;height:16px;cursor:help}.btn{border-radius:10px;font-size:12px;font-weight:740;padding:11px 15px;min-height:41px;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:normal;text-align:center;transition:background .12s,border-color .12s}.btn.primary{background:var(--blue);color:#fff;box-shadow:0 6px 18px rgba(55,120,246,.18)}.btn.primary:hover{background:var(--blue-d)}.btn.outline{background:var(--card);color:var(--text);border-color:var(--line)}.btn.mini:hover,.btn.outline:hover{background:var(--blue-pale);border-color:#bfd3ff}.btn.mini{min-height:30px;padding:6px 10px;background:var(--soft);color:var(--text);border-color:var(--line)}.btn.full{width:100%}.field-action{display:flex;gap:9px}.field-action .btn{flex:1;min-width:0}.validation{padding:10px 12px;border-radius:10px;color:var(--error);background:#fef1ef;border:1px solid #f8d3cd;font-size:12px;margin:0 0 14px}[hidden]{display:none!important}.share-output{margin-top:12px;border-top:1px solid var(--line);padding-top:12px}.share-output label{font-size:11px;font-weight:650}.row-inline{display:flex;gap:6px;margin-top:7px}.row-inline input{font-size:11px;min-width:0}.share-output p{font-size:11px;color:var(--muted)}.state-label{display:inline-flex;background:#edf9f0;color:#17824a;font-size:11px;font-weight:720;border-radius:30px;padding:6px 10px;white-space:nowrap}.state-label.invalid{background:#fff1f0;color:#bb4340}.result-main{display:flex;align-items:center;justify-content:space-between;min-width:0;border-radius:15px;background:linear-gradient(135deg,#edf5ff,#f5f7fe);padding:26px 30px;margin-bottom:20px;gap:12px}.metric-label{font-size:11px;font-weight:690;color:#7282a0;margin-bottom:7px}.hero-value{font-size:clamp(29px,3.1vw,46px);font-weight:825;color:#1a448d;letter-spacing:-1.9px;line-height:1.1;overflow-wrap:anywhere}.subtle{color:#7c90ac;font-size:11px;margin:8px 0 0}.focus-symbol{color:#6c97e7;opacity:.76}.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden}.metric{padding:17px 14px;background:var(--card);min-width:0}.metric strong{display:block;font-size:clamp(17px,1.8vw,24px);font-weight:790;letter-spacing:-.7px;overflow-wrap:anywhere;line-height:1.3}.metric small{font-size:11px;color:var(--muted);display:block;margin-top:5px}.text-action{padding:0;border:0;background:0 0;color:var(--blue-d);font-size:11px;font-weight:730;text-align:left;line-height:1.5;margin-top:5px}.text-action:hover{text-decoration:underline}.tiny-chip{border-radius:30px;background:var(--soft);border:1px solid var(--line);font-size:9px;letter-spacing:.8px;color:var(--muted);font-weight:820;padding:6px 9px;white-space:nowrap}.zone-graph{width:100%;height:auto;display:block;background:var(--soft);border-radius:12px;overflow:visible}.graph-key{display:flex;gap:19px;flex-wrap:wrap;margin-top:16px;font-size:11px;color:var(--muted)}.legend-color{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px}.legend-color.blue{background:#4a8fff}.legend-color.dark{background:#172f52}.legend-color.gold{background:#d6a35f}.graph-caption{font-size:11px;color:var(--muted);margin:10px 0 0}.small-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.small-metrics>div{padding:14px 16px;border-radius:11px;background:var(--soft);min-width:0}.small-metrics span{font-size:11px;color:var(--muted);display:block;margin-bottom:6px}.small-metrics strong{font-size:20px;letter-spacing:-.4px}.info-note{color:var(--muted);font-size:11px;line-height:1.55;margin:18px 0 0;border-left:3px solid #8fb8ff;padding-left:12px}.lower-grid{display:grid;grid-template-columns:minmax(0,1.22fr) minmax(300px,.78fr);gap:22px;align-items:start;margin-top:22px}.section-help{color:var(--muted);font-size:12px;line-height:1.65;margin:-6px 0 20px}.table-scroll{overflow-x:auto}.aperture-table{width:100%;border-collapse:collapse;text-align:left;font-variant-numeric:tabular-nums;white-space:nowrap}.aperture-table th{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.6px;font-weight:730;border-bottom:1px solid var(--line);padding:12px 11px}.aperture-table td{border-bottom:1px solid var(--line);padding:12px 11px;font-size:12px}.aperture-table tr:last-child td{border-bottom:0}.aperture-table .current{background:var(--blue-pale)}.aperture-table .current td:first-child{font-weight:790;color:var(--blue-d)}.aperture-table button{border:1px solid var(--line);background:var(--card);color:var(--blue-d);border-radius:7px;padding:5px 9px;font-size:10px;font-weight:760}.aperture-table button:hover{background:var(--soft)}.plan-result{margin-top:15px;border-radius:12px;background:var(--blue-pale);padding:17px}.plan-result>div{display:flex;align-items:center;justify-content:space-between;margin:5px 0}.plan-result span{font-size:12px;color:#46628b}.plan-result strong{font-size:20px;color:#2557a1}.plan-result p{color:#47658b;font-size:11px;line-height:1.5}.plan-result button{margin-top:8px}.scenario-list{display:grid;gap:8px;max-height:370px;overflow-y:auto;margin-bottom:16px}.empty-scenarios{border:1px dashed var(--line);background:var(--soft);color:var(--muted);border-radius:11px;text-align:center;padding:27px 17px;font-size:12px}.scenario{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;padding:12px;min-width:0}.scenario-info{flex:1;min-width:0}.scenario-info strong{display:block;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scenario-info span{font-size:10px;color:var(--muted);display:block;margin-top:4px;line-height:1.6}.scenario-actions{display:flex;gap:5px}.scenario-actions button{border:1px solid var(--line);border-radius:7px;background:var(--soft);font-size:10px;font-weight:730;color:var(--text);padding:7px;white-space:nowrap}.scenario-actions button:hover{border-color:var(--blue)}.learn{margin-top:22px}.learn-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.learn h3{font-size:13px;margin:0 0 9px}.learn p{font-size:12px;color:var(--muted);margin:0;line-height:1.75}.learn code{font-size:11px;color:var(--blue-d);font-family:SFMono-Regular,Consolas,monospace}.fine-print{border-top:1px solid var(--line);padding-top:18px!important;margin-top:22px!important}.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#173361;color:#fff;padding:12px 18px;font-size:12px;font-weight:630;border-radius:11px;z-index:5;box-shadow:0 16px 32px #0002;max-width:min(92vw,550px)}footer{padding:30px 0 45px;display:flex;justify-content:space-between;gap:14px;color:var(--muted);font-size:11px}.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}@media(max-width:1050px){.workspace{grid-template-columns:minmax(275px,350px) minmax(0,1fr)}.lower-grid{grid-template-columns:minmax(0,1fr) minmax(290px,.85fr)}.card{padding:19px}.metric{padding:13px 10px}.metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.small-metrics strong{font-size:17px}.focus-symbol svg{width:55px;height:55px}.result-main{padding:22px}}@media(max-width:800px){.lower-grid,.workspace{grid-template-columns:1fr}.intro{padding:32px 0 25px}.results-stack{gap:15px}.metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.lower-grid{margin-top:15px}.card{padding:22px}.side-stack{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.fieldpair{gap:13px}}@media(max-width:560px){.shell{width:calc(100% - 28px)}.topbar{height:65px}.brand{font-size:18px}.top-category{display:none}.intro h1{font-size:36px;letter-spacing:-1.6px}.intro-meta{gap:10px;font-size:10px}.lower-grid,.results-stack,.workspace{gap:13px}.card{padding:18px;border-radius:16px}.panel-heading h2{font-size:18px}.panel-heading{margin-bottom:20px}.result-main{padding:19px}.focus-symbol svg{width:44px;height:44px}.hero-value{font-size:33px}.metrics{grid-template-columns:1fr 1fr}.metric:last-child{grid-column:span 2}.side-stack{grid-template-columns:1fr}.graph-key{gap:8px;font-size:9px}.small-metrics{gap:9px}.small-metrics>div{padding:12px}.learn-grid{grid-template-columns:1fr;gap:18px}.field-action .btn{padding:10px 8px}.scenario-actions{flex-direction:column}.scenario-actions button{padding:5px 7px}.zone-graph{min-height:142px}footer{display:block;text-align:center}footer span{display:block;padding:3px}}@media print{body{background:#fff;color:#111}.aperture-table button,.btn,.focus-symbol,.icon-button,.input-panel,.intro-meta,.scenario-actions,.share-output,.text-action,.toast,.top-category,.topbar,.unit-toggle,footer{display:none!important}.shell{width:100%}.intro{padding:12px 0}.intro h1{font-size:30px}.card{break-inside:avoid;box-shadow:none;border:1px solid #ccc;padding:14px}.lower-grid,.workspace{display:block}.results-stack,.side-stack{display:block}.card{margin:10px 0}.learn-grid{gap:10px}.hero-value{color:#111}.result-main{background:#eee}.zone-graph{max-height:130px}.small-metrics>div{background:#eee}}:root[data-theme=dark]{color-scheme:dark;--bg:#0e1829;--card:#162338;--text:#e9eff9;--muted:#a0b0cb;--line:#2b3d56;--blue:#6b9eff;--blue-d:#9cbcff;--blue-pale:#1a3152;--soft:#1b2c45;--field:#122035;--shadow:0 12px 36px rgba(0,0,0,.08);--error:#ffb0a7;--focus:rgba(105,160,255,.4)}:root[data-theme=dark] .result-main{background:linear-gradient(135deg,#1c365b,#1b2a43)}:root[data-theme=dark] .hero-value,:root[data-theme=dark] .metric strong{color:#e8f1ff}:root[data-theme=dark] .metric-label{color:#a6bce1}:root[data-theme=dark] .small-metrics strong{color:#e8f1ff}:root[data-theme=dark] .state-label{background:#193f34;color:#91efc1}:root[data-theme=dark] .validation{background:#442828;border-color:#864646}:root[data-theme=dark] .plan-result{background:#20385b}:root[data-theme=dark] .plan-result strong{color:#acf}:root[data-theme=dark] .plan-result p,:root[data-theme=dark] .plan-result span{color:#a4b9dd}:root[data-theme=dark] .eyebrow{color:#a3c4ff}.lower-grid>*,.results-stack>*,.side-stack>*,.table-scroll,.workspace>*{min-width:0}.table-scroll{max-width:100%;overflow-x:auto}@media(max-width:560px){html{overflow-x:clip}}.storage-warning{padding:10px 12px;margin:0 0 16px;border:1px solid #eacb98;border-radius:10px;background:#fff8eb;color:#755018;font-size:12px;line-height:1.55}.compare-wrap{margin:0 0 16px;border-top:1px solid var(--line);padding-top:13px}.compare-wrap h3{font-size:12px;margin:0 0 6px;letter-spacing:-.1px}.compare-wrap p{color:var(--muted);font-size:11px;margin:6px 0 0}.compare-table{min-width:500px}.compare-table th[scope=row]{max-width:170px;text-overflow:ellipsis;overflow:hidden;font-size:11px;white-space:nowrap;font-weight:730}.table-scroll:focus-visible{outline:3px solid var(--focus);outline-offset:2px}[aria-invalid=true]{border-color:var(--error)!important;box-shadow:0 0 0 1px var(--error)}:root[data-theme=dark] .storage-warning{background:#423324;color:#f9dba5;border-color:#92754b}@media print{.compare-wrap p,.storage-warning{display:none!important}.compare-wrap:not([hidden]){display:block!important}.compare-table{min-width:0}}.infinity-panel .field{margin-bottom:14px}.small-disclaimer{font-size:11px;color:var(--muted);line-height:1.6;margin:15px 0 0}.backup-panel{padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--soft);margin:0 0 14px}.backup-panel h3{font-size:12px;margin:0 0 5px;font-weight:780}.backup-panel p{font-size:11px;line-height:1.55;color:var(--muted);margin:0 0 12px}.backup-panel .field-action{margin:0;gap:8px}.backup-panel .btn{font-size:11px}.backup-panel .backup-feedback{margin:9px 0 0;min-height:1em;color:var(--text);overflow-wrap:anywhere}.btn:disabled{opacity:.5;cursor:not-allowed}@media(max-width:560px){.backup-panel{padding:12px}.backup-panel .field-action{display:grid;grid-template-columns:1fr 1fr}}@media print{.backup-panel,.infinity-panel .btn{display:none!important}.infinity-panel{display:none!important}}.scenario-rename{display:block;width:100%;min-width:0;padding:7px 9px;font-size:12px;border:1px solid var(--line);border-radius:7px;background:var(--field);color:var(--text)}.scenario-info .name-error{color:var(--error);white-space:normal;font-size:11px}@media(max-width:560px){.scenario-actions{flex-wrap:wrap}.scenario-actions button{font-size:10px}}