:root,html[data-theme=coral]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--primitive-canvas:oklch(98.2% .014 48);--primitive-surface:oklch(99.7% .006 48);--primitive-surface-raised:oklch(100% 0 0);--primitive-surface-soft:oklch(96.7% .022 44);--primitive-ink:oklch(23.5% .045 350);--primitive-ink-soft:oklch(40% .04 24);--primitive-muted:oklch(51% .025 30);--primitive-faint:oklch(64% .018 34);--primitive-line:oklch(89.5% .022 44);--primitive-line-strong:oklch(82.5% .035 42);--primitive-brand:oklch(57% .2 28);--primitive-brand-hover:oklch(49% .19 27);--primitive-brand-soft:oklch(94.5% .047 30);--primitive-brand-tint:oklch(97.2% .025 33);--primitive-accent:oklch(67% .18 58);--primitive-accent-soft:oklch(95.5% .045 67);--primitive-sidebar:oklch(22.5% .055 325);--primitive-sidebar-soft:oklch(29% .06 327);--primitive-sidebar-text:oklch(96.5% .018 54);--primitive-danger:oklch(50% .2 26);--primitive-danger-soft:oklch(95.5% .038 24);--primitive-info:oklch(48% .13 255);--primitive-info-soft:oklch(95% .027 254);--color-canvas:var(--primitive-canvas);--color-surface:var(--primitive-surface);--color-surface-raised:var(--primitive-surface-raised);--color-surface-soft:var(--primitive-surface-soft);--color-text:var(--primitive-ink);--color-text-soft:var(--primitive-ink-soft);--color-muted:var(--primitive-muted);--color-faint:var(--primitive-faint);--color-border:var(--primitive-line);--color-border-strong:var(--primitive-line-strong);--color-action:var(--primitive-brand);--color-action-hover:var(--primitive-brand-hover);--color-action-soft:var(--primitive-brand-soft);--color-action-tint:var(--primitive-brand-tint);--color-accent:var(--primitive-accent);--color-accent-soft:var(--primitive-accent-soft);--color-father:oklch(43% .14 254);--color-father-soft:oklch(94.5% .034 252);--color-mother:var(--primitive-accent);--color-mother-soft:var(--primitive-accent-soft);--color-joint:oklch(46% .13 320);--color-joint-soft:oklch(95% .035 320);--color-danger:var(--primitive-danger);--color-danger-soft:var(--primitive-danger-soft);--color-success:oklch(47% .135 258);--color-success-soft:oklch(95% .027 255);--color-info:var(--primitive-info);--color-info-soft:var(--primitive-info-soft);--color-sidebar:var(--primitive-sidebar);--color-sidebar-soft:var(--primitive-sidebar-soft);--color-sidebar-text:var(--primitive-sidebar-text);--color-focus:oklch(63% .19 29/.32);--color-scrim:oklch(20% .045 330/.42);--shadow-panel:0 14px 42px oklch(45% .06 35/.07);--shadow-float:0 24px 70px oklch(24% .05 330/.22);--data-1:oklch(60% .22 28);--data-2:oklch(68% .19 53);--data-3:oklch(73% .16 78);--data-4:oklch(56% .16 348);--data-5:oklch(55% .16 257);--data-6:oklch(54% .14 304);--data-7:oklch(54% .14 335);--data-8:oklch(59% .09 49);--data-9:oklch(61% .02 270);--ink:var(--color-text);--muted:var(--color-muted);--faint:var(--color-faint);--pine:var(--color-action);--pine-strong:var(--color-action-hover);--pine-soft:var(--color-action-soft);--father:var(--color-father);--mother:var(--color-mother);--line:var(--color-border);--line-strong:var(--color-border-strong);--panel:var(--color-surface-raised);--sidebar:var(--color-sidebar);--danger:var(--color-danger);--sidebar-width:252px;--sidebar-collapsed-width:82px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Noto Sans CJK SC,sans-serif}html[data-theme=amber]{--primitive-canvas:oklch(98.2% .018 79);--primitive-surface:oklch(99.5% .009 76);--primitive-surface-raised:oklch(100% 0 0);--primitive-surface-soft:oklch(96% .032 78);--primitive-ink:oklch(23% .04 50);--primitive-ink-soft:oklch(39% .045 54);--primitive-muted:oklch(50% .03 58);--primitive-faint:oklch(63% .022 63);--primitive-line:oklch(88.5% .034 75);--primitive-line-strong:oklch(80.5% .052 72);--primitive-brand:oklch(49% .135 67);--primitive-brand-hover:oklch(41.5% .12 62);--primitive-brand-soft:oklch(94% .055 78);--primitive-brand-tint:oklch(97% .03 80);--primitive-accent:oklch(58% .17 31);--primitive-accent-soft:oklch(95% .044 34);--primitive-sidebar:oklch(23% .045 48);--primitive-sidebar-soft:oklch(30% .052 51);--primitive-sidebar-text:oklch(96.5% .02 76);--color-father:oklch(44% .13 255);--color-father-soft:oklch(94.5% .03 252);--color-mother:oklch(62% .16 58);--color-mother-soft:oklch(95% .048 70);--color-focus:oklch(60% .15 67/.32);--color-scrim:oklch(20% .04 48/.42);--shadow-panel:0 14px 42px oklch(46% .06 67/.08);--shadow-float:0 24px 70px oklch(24% .04 48/.23)}html[data-theme=berry]{--primitive-canvas:oklch(98% .016 345);--primitive-surface:oklch(99.5% .008 345);--primitive-surface-raised:oklch(100% 0 0);--primitive-surface-soft:oklch(96.2% .028 344);--primitive-ink:oklch(22.5% .052 337);--primitive-ink-soft:oklch(39% .05 338);--primitive-muted:oklch(50% .033 339);--primitive-faint:oklch(63% .023 340);--primitive-line:oklch(88.5% .03 344);--primitive-line-strong:oklch(80.5% .052 343);--primitive-brand:oklch(47% .17 341);--primitive-brand-hover:oklch(39.5% .15 339);--primitive-brand-soft:oklch(94.5% .048 344);--primitive-brand-tint:oklch(97% .028 345);--primitive-accent:oklch(64% .17 16);--primitive-accent-soft:oklch(95.3% .042 12);--primitive-sidebar:oklch(21.5% .062 315);--primitive-sidebar-soft:oklch(28.5% .072 320);--primitive-sidebar-text:oklch(96.5% .018 340);--color-father:oklch(43% .14 254);--color-father-soft:oklch(94.5% .034 252);--color-mother:oklch(60% .18 15);--color-mother-soft:oklch(95.3% .042 12);--color-focus:oklch(58% .18 341/.32);--color-scrim:oklch(19% .055 320/.44);--shadow-panel:0 14px 42px oklch(45% .07 340/.08);--shadow-float:0 24px 70px oklch(22% .06 320/.24)}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--color-canvas);min-width:320px}body{min-width:320px;min-height:100vh;color:var(--color-text);background:radial-gradient(circle at 86% 4%, var(--color-action-soft), transparent 24rem), var(--color-canvas);margin:0;overflow-x:hidden}body:has(dialog[open]){overflow:hidden}button,input,select,textarea{color:inherit;font:inherit}button{cursor:pointer;border:0}button:disabled{cursor:not-allowed;opacity:.52}svg{display:block}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}:where(button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.sr-only{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.app-shell{background:radial-gradient(circle at 84% 6%, var(--color-action-soft), transparent 29rem), var(--color-canvas);min-height:100vh}.app-main{min-width:0;min-height:100vh;margin-left:var(--sidebar-width);padding:42px clamp(30px,3.4vw,58px) 30px;transition:margin-left .18s;overflow-x:clip}.sidebar-collapsed .app-main{margin-left:var(--sidebar-collapsed-width)}.dashboard-view,.category-management-page{width:min(100%,1320px);margin-inline:auto}.sidebar{z-index:30;width:var(--sidebar-width);color:var(--color-sidebar-text);background:radial-gradient(circle at 24% 12%, var(--color-sidebar-soft), transparent 17rem), var(--color-sidebar);flex-direction:column;padding:38px 24px 28px;transition:width .18s,transform .22s;display:flex;position:fixed;inset:0 auto 0 0;overflow:hidden;box-shadow:12px 0 36px oklch(18% .04 326/.12)}.sidebar.is-collapsed{width:var(--sidebar-collapsed-width);padding-inline:12px}.sidebar-user{border-bottom:1px solid oklch(100% 0 0/.12);align-items:center;gap:13px;min-width:0;min-height:74px;padding:0 4px 20px;display:flex}.sidebar-user-avatar{background:var(--color-surface-raised);object-fit:cover;border:2px solid oklch(100% 0 0/.86);border-radius:50%;flex:none;width:50px;height:50px;display:block}.sidebar-user-copy{min-width:0}.sidebar-user strong,.sidebar-user small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.sidebar-user strong{color:var(--color-sidebar-text);font-size:18px;font-weight:720}.sidebar-user small{color:oklch(92% .018 52/.72);margin-top:5px;font-size:12px}.sidebar-nav{gap:10px;margin-top:29px;display:grid}.sidebar-nav-item{color:oklch(95% .018 48/.85);text-align:left;background:0 0;border:1px solid #0000;border-radius:12px;align-items:center;gap:16px;width:100%;min-height:58px;padding:0 16px;font-size:17px;font-weight:620;line-height:1;transition:color .15s,background-color .15s,border-color .15s,transform .15s;display:flex}.sidebar-nav-item svg{stroke-width:1.9px;flex:none;width:25px;height:25px}.sidebar-nav-item:hover{color:var(--color-sidebar-text);background:oklch(100% 0 0/.1);transform:translate(2px)}.sidebar-nav-item.is-active{color:oklch(100% 0 0);background:linear-gradient(135deg, var(--color-action), oklch(65% .19 30));border-color:oklch(100% 0 0/.16);box-shadow:0 10px 24px oklch(17% .045 327/.26)}.sidebar-logout,.sidebar-collapse{color:oklch(94% .018 48/.78);text-align:left;background:0 0;border-radius:9px;align-items:center;gap:10px;width:100%;min-height:44px;padding:0 13px;font-size:14px;display:flex}.sidebar-logout{margin-top:auto}.sidebar-collapse{margin-top:5px}.sidebar-logout:hover,.sidebar-collapse:hover{color:var(--color-sidebar-text);background:oklch(100% 0 0/.09)}.sidebar-logout svg,.sidebar-collapse svg{flex:none;width:20px;height:20px}.sidebar.is-collapsed .sidebar-user{justify-content:center;padding-inline:0}.sidebar.is-collapsed .sidebar-user-avatar{width:46px;height:46px}.sidebar.is-collapsed .sidebar-nav-item,.sidebar.is-collapsed .sidebar-logout,.sidebar.is-collapsed .sidebar-collapse{justify-content:center;padding-inline:0}.sidebar-mobile-close,.mobile-header,.mobile-nav-backdrop,.mobile-add-button,.mobile-expense-list,.category-management-mobile-list{display:none}.page-header,.category-management-header{justify-content:space-between;align-items:flex-start;gap:28px;min-height:82px;margin-bottom:24px;display:flex}.page-header h1,.category-management-header h1{color:var(--color-text);letter-spacing:-.018em;margin:0;font-family:inherit;font-size:clamp(36px,3vw,44px);font-weight:790;line-height:1.14}.page-header p,.category-management-header p{color:var(--color-muted);letter-spacing:.025em;margin:7px 0 0;font-size:16px}.page-header-actions,.category-management-actions,.mobile-header-actions{align-items:center;gap:12px;display:flex}.button{white-space:nowrap;border:1px solid #0000;border-radius:11px;justify-content:center;align-items:center;gap:9px;min-height:48px;padding:0 21px;font-size:15px;font-weight:680;line-height:1;transition:color .15s,background-color .15s,border-color .15s,box-shadow .15s,transform .15s;display:inline-flex}.button svg{width:20px;height:20px}.button:active{transform:translateY(1px)}.button-primary{color:oklch(100% 0 0);background:linear-gradient(135deg, var(--color-action), oklch(62% .2 29));box-shadow:0 9px 22px oklch(48% .17 28/.18)}.button-primary:hover{background:var(--color-action-hover);box-shadow:0 10px 25px oklch(45% .17 28/.24)}.button-secondary{border-color:var(--color-border-strong);color:var(--color-text-soft);background:oklch(100% 0 0/.72)}.button-secondary:hover{border-color:var(--color-action);color:var(--color-action-hover);background:var(--color-action-tint)}.button-danger{color:oklch(100% 0 0);background:var(--color-danger)}.button-danger:hover{background:oklch(43% .19 26)}.header-add-button{min-width:154px;min-height:54px}.header-add-button>svg,.mobile-add-button>svg{border:2px solid;border-radius:50%;padding:2px}.theme-trigger{border-color:var(--color-border);background:oklch(100% 0 0/.58);min-height:52px}.icon-button{width:40px;min-width:40px;height:40px;color:var(--color-muted);background:0 0;border-radius:9px;justify-content:center;align-items:center;padding:0;transition:color .15s,background-color .15s;display:inline-flex}.icon-button:hover{color:var(--color-action);background:var(--color-action-soft)}.icon-button svg{width:20px;height:20px}.period-filter{align-items:center;gap:24px;min-width:0;margin-bottom:18px;display:flex}.mode-segmented{border:1px solid var(--color-border-strong);background:oklch(100% 0 0/.5);border-radius:10px;grid-template-columns:repeat(4,minmax(0,1fr));width:360px;height:46px;display:grid;overflow:hidden}.mode-segmented button{min-width:0;color:var(--color-text-soft);background:0 0;padding:0 12px;font-size:15px;position:relative}.mode-segmented button+button:before{background:var(--color-border);content:"";width:1px;position:absolute;inset:11px auto 11px 0}.mode-segmented button:hover{color:var(--color-action-hover);background:var(--color-action-tint)}.mode-segmented button.is-selected{z-index:1;color:oklch(100% 0 0);background:linear-gradient(135deg, var(--color-action), oklch(64% .19 29));font-weight:700}.mode-segmented button.is-selected:before,.mode-segmented button.is-selected+button:before{opacity:0}.period-stepper{align-items:center;min-width:0;display:flex}.period-arrow{display:none}.period-input-wrap{border:1px solid var(--color-border-strong);width:180px;min-width:0;height:46px;color:var(--color-text-soft);background:oklch(100% 0 0/.58);border-radius:10px;align-items:center;gap:9px;padding:0 14px;display:flex}.period-input-wrap:focus-within{border-color:var(--color-action);box-shadow:0 0 0 3px var(--color-focus)}.period-input-wrap>svg{flex:none;width:19px;height:19px}.period-input-wrap input,.period-input-wrap select{width:100%;min-width:0;height:100%;color:var(--color-text-soft);background:0 0;border:0;outline:0;padding:0;font-size:15px}.date-range-picker{align-items:center;gap:8px;min-width:0;display:flex}.date-range-field{border:1px solid var(--color-border-strong);width:184px;min-width:0;height:46px;color:var(--color-text-soft);background:oklch(100% 0 0/.58);border-radius:10px;align-items:center;gap:8px;padding:0 12px;display:flex}.date-range-field:focus-within{border-color:var(--color-action);box-shadow:0 0 0 3px var(--color-focus)}.date-range-field>span{color:var(--color-muted);flex:none;font-size:12px;font-weight:700}.date-range-field input{width:100%;min-width:0;height:100%;color:var(--color-text-soft);font:inherit;background:0 0;border:0;outline:0;padding:0;font-size:13px}.date-range-separator{color:var(--color-muted);flex:none;font-size:13px;font-weight:700}.summary-section{border:1px solid var(--color-border-strong);background:linear-gradient(115deg, var(--color-action-tint), transparent 43%), oklch(100% 0 0/.74);min-width:0;box-shadow:var(--shadow-panel);border-radius:15px;grid-template-columns:minmax(280px,.72fr) minmax(0,1.9fr);align-items:center;gap:34px;margin-bottom:18px;padding:22px 25px;display:grid}.summary-total{min-width:0}.summary-label-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.summary-label-row h2{color:var(--color-text);letter-spacing:.025em;margin:0;font-size:18px;font-weight:720}.summary-label-row>span{display:none}.summary-total>strong{color:var(--color-text);font-variant-numeric:tabular-nums;letter-spacing:.025em;white-space:nowrap;margin-top:6px;font-size:clamp(45px,4vw,62px);font-weight:790;line-height:1.06;display:block}.payer-summary{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:12px 26px;min-width:0;display:grid}.payer-stat{gap:5px;min-width:0;padding-left:2px;display:grid}.payer-stat>span{font-size:16px;font-weight:720}.payer-stat>strong{color:var(--color-text);white-space:nowrap;font-size:16px;font-weight:620}.payer-stat.father{color:var(--color-father)}.payer-stat.mother{color:var(--color-mother);border-left:1px dashed var(--color-border-strong);padding-left:24px}.payer-proportion{background:var(--color-surface-soft);border-radius:999px;grid-column:1/-1;gap:2px;width:100%;height:16px;display:flex;overflow:hidden;box-shadow:inset 0 0 0 1px oklch(50% .03 40/.05)}.payer-proportion>span{min-width:0;height:100%;display:block}.payer-proportion>.father{background:linear-gradient(90deg, var(--color-father), oklch(56% .15 250))}.payer-proportion>.mother{background:linear-gradient(90deg, var(--color-mother), oklch(72% .17 62))}.payer-proportion>.empty{background:var(--color-border)}.analytics-grid{grid-template-columns:minmax(440px,.92fr) minmax(0,1.18fr);gap:18px;min-width:0;display:grid}.analytics-panel,.expense-list-section,.category-management-table-wrap{border:1px solid var(--color-border);min-width:0;box-shadow:var(--shadow-panel);background:oklch(100% 0 0/.78);border-radius:15px}.analytics-panel{height:390px;overflow:hidden}.category-panel{padding:18px 20px 16px}.trend-panel{padding:18px 18px 13px}.panel-heading,.list-heading{justify-content:space-between;align-items:center;gap:12px;min-height:31px;display:flex}.panel-heading h2,.list-heading h2{color:var(--color-text);letter-spacing:.022em;margin:0;font-size:19px;font-weight:750}.panel-heading h2:before,.list-heading h2:before{vertical-align:-2px;background:var(--color-action);content:"";border-radius:999px;width:4px;height:18px;margin-right:9px;display:inline-block}.panel-caption{color:var(--color-muted);font-size:13px}.text-button{min-height:34px;color:var(--color-action-hover);background:0 0;border-radius:8px;padding:0 8px;font-size:13px;font-weight:650}.text-button:hover{background:var(--color-action-soft)}.category-content{grid-template-columns:minmax(215px,1.08fr) minmax(150px,.92fr);align-items:center;gap:4px;min-width:0;height:330px;display:grid}.donut-wrap{width:100%;min-width:0;height:100%;position:relative}.donut-chart{width:min(270px,110%);height:auto;position:absolute;top:50%;left:50%;overflow:visible;transform:translate(-53%,-50%)}.donut-chart g{opacity:1;transition:opacity .16s}.donut-chart g.is-dimmed{opacity:.22}.donut-chart text{fill:oklch(100% 0 0);paint-order:stroke;stroke:oklch(20% .03 330/.1);stroke-width:1.5px;font-size:12px;font-weight:760}.donut-empty{stroke:var(--color-surface-soft);stroke-width:40px}.donut-center{z-index:1;pointer-events:none;place-items:center;display:grid;position:absolute;top:50%;left:47%;transform:translate(-50%,-50%)}.donut-center strong{color:var(--color-text);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:19px;font-weight:760}.donut-center span{color:var(--color-muted);margin-top:4px;font-size:12px}.category-legend{z-index:2;align-content:center;min-width:0;display:grid;position:relative}.category-legend button{width:100%;min-width:0;min-height:33px;color:var(--color-text-soft);text-align:left;background:0 0;border:1px solid #0000;border-radius:7px;justify-content:space-between;align-items:center;gap:8px;padding:2px 5px;font-size:13px;display:flex}.category-legend button:hover{background:var(--color-action-tint)}.category-legend button.is-selected{border-color:var(--color-action);background:var(--color-action-soft)}.legend-label,.legend-value{align-items:center;min-width:0;display:inline-flex}.legend-label{white-space:nowrap;gap:8px}.legend-value{justify-content:flex-end}.legend-value strong{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12px;font-weight:600}.legend-value small{display:none}.category-dot,.managed-category-swatch{border-radius:50%;flex:none;width:11px;height:11px;display:inline-block}.category-legend button:first-child .category-dot,.category-options button:first-child .category-dot,.category-management-table tr:first-child .managed-category-swatch,.managed-category-mobile-row:first-child .managed-category-swatch{background:var(--data-1)!important}.category-legend button:nth-child(2) .category-dot,.category-options button:nth-child(2) .category-dot,.category-management-table tr:nth-child(2) .managed-category-swatch,.managed-category-mobile-row:nth-child(2) .managed-category-swatch{background:var(--data-2)!important}.category-legend button:nth-child(3) .category-dot,.category-options button:nth-child(3) .category-dot,.category-management-table tr:nth-child(3) .managed-category-swatch,.managed-category-mobile-row:nth-child(3) .managed-category-swatch{background:var(--data-3)!important}.category-legend button:nth-child(4) .category-dot,.category-options button:nth-child(4) .category-dot,.category-management-table tr:nth-child(4) .managed-category-swatch,.managed-category-mobile-row:nth-child(4) .managed-category-swatch{background:var(--data-4)!important}.category-legend button:nth-child(5) .category-dot,.category-options button:nth-child(5) .category-dot,.category-management-table tr:nth-child(5) .managed-category-swatch,.managed-category-mobile-row:nth-child(5) .managed-category-swatch{background:var(--data-5)!important}.category-legend button:nth-child(6) .category-dot,.category-options button:nth-child(6) .category-dot,.category-management-table tr:nth-child(6) .managed-category-swatch,.managed-category-mobile-row:nth-child(6) .managed-category-swatch{background:var(--data-6)!important}.category-legend button:nth-child(7) .category-dot,.category-options button:nth-child(7) .category-dot,.category-management-table tr:nth-child(7) .managed-category-swatch,.managed-category-mobile-row:nth-child(7) .managed-category-swatch{background:var(--data-7)!important}.category-legend button:nth-child(8) .category-dot,.category-options button:nth-child(8) .category-dot,.category-management-table tr:nth-child(8) .managed-category-swatch,.managed-category-mobile-row:nth-child(8) .managed-category-swatch{background:var(--data-8)!important}.category-legend button:nth-child(9) .category-dot,.category-options button:nth-child(9) .category-dot,.category-management-table tr:nth-child(9) .managed-category-swatch,.managed-category-mobile-row:nth-child(9) .managed-category-swatch{background:var(--data-9)!important}.trend-chart-wrap{place-items:center;width:100%;min-width:0;height:330px;display:grid}.trend-chart{width:100%;height:auto;max-height:320px;overflow:visible}.trend-grid-line{stroke:var(--color-border);stroke-width:1px;stroke-dasharray:4 4}.trend-axis-label,.trend-x-label{fill:var(--color-muted);font-size:14px}.trend-value-label{fill:var(--color-text);font-size:13px;font-weight:620}.trend-line{fill:none;stroke:var(--color-action);stroke-linecap:round;stroke-linejoin:round;stroke-width:3px}.trend-area{fill:url(#trend-area)}.trend-dot-halo{fill:var(--color-action-soft)}.trend-dot{fill:var(--color-action);stroke:var(--color-surface-raised);stroke-width:2px}.chart-empty-state{width:100%;max-width:360px;color:var(--color-muted);text-align:center;justify-items:center;display:grid}.chart-empty-state strong{color:var(--color-text-soft);margin-top:15px}.chart-empty-state p{max-width:290px;margin:7px 0 0;font-size:13px;line-height:1.6}.empty-chart-line{border-bottom:2px solid var(--color-border-strong);width:150px;height:52px;display:block;position:relative}.empty-chart-line:after{border-bottom:2px dashed var(--color-action);content:"";position:absolute;inset:10px 4px 8px;transform:skewY(-8deg)}.expense-list-section{margin-top:18px;padding:15px 15px 0;scroll-margin-top:24px;overflow:hidden}.list-heading{padding:0 4px 8px}.list-heading p{display:none}.expense-table-wrap{border:1px solid var(--color-border);border-radius:10px 10px 0 0;width:100%;min-width:0;overflow:hidden}.expense-table{table-layout:fixed;border-collapse:collapse;width:100%;color:var(--color-text-soft);font-size:14px}.expense-table th,.expense-table td{text-align:left;text-overflow:ellipsis;white-space:nowrap;height:45px;padding:0 20px;overflow:hidden}.expense-table th{height:39px;color:var(--color-muted);background:var(--color-action-tint);font-weight:620}.expense-table td{border-top:1px solid var(--color-border)}.expense-table tbody tr{transition:background-color .14s}.expense-table tbody tr:hover{background:var(--color-action-tint)}.expense-table th:first-child,.expense-table td:first-child{width:13%}.expense-table th:nth-child(2),.expense-table td:nth-child(2){width:27%}.expense-table th:nth-child(3),.expense-table td:nth-child(3){width:18%}.expense-table th:nth-child(4),.expense-table td:nth-child(4){width:20%}.expense-table th:nth-child(5),.expense-table td:nth-child(5){width:16%}.expense-table th:nth-child(6),.expense-table td:nth-child(6){width:72px;padding-inline:6px}.expense-note{color:var(--color-text);font-weight:580}.category-cell,.payer-cell{align-items:center;gap:9px;display:inline-flex}.payer-cell.father{color:var(--color-father)}.payer-cell.mother{color:var(--color-mother)}.payer-cell.joint{color:var(--color-joint)}.payer-avatar{color:oklch(100% 0 0);border-radius:50%;flex:none;place-items:center;width:29px;height:29px;font-size:13px;font-weight:750;display:inline-grid}.payer-avatar.father{background:var(--color-father)}.payer-avatar.mother{background:var(--color-mother)}.payer-avatar.joint{background:var(--color-joint)}.expense-amount{color:var(--color-action);font-variant-numeric:tabular-nums;font-size:15px;font-weight:720;text-align:right!important}.row-actions{opacity:0;justify-content:flex-end;gap:1px;transition:opacity .14s;display:flex}.expense-table tr:hover .row-actions,.expense-table tr:focus-within .row-actions{opacity:1}.row-actions .icon-button{width:32px;min-width:32px;height:32px}.delete-button:hover{color:var(--color-danger);background:var(--color-danger-soft)}.show-more-button{border-top:1px solid var(--color-border);width:calc(100% + 30px);min-height:45px;color:var(--color-action);background:0 0;justify-content:center;align-items:center;gap:8px;margin-left:-15px;font-size:14px;font-weight:650;display:flex}.show-more-button:hover{background:var(--color-action-tint)}.show-more-button svg{width:18px;height:18px;transition:transform .16s}.show-more-button svg.is-rotated{transform:rotate(180deg)}.list-empty-state{min-height:235px;color:var(--color-muted);text-align:center;align-content:center;justify-items:center;display:grid}.list-empty-state h3{color:var(--color-text-soft);margin:13px 0 0;font-size:18px}.list-empty-state p{max-width:460px;margin:7px 0 19px;font-size:13px;line-height:1.65}.empty-ledger-icon{border:1px solid var(--color-border-strong);background:var(--color-action-soft);border-radius:13px;align-content:center;gap:6px;width:55px;height:55px;padding:12px;display:grid}.empty-ledger-icon span{background:var(--color-action);border-radius:2px;height:2px;display:block}.app-footer{color:var(--color-faint);text-align:center;margin-top:24px;font-size:12px}.category-management-header{align-items:center}.category-count{border:1px solid var(--color-border);min-height:45px;color:var(--color-muted);background:oklch(100% 0 0/.56);border-radius:999px;align-items:center;gap:8px;padding:0 14px;font-size:13px;display:inline-flex}.category-count svg{width:18px;height:18px;color:var(--color-action)}.category-management-table-wrap{padding:14px 28px 0;overflow:hidden}.category-management-table{table-layout:fixed;border-collapse:collapse;width:100%}.category-management-table th,.category-management-table td{border-bottom:1px solid var(--color-border);height:66px;color:var(--color-text-soft);text-align:left;padding:0 20px}.category-management-table thead th{height:54px;color:var(--color-muted);font-size:14px;font-weight:620}.category-management-table tbody th{color:var(--color-text);font-size:16px;font-weight:650}.category-management-table th:first-child,.category-management-table td:first-child{width:36%}.category-management-table th:nth-child(2),.category-management-table td:nth-child(2),.category-management-table th:nth-child(3),.category-management-table td:nth-child(3){width:23%}.category-management-table th:nth-child(4),.category-management-table td:nth-child(4){width:18%}.category-management-table tbody tr:hover{background:var(--color-action-tint)}.managed-category-name{align-items:center;gap:20px;display:inline-flex}.managed-category-swatch{width:17px;height:17px;box-shadow:0 0 0 5px var(--color-surface-soft)!important}.category-view-button{min-height:42px;color:var(--color-action);background:0 0;border-radius:8px;align-items:center;gap:7px;padding:0 7px;font-weight:650;display:inline-flex}.category-view-button:hover{background:var(--color-action-soft)}.category-view-button svg{width:17px;height:17px}.category-management-footer{min-height:74px;color:var(--color-muted);justify-content:space-between;align-items:center;gap:20px;font-size:14px;display:flex}.expense-dialog{width:min(500px,100vw);max-width:none;height:100dvh;max-height:none;color:var(--color-text);background:0 0;border:0;margin:0;padding:0;position:fixed;inset:0 0 0 auto;overflow:visible}.expense-dialog[open]{animation:.22s ease-out drawer-enter}.expense-dialog::backdrop,.confirm-dialog::backdrop,.theme-dialog::backdrop{background:var(--color-scrim);animation:.18s ease-out backdrop-enter}.expense-drawer{background:var(--color-surface-raised);width:100%;height:100%;padding:36px 32px 28px;overflow-y:auto;box-shadow:-15px 0 42px oklch(24% .05 330/.16)}.drawer-header{justify-content:space-between;align-items:flex-start;gap:20px;min-height:40px;margin-bottom:31px;display:flex}.drawer-header h2{color:var(--color-text);margin:4px 0 0;font-size:25px;font-weight:760}.drawer-header .icon-button{margin:-5px -6px 0 0}.form-field{border:0;min-width:0;margin:0 0 23px;padding:0}.form-field>label,.form-field>legend,.label-row label{color:var(--color-text);margin:0 0 9px;font-size:15px;font-weight:680;display:block}.amount-input{border:1px solid var(--color-border-strong);background:var(--color-surface-raised);border-radius:11px;align-items:center;gap:11px;height:62px;padding:0 15px;display:flex}.amount-input:focus-within{border-color:var(--color-action);box-shadow:0 0 0 3px var(--color-focus)}.amount-input.has-error{border-color:var(--color-danger);box-shadow:0 0 0 3px oklch(55% .2 26/.16)}.amount-input>span{color:var(--color-text-soft);font-size:21px}.amount-input input{font-variant-numeric:tabular-nums;background:0 0;border:0;outline:0;width:100%;min-width:0;height:100%;padding:0;font-size:25px}.field-helper{min-height:18px;color:var(--color-muted);margin-top:7px;font-size:12px;display:block}.payer-segmented{border:1px solid var(--color-border-strong);border-radius:11px;grid-template-columns:repeat(3,minmax(0,1fr));height:56px;display:grid;overflow:hidden}.payer-segmented button{min-width:0;color:var(--color-text-soft);background:var(--color-surface-raised);justify-content:center;align-items:center;gap:9px;font-size:15px;font-weight:620;display:flex}.payer-segmented button+button{border-left:1px solid var(--color-border-strong)}.payer-segmented button:hover{background:var(--color-surface-soft)}.payer-segmented button.is-selected.father{color:oklch(100% 0 0);background:var(--color-father)}.payer-segmented button.is-selected.mother{color:oklch(100% 0 0);background:var(--color-mother)}.payer-segmented button.is-selected.joint{color:oklch(100% 0 0);background:var(--color-joint)}.payer-segmented button.is-selected .payer-avatar{color:currentColor;background:oklch(100% 0 0)}.payer-segmented button.is-selected.father .payer-avatar{color:var(--color-father)}.payer-segmented button.is-selected.mother .payer-avatar{color:var(--color-mother)}.payer-segmented button.is-selected.joint .payer-avatar{color:var(--color-joint)}.joint-split-editor{border:1px solid var(--color-border);background:var(--color-joint-soft);border-radius:11px;margin-top:9px;padding:12px}.joint-split-heading{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:9px;display:flex}.joint-split-heading>span{color:var(--color-joint);font-size:13px;font-weight:740}.joint-split-heading>small{color:var(--color-muted);font-size:11px}.joint-split-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.joint-split-card{border:1px solid var(--color-border);background:var(--color-surface-raised);border-radius:9px;gap:7px;min-width:0;padding:9px 10px;transition:border-color .14s,box-shadow .14s;display:grid}.joint-split-card.is-active{border-color:var(--color-joint);box-shadow:0 0 0 2px oklch(46% .13 320/.12)}.joint-split-card>span{color:var(--color-text-soft);align-items:center;gap:7px;font-size:12px;font-weight:680;display:flex}.joint-split-card .payer-avatar{width:23px;height:23px;font-size:10px}.joint-split-card>button{width:100%;min-height:32px;color:var(--color-text);background:var(--color-surface-soft);font-variant-numeric:tabular-nums;text-align:left;border-radius:7px;padding:0 7px;font-size:16px;font-weight:720}.joint-split-card>button:hover{color:var(--color-joint);background:var(--color-action-tint)}.joint-split-input{border:1px solid var(--color-joint);min-width:0;height:32px;color:var(--color-joint);background:var(--color-surface-raised);border-radius:7px;align-items:center;gap:4px;padding:0 7px;display:flex}.joint-split-input input{width:100%;min-width:0;color:var(--color-text);font-variant-numeric:tabular-nums;background:0 0;border:0;outline:0;padding:0;font-size:16px;font-weight:720}.joint-split-message{min-height:17px;color:var(--color-muted);margin:7px 1px 0;font-size:11px}.joint-split-message.is-error{color:var(--color-danger);font-weight:650}.category-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;display:grid}.category-options button{border:1px solid var(--color-border);min-width:0;min-height:54px;color:var(--color-text-soft);background:var(--color-surface-raised);border-radius:9px;justify-content:center;align-items:center;gap:8px;padding:0 6px;font-size:14px;display:flex}.category-options button:hover{border-color:var(--color-border-strong);background:var(--color-action-tint)}.category-options button.is-selected{border-color:var(--color-action);color:var(--color-action-hover);background:var(--color-action-soft);box-shadow:inset 0 0 0 1px var(--color-focus)}.date-input{border:1px solid var(--color-border-strong);background:var(--color-surface-raised);border-radius:10px;align-items:center;gap:10px;height:50px;padding:0 13px;display:flex}.date-input:focus-within,.form-field textarea:focus{border-color:var(--color-action);box-shadow:0 0 0 3px var(--color-focus)}.date-input svg{width:19px;height:19px;color:var(--color-muted)}.date-input input{background:0 0;border:0;outline:0;width:100%;height:100%;padding:0}.label-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.label-row span{color:var(--color-faint);font-size:12px}.form-field textarea{resize:vertical;border:1px solid var(--color-border-strong);background:var(--color-surface-raised);border-radius:10px;outline:0;width:100%;min-height:86px;padding:12px 13px;line-height:1.55}.form-error{min-height:20px;color:var(--color-danger);margin:-8px 0 10px;font-size:13px}.drawer-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;display:grid}.save-note{color:var(--color-muted);justify-content:center;align-items:center;gap:7px;margin:16px 0 0;font-size:12px;display:flex}.save-note svg{width:16px;height:16px;color:var(--color-success)}.confirm-dialog{border:1px solid var(--color-border);width:min(420px,100vw - 32px);color:var(--color-text);background:var(--color-surface-raised);box-shadow:var(--shadow-float);border-radius:15px;padding:25px;animation:.18s ease-out confirm-enter}.confirm-heading{justify-content:space-between;align-items:center;display:flex}.warning-icon{width:42px;height:42px;color:var(--color-danger);background:var(--color-danger-soft);border-radius:50%;place-items:center;display:grid}.warning-icon svg{width:22px;height:22px}.confirm-dialog h2{margin:18px 0 0;font-size:21px}.confirm-dialog p{color:var(--color-text-soft);margin:10px 0 0;font-size:14px;line-height:1.6}.confirm-dialog .confirm-hint{color:var(--color-muted)}.confirm-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-top:22px;display:grid}.toast{z-index:100;width:min(390px,100vw - 32px);min-height:58px;color:var(--color-success);background:var(--color-success-soft);border:1px solid oklch(79% .06 255);border-radius:12px;align-items:center;gap:10px;padding:10px 10px 10px 16px;animation:.19s ease-out toast-enter;display:flex;position:fixed;bottom:28px;right:28px;box-shadow:0 13px 35px oklch(28% .05 255/.15)}.toast.info{color:var(--color-info);background:var(--color-info-soft);border-color:oklch(80% .05 254)}.toast>svg{flex:none;width:21px;height:21px}.toast>span{flex:1;min-width:0;font-size:13px;line-height:1.5}.theme-dialog{width:min(760px,100vw - 32px);max-width:none;color:var(--color-text);background:0 0;border:0;padding:0;overflow:visible}.theme-dialog-sheet,.theme-dialog-panel{border:1px solid var(--color-border);background:var(--color-surface-raised);box-shadow:var(--shadow-float);border-radius:20px;animation:.19s ease-out confirm-enter;overflow:hidden}.theme-dialog-header{border-bottom:1px solid var(--color-border);grid-template-columns:48px minmax(0,1fr) 42px;align-items:center;gap:13px;padding:23px 24px 18px;display:grid}.theme-dialog-heading-icon{color:oklch(100% 0 0);background:linear-gradient(135deg, var(--color-action), var(--color-accent));border-radius:13px;place-items:center;width:46px;height:46px;display:grid}.theme-dialog-heading-icon svg{width:23px;height:23px}.theme-dialog-heading-copy{min-width:0}.theme-dialog-heading-copy h2{margin:0;font-size:21px;font-weight:760}.theme-dialog-heading-copy p{color:var(--color-muted);margin:4px 0 0;font-size:13px}.theme-dialog-close{width:40px;height:40px;color:var(--color-muted);background:var(--color-surface-soft);border-radius:50%;place-items:center;display:grid}.theme-dialog-close:hover{color:var(--color-action);background:var(--color-action-soft)}.theme-dialog-close svg{width:21px;height:21px}.theme-options{border:0;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;min-width:0;margin:0;padding:22px 24px 24px;display:grid}.theme-options-legend{clip:rect(0, 0, 0, 0);width:1px;height:1px;position:absolute;overflow:hidden}.theme-option{border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;text-align:center;border-radius:15px;grid-template-rows:74px auto 28px;align-content:center;justify-items:center;gap:6px;min-width:0;min-height:176px;padding:17px 13px;transition:border-color .15s,box-shadow .15s,transform .15s;display:grid;position:relative}.theme-option:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-panel);transform:translateY(-2px)}.theme-option-selected{border-color:var(--color-action);box-shadow:inset 0 0 0 1px var(--color-action)}.theme-option-input{opacity:0;width:1px;height:1px;position:absolute}.theme-option-icon,.theme-swatches{width:116px;height:64px;display:block;position:relative}.theme-coral{--theme-preview-primary:oklch(62% .21 28);--theme-preview-secondary:oklch(78% .13 45)}.theme-amber{--theme-preview-primary:oklch(67% .16 72);--theme-preview-secondary:oklch(85% .08 80)}.theme-berry{--theme-preview-primary:oklch(55% .19 341);--theme-preview-secondary:oklch(76% .11 351)}.theme-option-icon svg{display:none}.theme-option-icon:before,.theme-option-icon:after,.theme-swatches:before,.theme-swatches:after{border:5px solid var(--color-surface-raised);content:"";border-radius:50%;width:49px;height:49px;position:absolute;top:8px;box-shadow:0 5px 13px oklch(30% .04 35/.1)}.theme-option-icon:before,.theme-swatches:before{left:8px}.theme-option-icon:after,.theme-swatches:after{right:8px}.theme-option[data-theme-option=coral] .theme-option-icon:before{background:oklch(62% .21 28)}.theme-option[data-theme-option=coral] .theme-option-icon:after{background:oklch(78% .13 45)}.theme-option[data-theme-option=amber] .theme-option-icon:before{background:oklch(67% .16 72)}.theme-option[data-theme-option=amber] .theme-option-icon:after{background:oklch(85% .08 80)}.theme-option[data-theme-option=berry] .theme-option-icon:before{background:oklch(55% .19 341)}.theme-option[data-theme-option=berry] .theme-option-icon:after{background:oklch(76% .11 351)}.theme-option-copy{gap:5px;min-width:0;display:grid}.theme-option-copy strong{font-size:16px}.theme-option-copy small{min-height:34px;color:var(--color-muted);font-size:12px;line-height:1.45}.theme-option-check{border:1px solid var(--color-border-strong);color:oklch(100% 0 0);background:var(--color-surface-raised);border-radius:50%;place-items:center;width:25px;height:25px;display:grid}.theme-option-selected .theme-option-check{border-color:var(--color-action);background:var(--color-action)}.theme-option-check svg{width:16px;height:16px}.theme-dialog-footer{border-top:1px solid var(--color-border);background:var(--color-surface-soft);justify-content:space-between;align-items:center;gap:16px;min-height:68px;padding:12px 24px;display:flex}.theme-dialog-footer p{color:var(--color-muted);margin:0;font-size:12px}.theme-dialog-done{color:oklch(100% 0 0);background:var(--color-action);border-radius:10px;min-width:104px;min-height:42px;font-weight:700}.login-screen{background:var(--color-canvas);grid-template-columns:minmax(0,46%) minmax(0,54%);width:100%;min-width:320px;min-height:100dvh;display:grid;overflow:hidden}.login-welcome{background:radial-gradient(circle at 52% 20%, var(--color-action-soft), transparent 18rem), var(--color-surface-soft);flex-direction:column;justify-content:center;align-items:center;min-width:0;display:flex;overflow:hidden}.login-family-picture{width:min(100%,720px);display:block}.login-family-image{width:100%;height:auto;display:block}.login-subtitle{color:var(--color-muted);margin:15px 0 0;font-size:15px}.login-panel{background:radial-gradient(circle at 80% 12%, var(--color-action-soft), transparent 17rem), var(--color-surface);place-items:center;min-width:0;padding:32px;display:grid}.login-card{border:1px solid var(--color-border);width:min(100%,520px);box-shadow:var(--shadow-panel);background:oklch(100% 0 0/.84);border-radius:19px;padding:29px 34px 26px}.login-section-title{color:var(--color-text);text-align:center;margin:0;font-size:21px;font-weight:760}.role-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:17px;display:grid}.role-card{border:1px solid var(--color-border);background:var(--color-surface-raised);border-radius:14px;align-content:center;place-items:center;gap:7px;min-width:0;height:150px;padding:12px;display:grid;position:relative}.role-card:hover{border-color:var(--color-border-strong);background:var(--color-action-tint)}.role-card-selected{border-color:var(--color-action);background:var(--color-action-soft);box-shadow:inset 0 0 0 1px var(--color-action)}.role-selected-icon{width:24px;height:24px;color:var(--color-action);fill:var(--color-surface-raised);position:absolute;top:10px;right:10px}.role-avatar{object-fit:cover;border-radius:50%;width:92px;height:92px}.role-name{font-size:18px;font-weight:720}.role-name-father{color:var(--color-father)}.role-name-mother{color:var(--color-mother)}.pin-fieldset{border:0;margin:22px 0 0;padding:0}.pin-label{color:var(--color-text);font-size:15px;font-weight:680}.pin-slots{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:9px;display:grid}.pin-slot{border:1px solid var(--color-border-strong);background:var(--color-surface-raised);border-radius:10px;place-items:center;height:55px;display:grid}.pin-slot-active{border-color:var(--color-action);box-shadow:0 0 0 3px var(--color-focus)}.pin-slot-filled{background:var(--color-action-tint)}.pin-dot{background:var(--color-action);border-radius:50%;width:12px;height:12px}.pin-keypad{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:13px;display:grid}.pin-key{border:1px solid var(--color-border);height:47px;color:var(--color-text);background:var(--color-surface-raised);border-radius:9px;font-size:20px;font-weight:620}.pin-key:hover{border-color:var(--color-action);background:var(--color-action-soft)}.pin-key:active{transform:scale(.98)}.pin-key-zero{grid-column:2}.pin-key-delete{grid-column:3}.pin-delete-icon{width:22px;height:22px;margin-inline:auto}.login-feedback{min-height:22px;margin-top:3px}.login-error{color:var(--color-danger);text-align:center;margin:0;font-size:12px}.login-submit{color:oklch(100% 0 0);background:linear-gradient(135deg, var(--color-action), oklch(63% .19 29));border-radius:11px;width:100%;min-height:50px;font-size:16px;font-weight:720}.login-submit:hover:not(:disabled){background:var(--color-action-hover)}.login-notes{gap:6px;margin-top:13px;display:grid}.login-note{color:var(--color-muted);align-items:center;gap:8px;margin:0;font-size:12px;line-height:1.45;display:flex}.login-note-icon{width:16px;height:16px;color:var(--color-action);flex:none}@keyframes drawer-enter{0%{opacity:0;transform:translate(24px)}}@keyframes backdrop-enter{0%{background:0 0}}@keyframes confirm-enter{0%{opacity:0;transform:translateY(9px)scale(.985)}}@keyframes toast-enter{0%{opacity:0;transform:translateY(10px)}}@media (width<=1220px) and (width>=768px){:root{--sidebar-width:220px}.app-main{padding-inline:30px}.period-filter{gap:12px}.mode-segmented{width:290px}.analytics-grid{grid-template-columns:1fr}.category-content{grid-template-columns:minmax(280px,.8fr) minmax(260px,1fr)}.category-legend{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:18px}.period-filter.is-range{flex-wrap:wrap;gap:10px}}@media (width<=920px) and (width>=768px){.summary-section{grid-template-columns:1fr;gap:18px}.category-management-actions{flex-direction:column;align-items:flex-end}}@media (width<=767px){:root{--mobile-gutter:clamp(14px, 4.4vw, 19px)}html{scroll-padding-top:12px}body{padding-bottom:env(safe-area-inset-bottom,0px);background:radial-gradient(circle at 78% 4%, var(--color-action-soft), transparent 14rem), var(--color-canvas)}.app-main,.sidebar-collapsed .app-main{width:100%;min-height:100dvh;padding:max(16px, env(safe-area-inset-top,0px)) var(--mobile-gutter) calc(96px + env(safe-area-inset-bottom,0px));margin-left:0}.dashboard-view,.category-management-page{width:100%}.page-header{display:none}.mobile-header{justify-content:space-between;align-items:center;gap:10px;min-width:0;min-height:56px;margin-bottom:18px;display:flex}.mobile-brand{min-width:0;color:var(--color-text);white-space:nowrap;align-items:center;gap:7px;display:flex}.mobile-role-avatar{border:2px solid var(--color-surface-raised);background:var(--color-surface-raised);object-fit:cover;border-radius:50%;flex:none;width:40px;height:40px;display:block;box-shadow:0 4px 13px oklch(40% .05 35/.12)}.mobile-brand-mark{flex:none;font-size:clamp(16px,4.5vw,19px);font-weight:760}.mobile-brand-divider{background:var(--color-border-strong);flex:none;width:1px;height:22px}.mobile-brand-title{letter-spacing:.02em;text-overflow:ellipsis;min-width:0;margin:0;font-size:clamp(15px,4.2vw,18px);font-weight:780;overflow:hidden}.mobile-header-actions{flex:none;gap:5px}.mobile-theme-button,.mobile-menu-button{border:1px solid var(--color-border);width:42px;min-width:42px;height:42px;color:var(--color-action);background:oklch(100% 0 0/.72);box-shadow:0 5px 16px oklch(43% .05 34/.08)}.mobile-menu-button{color:var(--color-text-soft)}.mobile-theme-button svg,.mobile-menu-button svg{width:22px;height:22px}.mobile-nav-backdrop{z-index:39;background:var(--color-scrim);width:100%;height:100%;padding:0;display:block;position:fixed;inset:0}.sidebar,.sidebar.is-collapsed{z-index:40;width:min(286px,84vw);padding:26px 18px 24px;transform:translate(-102%);box-shadow:14px 0 35px oklch(19% .05 325/.24)}.sidebar.is-mobile-open{transform:translate(0)}.sidebar-user,.sidebar.is-collapsed .sidebar-user{justify-content:flex-start;padding:0 46px 17px 4px}.sidebar.is-collapsed .sidebar-user-copy,.sidebar.is-collapsed .sidebar-logout span{display:initial}.sidebar .sidebar-mobile-close{visibility:hidden;color:var(--color-sidebar-text);pointer-events:none;display:inline-flex;position:absolute;top:29px;right:14px}.sidebar.is-mobile-open .sidebar-mobile-close{visibility:visible;pointer-events:auto}.sidebar-nav{gap:8px;margin-top:25px}.sidebar-nav-item,.sidebar.is-collapsed .sidebar-nav-item{justify-content:flex-start;min-height:54px;padding:0 14px}.sidebar-logout,.sidebar.is-collapsed .sidebar-logout{justify-content:flex-start;padding:0 13px}.sidebar-collapse{display:none}.dashboard-view{grid-template-areas:"hero""analytics""details";display:grid}.dashboard-view>.summary-section{grid-area:hero}.dashboard-view>.period-filter{z-index:2;grid-area:hero;align-self:end}.dashboard-view>.analytics-grid{grid-area:analytics}.dashboard-view>div:last-of-type{grid-area:details}.summary-section{border-radius:16px;grid-template-columns:minmax(0,1.04fr) minmax(128px,.96fr);align-items:start;gap:12px;min-height:245px;margin:0 0 16px;padding:20px 18px 79px}.summary-label-row h2{font-size:15px}.summary-total>strong{letter-spacing:-.01em;margin-top:16px;font-size:clamp(38px,11.2vw,49px)}.payer-summary{grid-template-columns:1fr;gap:10px;padding-top:3px}.payer-stat{gap:3px;padding:0}.payer-stat.mother{border-top:1px solid var(--color-border);border-left:0;padding:10px 0 0}.payer-stat>span{font-size:14px}.payer-stat>strong{font-size:clamp(12px,3.45vw,14px)}.payer-proportion{grid-column:1;height:9px;margin-top:2px}.period-filter{justify-content:space-between;gap:8px;width:auto;min-width:0;margin:0 14px 30px}.period-filter.is-range{flex-wrap:wrap}.period-filter.is-range .mode-segmented{flex-basis:100%;width:100%}.mode-segmented{flex:auto;width:auto;max-width:none;height:44px}.mode-segmented button{padding-inline:4px;font-size:13px}.period-stepper{flex:0 0 clamp(107px,31vw,123px);width:clamp(107px,31vw,123px)}.period-input-wrap{gap:5px;width:100%;height:44px;padding:0 8px}.period-input-wrap>svg{width:17px;height:17px}.period-input-wrap input,.period-input-wrap select{font-size:12px}.date-range-picker{grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr);gap:5px;width:100%;display:grid}.date-range-field{gap:5px;width:100%;height:44px;padding-inline:8px}.date-range-field>span{font-size:11px}.date-range-field input{font-size:12px}.date-range-separator{text-align:center;font-size:12px}.analytics-grid{grid-template-columns:minmax(0,1fr);gap:12px}.analytics-panel{border-radius:16px;width:100%;height:auto}.category-panel{padding:17px 13px 14px}.panel-heading{min-height:28px;padding-inline:3px}.panel-heading h2,.list-heading h2{font-size:17px}.panel-heading h2:before,.list-heading h2:before{width:3px;height:16px;margin-right:7px}.panel-caption{display:none}.category-content{grid-template-columns:minmax(0,1.13fr) minmax(128px,.87fr);gap:0;height:340px}.donut-chart{width:min(215px,118%);transform:translate(-53%,-50%)}.donut-chart text{stroke-width:1px;font-size:10px}.donut-center{left:47%}.donut-center strong{font-size:clamp(15px,4.3vw,18px)}.donut-center span{margin-top:2px;font-size:10px}.category-legend{height:100%}.category-legend button{border-radius:6px;min-height:34px;padding:1px 2px;font-size:clamp(11px,3.2vw,13px)}.legend-label{gap:6px}.legend-value strong{font-size:clamp(10px,2.9vw,12px)}.category-dot{width:8px;height:8px}.trend-panel{display:none}.expense-list-section{border-radius:16px;margin-top:12px;padding:14px 12px 0}.list-heading{min-height:31px;padding:0 3px 10px}.expense-table-wrap{display:none}.mobile-expense-list{border:1px solid var(--color-border);background:var(--color-surface-raised);border-radius:12px;display:block;overflow:hidden}.mobile-expense-row{min-width:0;min-height:72px;color:var(--color-text-soft);background:var(--color-surface-raised);grid-template-columns:47px minmax(88px,1.5fr) 27px minmax(61px,.82fr) 14px;align-items:center;gap:clamp(4px,1.4vw,7px);padding:7px 8px;display:grid;position:relative}.mobile-expense-row+.mobile-expense-row{border-top:1px solid var(--color-border)}.mobile-expense-date{background:var(--color-action-tint);text-align:center;border-radius:9px;padding:6px 3px}.mobile-expense-date,.mobile-expense-main,.mobile-expense-side{gap:3px;min-width:0;display:grid}.mobile-expense-date strong,.mobile-expense-main>strong,.mobile-expense-side strong{text-overflow:ellipsis;white-space:nowrap;font-size:clamp(11px,3.15vw,13px);font-weight:650;line-height:1.25;overflow:hidden}.mobile-expense-date span,.mobile-expense-main>span,.mobile-expense-side span{min-width:0;color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:5px;font-size:clamp(9px,2.55vw,11px);display:flex;overflow:hidden}.mobile-expense-side{justify-items:end}.mobile-expense-side strong{color:var(--color-action);font-variant-numeric:tabular-nums}.mobile-expense-row>.payer-avatar{width:27px;height:27px;font-size:11px}.mobile-row-chevron{width:15px;height:15px;color:var(--color-faint)}.mobile-row-actions{z-index:2;background:var(--color-surface-raised);opacity:0;pointer-events:none;align-items:center;gap:1px;padding:0 5px;transition:opacity .14s;display:flex;position:absolute;inset:0 0 0 auto}.mobile-expense-row:hover .mobile-row-actions,.mobile-expense-row:focus-within .mobile-row-actions{opacity:1;pointer-events:auto}.mobile-row-actions .icon-button{width:40px;min-width:40px;height:40px}.show-more-button{width:calc(100% + 24px);min-height:43px;margin-left:-12px}.app-footer{display:none}.mobile-add-button{right:var(--mobile-gutter);bottom:calc(12px + env(safe-area-inset-bottom,0px));left:var(--mobile-gutter);z-index:25;color:oklch(100% 0 0);background:linear-gradient(135deg, var(--color-action), oklch(63% .2 29));border-radius:12px;justify-content:center;align-items:center;gap:9px;min-height:52px;font-size:17px;font-weight:720;display:flex;position:fixed;box-shadow:0 10px 28px oklch(46% .17 28/.22)}.expense-dialog{width:100vw}.expense-drawer{padding:max(20px, env(safe-area-inset-top,0px)) var(--mobile-gutter) calc(24px + env(safe-area-inset-bottom,0px));box-shadow:none}.payer-segmented button{gap:5px;font-size:13px}.payer-segmented .payer-avatar{width:25px;height:25px;font-size:11px}.joint-split-editor{padding-inline:10px}.drawer-header{margin-bottom:20px}.drawer-header h2{font-size:22px}.form-field{margin-bottom:20px}.category-options{gap:7px}.category-options button{gap:6px;min-height:51px;padding-inline:4px;font-size:13px}.drawer-actions{background:var(--color-surface-raised);padding-top:9px;position:sticky;bottom:0}.toast{right:14px;bottom:calc(76px + env(safe-area-inset-bottom,0px));width:auto;left:14px}.category-management-header{min-height:0;margin-bottom:15px;display:block}.category-management-header h1{font-size:28px}.category-management-header p{margin-top:5px;font-size:13px}.category-management-actions{justify-content:space-between;margin-top:13px}.category-count{min-height:39px;padding-inline:12px}.category-management-actions .theme-trigger{min-height:40px;padding-inline:13px;font-size:13px}.category-management-table-wrap{border-radius:15px;padding:0}.category-management-table{display:none}.category-management-mobile-list{display:block}.managed-category-mobile-row{width:100%;min-width:0;min-height:67px;color:var(--color-text);text-align:left;background:0 0;grid-template-columns:16px minmax(66px,1fr) minmax(75px,auto) 18px;align-items:center;gap:12px;padding:9px 14px;display:grid}.managed-category-mobile-row+.managed-category-mobile-row{border-top:1px solid var(--color-border)}.managed-category-mobile-row:hover{background:var(--color-action-tint)}.managed-category-mobile-copy{gap:4px;min-width:0;display:grid}.managed-category-mobile-copy strong{font-size:14px}.managed-category-mobile-copy small{color:var(--color-muted);font-size:11px}.managed-category-mobile-amount{color:var(--color-action);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:650;overflow:hidden}.managed-category-mobile-row>svg{width:18px;height:18px;color:var(--color-faint)}.category-management-footer{min-height:67px;padding:0 13px}.category-management-footer .button{min-height:42px;padding-inline:13px;font-size:13px}.theme-dialog{width:100%;max-width:none;max-height:calc(100dvh - 20px);margin:auto 0 0}.theme-dialog-sheet,.theme-dialog-panel{border-bottom:0;border-left:0;border-right:0;border-radius:22px 22px 0 0;animation:.22s ease-out sheet-enter}.theme-dialog-sheet:before,.theme-dialog-panel:before{background:var(--color-border-strong);content:"";border-radius:999px;width:44px;height:5px;margin:8px auto 0;display:block}.theme-dialog-header{border-bottom:0;grid-template-columns:minmax(0,1fr) 40px;padding:11px 18px 12px}.theme-dialog-heading-icon{display:none}.theme-dialog-heading-copy{text-align:center;padding-left:40px}.theme-dialog-heading-copy h2{font-size:20px}.theme-dialog-heading-copy p{display:none}.theme-options{gap:9px;padding:10px 14px 18px}.theme-option{border-radius:13px;grid-template-rows:62px auto 25px;min-height:176px;padding:13px 7px}.theme-option-icon,.theme-swatches{width:84px;height:58px}.theme-option-icon:before,.theme-option-icon:after,.theme-swatches:before,.theme-swatches:after{border-width:4px;width:44px;height:44px}.theme-option-icon:before,.theme-swatches:before{left:0}.theme-option-icon:after,.theme-swatches:after{right:0}.theme-option-copy strong{font-size:clamp(13px,3.7vw,16px)}.theme-option-copy small{min-height:32px;font-size:clamp(9px,2.6vw,11px)}.theme-option-check{width:23px;height:23px}.theme-dialog-footer{display:none}.login-screen{min-height:100dvh;display:block;overflow:visible}.login-welcome{border-bottom:1px solid var(--color-border);min-height:0}.login-family-picture,.login-family-image{width:100%}.login-subtitle{padding:11px var(--mobile-gutter) 13px;text-align:center;margin:0;font-size:13px}.login-panel{padding:18px var(--mobile-gutter) calc(24px + env(safe-area-inset-bottom,0px));display:block}.login-card{width:100%;box-shadow:none;border:0;border-radius:0;padding:0}.login-section-title{font-size:17px}.role-options{gap:11px;margin-top:12px}.role-card{height:136px;padding:10px}.role-avatar{width:86px;height:86px}.pin-fieldset{margin-top:19px}.pin-slot{height:54px}.pin-key{height:47px}}@media (width<=380px){.app-main,.sidebar-collapsed .app-main{padding-inline:14px}.mobile-role-avatar{width:36px;height:36px}.mobile-brand{gap:5px}.mobile-theme-button,.mobile-menu-button{width:38px;min-width:38px;height:38px}.summary-section{grid-template-columns:minmax(0,1fr) minmax(122px,.92fr);padding-inline:15px}.summary-total>strong{font-size:clamp(35px,10.8vw,41px)}.period-filter{margin-inline:11px}.period-stepper{flex-basis:104px;width:104px}.period-input-wrap,.date-range-field{padding-inline:6px}.date-range-field>span{display:none}.payer-segmented button{gap:3px;font-size:12px}.payer-segmented .payer-avatar{width:23px;height:23px}.joint-split-heading{gap:2px;display:grid}.joint-split-card{padding-inline:7px}.joint-split-card>button,.joint-split-input input{font-size:14px}.category-content{grid-template-columns:minmax(0,1.03fr) minmax(122px,.97fr)}.donut-chart{width:min(194px,120%)}.mobile-expense-row{grid-template-columns:44px minmax(76px,1fr) 25px minmax(55px,.72fr) 12px;gap:4px;padding-inline:6px}.theme-options{gap:7px;padding-inline:10px}.theme-option{min-height:168px;padding-inline:4px}.theme-option-icon,.theme-swatches{width:72px}.theme-option-icon:before,.theme-option-icon:after,.theme-swatches:before,.theme-swatches:after{width:40px;height:40px}.confirm-dialog{padding-inline:21px}}@keyframes sheet-enter{0%{opacity:0;transform:translateY(30px)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width>=768px){.sidebar .sidebar-mobile-close{display:none}}.audit-log-page{width:min(100%,1320px);margin-inline:auto}.audit-log-header{justify-content:space-between;align-items:flex-start;gap:28px;min-height:82px;margin-bottom:20px;display:flex}.audit-log-header h1{color:var(--color-text);letter-spacing:-.018em;margin:0;font-size:clamp(36px,3vw,44px);font-weight:790;line-height:1.14}.audit-log-header p{color:var(--color-muted);letter-spacing:.025em;margin:7px 0 0;font-size:16px}.audit-log-summary{border:1px solid var(--color-border);background:oklch(100% 0 0/.6);border-radius:999px;align-items:center;gap:8px;min-height:45px;padding:5px;display:flex;box-shadow:0 8px 24px oklch(45% .05 35/.05)}.audit-log-summary>span{min-height:33px;color:var(--color-muted);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:0 11px;font-size:13px;display:inline-flex}.audit-log-summary .audit-log-total{color:var(--color-action-hover);background:var(--color-action-soft);font-weight:700}.audit-log-total svg{width:17px;height:17px}.audit-log-toolbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px;display:flex}.audit-log-action-filters{border:1px solid var(--color-border);background:oklch(100% 0 0/.58);border-radius:12px;gap:5px;padding:5px;display:inline-flex}.audit-log-action-filters button{min-width:64px;min-height:38px;color:var(--color-muted);background:0 0;border-radius:8px;padding:0 14px;font-size:13px;font-weight:650;transition:color .15s,background-color .15s,box-shadow .15s}.audit-log-action-filters button:hover{color:var(--color-text);background:var(--color-action-tint)}.audit-log-action-filters button.is-active{color:oklch(100% 0 0);background:var(--color-action);box-shadow:0 6px 16px oklch(48% .15 28/.16)}.audit-log-actor-filter{border:1px solid var(--color-border);min-height:48px;color:var(--color-muted);background:var(--color-surface-raised);border-radius:11px;align-items:center;gap:8px;padding:0 10px 0 14px;font-size:13px;font-weight:650;display:inline-flex}.audit-log-actor-filter svg{width:18px;height:18px;color:var(--color-action)}.audit-log-actor-filter select{min-width:82px;min-height:34px;color:var(--color-text);background-color:var(--color-action-tint);font:inherit;border:0;border-radius:8px;padding:0 28px 0 9px}.audit-log-panel{border:1px solid var(--color-border);box-shadow:var(--shadow-panel);background:oklch(100% 0 0/.78);border-radius:15px;overflow:hidden}.audit-log-table-wrap{width:100%;min-width:0;overflow-x:auto}.audit-log-table{table-layout:fixed;border-collapse:collapse;width:100%}.audit-log-table th,.audit-log-table td{border-bottom:1px solid var(--color-border);color:var(--color-text-soft);text-align:left;vertical-align:middle;padding:15px 18px}.audit-log-table th{height:52px;color:var(--color-muted);background:var(--color-action-tint);padding-block:0;font-size:13px;font-weight:680}.audit-log-table tbody tr{transition:background-color .14s}.audit-log-table tbody tr:hover{background:oklch(100% 0 0/.54)}.audit-log-table tbody tr:last-child td{border-bottom:0}.audit-log-table th:first-child,.audit-log-table td:first-child{width:170px}.audit-log-table th:nth-child(2),.audit-log-table td:nth-child(2){width:110px}.audit-log-table th:nth-child(3),.audit-log-table td:nth-child(3){width:105px}.audit-log-time{color:var(--color-muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:13px}.audit-log-actor,.audit-log-action{white-space:nowrap;align-items:center;gap:7px;display:inline-flex}.audit-log-actor{color:var(--color-text-soft);font-size:13px;font-weight:650}.audit-log-actor>span{border-radius:50%;place-items:center;width:27px;height:27px;font-size:11px;display:inline-grid}.audit-log-actor.father>span{color:var(--color-father);background:var(--color-father-soft)}.audit-log-actor.mother>span{color:var(--color-mother);background:var(--color-mother-soft)}.audit-log-action{border-radius:999px;min-height:31px;padding:0 10px;font-size:12px;font-weight:720}.audit-log-action svg{stroke-width:2.1px;width:15px;height:15px}.audit-log-action.login{color:var(--color-father);background:var(--color-father-soft)}.audit-log-action.create{color:oklch(46% .13 58);background:var(--color-accent-soft)}.audit-log-action.update{color:var(--color-joint);background:var(--color-joint-soft)}.audit-log-action.delete{color:var(--color-danger);background:var(--color-danger-soft)}.audit-log-entry-details{justify-content:space-between;align-items:center;gap:18px;min-width:0;display:flex}.audit-log-entry-copy{gap:4px;min-width:0;display:grid}.audit-log-entry-copy strong{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:700;overflow:hidden}.audit-log-entry-copy span,.audit-log-entry-copy small{color:var(--color-muted);font-size:12px;line-height:1.5}.audit-log-entry-copy small{color:var(--color-action-hover);white-space:normal}.audit-log-entry-copy .audit-log-joint-split{color:var(--color-joint)}.audit-log-amount{color:var(--color-text);font-variant-numeric:tabular-nums;flex:none;font-size:15px}.audit-log-mobile-list{display:none}.audit-log-load-more{width:calc(100% - 28px);min-height:44px;color:var(--color-action-hover);background:var(--color-action-tint);border-radius:10px;justify-content:center;align-items:center;margin:14px;font-size:13px;font-weight:680;display:flex}.audit-log-load-more:hover{background:var(--color-action-soft)}.audit-log-empty{min-height:330px;color:var(--color-muted);text-align:center;place-content:center;justify-items:center;padding:30px;display:grid}.audit-log-empty>svg{width:50px;height:50px;color:var(--color-action);background:var(--color-action-soft);border-radius:14px;padding:12px}.audit-log-empty h2{color:var(--color-text);margin:15px 0 0;font-size:20px}.audit-log-empty p{max-width:390px;margin:8px 0 0;font-size:13px;line-height:1.65}.audit-log-privacy-note{color:var(--color-faint);text-align:right;margin:13px 0 0;font-size:12px}@media (width<=767px){.audit-log-page{width:100%}.audit-log-header{min-height:0;margin-bottom:15px;display:block}.audit-log-header h1{font-size:28px}.audit-log-header p{margin-top:5px;font-size:13px}.audit-log-summary{border-radius:13px;justify-content:space-between;width:100%;margin-top:13px}.audit-log-summary>span{min-height:32px;padding-inline:8px;font-size:12px}.audit-log-toolbar{gap:9px;display:grid}.audit-log-action-filters{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;width:100%;display:grid}.audit-log-action-filters button{min-width:0;min-height:39px;padding:0 3px;font-size:12px}.audit-log-actor-filter{width:100%;min-height:44px}.audit-log-actor-filter select{flex:1}.audit-log-panel{border-radius:15px}.audit-log-table-wrap{display:none}.audit-log-mobile-list{display:grid}.audit-log-mobile-card{background:var(--color-surface-raised);content-visibility:auto;contain-intrinsic-size:150px;gap:12px;padding:15px 14px;display:grid}.audit-log-mobile-card+.audit-log-mobile-card{border-top:1px solid var(--color-border)}.audit-log-mobile-card>header,.audit-log-mobile-card>footer{justify-content:space-between;align-items:center;gap:10px;display:flex}.audit-log-mobile-card>header time{color:var(--color-muted);font-variant-numeric:tabular-nums;font-size:11px}.audit-log-mobile-card .audit-log-entry-details{align-items:flex-start}.audit-log-mobile-card .audit-log-entry-copy strong{font-size:15px}.audit-log-mobile-card .audit-log-amount{font-size:16px}.audit-log-mobile-card>footer{border-top:1px dashed var(--color-border);padding-top:10px}.audit-log-privacy-note{text-align:center}}@media (width<=380px){.audit-log-summary>span{padding-inline:6px;font-size:11px}.audit-log-action-filters button{font-size:11px}.audit-log-mobile-card{padding-inline:12px}}
