:root{--action:#b9b8dc;--action-bg:rgba(185,184,220,.09);--action-border:rgba(185,184,220,.24)}
.card{background:#29292d;border-color:#3c3b43}.totals,.budget-focus,.filter-totals{background:#323137}.tabs .active{color:#d4d1ed;border-bottom-color:#b9b8dc}.tabs button{color:#97949f}.bottom-nav{background:#252428;border-top-color:#3e3c44;box-shadow:0 80px 0 80px #252428}.bottom-nav:after{background:#252428}html,body{background:#252428}.bottom-nav button{color:#8f8b98}.bottom-nav button.selected{color:#cbc6eb;background:rgba(185,184,220,.13)}.bottom-nav button.selected>span{color:#cbc6eb;text-shadow:none}.bottom-nav button.selected:before{background:#c6c0e8}.bottom-nav button.selected.pressing{background:rgba(185,184,220,.21)}.bottom-nav button:focus-visible{outline-color:#c6c0e8}.quick-tags[hidden]{display:none!important}.quick-tags button[aria-pressed=true]{background:#b9b8dc;color:#262435;border-color:#cfcae8;box-shadow:none}.detail .record-tag{color:#b9b8dc}.action-toast{background:#d2cde5;border-color:#aaa2c6;color:#292432}.track{background:#45424d}#page-entry .save,#page-overview .calhead #today,.savings form button,.filter-apply{background:#b9b8dc;color:#262435;border-color:#b9b8dc}.calendar-fold summary,.budget-settings summary,.note-settings summary,.detail-filter summary{color:#c3bdd7}.ghost{color:#b9b8dc}.detail-scopes .active{background:#b9b8dc;color:#262435}#budgetUsage,footer{color:#97909f}
#confirm #remove{background:transparent;border:1px solid #66505b;color:#d4a1aa}#confirm #cancel{background:#b9b8dc;color:#262435;border:1px solid #b9b8dc}#confirm .row{gap:16px}#confirm button{min-width:100px;min-height:44px}
.bottom-nav button[aria-current="page"]{color:#cbc6eb;background:#393542}.bottom-nav button[aria-current="page"]>span{color:#cbc6eb;text-shadow:none}.bottom-nav button[aria-current="page"]:before{background:#cbc6eb}.bottom-nav button[aria-current="page"].pressing{background:#484052}.bottom-nav button:not([aria-current="page"]){color:#918c99;background:transparent}
html:not([data-input-mode="keyboard"]) #confirm button:focus,html:not([data-input-mode="keyboard"]) #confirm button:focus-visible{outline:none;box-shadow:none}html[data-input-mode="keyboard"] #confirm button:focus-visible{outline:2px solid #d2cde5;outline-offset:3px}
:root{--expense:#f2767f;--income:#64d7a2}button,input,select,summary{-webkit-tap-highlight-color:rgba(185,184,220,.18);accent-color:#b9b8dc}button:focus,button:focus-visible,input:focus,input:focus-visible,select:focus,select:focus-visible,summary:focus,summary:focus-visible{outline-color:#b9b8dc}.tabs button:focus,.tabs button:focus-visible{outline:2px solid #a9a1c3;outline-offset:-3px;border-radius:6px 6px 0 0}.tabs button.active{color:#d4cfea;border-bottom-color:#b9b8dc}.expense,#expenseType,#balance,.entry.expense .money,.entry.expense .badge{color:var(--expense)}.income,#incomeType,.entry.income .money,.entry.income .badge{color:var(--income)}#page-entry .switch #expenseType:not(.active){color:var(--expense)}#page-entry .switch #incomeType:not(.active){color:var(--income)}#page-entry .switch #expenseType.active{background:#b52d3d;border-color:#f2767f;color:#fff5f6}#page-entry .switch #incomeType.active{background:#127b49;border-color:#64d7a2;color:#f0fff7}.day small{color:var(--expense)}.day.selected small{color:#a52c3c}
.bottom-nav button>span svg{width:24px;height:24px;vertical-align:middle}.daily-allowance{font-size:12px!important;color:#c9c2e0;background:#b9b8dc0c;border-left:2px solid #9b92b7;padding:10px 11px;border-radius:0 7px 7px 0;line-height:1.6}.utility-dialog{width:min(420px,calc(100vw - 28px));max-height:85svh;overflow-y:auto;background:#2b292f;border:1px solid #56505f;border-radius:18px;padding:22px;color:#e5e2eb}.utility-dialog h2{font-size:18px}.utility-dialog p{font-size:12px;color:#ada7b4;line-height:1.7}.utility-dialog .primary-action{background:#b9b8dc;color:#262435;min-height:44px}.utility-dialog>button{display:block;width:100%;margin-top:12px;min-height:44px}.utility-dialog input,.utility-dialog select{font-size:16px;min-height:44px;max-width:100%;width:100%;background:#353239;color:#e9e5f0;border:1px solid #514c59;border-radius:9px;padding:10px}.utility-dialog label{font-size:12px;margin:15px 0 8px}.utility-dialog .tiny{font-size:10px}.utility-dialog .row{margin-top:18px}.utility-dialog .row button{flex:1;min-height:44px}.edit-dates{display:grid;grid-template-columns:1.2fr 1fr;gap:10px}.edit-dates>div{min-width:0}.entry-actions{display:flex;gap:1px;flex-shrink:0}.entry-actions button{background:none;font-size:11px;min-width:34px;min-height:44px;padding:5px}.edit-record{color:#b9b8dc}.entry .money{font-size:14px}.undo-bar[hidden],#applyImport[hidden],#editTagWrap[hidden]{display:none!important}.undo-bar{display:flex;align-items:center;justify-content:space-between;position:fixed;z-index:105;left:50%;bottom:calc(var(--nav-height) + 14px);transform:translateX(-50%);width:min(350px,calc(100vw - 32px));background:#45404e;border:1px solid #6c617d;border-radius:12px;padding:7px 12px;color:#eee8f7;font-size:12px;box-shadow:0 6px 20px #0005}.undo-bar button{background:#b9b8dc;color:#272333;min-height:38px;padding:7px 15px}.quick-tags{margin-top:15px}.utility-dialog::backdrop{background:#08070bbb}@media(max-width:350px){.entry-actions{flex-direction:column;gap:0}.entry-actions button{min-height:32px}.edit-dates{grid-template-columns:1fr}}
.entry-date-row{display:flex;align-items:stretch;gap:9px}.entry-date-row input{flex:1;min-width:0}.entry-date-row #entryToday{flex:0 0 60px;background:#b9b8dc;color:#262435;font-size:13px;font-weight:600;border:1px solid #b9b8dc;border-radius:9px}.entry-date-row #entryToday:active{background:#9991bb}

.date-picker-trigger{width:100%;text-align:left;background:#343337;border:1px solid #48464e;padding:13px 14px;color:#e4e1eb;font-size:14px}.date-picker-trigger:after{content:'▦';float:right;color:#b9b8dc}.entry-calendar{width:min(350px,calc(100vw - 28px));padding:20px}.entry-calendar .week{margin-top:22px}.entry-calendar .day{min-height:39px;justify-content:center;font-size:13px}.entry-calendar .day.selected{background:#b9b8dc;color:#262435}.entry-calendar .day.is-today:not(.selected){color:#d3ccef;box-shadow:inset 0 0 0 1px #8b829e}.entry-calendar-actions{display:flex;gap:12px;margin-top:20px}.entry-calendar-actions button{flex:1}.record-heading{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.detail .record-heading .record-tag{font-size:11px;font-weight:500;color:#c5bfe1;white-space:nowrap}.detail b.record-note{font-size:10px;font-weight:400;color:#c9c6ce;background:transparent;border-radius:0;padding:0;line-height:1.5}.detail b.record-fallback{font-size:11px;font-weight:500;color:#c5bfe1}

.spending-pace[hidden],#budgetAlert[hidden]{display:none!important}.spending-pace{margin-top:12px;padding:12px 0 0;border-top:1px solid #423e49}.pace-labels{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:#c5bed9;font-variant-numeric:tabular-nums}.spending-pace p{font-size:11px!important;line-height:1.6;margin:7px 0 0;color:#aaa4b3}#budgetAlert{padding:8px 10px;background:#b9b8dc12;border-radius:7px;color:#d3ccea}#budgetAlert[data-level=over]{background:#f2767f10;color:#f29ca3}#filterSearch{font-size:16px}

.calendar-fold .calendar-month-header,#entryCalendar .calendar-month-header{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:10px;margin:14px 0 16px}.calendar-month-header button{width:44px;min-width:44px;min-height:44px;padding:6px;border:1px solid #57505f;background:#333037;color:#c6bfdc;border-radius:9px;font-size:20px}.calendar-fold .calhead input,#entryCalendarTitle{width:100%;max-width:100%;min-width:0;min-height:44px;text-align:center;font-size:16px;font-weight:600;color:#ded9e9;background:transparent;border:0;padding:6px 0;margin:0;line-height:32px}.calendar-fold .calhead input::-webkit-calendar-picker-indicator{display:none}.calendar-fold .week,#entryCalendar .week{font-size:11px;color:#96909f;margin:0 0 12px;gap:4px}.calendar-fold .days,#entryCalendar .days{gap:4px}.calendar-fold .day,#entryCalendar .day{min-height:52px;height:52px;padding:7px 1px;display:flex;flex-direction:column;justify-content:space-between;align-items:center;background:#343137;color:#e2dfe7;border:0;border-radius:7px}.calendar-fold .day span,#entryCalendar .day span{font-size:12px}.calendar-fold .day small,#entryCalendar .day small{font-size:9px;line-height:1.3;color:#f2767f;max-width:100%;overflow-wrap:anywhere}.calendar-fold .day.selected,#entryCalendar .day.selected{background:#b9b8dc;color:#262435;box-shadow:none}.calendar-fold .day.selected small,#entryCalendar .day.selected small{color:#9f2737}#entryCalendar .day.is-today:not(.selected){box-shadow:none;color:#d3ccef}.calendar-fold .calendar-actions,#entryCalendar .calendar-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}.calendar-actions button{min-height:44px;font-size:14px;border-radius:9px}.calendar-actions .primary-action,#page-overview #today{background:#b9b8dc;color:#262435;border:1px solid #b9b8dc}.calendar-actions .ghost{background:transparent;border:1px solid #57505f;color:#c6bfdc}html:not([data-input-mode=keyboard]) .calendar-fold button:focus,html:not([data-input-mode=keyboard]) .calendar-fold button:focus-visible,html:not([data-input-mode=keyboard]) #entryCalendar button:focus,html:not([data-input-mode=keyboard]) #entryCalendar button:focus-visible{outline:none;box-shadow:none}html[data-input-mode=keyboard] .calendar-month-header button:focus-visible{outline:2px solid #b9b8dc;outline-offset:2px}


.calendar-month-value{position:relative;display:grid;place-items:center;min-width:0;width:100%;height:44px}.calendar-month-value>span{display:block;width:100%;text-align:center;font-size:16px;font-weight:600;line-height:44px;color:#ded9e9;pointer-events:none}.calendar-fold .calhead .calendar-month-value input{position:absolute;inset:0;opacity:0;width:100%;max-width:100%;height:44px;min-height:0;padding:0;margin:0;cursor:pointer}.calendar-month-value:focus-within{border-radius:6px}html[data-input-mode=keyboard] .calendar-month-value:focus-within{outline:2px solid #b9b8dc;outline-offset:2px}

.calendar-fold .days[data-period=week],.calendar-fold .days[data-period=month],.calendar-fold .days[data-period=year]{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.calendar-fold .period-cell{height:66px;min-height:66px;position:relative;justify-content:center;gap:9px;padding:9px 2px}.calendar-fold .period-cell span{font-size:10px;white-space:nowrap}.calendar-fold .period-cell small{font-size:10px}.period-cell em{font-style:normal;font-size:8px;position:absolute;right:3px;top:2px;color:#bdb2d4}.period-cell.selected em{color:#43364f}.calendar-fold .days[data-period=year]+.hint{font-size:9px}.calendar-fold #overviewMonthLabel{font-size:14px}.calendar-fold[data-period=week] .fold-label:after{content:'展开周历 ＋'}.calendar-fold[data-period=week][open] .fold-label:after{content:'收起周历 −'}.calendar-fold[data-period=month] .fold-label:after{content:'展开月历 ＋'}.calendar-fold[data-period=month][open] .fold-label:after{content:'收起月历 −'}.calendar-fold[data-period=year] .fold-label:after{content:'展开年历 ＋'}.calendar-fold[data-period=year][open] .fold-label:after{content:'收起年历 −'}
#calendarWeek[hidden]{display:none!important}

.calendar-empty{grid-column:1/-1;text-align:center;font-size:11px;color:#aaa1b6;padding:15px}.calendar-month-header button:disabled{opacity:.3;cursor:default}

.calendar-fold .period-cell.cross-month{background:#39333e;box-shadow:inset 0 0 0 1px #8b7d9b66}.calendar-fold .period-cell.cross-month.selected{background:#b9b8dc;box-shadow:inset 0 0 0 1px #d8cbe6}.cross-month-label{position:absolute;left:4px;top:3px;font-style:normal;font-size:8px;color:#afa1bd;line-height:1}.selected .cross-month-label{color:#554360}.calendar-fold .period-cell.cross-month{padding-top:14px}

.calendar-fold .days[data-period=week] .period-cell.selected{background:#343137;color:#e2dfe7;box-shadow:none}.calendar-fold .days[data-period=week] .period-cell.selected small{color:#f2767f}.calendar-fold .days[data-period=week] .period-cell.selected.cross-month{background:#39333e;box-shadow:inset 0 0 0 1px #8b7d9b66}.calendar-fold .days[data-period=week] .period-cell em{color:#bdb2d4}.calendar-fold .days[data-period=week] .period-cell .cross-month-label{color:#afa1bd}.calendar-fold #days[data-period=week] button.tapped,.calendar-fold #days[data-period=week] button.pressing{animation:none!important;transform:none!important;filter:none!important;transition:none!important;outline:none!important}.calendar-fold #days[data-period=week] button.tapped{box-shadow:none!important}.calendar-fold #days[data-period=week] button.cross-month.tapped{box-shadow:inset 0 0 0 1px #8b7d9b66!important}.calendar-fold #days[data-period=week] button{-webkit-tap-highlight-color:transparent}

.detail-month-row[hidden]{display:none!important}.detail-month-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px}.detail-month-row label{font-size:11px;color:#bdb4ce;margin:0}.detail-month-row input{width:160px;max-width:70%;min-height:40px;font-size:16px;padding:7px 10px;background:#35313c;border:1px solid #665b77;color:#d4c9e8}

.detail-month-row input[hidden]{display:none!important}

#page-overview #days .day.cross-month,#page-overview #days .day.selected:not(.current-period){background:#343137;color:#e2dfe7;box-shadow:none}#page-overview #days .day.selected:not(.current-period) small{color:#f2767f}#page-overview #days .day.current-period{background:#b9b8dc;color:#262435;box-shadow:none}#page-overview #days .day.current-period small{color:#9f2737}#page-overview #days .day.current-period em,#page-overview #days .day.current-period .cross-month-label{color:#554360}#page-overview #days .day.cross-month.tapped{box-shadow:none!important}#page-overview #days .cross-month-label{color:#aaa1b6}

.daily-allowance{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0;background:#b9b8dc0b;border:1px solid #b9b8dc20;border-radius:10px;padding:13px 12px}.daily-allowance>div{min-width:0}.daily-allowance span,.daily-allowance small{display:block}.daily-allowance span{font-size:11px;color:#bcb7c8}.daily-allowance strong{display:block;margin:6px 0;font-size:21px;font-weight:600;font-variant-numeric:tabular-nums;color:#d4cdeb}.daily-allowance small{font-size:10px;color:#96919f;line-height:1.5}

.consumption-summary{margin-top:14px}.consumption-metrics{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:20px 0 12px}.consumption-metrics span{font-size:12px;color:#aaa5b1}.consumption-metrics strong{display:block;font-size:25px;font-weight:600;margin-top:10px;font-variant-numeric:tabular-nums}.consumption-metrics #dailySpentMean{color:#d4cdeb}.consumption-summary .hint{font-size:10px;line-height:1.6}.consumption-summary #comparison{font-size:11px;line-height:1.7;margin-bottom:0}

.record-day-heading{font-size:12px;font-weight:500;letter-spacing:.2px;color:#c6c0dc;margin:20px 0 2px;padding:0 0 8px;border-bottom:1px solid #b9b8dc22}.record-day-heading:first-child{margin-top:16px}#entries .entry{padding:5px 0;gap:8px;min-height:48px;border-bottom:1px solid #b9b8dc12}#entries .entry:last-child{border-bottom:0}#entries .badge{width:25px;height:25px;font-size:15px}#entries .entry-actions{gap:0}#entries .entry-actions button{padding:5px 4px;min-height:40px}#entries .detail small{margin-top:3px;font-size:10px}#entries .record-heading{gap:5px}#entries .money{font-size:13px}

/* Compact ledger rows: keep actions aligned without vertical padding. */
#entries .entry{min-height:34px;padding:0;gap:7px}#entries .entry-actions button{min-height:34px;padding:0 5px;line-height:1.25}#entries .badge{width:22px;height:22px;font-size:14px}#entries .record-heading{line-height:1.3}#entries .detail small{margin-top:1px;line-height:1.3}#entries .record-day-heading{margin:10px 0 0;padding-bottom:4px;line-height:1.4}#entries .record-day-heading:first-child{margin-top:12px}@media(max-width:350px){#entries .entry-actions{flex-direction:row}#entries .entry-actions button{min-width:30px;padding:0 3px}}

.category-spending{margin-top:14px}.category-total{font-size:11px;color:#a7a1b0;margin:14px 0 17px}.category-total strong{color:#d9d5e4;font-size:14px;font-weight:500;margin-left:6px;font-variant-numeric:tabular-nums}.category-comparison-row+.category-comparison-row{margin-top:15px}.category-comparison-label{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:12px;color:#d1cbdc;margin-bottom:7px}.category-comparison-label>span:last-child{display:flex;align-items:baseline;gap:10px}.category-comparison-label b{font-size:13px;font-weight:500;color:#e0dae9;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.category-comparison-label small{font-size:10px;color:#a6a0b0;min-width:39px;text-align:right;font-variant-numeric:tabular-nums}.category-track{height:5px;background:#3b3742;border-radius:5px;overflow:hidden}.category-track>span{display:block;height:100%;background:#b9b0d4;border-radius:5px}.category-comparison-row:nth-child(2) .category-track>span{background:#a298bf}.category-comparison-row:nth-child(3) .category-track>span{background:#877c9e}.category-spending .hint{text-align:left;font-size:10px;line-height:1.6;margin-top:14px;color:#96909f}

.entry-actions[hidden]{display:none!important}.record-protection{margin-top:14px}.record-protection .row small{font-size:10px;color:#b6accb}.record-protection label{font-size:11px;margin:15px 0 8px}.record-protection select{width:100%;min-height:44px;background:#343139;color:#d0c8e2;border:1px solid #5a5269;border-radius:9px;padding:10px;font:inherit;font-size:12px}.record-protection .hint{text-align:left;font-size:10px;line-height:1.6}

#export.backup-reminding{animation:backup-soft-reminder 1.4s ease-in-out infinite}@keyframes backup-soft-reminder{0%,100%{background:#b9b8dc;color:#272333;border-color:#d9d2ed;box-shadow:0 0 0 2px #b9b8dc44}50%{background:#302d38;color:#b9b8dc;border-color:#5b536c;box-shadow:0 0 0 0 #b9b8dc00}}@media(prefers-reduced-motion:reduce){#export.backup-reminding{animation:none;border-color:#b9b8dc;box-shadow:0 0 0 2px #b9b8dc33}}
