:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--primary:#00696e;--primary-container:#9cf1f6;--on-primary:#fff;--on-primary-container:#00363a;--on-error:#fff;--surface:#f5fafa;--surface-sunken:#e8f0f0;--card:#fff;--error:#ba1a1a;--success:#2e7d32;--text:#191c1c;--muted:#5a6363;--outline:#e0e6e6;--scrim:#0000006b;--hero-from:#00696e;--hero-to:#0097a7;--on-hero:#fff;--shadow-card:0 1px 4px #0000000f;--shadow-float:0 6px 18px #00696e59;--danger-soft:#ba1a1a14;--select-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5 6 8l3.5-3.5' fill='none' stroke='%235a6363' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--primary:#4dd9e1;--primary-container:#0c3b3e;--on-primary:#00363a;--on-primary-container:#9cf1f6;--on-error:#3b0a05;--surface:#0d1414;--surface-sunken:#1b2424;--card:#161e1e;--error:#ff897d;--success:#7cd98a;--text:#e2e8e8;--muted:#9aa5a5;--outline:#26302f;--scrim:#0009;--hero-from:#00494d;--hero-to:#00696e;--on-hero:#e8fbfd;--shadow-card:0 1px 4px #00000073;--shadow-float:0 6px 18px #00000080;--danger-soft:#ff897d24;--select-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5 6 8l3.5-3.5' fill='none' stroke='%239aa5a5' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}*,:before,:after{box-sizing:border-box}html{background:var(--surface);-webkit-text-size-adjust:100%}body{background:var(--surface);min-height:100dvh;color:var(--text);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Noto Sans SC,Microsoft YaHei,Roboto,sans-serif;font-size:14px;line-height:1.5}body.is-sheet-open{overflow:hidden}button{font:inherit;color:inherit;cursor:pointer}input,select,textarea{font:inherit;color:inherit}a{color:var(--primary);text-decoration:none}h1,h2,h3,p,dl,dd,dt,figure{margin:0}.app-main{max-width:480px;padding:calc(14px + env(safe-area-inset-top)) 16px calc(156px + env(safe-area-inset-bottom));min-height:100dvh;margin:0 auto}.splash{min-height:100dvh;color:var(--muted);justify-content:center;align-items:center;font-size:14px;display:flex}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}.card{background:var(--card);box-shadow:var(--shadow-card);border-radius:16px;margin-bottom:12px;padding:16px}.btn{background:var(--surface-sunken);color:var(--text);border:none;border-radius:999px;padding:12px 18px;font-size:15px;font-weight:600;transition:opacity .15s}.btn:disabled{opacity:.5}.btn-primary{background:var(--primary);color:var(--on-primary)}.btn-ghost{background:var(--surface-sunken);color:var(--text)}.btn-danger{background:var(--error);color:var(--on-error)}.btn-block{width:100%;margin-top:8px}.tabbar{background:var(--card);border-top:1px solid var(--outline);width:100%;max-width:480px;padding-bottom:env(safe-area-inset-bottom);z-index:20;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tab{color:var(--muted);flex-direction:column;flex:1;align-items:center;gap:3px;padding:10px 0 12px;font-size:11px;display:flex}.tab.is-active{color:var(--primary);font-weight:600}.tab-icon{font-size:20px;line-height:1}.fab{bottom:calc(84px + env(safe-area-inset-bottom));background:var(--primary);width:56px;height:56px;color:var(--on-primary);box-shadow:var(--shadow-float);z-index:21;border:none;border-radius:18px;font-size:26px;line-height:1;position:fixed;right:max(20px,50vw - 220px)}.sheet-root{z-index:40;pointer-events:none;position:fixed;inset:0}.sheet-root.is-open{pointer-events:auto}.sheet-overlay{background:var(--scrim);opacity:0;transition:opacity .22s;position:absolute;inset:0}.sheet-root.is-open .sheet-overlay{opacity:1}.sheet{background:var(--card);width:100%;max-width:480px;max-height:90dvh;padding:12px 16px calc(20px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0;transition:transform .26s;position:absolute;bottom:0;left:50%;overflow-y:auto;transform:translate(-50%)translateY(100%)}.sheet-root.is-open .sheet{transform:translate(-50%)translateY(0)}.sheet-grab{background:var(--outline);border-radius:2px;width:40px;height:4px;margin:0 auto 12px}.sheet-title{text-align:center;margin-bottom:12px;font-size:16px;font-weight:600}.dialog-root{z-index:50;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog-overlay{background:var(--scrim);position:absolute;inset:0}.dialog{background:var(--card);width:min(320px,100vw - 48px);box-shadow:var(--shadow-card);border-radius:20px;padding:20px;position:relative}.dialog-title{margin-bottom:8px;font-size:17px;font-weight:700}.dialog-message{color:var(--muted);margin-bottom:18px;font-size:14px}.dialog-actions{justify-content:flex-end;gap:10px;display:flex}.toast{left:50%;bottom:calc(104px + env(safe-area-inset-bottom));background:var(--text);color:var(--surface);z-index:60;border-radius:999px;padding:10px 20px;font-size:13px;position:fixed;transform:translate(-50%)}.month-switcher{background:var(--card);border:1px solid var(--outline);border-radius:999px;align-items:center;gap:2px;padding:2px;display:flex}.month-nav{width:30px;height:30px;color:var(--primary);background:0 0;border:none;border-radius:50%;font-size:18px;line-height:1}.month-label{color:var(--text);white-space:nowrap;background:0 0;border:none;align-items:center;gap:2px;padding:0 6px;font-size:13px;font-weight:600;display:inline-flex}.month-label-caret{color:var(--muted);font-size:10px;font-weight:400}.month-picker{flex-direction:column;gap:14px;display:flex}.month-picker-year{justify-content:center;align-items:center;gap:16px;display:flex}.month-picker-year-label{text-align:center;min-width:72px;font-size:15px;font-weight:600}.month-picker-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.month-picker-item{border:1px solid var(--outline);background:var(--card);color:var(--text);border-radius:12px;padding:10px 0;font-size:14px}.month-picker-item.is-active{background:var(--primary-container);color:var(--on-primary-container);border-color:#0000;font-weight:600}.month-picker-today{background:var(--surface-sunken);color:var(--primary);border:none;border-radius:999px;padding:12px 18px;font-size:14px;font-weight:600}.theme-toggle{border:1px solid var(--outline);background:var(--card);border-radius:50%;flex:none;width:36px;height:36px;font-size:16px}.header-link{border:1px solid var(--outline);background:var(--card);color:var(--primary);border-radius:999px;flex:none;padding:6px 12px;font-size:13px;font-weight:600}.seg{background:var(--surface-sunken);border-radius:999px;gap:4px;margin-bottom:12px;padding:4px;display:flex}.seg-btn{color:var(--muted);background:0 0;border:none;border-radius:999px;flex:1;padding:8px;font-size:14px}.seg-btn.is-active{background:var(--card);color:var(--primary);box-shadow:var(--shadow-card);font-weight:600}.field{border-bottom:1px solid var(--outline);align-items:center;gap:10px;padding:10px 0;display:flex}.field-label{width:44px;color:var(--muted);flex:none;font-size:14px}.field-control{background:0 0;border:none;outline:none;flex:1;min-width:0;font-size:15px}.field-control::placeholder{color:var(--muted)}.field-static{min-width:0;color:var(--muted);text-align:right;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:15px;overflow:hidden}select.field-control{appearance:none;background-color:var(--surface-sunken);background-image:var(--select-chevron);min-height:40px;color:var(--text);text-align:right;text-overflow:ellipsis;white-space:nowrap;background-position:right 12px center;background-repeat:no-repeat;background-size:12px 12px;border:0;border-radius:999px;padding:8px 34px 8px 12px;overflow:hidden}.form-error{color:var(--error);margin:8px 0;font-size:13px}.form-hint{color:var(--muted);margin:8px 0;font-size:12px}.form-actions{gap:10px;margin-top:16px;display:flex}.form-actions .btn{flex:1}.amount-row{justify-content:space-between;align-items:center;gap:12px;margin:4px 0 12px;display:flex}.amount-input{word-break:break-all;font-size:30px;font-weight:700}.amount-field-wrap{flex:1;align-items:baseline;gap:4px;min-width:0;display:flex}.amount-currency{font-size:24px;font-weight:700}.amount-field{min-width:0;color:var(--text);background:0 0;border:none;outline:none;flex:1;font-size:30px;font-weight:700}.amount-field::placeholder{color:var(--muted)}.date-input{border:1px solid var(--outline);background:var(--card);color:var(--muted);border-radius:999px;flex:none;padding:6px 12px;font-size:13px}.cat-grid{grid-template-columns:repeat(4,1fr);gap:8px;max-height:184px;margin-bottom:12px;display:grid;overflow-y:auto}.cat-item{background:0 0;border:none;border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:8px 2px;font-size:12px;display:flex}.cat-item.is-active{background:var(--primary-container);color:var(--on-primary-container);font-weight:600}.cat-icon{background:var(--surface-sunken);border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:20px;display:flex}.cat-item.is-active .cat-icon{background:var(--card)}.cat-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.list-card{padding:4px 16px}.tx-row{border:none;border-bottom:1px solid var(--outline);text-align:left;background:0 0;align-items:center;gap:12px;width:100%;padding:12px 0;display:flex}.tx-row:last-child{border-bottom:none}.tx-icon{background:var(--surface-sunken);border-radius:50%;flex:none;justify-content:center;align-items:center;width:40px;height:40px;font-size:20px;display:flex;position:relative}.avatar{background:var(--surface-sunken);border-radius:50%;flex:none;justify-content:center;align-items:center;width:20px;height:20px;font-size:12px;line-height:1;display:inline-flex;overflow:hidden}.tx-avatar{width:18px;height:18px;box-shadow:0 0 0 2px var(--card);font-size:10px;position:absolute;bottom:-3px;right:-3px}.owner-badge{color:var(--muted);align-items:center;gap:4px;margin-top:3px;font-size:11px;display:inline-flex}.seg-person .seg-btn{justify-content:center;align-items:center;gap:6px;display:inline-flex}.field-column{flex-direction:column;align-items:stretch;gap:6px}.field-column .field-label{width:auto}.field-column .seg{margin-bottom:0}.tx-info{flex-direction:column;flex:1;min-width:0;display:flex}.tx-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:15px;overflow:hidden}.tx-title-row{align-items:center;gap:6px;min-width:0;display:flex}.import-badge{background:var(--surface-sunken);color:var(--muted);border-radius:999px;flex:none;padding:1px 6px;font-size:10px;line-height:1.5}.exclude-badge{background:var(--surface-sunken);color:var(--muted);border-radius:999px;align-self:flex-start;margin-top:3px;padding:1px 6px;font-size:10px;line-height:1.5}.checkbox-field{border-bottom:1px solid var(--outline);color:var(--text);cursor:pointer;align-items:center;gap:8px;padding:12px 0;font-size:14px;display:flex}.checkbox-field input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary);cursor:pointer;flex:none}.tx-subtitle{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.tx-amount{font-variant-numeric:tabular-nums;font-size:15px;font-weight:600}.tx-expense{color:var(--error)}.tx-income{color:var(--success)}.tx-transfer{color:var(--muted)}.empty-hint{text-align:center;color:var(--muted);padding:20px 0;font-size:13px}.budget-manage{flex-direction:column;gap:14px;display:flex}.budget-manage-list{flex-direction:column;display:flex}.budget-manage-item{border-bottom:1px solid var(--outline);padding:12px 0}.budget-manage-actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.budget-manage-actions .btn{padding:6px 14px;font-size:13px}.btn-danger-text{color:var(--error)}.budget-form{flex-direction:column;gap:14px;display:flex}.receivable-card{flex-direction:column;gap:4px;padding:16px;display:flex}.receivable-label{color:var(--muted);font-size:12px}.receivable-total{color:var(--primary);font-variant-numeric:tabular-nums;font-size:24px;font-weight:700}.receivable-summary{color:var(--muted);flex-wrap:wrap;gap:10px;font-size:13px;display:flex}.receivable-overdue{color:var(--error)}.receivable-preview{border-top:1px solid var(--outline);flex-direction:column;gap:6px;margin-top:10px;padding-top:10px;display:flex}.receivable-preview-row{align-items:baseline;gap:8px;font-size:13px;display:flex}.receivable-preview-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.receivable-preview-due{color:var(--muted);flex:none;font-size:12px}.receivable-preview-amount{font-variant-numeric:tabular-nums;flex:none;font-weight:600}.receivable-manage{flex-direction:column;gap:14px;display:flex}.receivable-manage-list{flex-direction:column;display:flex}.receivable-manage-item{border-bottom:1px solid var(--outline);padding:12px 0}.receivable-manage-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.receivable-manage-actions .btn{padding:6px 14px;font-size:13px}.receivable-form{flex-direction:column;gap:14px;display:flex}.receivable-row{flex-direction:column;gap:4px;display:flex}.receivable-row.is-settled{color:var(--muted)}.receivable-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.receivable-name{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;min-width:0;font-weight:600;display:flex;overflow:hidden}.receivable-badge{background:var(--primary-container);color:var(--on-primary-container);border-radius:999px;flex:none;padding:1px 6px;font-size:10px;font-weight:400;line-height:1.5}.receivable-amount{font-variant-numeric:tabular-nums;flex:none;font-weight:600}.receivable-meta{color:var(--muted);flex-wrap:wrap;gap:10px;font-size:12px;display:flex}.receivable-note{color:var(--muted);font-size:12px}.receivable-preview-account{color:var(--muted);margin-left:6px;font-size:12px;font-weight:400}.receivable-preview-hint{background:var(--surface-sunken);color:var(--text);border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;font-size:13px;display:flex}.receivable-preview-hint .btn{flex:none;padding:4px 12px;font-size:13px}.receivable-progress{color:var(--muted);flex-wrap:wrap;gap:10px;font-size:12px;display:flex}.receivable-progress>span:last-child{color:var(--primary)}.receivable-subsidy{color:var(--success);font-size:12px;font-weight:600}.receivable-subsidy.is-negative{color:var(--error)}.receivable-settle-form{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.receivable-settle-form .field-control{flex:120px;min-width:0}.receivable-settle-actions{gap:8px;margin-left:auto;display:flex}.receivable-settle-actions .btn{padding:6px 14px;font-size:13px}.page-header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.page-title{font-size:22px;font-weight:700;line-height:1.2}.page-heading{flex:1;min-width:0}.page-subtitle{color:var(--muted);font-size:13px}.page-header-actions{flex:none;align-items:center;gap:8px;display:flex}.section-title{justify-content:space-between;align-items:center;margin:16px 2px 8px;font-size:16px;font-weight:600;display:flex}.section-link{font-size:13px}.section-note{color:var(--muted);font-size:12px;font-weight:400}.page-footnote{text-align:center;color:var(--muted);margin-top:12px;font-size:12px}.back-btn{color:var(--primary);background:0 0;border:none;padding:0;font-size:15px}.hero{background:linear-gradient(135deg, var(--hero-from), var(--hero-to));color:var(--on-hero);text-align:center;padding:22px 16px}.hero-label{opacity:.85;font-size:13px;display:block}.hero-amount{font-variant-numeric:tabular-nums;margin:6px 0 10px;font-size:28px;font-weight:700;display:block}.hero-split{opacity:.95;justify-content:center;gap:24px;font-size:13px;display:flex}.hero-split b{font-weight:600}.grid-2{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;display:grid}.annual-totals{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px;display:grid}.annual-totals .stat-card{min-width:0;padding:12px 10px}.annual-totals .stat-value{white-space:nowrap;text-overflow:ellipsis;font-size:clamp(14px,3.8vw,17px);overflow:hidden}.stat-card{background:var(--card);box-shadow:var(--shadow-card);border-radius:16px;padding:14px}.stat-label{color:var(--muted);font-size:12px;display:block}.stat-value{font-variant-numeric:tabular-nums;margin-top:4px;font-size:20px;font-weight:700;display:block}.stat-income{color:var(--success)}.stat-expense{color:var(--error)}.summary-line{grid-template-columns:1fr 1fr;gap:12px;display:grid}.summary-cell{min-width:0}.summary-line .stat-value{margin-top:0;font-size:18px}.day-group{margin-bottom:8px}.day-header{text-align:center;color:var(--muted);margin:14px 0 6px;font-size:12px;font-weight:500}.detail-card{flex-direction:column;display:flex}.detail-amount{font-variant-numeric:tabular-nums;margin:4px 0 12px;font-size:28px;font-weight:700}.detail-list{flex-direction:column;display:flex}.detail-row{border-bottom:1px solid var(--outline);justify-content:space-between;gap:16px;padding:10px 0;font-size:14px;display:flex}.detail-row:last-child{border-bottom:none}.detail-row dt{color:var(--muted);flex:none}.detail-row dd{text-align:right}.detail-person{align-items:center;gap:6px;display:inline-flex}.detail-actions{gap:10px;margin-top:14px;display:flex}.detail-actions .btn{flex:1}.summary-card{flex-direction:column;gap:12px;display:flex}.summary-row{color:var(--muted);justify-content:space-between;font-size:13px;display:flex}.summary-row b{font-variant-numeric:tabular-nums;margin-top:2px;font-size:18px;display:block}.summary-net{border-top:1px solid var(--outline);padding-top:10px}.account-row{border-bottom:1px solid var(--outline);align-items:center;gap:12px;padding:12px 0;display:flex}.account-row:last-child{border-bottom:none}.account-row.is-editable{cursor:pointer}.account-row.is-editable:hover{background:var(--surface-sunken)}.account-amount{font-variant-numeric:tabular-nums;font-size:15px;font-weight:600}.account-amount.is-negative{color:var(--error)}.row-delete{width:28px;height:28px;color:var(--muted);background:0 0;border:none;border-radius:50%;flex:none;font-size:13px}.row-delete:hover{background:var(--surface-sunken)}.donut{justify-content:center;padding:6px 0;display:flex;position:relative}.donut-svg{width:148px;height:148px}.donut-center{flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex;position:absolute;inset:0}.donut-center-label{color:var(--muted);font-size:12px}.donut-center-value{font-variant-numeric:tabular-nums;font-size:16px;font-weight:700}.rank-row{grid-template-columns:22px 1fr auto 34px;align-items:center;gap:6px 8px;padding:8px 0;display:grid}.rank-icon{font-size:16px}.rank-name{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.rank-amount{font-variant-numeric:tabular-nums;font-size:13px}.rank-pct{text-align:right;color:var(--muted);font-size:12px}.rank-bar{background:var(--surface-sunken);border-radius:3px;grid-column:2/-1;height:6px;overflow:hidden}.rank-bar-fill{border-radius:3px;height:100%;display:block}.stat-caption{color:var(--muted);margin:-6px 2px 12px;font-size:12px}.stat-caption em{color:var(--text);font-style:normal}.person-row{grid-template-columns:20px 1fr auto 34px;align-items:center;gap:6px 8px;padding:8px 0;display:grid}.person-name{font-size:14px}.person-amount{font-variant-numeric:tabular-nums;font-size:13px}.person-pct{text-align:right;color:var(--muted);font-size:12px}.person-bar{background:var(--surface-sunken);border-radius:3px;grid-column:2/-1;height:6px;overflow:hidden}.person-bar-fill{background:var(--primary);border-radius:3px;height:100%;display:block}.bar-chart{flex-direction:column;gap:8px;display:flex}.bar-legend{color:var(--muted);justify-content:center;gap:16px;font-size:12px;display:flex}.bar-legend-item{align-items:center;gap:6px;display:inline-flex}.dot{border-radius:50%;width:8px;height:8px;display:inline-block}.dot-income{background:var(--success)}.dot-expense{background:var(--error)}.bar-svg{width:100%;height:160px}.bar-label{font-size:10px}.bar-value{font-variant-numeric:tabular-nums;font-size:9px}.bar-selected{text-align:center;font-variant-numeric:tabular-nums;color:var(--muted);margin:0 2px;font-size:13px}.bar-selected-value{color:var(--text);font-weight:600}.bar-scroll{-webkit-overflow-scrolling:touch;overflow:auto hidden}.bar-point.is-clickable{cursor:pointer}.bar-point.is-clickable:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.bar-point.is-selected rect{stroke:var(--primary);stroke-width:2px}.trend-cats{-webkit-overflow-scrolling:touch;gap:8px;margin-bottom:12px;padding-bottom:4px;display:flex;overflow-x:auto}.trend-cat{white-space:nowrap;background:var(--surface-sunken);color:var(--muted);border:none;border-radius:999px;flex:none;align-items:center;gap:4px;padding:6px 12px;font-size:13px;display:inline-flex}.trend-cat.is-active{background:var(--primary-container);color:var(--on-primary-container);font-weight:600}.trend-caption{color:var(--muted);margin:0 2px 12px;font-size:12px}.login{max-width:480px;min-height:100dvh;padding:calc(16px + env(safe-area-inset-top)) 20px calc(24px + env(safe-area-inset-bottom));flex-direction:column;justify-content:center;gap:24px;margin:0 auto;display:flex}.login-topbar{justify-content:flex-end;display:flex}.login-brand{flex-direction:column;align-items:center;gap:6px;display:flex}.login-logo{font-size:44px}.login-title{font-size:26px;font-weight:700}.login-slogan{color:var(--muted);font-size:13px}.login-form{flex-direction:column;display:flex}.login-form .btn{margin-top:18px}.login-footer{text-align:center;color:var(--muted);margin-top:auto;padding-top:12px;font-size:12px}.login-beian{color:inherit;word-break:break-all;text-decoration:none}.login-beian:hover,.login-beian:focus{color:var(--primary)}.section-link-button{font:inherit;color:var(--primary);cursor:pointer;background:0 0;border:0;padding:0;font-size:13px}.budget-list{flex-direction:column;gap:14px;padding:14px;display:flex}.budget-row{flex-direction:column;gap:6px;display:flex}.budget-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.budget-cat{align-items:center;gap:6px;min-width:0;font-size:14px;display:flex}.budget-icon{font-size:16px}.budget-period{color:var(--muted);font-size:12px}.budget-amount{font-variant-numeric:tabular-nums;flex:none;font-size:14px}.budget-amount.is-alert{color:var(--error);font-weight:600}.budget-bar{background:var(--surface-sunken);border-radius:4px;height:8px;overflow:hidden}.budget-bar-fill{border-radius:4px;height:100%;transition:width .2s;display:block}.budget-foot{color:var(--muted);justify-content:space-between;align-items:baseline;font-size:12px;display:flex}.budget-percent{font-variant-numeric:tabular-nums}.budget-near,.budget-over{color:var(--error)}button.stat-card{width:100%;font:inherit;text-align:left;color:inherit;cursor:pointer;border:0;display:block}button.stat-card:hover{background:var(--surface-sunken)}button.stat-card:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.today-card{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.today-compare{text-align:right;flex-direction:column;align-items:flex-end;gap:2px;display:flex}.today-delta{font-size:13px;font-weight:600}.today-delta:not(.stat-expense):not(.stat-income){color:var(--muted)}.today-yesterday{color:var(--muted);font-size:12px}button.rank-row,button.person-row{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px}button.rank-row:hover,button.person-row:hover{background:var(--surface-sunken)}button.rank-row:focus-visible,button.person-row:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.donut-legend{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:10px;display:flex}.legend-item{background:var(--surface-sunken);font:inherit;color:var(--text);cursor:pointer;border:0;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;display:inline-flex}.legend-item:hover{opacity:.85}.legend-item:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.legend-dot{border-radius:50%;flex:none;width:10px;height:10px}.legend-amount{color:var(--muted);font-variant-numeric:tabular-nums}.filter-bar{color:var(--text);justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;padding:10px 12px;font-size:13px;display:flex}.filter-text{font-variant-numeric:tabular-nums}.filter-clear{color:var(--muted);cursor:pointer;background:0 0;border:0;flex:none;padding:0 4px;font-size:18px;line-height:1}.filter-clear:hover{color:var(--text)}.filter-clear:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
