:root{--bg: #e9edf1;--surface: #ffffff;--surface-2: #f3f6f8;--ink: #17222f;--ink-soft: #52616f;--ink-faint: #8593a0;--line: #d3dbe3;--accent: #c96f16;--accent-tint: rgba(201, 111, 22, .1);--good: #1f8a5b;--good-tint: rgba(31, 138, 91, .12);--crit: #c23b34;--crit-tint: rgba(194, 59, 52, .12);--shadow: 0 1px 2px rgba(23, 34, 47, .06), 0 8px 24px rgba(23, 34, 47, .06);--radius: 10px;--font-ui: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, "SF Mono", "Cascadia Mono", "Roboto Mono", Menlo, Consolas, monospace}@media(prefers-color-scheme:dark){:root{--bg: #10161d;--surface: #172029;--surface-2: #1e2831;--ink: #e8edf2;--ink-soft: #9aa8b4;--ink-faint: #66757f;--line: #2a3742;--accent: #e88a2c;--accent-tint: rgba(232, 138, 44, .14);--good: #3fae78;--good-tint: rgba(63, 174, 120, .16);--crit: #e0574e;--crit-tint: rgba(224, 87, 78, .16);--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 10px 28px rgba(0, 0, 0, .35)}}:root[data-theme=light]{--bg: #e9edf1;--surface: #ffffff;--surface-2: #f3f6f8;--ink: #17222f;--ink-soft: #52616f;--ink-faint: #8593a0;--line: #d3dbe3;--accent: #c96f16;--accent-tint: rgba(201, 111, 22, .1);--good: #1f8a5b;--good-tint: rgba(31, 138, 91, .12);--crit: #c23b34;--crit-tint: rgba(194, 59, 52, .12);--shadow: 0 1px 2px rgba(23, 34, 47, .06), 0 8px 24px rgba(23, 34, 47, .06)}:root[data-theme=dark]{--bg: #10161d;--surface: #172029;--surface-2: #1e2831;--ink: #e8edf2;--ink-soft: #9aa8b4;--ink-faint: #66757f;--line: #2a3742;--accent: #e88a2c;--accent-tint: rgba(232, 138, 44, .14);--good: #3fae78;--good-tint: rgba(63, 174, 120, .16);--crit: #e0574e;--crit-tint: rgba(224, 87, 78, .16);--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 10px 28px rgba(0, 0, 0, .35)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-ui);line-height:1.5;-webkit-font-smoothing:antialiased}.wrap{max-width:1180px;margin:0 auto;padding:24px 20px 64px}header.app{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.brand{display:flex;align-items:center;gap:12px}.mark{width:38px;height:38px;border-radius:9px;flex:none;background:var(--ink);color:var(--surface);display:grid;place-items:center}.mark svg{width:22px;height:22px}.brand h1{font-size:17px;margin:0;letter-spacing:-.01em}.brand p{margin:0;font-size:12.5px;color:var(--ink-soft)}.controls{display:flex;align-items:center;gap:10px}.theme-toggle{font:inherit;font-size:12.5px;color:var(--ink-soft);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:7px 12px;cursor:pointer;white-space:nowrap}.theme-toggle:hover{color:var(--ink)}.seg.lang{display:inline-flex;grid-template-columns:none;padding:3px}.seg.lang button{padding:5px 12px;font-size:12.5px;font-variant-numeric:normal}.summary{background:var(--ink);color:#fff;border-radius:14px;padding:22px 26px;display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:22px;align-items:center;box-shadow:var(--shadow);margin-bottom:22px}@media(prefers-color-scheme:dark){.summary{background:#0b1117;border:1px solid var(--line)}}:root[data-theme=dark] .summary{background:#0b1117;border:1px solid var(--line)}:root[data-theme=light] .summary{background:var(--ink);border:0}.summary .eyebrow{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#ffffff8c;margin:0 0 6px}.price-hero{font-family:var(--font-mono);font-size:clamp(34px,6vw,52px);font-weight:600;line-height:1;letter-spacing:-.02em}.price-hero .unit{font-size:16px;font-weight:500;color:var(--accent);margin-left:6px}.summary .metric .val{font-family:var(--font-mono);font-size:24px;font-weight:600}.summary .metric .lbl{font-size:12px;color:#fff9}.summary .divider{width:1px;background:#ffffff24;height:46px;justify-self:start}.grid{display:grid;grid-template-columns:380px 1fr;gap:22px;align-items:start}@media(max-width:880px){.grid{grid-template-columns:1fr}.summary{grid-template-columns:1fr 1fr;row-gap:18px}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.card+.card{margin-top:20px}.card h2{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin:0;padding:16px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px}.card h2 .n{font-family:var(--font-mono);color:var(--accent);font-size:12px}.card .body{padding:18px 20px}.field{margin-bottom:15px}.field:last-child{margin-bottom:0}.field label{display:block;font-size:12.5px;color:var(--ink-soft);margin-bottom:6px}.field label .hint{color:var(--ink-faint)}input[type=number],input[type=text]{width:100%;font:inherit;font-family:var(--font-mono);font-size:14px;color:var(--ink);background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:9px 11px}input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.inline{display:grid;grid-template-columns:1fr 1fr;gap:12px}.suffix-wrap{position:relative}.suffix-wrap .suffix{position:absolute;right:11px;top:50%;transform:translateY(-50%);font-family:var(--font-mono);font-size:12.5px;color:var(--ink-faint);pointer-events:none}.depot{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}.depot strong{font-size:13.5px}.depot span{font-family:var(--font-mono);font-size:12px;color:var(--ink-soft)}.depot .pin{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:3px}.calc-btn{width:100%;font:inherit;font-size:13.5px;font-weight:600;color:#fff;background:var(--accent);border:0;border-radius:8px;padding:11px;cursor:pointer;margin-top:4px}.calc-btn:hover{filter:brightness(1.06)}.calc-btn:active{transform:translateY(1px)}.calc-btn:disabled{opacity:.75;pointer-events:none}.routehint{font-size:11px;color:var(--ink-faint);margin:14px 0 6px}.routeout{border:1px solid var(--line);border-radius:8px;overflow:hidden}.routeout .legval{display:inline-flex;align-items:center;gap:8px}.routeout .legval input{width:58px;padding:5px 7px;text-align:right;font-size:13px}.routeout .legval .mu{font-family:var(--font-mono);font-size:11px;color:var(--ink-faint)}.routeout .legval b{min-width:44px;text-align:right}.routeout .rl{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;font-size:12.5px;color:var(--ink-soft);border-bottom:1px solid var(--line)}.routeout .rl:last-child{border-bottom:0}.routeout .rl em{font-style:normal;font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);margin-left:6px}.routeout .rl b{font-family:var(--font-mono);color:var(--ink);font-weight:600}.routeout .rl.dist{background:var(--surface-2)}.routeout .rl.dist b{color:var(--accent)}.ptv-tag{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);background:var(--accent-tint);padding:2px 7px;border-radius:20px;margin-left:auto}.ptv-tag:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--accent)}.ptv-tag.mock{color:var(--ink-soft);background:var(--surface-2)}.ptv-tag.mock:before{background:var(--ink-faint)}.seg{display:grid;grid-template-columns:1fr 1fr;background:var(--surface-2);border:1px solid var(--line);border-radius:9px;padding:3px;gap:3px}.seg button{font:inherit;font-size:13.5px;font-weight:500;border:0;background:transparent;color:var(--ink-soft);padding:8px;border-radius:6px;cursor:pointer}.seg button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #0000001f}.daybar{display:flex;height:34px;border-radius:7px;overflow:hidden;border:1px solid var(--line);margin:4px 0 12px}.daybar .seg-b{display:grid;place-items:center;font-family:var(--font-mono);font-size:10.5px;color:#fff;min-width:2px;overflow:hidden;white-space:nowrap}.seg-drive{background:#45586a}.seg-drive.alt{background:#566d80}.seg-load{background:var(--accent)}.seg-unload{background:#9a6a3a}.legend{display:flex;flex-wrap:wrap;gap:14px;font-size:12px;color:var(--ink-soft)}.legend span{display:inline-flex;align-items:center;gap:6px}.legend i{width:11px;height:11px;border-radius:3px;display:inline-block}.stepper-row{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:18px;padding-top:16px;border-top:1px dashed var(--line)}.stepper{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:9px;overflow:hidden}.stepper button{font:inherit;font-size:18px;width:38px;height:38px;border:0;background:var(--surface-2);color:var(--ink);cursor:pointer}.stepper button:hover{background:var(--accent-tint);color:var(--accent)}.stepper .count{font-family:var(--font-mono);font-size:17px;font-weight:600;min-width:44px;text-align:center}.stepper .count small{display:block;font-size:9px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint)}.gauge{text-align:right}.gauge .time{font-family:var(--font-mono);font-size:26px;font-weight:600;line-height:1}.gauge .state{font-size:12px;margin-top:4px;display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:20px}.state-ok{color:var(--good);background:var(--good-tint)}.state-warn{color:var(--accent);background:var(--accent-tint)}.state-over{color:var(--crit);background:var(--crit-tint)}.gaugebar{height:6px;border-radius:4px;background:var(--surface-2);margin-top:10px;position:relative;overflow:hidden}.gaugebar .fill{height:100%;border-radius:4px;transition:width .2s ease,background .2s ease}.gaugebar .tick{position:absolute;top:-3px;bottom:-3px;width:1.5px;background:var(--ink-faint);opacity:.5}.rows{display:flex;flex-direction:column}.rows .r{display:flex;justify-content:space-between;align-items:baseline;padding:11px 0;border-bottom:1px solid var(--line);font-size:14px}.rows .r .k{color:var(--ink-soft)}.rows .r .k small{color:var(--ink-faint);font-size:12px;margin-left:6px}.rows .r .v{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.rows .r.total{border-bottom:0;padding-top:15px;margin-top:4px;border-top:2px solid var(--ink);font-size:15px}.rows .r.total .k{color:var(--ink);font-weight:600}.rows .r.total .v{font-size:20px;font-weight:600}.rows .r .v.add{color:var(--accent)}.perunit{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0 0;padding:14px 16px;background:var(--accent-tint);border:1px solid var(--accent);border-radius:10px}.perunit span{font-size:13px;color:var(--ink-soft)}.perunit span b{font-family:var(--font-mono);color:var(--ink)}.perunit strong{font-family:var(--font-mono);font-size:22px;color:var(--accent)}.note{font-size:12px;color:var(--ink-faint);margin:14px 20px 0;padding:12px 0 16px;border-top:1px solid var(--line)}.err{color:var(--crit);background:var(--crit-tint);border-radius:8px;padding:8px 11px;font-size:12.5px;margin-top:12px}.foot{text-align:center;font-size:12px;color:var(--ink-faint);margin-top:30px}.gate{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--bg)}.gate-card{width:100%;max-width:340px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:30px 26px;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}.gate-card .mark{width:44px;height:44px;border-radius:10px;background:var(--ink);color:var(--surface);display:grid;place-items:center}.gate-card .mark svg{width:26px;height:26px}.gate-card h1{font-size:17px;margin:4px 0 0;letter-spacing:-.01em;color:var(--ink)}.gate-card p{margin:0 0 4px;font-size:12.5px;color:var(--ink-soft)}.gate-card input{width:100%;font:inherit;font-family:var(--font-mono);font-size:18px;letter-spacing:.3em;text-align:center;color:var(--ink);background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:11px}.gate-card input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.gate-card button{width:100%;font:inherit;font-size:14px;font-weight:600;color:#fff;background:var(--accent);border:0;border-radius:8px;padding:11px;cursor:pointer}.gate-card button:hover{filter:brightness(1.06)}.gate-err{width:100%;color:var(--crit);background:var(--crit-tint);border-radius:8px;padding:7px 10px;font-size:12.5px}
