:root{--bg:#101217;--panel:#191d24;--text:#eef0f4;--muted:#b0b7c2;--line:#363d48;--accent:#edb354;--button-text:#211803;--sky:#66caf3;color-scheme:dark}body.light{--bg:#f6f5f1;--panel:#fff;--text:#1b2330;--muted:#515d6c;--line:#cbd0d5;--accent:#875500;--button-text:#fff;--sky:#03658c;color-scheme:light}*{box-sizing:border-box}body{margin:0;font:17px/1.65 system-ui,sans-serif;background:var(--bg);color:var(--text)}a{color:var(--accent);text-underline-offset:.22em}button,input,textarea{font:inherit}button{cursor:pointer;border:1px solid var(--line);padding:.65rem 1rem;background:var(--panel);color:var(--text);border-radius:7px}button:hover{border-color:var(--accent)}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.skip{position:absolute;left:12px;top:-80px;background:var(--panel);padding:12px;z-index:10}.skip:focus{top:12px}header{display:flex;justify-content:space-between;gap:20px;align-items:center;max-width:1440px;margin:auto;padding:20px 32px;border-bottom:1px solid var(--line)}.brand{font-size:24px;font-weight:750;text-decoration:none}.brand span{font-size:16px;color:var(--muted);font-weight:450}header nav{display:flex;align-items:center;gap:24px;font-size:14px}header nav a:first-child{color:var(--sky)}main{max-width:1380px;margin:auto;padding:0 32px}h1{font-size:clamp(2rem,4vw,3.2rem);line-height:1.15;letter-spacing:-.03em;max-width:22ch}h2{font-size:1.5rem;line-height:1.3}h3{font-size:1.08rem}p{max-width:78ch}.intro{padding:30px 0 20px}.intro>p{color:var(--muted)}.notice{padding:14px 18px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.workspace{display:grid;grid-template-columns:245px minmax(0,1fr);gap:42px;border-top:1px solid var(--line);padding-top:28px}aside h2{font-size:1rem;color:var(--muted);margin:0 0 15px}#cases{display:flex;flex-direction:column;gap:3px}#cases button{text-align:left;background:transparent;border-color:transparent;padding:11px 12px;font-size:15px}#cases button[aria-current=true]{background:var(--panel);border-color:var(--line);color:var(--accent);font-weight:700}.section-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.section-head h2{margin:0}#kind{font-size:13px;color:var(--accent)}label{display:block;font-weight:600;margin:22px 0 8px}textarea,input[type=number]{display:block;width:100%;background:var(--panel);border:1px solid var(--line);color:var(--text);border-radius:7px;padding:14px;line-height:1.5}textarea{resize:vertical}.hint{font-size:13px;color:var(--muted);margin-top:8px}dl{display:grid;grid-template-columns:130px 1fr;gap:9px 16px;margin:0}dt{color:var(--accent);font-family:monospace;overflow-wrap:anywhere}dd{margin:0;color:var(--muted);font-size:15px}.actions{display:flex;flex-wrap:wrap;gap:10px;margin:28px 0 8px}.primary{background:var(--accent);color:var(--button-text);border-color:var(--accent);font-weight:700}#live{margin-top:12px;border-color:var(--accent)}#status{color:var(--accent)}#result{padding:20px 0;border-top:1px solid var(--line)}.bar-row{display:grid;grid-template-columns:140px 1fr 55px;gap:12px;align-items:center;font-size:14px;margin:8px 0}.bar-track{height:10px;background:var(--line);border-radius:3px}.bar-fill{height:100%;background:var(--accent);border-radius:3px}input[type=range]{width:100%;accent-color:var(--accent)}details{margin:25px 0}summary{cursor:pointer;color:var(--accent)}pre{padding:18px;background:var(--panel);border:1px solid var(--line);overflow:auto;border-radius:8px;font:14px/1.6 monospace;max-width:100%}.cost,.local{border-top:1px solid var(--line);margin-top:60px;padding:30px 0}.cost p,.local p{color:var(--muted)}.cost-inputs{display:grid;grid-template-columns:repeat(4,1fr);gap:25px;align-items:end}.cost-inputs label{font-size:14px}.cost-inputs strong{display:block;font-size:26px;color:var(--accent);padding:12px 0}.cost-inputs span{color:var(--muted);font-size:14px}footer{max-width:1380px;margin:auto;padding:35px 32px;color:var(--muted);font-size:14px;border-top:1px solid var(--line)}[hidden]{display:none!important}@media(max-width:800px){header{flex-wrap:wrap;padding:16px 20px}header nav{gap:16px;flex-wrap:wrap}main{padding:0 20px}.workspace{grid-template-columns:1fr;gap:24px}#cases{display:grid;grid-template-columns:1fr 1fr}#cases button{font-size:14px;padding:9px}.cost-inputs{grid-template-columns:1fr 1fr}.intro{padding-top:12px}dl{grid-template-columns:105px 1fr}.bar-row{grid-template-columns:110px 1fr 45px}.actions button{flex:1 1 auto}footer{padding:24px 20px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

select,input[type=search]{font:inherit;display:block;width:100%;background:var(--panel);border:1px solid var(--line);color:var(--text);border-radius:7px;padding:12px;max-width:100%}select:focus-visible,input[type=search]:focus-visible,input[type=file]:focus-visible{outline:3px solid var(--accent);outline-offset:4px}input[type=file]{display:block;margin-top:8px;max-width:100%;font:inherit;font-size:14px}.file-label{font-size:14px;color:var(--muted);font-weight:400;margin-top:22px}.answer{padding:18px 0;border-bottom:1px solid var(--line)}.answer h4{margin:0 0 8px}.answer p{margin:8px 0}.answer .value{font-size:1.5rem;color:var(--accent);font-weight:650}.answer .hint{font-size:14px}.bar-row>span:first-child{overflow-wrap:anywhere}.editor,aside,.cost-inputs>*{min-width:0}#criteria{font-family:monospace;font-size:14px}#reportSummary table{border-collapse:collapse;width:100%;font-size:14px}#reportSummary th,#reportSummary td{text-align:left;vertical-align:top;padding:10px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.table-scroll{overflow:auto;max-width:100%}#caseCount{min-height:1.5em}#stateFormat{max-width:260px}.group-label{color:var(--muted);font-size:13px;margin:18px 0 5px}.cost-inputs{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}#resultTitle{font-size:1.3rem}@media(max-width:800px){#cases .group-label{grid-column:1/-1}.cost-inputs{grid-template-columns:repeat(2,minmax(0,1fr))}.bar-row{grid-template-columns:minmax(80px,1fr) minmax(30px,1fr) 50px}}
