:root{--bg:#efe9dd;--paper:#faf7f0;--surface:#fff;--ink:#211d17;--ink-soft:#6d6656;--ink-faint:#9c9483;--line:#ddd4bf;--line-strong:#c1b69c;--fill-muted:#ece4d1;--ring:#211d171a;--font-serif:"Hiragino Mincho ProN", "YuMincho", "游明朝", "Noto Serif JP", serif;--font-sans:"Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "YuGothic", "Noto Sans JP", system-ui, sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#14110d;--paper:#1b1712;--surface:#221c16;--ink:#f1e9d8;--ink-soft:#b4a98f;--ink-faint:#857a64;--line:#392f22;--line-strong:#52432f;--fill-muted:#2a2115;--ring:#0006}}:root[data-theme=dark]{--bg:#14110d;--paper:#1b1712;--surface:#221c16;--ink:#f1e9d8;--ink-soft:#b4a98f;--ink-faint:#857a64;--line:#392f22;--line-strong:#52432f;--fill-muted:#2a2115;--ring:#0006}:root[data-theme=light]{--bg:#efe9dd;--paper:#faf7f0;--surface:#fff;--ink:#211d17;--ink-soft:#6d6656;--ink-faint:#9c9483;--line:#ddd4bf;--line-strong:#c1b69c;--fill-muted:#ece4d1;--ring:#211d171a}*{box-sizing:border-box}html,body{max-width:100vw;margin:0;padding:0;overflow-x:hidden}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-serif);text-wrap:balance;margin:0}p{margin:0}button{font-family:inherit}.num{font-variant-numeric:tabular-nums}:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:4px}.app-shell{background:var(--surface);border-left:1px solid var(--line);border-right:1px solid var(--line);flex-direction:column;max-width:480px;min-height:100vh;margin:0 auto;display:flex;position:relative}.screen{flex-direction:column;flex:1;min-width:0;display:flex}@media (prefers-reduced-motion:no-preference){.screen{animation:.28s both rise}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.appbar{border-bottom:1px solid var(--line);background:var(--surface);z-index:2;flex:none;align-items:center;gap:10px;min-width:0;padding:18px 20px 12px;display:flex;position:sticky;top:0}.appbar .back{border:1px solid var(--line-strong);color:var(--ink);cursor:pointer;background:0 0;border-radius:999px;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;line-height:1;display:flex}.appbar .titles{flex-direction:column;gap:2px;display:flex}.appbar .titles .eyebrow{letter-spacing:.08em;color:var(--ink-faint);font-size:11px}.appbar .titles h2{font-size:18px;font-weight:600}.progress{border-bottom:1px solid var(--line);background:var(--surface);gap:5px;min-width:0;padding:10px 20px 14px;display:flex}.progress .dot{background:var(--fill-muted);cursor:pointer;border:none;border-radius:999px;flex:1;height:5px;padding:0}.progress .dot.done{background:var(--ink-soft)}.progress .dot.current{background:var(--ink)}.content{flex-direction:column;flex:auto;gap:18px;width:100%;min-width:0;max-width:560px;margin:0 auto;padding:20px 20px 110px;display:flex}.footer-bar{background:linear-gradient(to top, var(--surface) 65%, transparent);z-index:3;gap:10px;padding:14px 20px 24px;display:flex;position:sticky;bottom:0}.btn{border:1px solid var(--ink);letter-spacing:.02em;cursor:pointer;text-align:center;border-radius:999px;padding:14px 22px;font-size:15px;font-weight:600}.btn-primary{background:var(--ink);color:var(--paper);flex:1}.btn-ghost{color:var(--ink);border-color:var(--line-strong);background:0 0}.btn-block{width:100%}.btn[disabled]{opacity:.45;cursor:not-allowed}.intro-hero{background-image:repeating-linear-gradient(var(--line) 0 1px, transparent 1px 42px);background-position:0 130px;flex-direction:column;flex:auto;justify-content:center;gap:28px;width:100%;max-width:560px;margin:0 auto;padding:48px 26px 130px;display:flex}.intro-mark{font-family:var(--font-serif);font-size:44px;font-weight:600}.intro-tagline{color:var(--ink-soft);max-width:30ch;font-size:16px;line-height:1.9}.intro-points{flex-direction:column;gap:10px;display:flex}.intro-point{color:var(--ink-soft);align-items:baseline;gap:10px;font-size:13.5px;display:flex}.intro-point .m{font-family:var(--font-serif);color:var(--ink);font-size:15px}.intro-note{color:var(--ink-faint);max-width:34ch;font-size:12px}.section-title{flex-direction:column;gap:4px;display:flex}.section-title .eyebrow{letter-spacing:.08em;color:var(--ink-faint);font-size:11px}.section-title h3{font-size:20px;font-weight:600}.section-title .lede{color:var(--ink-soft);font-size:13.5px;line-height:1.6}.card{border:1px solid var(--line);background:var(--surface);border-radius:16px;flex-direction:column;gap:12px;min-width:0;padding:16px;display:flex}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.badge{letter-spacing:.04em;border:1px solid var(--line-strong);color:var(--ink-soft);white-space:nowrap;border-radius:999px;padding:3px 9px;font-size:11px}.badge.head{background:var(--ink);color:var(--paper);border-color:var(--ink)}.badge.dashed{border-style:dashed}.field-row{gap:10px;min-width:0;display:flex}.field{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.field label{color:var(--ink-soft);font-size:12.5px}.field input,.field select{border:1px solid var(--line-strong);background:var(--paper);color:var(--ink);border-radius:10px;width:100%;padding:11px 12px;font-family:inherit;font-size:15px}.field input:disabled{color:var(--ink-faint);background:var(--fill-muted);cursor:not-allowed}.unit-input{position:relative}.unit-input input{padding-right:44px}.unit-input span{color:var(--ink-faint);font-size:12.5px;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.add-row{border:1px dashed var(--line-strong);text-align:center;color:var(--ink-soft);cursor:pointer;background:0 0;border-radius:14px;padding:13px;font-size:14px}.add-row:hover{background:var(--fill-muted)}.remove-row{color:var(--ink-faint);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;text-decoration:underline}.seg{border:1px solid var(--line-strong);border-radius:999px;display:flex;overflow:hidden}.seg button{min-width:0;color:var(--ink-soft);cursor:pointer;border:none;border-right:1px solid var(--line-strong);text-overflow:ellipsis;white-space:nowrap;background:0 0;flex:1;padding:10px 6px;font-size:13px;overflow:hidden}.seg button:last-child{border-right:none}.seg button[aria-pressed=true]{background:var(--ink);color:var(--paper);font-weight:600}.chip-group{flex-wrap:wrap;gap:8px;display:flex}.chip-group button{border:1px solid var(--line-strong);color:var(--ink-soft);cursor:pointer;background:0 0;border-radius:999px;padding:9px 14px;font-size:13px}.chip-group button[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink);font-weight:600}details.help{font-size:12.5px}details.help summary{color:var(--ink-faint);cursor:pointer;align-items:center;gap:5px;list-style:none;display:inline-flex}details.help summary::-webkit-details-marker{display:none}details.help summary .q{border:1px solid var(--ink-faint);border-radius:999px;flex:none;justify-content:center;align-items:center;width:16px;height:16px;font-size:10px;display:inline-flex}details.help p{color:var(--ink-soft);background:var(--fill-muted);border-radius:10px;margin-top:6px;padding:9px 11px;line-height:1.7}.field-disclosure-body{flex-direction:column;gap:10px;margin-top:10px;display:flex}.slider-field{flex-direction:column;gap:8px;display:flex}.slider-field .row{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.slider-field .row label{color:var(--ink-soft);font-size:13px}.slider-field .value{white-space:nowrap;align-items:baseline;gap:3px;display:inline-flex}.slider-field .value input{font-family:var(--font-serif);color:var(--ink);border:none;border-bottom:1px solid var(--line-strong);text-align:right;font-variant-numeric:tabular-nums;background:0 0;width:4.5ch;padding:0 1px 1px;font-size:23px}.slider-field .value input:focus{border-bottom-color:var(--ink)}.slider-field .value input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.slider-field .value input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.slider-field .value input[type=number]{-moz-appearance:textfield}.slider-field .value small{color:var(--ink-soft);font-size:12px}.slider-field input[type=range]{-webkit-appearance:none;background:var(--line-strong);border-radius:999px;width:100%;height:4px}.slider-field input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--ink);border:3px solid var(--paper);width:20px;height:20px;box-shadow:0 0 0 1px var(--line-strong);cursor:pointer;border-radius:999px}.slider-field input[type=range]::-moz-range-thumb{background:var(--ink);border:3px solid var(--paper);width:20px;height:20px;box-shadow:0 0 0 1px var(--line-strong);cursor:pointer;border-radius:999px}.result-head{flex-direction:column;gap:6px;width:100%;max-width:560px;margin:0 auto;padding:26px 20px 4px;display:flex}.result-head .eyebrow{letter-spacing:.08em;color:var(--ink-faint);font-size:11px}.result-head h2{font-size:22px}.result-head .range{color:var(--ink-soft);font-size:13px}.stat-row{gap:8px;min-width:0;display:flex}.stat-tile{border:1px solid var(--line);background:var(--surface);border-radius:14px;flex-direction:column;flex:1;gap:4px;min-width:0;padding:12px 10px;display:flex}.stat-tile .label{color:var(--ink-faint);letter-spacing:.03em;font-size:10.5px}.stat-tile .value{font-family:var(--font-serif);font-size:18px}.stat-tile .sub{color:var(--ink-soft);font-size:10.5px}.chart-card{border:1px solid var(--line);background:var(--surface);border-radius:16px;padding:14px 12px 6px}.chart-card .chart-head{justify-content:space-between;align-items:baseline;padding:0 4px 8px;display:flex}.chart-card .chart-head h3{font-size:14.5px;font-weight:600}.chart-card .chart-head span{color:var(--ink-faint);font-size:10.5px}.chart-legend{color:var(--ink-soft);gap:14px;padding:8px 6px 2px;font-size:10.5px;display:flex}.chart-legend .chip{align-items:center;gap:5px;display:inline-flex}.chart-legend .swatch{border:1px solid var(--line-strong);border-radius:3px;width:12px;height:12px}.swatch.surplus{background:var(--ink-soft)}.swatch.deficit{background-image:repeating-linear-gradient(45deg, var(--ink-faint) 0 2px, transparent 2px 5px)}.table-card{border:1px solid var(--line);background:var(--surface);border-radius:16px;overflow:hidden}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:360px;font-size:12.5px}thead th{background:var(--paper);text-align:right;color:var(--ink-soft);border-bottom:1px solid var(--line-strong);white-space:nowrap;padding:9px 10px;font-weight:600;position:sticky;top:0}thead th:first-child,td:first-child{text-align:left}tbody td{text-align:right;border-bottom:1px solid var(--line);white-space:nowrap;padding:8px 10px}tbody tr:last-child td{border-bottom:none}.flag{border:1px solid var(--line-strong);vertical-align:middle;border-radius:2px;width:9px;height:9px;margin-right:6px;display:inline-block}.flag.surplus{background:var(--ink-soft)}.flag.deficit{background-image:repeating-linear-gradient(45deg, var(--ink-faint) 0 2px, transparent 2px 5px)}.table-note{color:var(--ink-faint);padding:8px 14px 12px;font-size:10.5px}.result-actions{flex-direction:column;gap:8px;width:100%;max-width:560px;margin:0 auto;padding:4px 0 32px;display:flex}.result-actions .hint{color:var(--ink-faint);text-align:center;font-size:10.5px}
