:root{--ink:#17323a;--fog:#f4f8f7;--paper:#fff;--teal:#0f766e;--teal-soft:#d9efeb;--slate:#60767d;--brick:#a3483e;--ochre:#9a6700;--error:#8a2d2a;--line:#d5e0de;color:var(--ink);background:var(--fog);font-family:Pretendard,Apple SD Gothic Neo,system-ui,sans-serif;font-size:16px;line-height:1.5}*{box-sizing:border-box}html,body{min-width:320px;margin:0;overflow-x:clip}button,input,select{font:inherit}.account-book-shell{background:#f4f8f7;background:var(--fog);place-items:start center;min-height:100dvh;padding:1rem;display:grid}.verification-card{background:#fff;background:var(--paper);border:1px solid var(--line);border-radius:6px;width:min(100%,42rem);padding:1.25rem 1.15rem 1.5rem}:is(.account-book-shell:has(.ledger-panel),.account-book-shell:has(.data-panel)){place-items:start center}:is(.account-book-shell:has(.ledger-panel) .verification-card,.account-book-shell:has(.data-panel) .verification-card){width:min(100%,52rem)}.eyebrow{color:var(--slate);letter-spacing:.04em;margin:0;font-size:.78rem;font-weight:700}h1{color:var(--ink);letter-spacing:-.02em;word-break:keep-all;margin:.4rem 0 .35rem;font-size:1.45rem;font-weight:700;line-height:1.25}h2,h3{word-break:keep-all}.page-summary{color:var(--slate);margin:0 0 1.1rem;font-size:.95rem;line-height:1.5}.verification-steps{color:var(--slate);flex-wrap:wrap;gap:.65rem 1rem;margin:0 0 1.15rem;padding:0;font-size:.85rem;list-style:none;display:flex}.verification-steps li{white-space:nowrap;grid-template-columns:auto 1fr;align-items:center;gap:.35rem;display:grid}.verification-steps li:before{content:"";border:1px solid;border-radius:50%;width:.55rem;height:.55rem}.verification-steps .current{color:var(--teal);font-weight:700}.verification-steps .current:before{background:var(--teal);border-color:var(--teal)}.verification-steps .complete{color:var(--slate)}.verification-steps .complete:before{background:currentColor}form,.action-panel{gap:.85rem;display:grid}.form-introduction{color:var(--slate);margin:0;font-size:.92rem;line-height:1.5}label{color:var(--ink);gap:.35rem;font-size:.9rem;font-weight:700;display:grid}input,select{background:var(--paper);width:100%;min-height:2.75rem;color:var(--ink);border:1px solid #b7c7c5;border-radius:4px;padding:.65rem .75rem}input:focus-visible,select:focus-visible,button:focus-visible{outline:3px solid var(--teal);outline-offset:2px}button{background:var(--teal);min-height:2.75rem;color:var(--paper);cursor:pointer;border:0;border-radius:4px;padding:.65rem .95rem;font-weight:700}button:disabled{cursor:progress;opacity:.55}.button-secondary,button.button-secondary{background:var(--paper);color:var(--ink);border:1px solid var(--ink)}.button-quiet,button.button-quiet{color:var(--teal);text-align:left;background:0 0;border:0;min-height:2.5rem;padding:.4rem 0;text-decoration:underline}.action-panel>p,.status-message{margin:0;line-height:1.55}.status-message{color:var(--slate);margin-top:1rem}.status-message[data-tone=error]{color:var(--error)}.status-message[data-tone=notice]{color:var(--ochre)}.offline-banner{border:1px solid var(--ochre);background:var(--paper);color:var(--ink);margin:0 0 .85rem;padding:.7rem .8rem}.recovery-link{width:fit-content;color:var(--teal);text-align:left;background:0 0;margin-top:.75rem;padding:0;text-decoration:underline;display:block}.recovery-link+.recovery-link{margin-top:.25rem}.recovery-codes{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.recovery-codes li{overflow-wrap:anywhere;background:var(--teal-soft);color:var(--ink);padding:.65rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem}.acknowledgement{grid-template-columns:auto 1fr;align-items:start}.acknowledgement input{width:1.1rem;min-height:1.1rem;margin-top:.2rem}.device-list{gap:0;margin:.25rem 0 0;padding:0;list-style:none;display:grid}.device-list li{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 0;display:flex}.device-list div{gap:.15rem;display:grid}.device-list span{color:var(--slate);font-size:.85rem}.device-list button{background:var(--brick);min-height:2.5rem}.ledger-panel,.data-panel,.plan-panel{background:0 0;border:0;gap:.85rem;padding:0;display:grid}.ledger-panel h2,.data-panel h2,.plan-panel h2{color:var(--ink);margin:0;font-size:1.05rem}.plan-panel,.balance-rail,.budget-block,.fixed-block,.record-block,.stats-block{border-top:1px solid var(--line);gap:.7rem;padding:.85rem 0 1rem;display:grid}.balance-rail{border-top:0;padding-top:.2rem}.hero-amount{color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.03em;margin:0;font-size:clamp(1.7rem,5vw,2.15rem);font-weight:700;line-height:1.15}.plan-amount{color:var(--ink);font-variant-numeric:tabular-nums;margin:0;font-size:1.15rem;font-weight:700}.amount{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.balance-rail-line{border-left:2px solid var(--teal);margin:.15rem 0 .25rem .35rem;padding-left:.85rem;position:relative}.ledger-account-list,.ledger-entry-list,.fixed-expense-list{gap:0;margin:0;padding:0;list-style:none;display:grid}.ledger-account-list li,.ledger-entry-list li{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.35rem 1rem;padding:.65rem 0;display:flex}.balance-rail-line .ledger-account-list li{padding-left:.15rem;position:relative}.balance-rail-line .ledger-account-list li:before{background:var(--teal);content:"";border-radius:50%;width:.45rem;height:.45rem;position:absolute;top:1rem;left:-1.05rem}.ledger-entry-list .income{color:var(--teal)}.ledger-entry-list .expense{color:var(--brick)}.ledger-entry-list .transfer_out,.ledger-entry-list .transfer_in,.ledger-entry-list .adjustment,.ledger-entry-list .adjustment_reversal{color:var(--slate)}.entry-kind{color:var(--slate);white-space:nowrap;margin-right:.35rem;font-size:.8rem;font-weight:700;display:inline-block}.status-chip{background:var(--teal-soft);width:fit-content;max-width:100%;color:var(--ink);white-space:nowrap;border-radius:4px;padding:.15rem .45rem;font-size:.8rem;font-weight:700;display:inline-block}.status-chip.notice{color:var(--ochre);background:#f6e7c1}.status-chip.alert{color:var(--error);background:#f4e4e2}.status-chip.neutral{background:var(--fog);color:var(--slate)}.plan-panel p,.data-panel p,.fixed-expense-list span{color:var(--slate);margin:0;line-height:1.45}.plan-panel h3{color:var(--ink);margin:0;font-size:1rem}.fixed-expense-list li{border-top:1px solid var(--line);gap:.45rem;padding-top:.65rem;display:grid}.fixed-expense-actions{flex-wrap:wrap;gap:.5rem;display:flex}.fixed-expense-actions button{min-height:2.5rem}.duplicate-confirmation{border:1px solid var(--ochre);background:var(--paper);color:var(--ink);gap:.7rem;padding:.8rem;display:grid}.duplicate-confirmation p{margin:0}.danger-zone{border:1px solid var(--error);background:var(--paper);border-radius:0;gap:.75rem;margin-top:.5rem;padding:.9rem;display:grid}.danger-zone h3{color:var(--error);margin:0}.danger-zone button{background:var(--error)}.danger-zone .button-secondary{background:var(--paper);color:var(--error);border:1px solid var(--error)}.stats-bars{gap:.45rem;margin:0;display:grid}.stats-bars dt{color:var(--slate);font-size:.85rem}.stats-bars dd{font-variant-numeric:tabular-nums;margin:0}.stats-bars progress{width:100%;accent-color:var(--teal)}.stats-bars .expense-bar progress{accent-color:var(--brick)}@media (width>=64rem){.account-book-shell{padding:1.5rem 2rem 2.5rem}:is(.account-book-shell:has(.ledger-panel) .verification-card,.account-book-shell:has(.data-panel) .verification-card){width:min(100%,58rem)}}@media (width<=40rem){.account-book-shell{padding:.65rem}.verification-card{padding:1rem .85rem 1.2rem}.recovery-codes{grid-template-columns:1fr}.device-list li,.ledger-account-list li,.ledger-entry-list li{gap:.35rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}@media (prefers-reduced-motion:no-preference){button{transition:background-color .16s,opacity .16s}}
