:root {
  --color-page:#f5f5f7; --color-surface:#fff; --color-text:#1c1c1e; --color-muted:#8e8e93;
  --color-line:#e5e5ea; --color-action:#D92B81; --color-success:#34c759; --color-danger:#ff3b30;
  --color-fill:#f2f2f7; --color-line-2:#c7c7cc; --color-faint:#aeaeb2; --color-warn:#ff9500;
  --space-1:8px; --space-2:16px; --space-3:24px; --radius-card:12px; --radius-control:10px;
}
*{box-sizing:border-box} body{margin:0;padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);background:var(--color-page);color:var(--color-text);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans",sans-serif;font-size:16px;line-height:1.5;min-height:100vh}
button,input,select{font:inherit}.hidden{display:none!important} header{height:calc(58px + env(safe-area-inset-top));padding:env(safe-area-inset-top) calc(var(--space-2) + env(safe-area-inset-right)) 0 calc(var(--space-2) + env(safe-area-inset-left));margin-right:calc(-1 * env(safe-area-inset-right));margin-left:calc(-1 * env(safe-area-inset-left));display:grid;grid-template-columns:96px 1fr 112px;align-items:center;background:var(--color-surface);border-bottom:1px solid var(--color-line);position:sticky;top:0;z-index:5}header h1{font-size:19px;text-align:center;margin:0}.text-button{border:0;background:none;color:var(--color-action);min-height:44px;white-space:nowrap}.header-actions{display:flex;justify-content:flex-end;align-items:center}.icon-button{font-size:20px;padding:0 6px}
main{max-width:820px;margin:auto;padding:var(--space-2)}.summary-card{background:var(--color-surface);border-radius:var(--radius-card);padding:var(--space-3);display:flex;justify-content:center;align-items:center;gap:var(--space-3);box-shadow:0 1px 4px #00000012}.eyebrow{margin:0;color:var(--color-muted);font-weight:600}.grand-total{font-size:clamp(34px,7vw,52px);font-weight:800;margin:4px 0;color:var(--color-action);font-variant-numeric:tabular-nums}.summary-cat{width:72px;height:72px;object-fit:contain}.warning{color:var(--color-warn);font-weight:700;margin:4px 0}.tabs{display:flex;flex-wrap:wrap;background:var(--color-fill);padding:4px;border-radius:var(--radius-control);margin:var(--space-2) 0;column-gap:4px;row-gap:12px}.tab{flex:1;border:0;background:transparent;padding:10px 8px;border-radius:8px;color:var(--color-muted);min-height:44px}.tab.active,.year-select.active{background:var(--color-action);color:white;font-weight:700}.year-select{flex:1 0 100%;border:0;background:transparent;padding:10px 8px;border-radius:8px;color:var(--color-muted);min-height:44px}.muted{color:var(--color-muted)}.offline{background:#fff4df;color:#8a5200;padding:12px;border-radius:var(--radius-control)}
.security-list{display:grid;gap:8px}.security-row{width:100%;border:0;background:var(--color-surface);border-radius:var(--radius-control);padding:14px 16px;display:grid;grid-template-columns:1fr auto;gap:4px 16px;text-align:left;min-height:62px}.security-name{font-weight:700}.security-code,.security-state{color:var(--color-muted);font-size:14px}.security-amount{font-weight:750;font-variant-numeric:tabular-nums;align-self:center;grid-row:1/3;grid-column:2}.state-check{color:var(--color-warn);font-weight:700}.state-error{color:var(--color-danger)}
h2{font-size:24px;margin:8px 0 20px}h3{font-size:18px;margin:28px 0 10px}.table-wrap{overflow:auto;background:var(--color-surface);border-radius:var(--radius-card)}table{border-collapse:collapse;width:100%;font-size:15px}th,td{padding:11px 12px;border-bottom:1px solid var(--color-line);text-align:left;white-space:nowrap}th{color:var(--color-muted);font-weight:600}td.num{text-align:right;font-variant-numeric:tabular-nums}.settings-actions{display:grid;gap:12px}.button{display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;padding:10px 16px;border:1px solid var(--color-line-2);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-text);text-decoration:none}.button.primary,.primary{border-color:var(--color-action);background:var(--color-action);color:#fff}.button:disabled{opacity:.5}.progress{min-height:24px}.preview{margin-top:20px;padding:16px;background:var(--color-surface);border-radius:var(--radius-card)}.error{color:var(--color-danger)}.center-card{max-width:420px;margin:18vh auto;padding:28px;background:var(--color-surface);border-radius:var(--radius-card);text-align:center}.center-card form{display:grid;gap:12px}.center-card input{padding:12px;border:1px solid var(--color-line-2);border-radius:var(--radius-control)}.center-card button{min-height:48px;border:0;border-radius:var(--radius-control)}
.start-year-row{margin:16px 0 4px;display:grid;gap:8px}.start-year-row label{color:var(--color-muted);font-size:14px}.start-year-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.start-year-controls input{flex:0 0 120px;min-height:48px;padding:10px 12px;border:1px solid var(--color-line-2);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-text)}.start-year-controls .button{width:auto;flex:0 0 auto;padding:10px 20px}
.app-version{padding:var(--space-3);text-align:center;color:var(--color-muted);font-size:13px}
@media(max-width:480px){main{padding:12px}.summary-card{padding:18px;gap:14px}.summary-cat{flex:0 0 72px}.security-row{padding:13px}.table-wrap{margin:0 -4px}th,td{padding:10px 8px}}
@media(prefers-color-scheme:dark){:root{--color-page:#000;--color-surface:#1c1c1e;--color-text:#f2f2f7;--color-muted:#aeaeb2;--color-line:#38383a;--color-fill:#2c2c2e;--color-line-2:#636366;--color-faint:#636366}.summary-card,.security-row,.table-wrap,.preview,.center-card{box-shadow:none}.offline{background:#3a2a10;color:#ffd38a}}
