:root{--main:#1f4e79;--main-pressed:#163a5b;--bg:#f4f6f9;--surface:#fff;--line:#dde3ea;--bg-soft:#e7ecf2;--input-line:#9aa6b4;--text:#111827;--sub:#5a6472;--bar-track:#45505e;--bar-over:#e5342a;--state-ok:#34c759;--state-warn:#fc0;--danger:#b3261e;--cat-food:#e69f00;--cat-daily:#56b4e9;--cat-transit:#009e73;--cat-housing:#0072b2;--cat-comm:#cc79a7;--cat-leisure:#d55e00;--cat-health:#f0e442;--cat-other:#999;--success-bg:#f0f6f3;--success-text:#365f52;--success-border:#cbded6;--text-title:22px;--text-headline:17px;--text-body:17px;--text-caption:12px;--text-amount:34px;--weight-regular:400;--weight-semibold:600;--weight-bold:700}*{box-sizing:border-box}body{margin:0;background:var(--bg);max-width:390px;color:var(--text);margin-inline:auto;font-family:Hiragino Sans,Noto Sans JP,sans-serif}#root{flex-direction:column;height:100dvh;display:flex}main{flex:1;overflow-y:auto}.screen-title{font-size:var(--text-title);font-weight:var(--weight-bold);margin:0;padding:20px 16px 12px}.appbar{background:var(--main);color:#fff;margin-bottom:14px}.month-nav{justify-content:space-between;align-items:center;padding:8px;display:flex}.month-nav svg{width:24px;height:24px}.month-current{font-size:15px;font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;align-items:baseline;margin:0;display:flex}.month-current-month{font-size:28px;font-weight:var(--weight-bold)}.month-current-unit{margin-inline:.15em .4em}.month-current-unit:last-child{margin-right:0}.month-arrow{color:inherit;cursor:pointer;background:0 0;border:0;padding:8px;display:flex}.month-arrow.hidden{visibility:hidden}.action-bar{background:var(--surface);border-top:1px solid var(--line);padding:10px 16px}.btn{background:var(--main);color:#fff;border:1px solid var(--main);text-align:center;cursor:pointer;border-radius:8px;width:100%;padding:14px;font-family:inherit;font-size:15px;font-weight:700;text-decoration:none;display:block}.btn:disabled{opacity:.6;cursor:not-allowed}.btn.outline{background:var(--surface);color:var(--main);border-color:var(--main)}.bottomnav{background:var(--surface);border-top:1px solid var(--line)}.bottomnav a[aria-current=page]{color:var(--main);font-weight:700}.bottomnav ul{margin:0;padding:0;list-style:none;display:flex}.bottomnav li{text-align:center;flex:1}.bottomnav a{color:var(--sub);flex-direction:column;align-items:center;padding:11px 0;text-decoration:none;display:flex}.bottomnav svg{width:24px;height:24px}.chev{color:var(--sub);font-size:13px}.unit-inline{margin-left:2px;font-size:.8em;font-weight:400}.picker-wrap{position:relative}.picker{background:var(--surface);border:1px solid var(--input-line);width:100%;color:var(--text);text-align:left;cursor:pointer;justify-content:space-between;align-items:center;padding:12px;font-family:inherit;font-size:15px;display:flex}.picker[aria-expanded=true]{border:2px solid var(--main);padding:11px}.cat-value{align-items:center;gap:8px;display:inline-flex}.cat-chip{border:1px solid #0003;border-radius:3px;flex-shrink:0;width:22px;height:14px}.dropdown{z-index:10;background:var(--surface);border:1px solid var(--input-line);border-radius:8px;max-height:260px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 6px 16px #1118272e}.option-row{border-bottom:1px solid var(--line);min-height:52px;color:var(--text);cursor:pointer;align-items:center;gap:10px;padding:10px 14px;font-size:15px;display:flex}.option-row:has(:checked){font-weight:var(--weight-bold)}.option-row:has(:focus-visible){outline:2px solid var(--main);outline-offset:-2px}.option-radio{border:1.5px solid var(--sub);appearance:none;cursor:pointer;border-radius:50%;flex-shrink:0;width:18px;height:18px;margin:0}.option-radio:checked{background:var(--main);border-color:var(--main);box-shadow:inset 0 0 0 2.5px var(--surface)}.option-radio:focus-visible{outline:none}.option-add{width:100%;min-height:52px;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;padding:10px 14px;font-family:inherit;font-size:15px;display:flex}.option-add-label{align-items:center;gap:6px;display:inline-flex}main.is-busy{opacity:.5;transition:opacity .2s}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;margin:0 16px 14px;padding:16px}.card-label{color:var(--sub);text-align:center;margin:0;font-size:13px}.card-amount{font-variant-numeric:tabular-nums;text-align:center;margin:6px 0 10px;font-size:34px;font-weight:700}.card-amount.small{font-size:26px}.card-amount.over{color:var(--danger)}.hint{color:var(--sub);padding:0 16px;font-size:12px;line-height:1.7}.card .hint{text-align:center;padding:0 0 14px}.unit-sm{margin-left:3px;font-size:.5em;font-weight:400}.card-sub-row{justify-content:flex-end;gap:8px;margin-top:4px;font-size:13px;display:flex}.card-sub-row .label{color:var(--sub)}.card-sub-row .value{font-variant-numeric:tabular-nums;text-align:right;min-width:76px;font-weight:700}.card-sub-row .value.over{color:var(--danger)}.bar-track{background:var(--bar-track);border-radius:4px;height:8px;margin-top:14px;overflow:hidden}.bar-track.over{background:var(--bar-over)}.bar-fill{border-radius:4px;height:100%}.bar-fill.ok{background:var(--state-ok)}.bar-fill.warn{background:var(--state-warn)}.list-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;margin:0 16px 14px;overflow:hidden}.section-head{justify-content:space-between;align-items:baseline;padding:12px 14px 8px;display:flex}.section-head-title{color:var(--sub);margin:0;font-size:12px;font-weight:700}.section-head-link{color:var(--main);align-items:center;gap:4px;font-size:13px;text-decoration:none;display:inline-flex}.row{border-top:1px solid var(--line);align-items:center;gap:10px;padding:12px 16px;display:flex}.list-card ul{margin:0;padding:0;list-style:none}.row-dot{border:1px solid #0000002e;border-radius:50%;flex-shrink:0;width:11px;height:11px}.row-body{flex:1}.row-category{font-size:15px;font-weight:700}.row-meta{min-width:0;color:var(--sub);gap:6px;margin-top:2px;font-size:12px;display:flex}.row-date{flex-shrink:0}.row-memo{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.row-amount{font-variant-numeric:tabular-nums;text-align:right;font-size:16px;font-weight:700}.settings-section+.settings-section{margin-top:8px}.section-label{color:var(--sub);font-size:var(--text-caption);font-weight:var(--weight-semibold);margin:0;padding:0 0 4px 4px}.settings-row{background:var(--surface);border-bottom:1px solid var(--line);min-height:56px;color:inherit;justify-content:space-between;align-items:center;padding:12px 16px;text-decoration:none;display:flex}.settings-value{color:var(--sub);align-items:center;gap:2px;font-size:14px;display:flex}.settings-value svg{margin-left:8px}.subheader{align-items:center;gap:4px;padding:12px 8px 10px;display:flex}.back{width:44px;height:44px;color:var(--main);justify-content:center;align-items:center;display:flex}.subheader-title{margin:0;font-size:18px;font-weight:700}.settings-form{padding-top:14px}.note{color:var(--sub);margin:0 0 0 1em;padding:14px 16px 0;font-size:12px;line-height:1.9}.category-list{margin:0;padding:0;list-style:none}.category-row,.add-row{background:var(--surface);border:0;border-bottom:1px solid var(--line);width:100%;min-height:56px;color:inherit;text-align:left;cursor:pointer;align-items:center;gap:8px;padding:12px 16px;font-family:inherit;font-size:15px;display:flex}.category-row{justify-content:space-between}.category-row:active,.add-row:active{background:var(--bg-soft)}.add-row{color:var(--main)}.category-name{align-items:center;gap:8px;display:inline-flex}.color-swatch{border:1px solid #0003;border-radius:3px;width:22px;height:14px}.color-label{padding:0 16px 6px}.color-choice{flex-wrap:wrap;gap:10px;padding:0 16px 8px;display:flex}.color-btn{cursor:pointer;border:1px solid #0003;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;padding:0;display:flex}.color-btn[aria-pressed=true]{outline:3px solid var(--main);outline-offset:2px}.delete-hint{text-align:center;margin:0}.dialog-text{color:var(--sub);margin:0 0 14px;font-size:13px;line-height:1.7}.help-lead{margin:0;padding:4px 16px 14px;font-size:14px;line-height:1.7}.help-section{margin-bottom:14px}.help-list{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:0;padding:12px 16px 12px 2em;font-size:14px;line-height:1.8}.field-label{color:var(--sub);margin-bottom:6px;font-size:12px}.field{padding:0 16px 10px}.input{background:var(--surface);border:1px solid var(--input-line);width:100%;color:var(--text);padding:12px;font-family:inherit;font-size:15px}.input.error{border:2px solid var(--danger);padding:11px}.error-text{color:var(--danger);margin:6px 0 0;font-size:12px}.money-input{background:var(--surface);border:1px solid var(--input-line);align-items:baseline;gap:6px;padding:12px;display:flex}.money-input-field{min-width:0;color:inherit;font-variant-numeric:tabular-nums;text-align:right;background:0 0;border:0;flex:1;padding:0;font-family:inherit;font-size:30px;font-weight:700}.money-input-unit{color:var(--sub);font-size:13px}.money-input:focus-within{border:2px solid var(--main);padding:11px}.money-input-field:focus{outline:none}.money-input.error{border:2px solid var(--danger);padding:11px}textarea.input{resize:vertical}.field-count{color:var(--sub);text-align:right;margin:0;font-size:12px}.toast{background-color:var(--success-bg);border:1px solid var(--success-border);width:fit-content;color:var(--success-text);border-radius:8px;align-items:center;gap:12px;margin:8px 16px 8px auto;padding:8px 12px;font-size:16px;font-weight:600;display:flex}.filterbar{background:var(--surface);border:1px solid var(--input-line);width:calc(100% - 32px);color:var(--text);text-align:left;cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;margin:0 16px 12px;padding:11px 12px;font-family:inherit;display:flex}.filterbar-main{font-size:14px;font-weight:700}.filterbar-action{white-space:nowrap;align-items:center;gap:5px;font-size:13px;display:inline-flex}.filter-tag{border:1px solid var(--input-line);vertical-align:1px;border-radius:10px;margin-left:6px;padding:1px 8px;font-size:11px;font-weight:400;display:inline-block}.day-header{background:var(--bg-soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:0;padding:9px 16px;font-size:13px;font-weight:700;position:sticky;top:0}.day-list{margin:0;padding:0;list-style:none}.row-button{background:var(--surface);border:0;border-bottom:1px solid var(--line);width:100%;min-height:64px;color:var(--text);text-align:left;cursor:pointer;font-family:inherit}.row-button:active{background:var(--bg-soft)}.row-button .row-body,.dialog-row .row-body{flex-direction:column;min-width:0;display:flex}.row-button .row-memo,.dialog-row .row-memo{color:var(--sub);margin-top:2px;font-size:12px}.empty{background:var(--surface);border:1px dashed var(--line);color:var(--sub);text-align:center;border-radius:12px;margin:40px 16px;padding:30px 16px;font-size:13px;line-height:1.8}dialog.sheet{background:var(--surface);width:100%;max-width:390px;max-height:90dvh;color:var(--text);border:0;border-radius:14px 14px 0 0;margin:auto auto 0;padding:0}dialog.sheet::backdrop{background:#11182761}.sheet-inner{padding:8px 0 16px}.sheet-handle{background:#c9d2dc;border-radius:2px;width:36px;height:4px;margin:6px auto 12px}.sheet-head{justify-content:space-between;align-items:center;padding:0 12px 10px 16px;display:flex}.sheet-title{margin:0;font-size:15px;font-weight:700}.sheet-close{width:40px;height:40px;color:var(--sub);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;display:flex}.sheet-actions{padding:14px 16px 0}.sheet-error{margin:0 0 8px}.destructive{width:100%;color:var(--danger);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;gap:6px;margin-top:22px;padding:12px;font-family:inherit;font-size:14px;display:flex}.destructive:disabled{opacity:.6;cursor:not-allowed}dialog.dialog{background:var(--surface);width:calc(100% - 48px);max-width:342px;color:var(--text);border:0;border-radius:12px;padding:20px 18px 14px}dialog.dialog::backdrop{background:#11182770}.dialog-title{margin:0 0 14px;font-size:16px;font-weight:700}.dialog-target{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:10px 0}.dialog-date{margin-bottom:6px;font-size:12px;font-weight:700}.dialog-row{align-items:center;gap:10px;display:flex}.dialog-actions{gap:10px;margin-top:18px;display:flex}.dialog-btn{background:var(--surface);border:1px solid var(--main);color:var(--main);cursor:pointer;flex:1;padding:12px;font-family:inherit;font-size:14px}.dialog-btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.dialog-btn:disabled{opacity:.6;cursor:not-allowed}.fieldset{border:0;min-width:0;margin:0}.fieldset legend{padding:0}.range{align-items:center;gap:8px;display:flex}.range-input{background:var(--surface);border:1px solid var(--input-line);min-width:0;color:var(--text);flex:1;padding:11px 8px;font-family:inherit;font-size:14px}.range-input[aria-invalid=true]{border:2px solid var(--danger);padding:10px 7px}.range-sep{color:var(--sub);font-size:13px}.pill-row{flex-wrap:wrap;gap:8px;padding:0 16px 8px;display:flex}.period-presets{padding-bottom:14px}.period-presets .pill{flex:1;justify-content:center}.pill-label{padding:0 16px}.pill{background:var(--surface);border:1px solid var(--input-line);color:var(--text);cursor:pointer;border-radius:16px;align-items:center;gap:6px;padding:8px 14px;font-family:inherit;font-size:13px;display:inline-flex}.pill[aria-pressed=true]{border:2px solid var(--main);padding:7px 13px;font-weight:700}.pill-check{flex-shrink:0}.pill-dot{border:1px solid #0000002e;border-radius:50%;width:9px;height:9px}.summary-section{background:var(--surface);border:1px solid var(--line);border-radius:12px;margin:0 16px 14px;padding:14px 0 12px}.summary-section .section-label{padding:0 14px 8px}.donut-wrap{width:220px;height:220px;margin:4px auto 12px;position:relative}.donut-center{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.donut-center-label{color:var(--sub);font-size:12px}.donut-center-amount{font-variant-numeric:tabular-nums;font-size:22px;font-weight:700}.legend{margin:0;padding:0 14px;list-style:none}.legend-row{border-top:1px solid var(--line);align-items:center;gap:10px;padding:9px 0;font-size:14px;display:flex}.legend-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.legend-amount{font-variant-numeric:tabular-nums;font-weight:700}.legend-ratio{min-width:52px;color:var(--sub);font-variant-numeric:tabular-nums;text-align:right;font-size:12px}.trend-chart{padding:0 10px}.trend-bar{fill:#c9d2dc}.trend-bar.selected{fill:var(--main)}.trend-bar.over{fill:var(--danger)}.trend-legend{color:var(--sub);justify-content:flex-end;gap:14px;padding:8px 14px 0;font-size:11px;display:flex}.trend-legend-item{align-items:center;gap:5px;display:inline-flex}.trend-legend-line{border-top:2px dashed var(--danger);width:16px}.trend-legend-swatch{background:var(--danger);width:10px;height:10px}.link-right{justify-content:flex-end;padding:0 16px 16px;display:flex}
