@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@500&family=Noto+Sans+TC:wght@400;500;600&display=swap";:root{--midnight:#0a0f1e;--surface:#121829;--surface-elevated:#161f33;--line:#ffffff1f;--line-strong:#ffffff2e;--text:#eef2ff;--text-muted:#94a3b8;--violet:#8b5cf6;--teal:#2dd4bf;--violet-soft:#c4b5fd;--teal-soft:#5eead4;--on-light:#0a0f1e;--glass-fill:#0e14269e;--glass-border:#ffffff1a;--danger:#f87171;--danger-soft:#fca5a5;--success:#2dd4bf;--chart-series-1:#8b5cf6;--chart-series-2:#2dd4bf;--chart-series-3:#6366f1;--chart-series-4:#38bdf8;--chart-series-5:#a78bfa;--chart-series-6:#5eead4;--chart-grid:#ffffff14;--chart-label:#94a3b8;--budget-gradient:linear-gradient(90deg, var(--violet) 0%, var(--teal) 100%);--font-brand:"Inter", "Noto Sans TC", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--font-body:"Noto Sans TC", "Inter", sans-serif;--text-brand-size:28px;--text-heading-size:17px;--text-body-size:15px;--text-label-size:13px;--text-figures-size:22px;--leading-body:1.6;--radius-sm:8px;--radius-md:14px;--border-default:1px solid var(--glass-border);--space-base:8px;--space-card-padding:20px;--space-row:44px;--space-section-gap:16px;--layout-max:1120px;--layout-gutter:16px;--field-select-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath stroke='%2394a3b8' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' d='M3 4.5 6 7.5 9 4.5'/%3E%3C/svg%3E");--night:var(--midnight);--etoupe:var(--text);--etoupe-muted:var(--text-muted);--taupe-bar:#475569;--orange:var(--violet);--orange-soft:var(--violet-soft);--on-orange:var(--on-light);--paper:var(--midnight);--paper-deep:var(--surface);--canvas:var(--surface);--ink:var(--text);--ink-soft:var(--text-muted);--quiet:var(--text-muted);--hairline:var(--line);--hairline-strong:var(--line-strong);--moss:var(--teal);--moss-dark:var(--text);--moss-pale:color-mix(in srgb, var(--violet) 14%, var(--surface));--copper:var(--violet);--copper-dark:var(--violet-soft);--copper-pale:color-mix(in srgb, var(--violet) 16%, var(--surface));--gold:var(--teal-soft);--danger-pale:color-mix(in srgb, var(--danger) 16%, var(--surface));--success-pale:color-mix(in srgb, var(--teal) 14%, var(--surface));--shadow-sm:0 8px 32px #0000003d;--shadow-lg:0 24px 64px #00000073;--serif:var(--font-brand);--sans:var(--font-body);color:var(--text);background:var(--midnight);font-family:var(--font-body);font-size:var(--text-body-size);line-height:var(--leading-body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#root{min-height:100%}html{background:var(--night)}body{background:var(--midnight);color:var(--text);font-size:var(--text-body-size);line-height:var(--leading-body);margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}button:disabled{cursor:not-allowed;opacity:.55}.app-shell{min-height:100vh;padding:20px 24px 50px}.app-main,.topbar{width:min(100%, var(--layout-max));margin-inline:auto}.app-main{padding-top:30px}.page-stack{gap:26px;display:grid}.topbar{border-bottom:1px solid var(--hairline-strong);justify-content:space-between;align-items:center;gap:28px;padding:14px 0 18px;display:flex}.brand-lockup{flex-direction:column;justify-content:center;align-items:flex-start;gap:0;min-width:0;padding-top:4px;display:flex}.brand-wordmark{margin:0;font-size:0;line-height:0;overflow:visible}.brand-wordmark img{width:clamp(11.25rem,50vw,15.625rem);max-width:min(100%,15.625rem);height:auto;display:block;overflow:visible}.brand-mark{width:38px;height:38px;color:var(--on-orange);background:var(--orange);box-shadow:none;font-family:var(--serif);letter-spacing:-.07em;border-radius:50%;flex:0 0 38px;place-items:center;font-size:.95rem;display:grid}.brand-kicker,.eyebrow,.hero-panel-label{color:var(--copper-dark);letter-spacing:.14em;text-transform:uppercase;font-size:.66rem;font-weight:800;line-height:1.2}.brand-kicker{margin-bottom:2px;font-size:.58rem}.topbar h1{color:var(--ink);font-family:var(--serif);letter-spacing:-.045em;font-size:1.8rem;font-weight:400;line-height:.95}.brand-tagline{color:var(--quiet);margin-top:6px;font-size:.72rem;line-height:1.35}.topbar-tools,.top-nav{align-items:center;display:flex}.top-nav{gap:4px}.nav-pill,.import-button{min-height:36px;color:var(--ink-soft);background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;padding:7px 11px;font-size:.78rem;font-weight:700;transition:color .16s,background .16s;display:inline-flex}.nav-pill:hover,.nav-pill.is-active{color:var(--moss-dark);background:var(--moss-pale)}.import-button{color:var(--on-orange);background:var(--copper);box-shadow:none;margin-left:8px}.import-button:hover{background:var(--copper-dark)}.app-shell:has(.ledger-tech) .brand-mark{color:var(--etoupe);background:var(--surface);border:var(--border-default)}.app-shell:has(.ledger-tech) .import-button{color:var(--etoupe);border:var(--border-default);background:0 0;font-weight:400}.app-shell:has(.ledger-tech) .import-button:hover{color:var(--etoupe);border-color:var(--etoupe-muted);background:0 0}:is(.app-shell:has(.ledger-tech) .primary-button:hover,.app-shell:has(.ledger-tech) .fab:hover,.app-shell:has(.ledger-tech) .month-shift-button:hover){transform:none}.bottom-nav{display:none}.hero-panel,.trip-hero,.card,.stat-card,.chart-card,.category-spending-panel,.budget-total-panel,.budget-summary-item,.budget-summary-box,.settings-card,.expense-item,.trend-category-card,.empty-state,.loading-panel,.import-hint-card,.category-manager-item,.share-row,.confirm-dialog,.trip-delete-dialog{background:var(--surface);border:var(--border-default)}.hero-panel,.trip-hero{position:relative;overflow:hidden}.hero-panel:after,.trip-hero:after{content:"";pointer-events:none;border:1px solid #47645b2b;border-radius:50%;width:260px;height:260px;position:absolute;bottom:-175px;right:-145px;box-shadow:0 0 0 28px #47645b0a,0 0 0 56px #47645b06}.card{padding:28px}.hero-panel{padding:32px}.muted{color:var(--quiet)}.positive,.negative{color:var(--etoupe);font-weight:500}.section-heading{border-bottom:1px solid var(--hairline);justify-content:space-between;align-items:start;gap:20px;margin-bottom:22px;padding-bottom:17px;display:flex}.section-heading h2,.empty-state h3,.hero-form-head h3,.chart-card-head h3,.budget-total-top h3,.category-spending-panel-head h3{font-family:var(--serif);letter-spacing:-.025em;font-size:1.43rem;font-weight:400;line-height:1.15}.section-heading p{max-width:650px;color:var(--quiet);margin-top:7px;font-size:.82rem}.section-actions,.hero-actions,.inline-actions,.form-actions,.trip-card-actions,.hero-topline-actions,.field-inline,.money-row,.budget-row-top,.trip-card-top{align-items:center;gap:9px;display:flex}.section-actions,.hero-topline-actions{flex-wrap:wrap;justify-content:flex-end}.primary-button,.ghost-button,.month-shift-button,.fab,.icon-button{border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;min-height:40px;padding:9px 13px;font-size:.78rem;font-weight:800;line-height:1.1;transition:transform .16s,background .16s,border-color .16s,box-shadow .16s;display:inline-flex}.primary-button,.fab,.month-shift-button{color:var(--on-orange);background:var(--copper);box-shadow:none}.primary-button:hover,.fab:hover,.month-shift-button:hover{background:var(--copper-dark);transform:translateY(-1px)}.ghost-button,.icon-button{color:var(--ink-soft);border-color:var(--hairline-strong);background:0 0}.ghost-button:hover,.icon-button:hover{color:var(--moss-dark);border-color:var(--moss);background:var(--moss-pale)}.ghost-button.danger,.trip-edit-menu button.danger{color:var(--etoupe);border-color:var(--line);background:0 0}.ghost-button.danger:hover,.trip-edit-menu button.danger:hover{color:var(--etoupe);border-color:var(--etoupe-muted);background:0 0}.primary-button:focus-visible,.ghost-button:focus-visible,.icon-button:focus-visible,.nav-pill:focus-visible,.import-button:focus-visible,.bottom-link:focus-visible,.drawer-close-button:focus-visible,.trip-edit-menu button:focus-visible,.color-swatch:focus-visible,.fab:focus-visible,.balance-summary-trigger:focus-visible,.back-link:focus-visible,.month-shift-button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--orange-soft);outline-offset:2px}.field{gap:7px;min-width:0;display:grid}.field>span,.range-field{color:var(--ink-soft);font-size:.72rem;font-weight:800}.field input,.field select,.field textarea,.member-form input,.share-row input{width:100%;min-width:0;min-height:44px;color:var(--etoupe);background:var(--night);border:var(--border-default);border-radius:3px;outline:none;padding:10px 11px;transition:border-color .16s,box-shadow .16s,background .16s;display:block}.field input[type=date]{appearance:none;width:100%;min-width:0;max-width:100%;max-height:44px;padding:10px 11px;line-height:22px;display:block;overflow:hidden;height:44px!important;min-height:44px!important}.field input[type=date]::-webkit-date-and-time-value{text-align:left;width:100%;height:22px;min-height:22px;padding:0;line-height:22px}.field input[type=date]::-webkit-calendar-picker-indicator{width:18px;height:18px;margin:0 0 0 auto;padding:0}.field select{appearance:none;background-image:var(--field-select-chevron);background-position:right 11px center;background-repeat:no-repeat;background-size:12px 12px;height:44px;min-height:44px;max-height:44px;padding-right:34px;line-height:22px}.field textarea{resize:vertical;min-height:94px}.field input::placeholder,.field textarea::placeholder{color:var(--etoupe-muted)}.field input:focus,.field select:focus,.field textarea:focus,.member-form input:focus,.share-row input:focus{background:var(--night);border-color:var(--orange-soft);box-shadow:none;outline:2px solid var(--orange-soft);outline-offset:1px}.field-grid,.date-category-grid,.amount-entry-grid,.trip-currency-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;display:grid}.field-grid>.field{align-content:start}.ledger-form,.category-add-form,.category-edit-panel{gap:17px;display:grid}.trip-expense-form{--trip-control-height:44px}.trip-expense-form .field>input,.trip-expense-form .field>select{height:var(--trip-control-height)}.trip-expense-form .trip-expense-paired-grid{align-items:start}.trip-expense-form .trip-expense-paired-grid input,.trip-expense-form .trip-expense-paired-grid select{height:var(--trip-control-height)}.split-field{gap:7px;min-width:0}.share-list{gap:8px;min-width:0;display:grid}.share-row{width:100%;height:var(--trip-control-height);min-width:0;min-height:var(--trip-control-height);background:0 0;border:0;grid-template-columns:minmax(0,1fr) minmax(112px,.58fr);align-items:center;gap:12px;padding:0;display:grid}.share-check{min-width:0;height:var(--trip-control-height);color:var(--ink-soft);background:var(--night);border:var(--border-default);overflow-wrap:anywhere;border-radius:3px;align-items:center;padding:10px 11px;font-size:.78rem;font-weight:700;display:flex}.share-row input{height:var(--trip-control-height);min-height:var(--trip-control-height)}.trip-expense-summary{margin-top:2px}.form-actions{justify-content:flex-end;padding-top:4px}.error-text{color:var(--etoupe);font-size:.72rem;font-weight:500}.field-error-slot{min-height:1em}.error-banner,.import-result.error{color:var(--etoupe);background:var(--surface);border:var(--border-default);border-left:3px solid var(--etoupe-muted);padding:10px 12px;font-size:.78rem;font-weight:400}.success-banner,.import-result.success{color:var(--success);background:var(--success-pale);border-left:3px solid var(--success);padding:11px 13px;font-size:.8rem;font-weight:800}.ledger-tech{gap:var(--space-section-gap)}.ledger-tech .hero-panel:after{display:none}.ledger-tech .card,.ledger-tech .daily-overview-bay,.ledger-tech .hero-quick-form,.ledger-tech .category-spending-panel,.ledger-tech .chart-card,.ledger-tech .trend-hero,.ledger-tech .trend-category-card,.ledger-tech .trip-card{border-radius:var(--radius-md);border:var(--border-default);box-shadow:none}.ledger-tech .hero-panel.trend-hero{padding:var(--space-card-padding);background:var(--surface)}.ledger-tech .hero-panel.trend-hero:after{display:none}.ledger-tech .trend-hero h2{max-width:none;font-family:var(--font-body);font-size:var(--text-heading-size);letter-spacing:0;font-weight:500;line-height:1.35}.ledger-tech .stats-grid{border:var(--border-default);border-radius:var(--radius-md);background:var(--line);gap:0;overflow:hidden}.ledger-tech .stats-grid .stat-card{background:var(--surface);border:0}.ledger-tech .stats-grid .stat-card.accent{background:var(--surface)}.ledger-tech .trip-card{background:var(--surface);transition:none;overflow:hidden}.ledger-tech .trip-card:hover{box-shadow:none;transform:none}.ledger-tech .trip-card-top .eyebrow{color:var(--etoupe-muted);font-size:var(--text-label-size);text-transform:none;letter-spacing:.02em;font-weight:400}.ledger-tech .trip-title-row h2{font-family:var(--font-body);font-size:var(--text-heading-size);letter-spacing:0;font-weight:500}.ledger-tech .trip-card-body{color:var(--etoupe)}.ledger-tech .trip-card-actions .ghost-button,.ledger-tech .trip-card-actions .primary-button{min-height:34px;font-size:var(--text-label-size);box-shadow:none;font-weight:400}.ledger-tech .trip-card-actions .ghost-button{color:var(--etoupe);border:var(--border-default);background:0 0}.ledger-tech .trip-card-actions .ghost-button:hover{color:var(--etoupe);border-color:var(--etoupe-muted);background:0 0}.ledger-tech .trip-card-actions .primary-button{color:var(--etoupe);border:var(--border-default);background:0 0}.ledger-tech .trip-card-actions .primary-button:hover{color:var(--etoupe);border-color:var(--etoupe-muted);background:0 0;transform:none}.ledger-tech .icon-button{color:var(--etoupe-muted);border:var(--border-default);background:0 0}.ledger-tech .icon-button:hover{color:var(--etoupe);border-color:var(--etoupe-muted);background:0 0}.ledger-tech .trip-cover{background:var(--night)}.ledger-tech .trip-cover:after{background:0 0}.ledger-tech .trip-hero:after{display:none}.ledger-tech .trip-hero h2{font-family:var(--font-body);font-size:var(--text-heading-size);letter-spacing:0;font-weight:500;line-height:1.35}.ledger-tech .trip-hero-total strong{font-family:var(--font-brand);font-variant-numeric:tabular-nums;color:var(--etoupe);font-weight:500}.ledger-tech .trips-card-section,.ledger-tech .trend-category-card{padding:var(--space-card-padding);background:var(--surface)}.ledger-tech .trend-category-card-head{border-bottom-color:var(--line)}.ledger-tech .trend-category-meta strong{font-family:var(--font-brand);font-variant-numeric:tabular-nums;color:var(--etoupe);font-weight:500}.ledger-tech .trend-category-meta span{color:var(--etoupe-muted);font-weight:400}.ledger-tech .trend-category-stack{gap:var(--space-section-gap)}.ledger-tech .empty-state,.ledger-tech .loading-panel{background:var(--surface);border:1px dashed var(--line);color:var(--etoupe-muted)}.ledger-tech .empty-state h3{font-family:var(--font-body);font-size:var(--text-heading-size);color:var(--etoupe);font-weight:500}.ledger-tech .chart-frame .recharts-cartesian-grid line{stroke:var(--chart-grid)}.ledger-tech .chart-frame .recharts-text,.ledger-tech .chart-frame text{fill:var(--chart-label);font-size:var(--text-label-size)}.ledger-tech .form-actions .ghost-button,.ledger-tech .form-actions .primary-button{box-shadow:none;color:var(--etoupe);border:var(--border-default);background:0 0;font-weight:400}.ledger-tech .form-actions .primary-button:hover{color:var(--etoupe);border-color:var(--etoupe-muted);background:0 0;transform:none}.ledger-tech .fab{color:var(--etoupe);background:var(--surface);border:var(--border-default);box-shadow:none}.ledger-tech .fab:hover{color:var(--etoupe);background:var(--surface);border-color:var(--etoupe-muted);transform:none}.ledger-tech .card{padding:var(--space-card-padding);background:var(--surface)}.ledger-tech .section-heading{margin-bottom:var(--space-section-gap);padding-bottom:var(--space-section-gap);border-bottom:1px solid var(--line)}.ledger-tech .section-heading h2,.ledger-tech .chart-card-head h3,.ledger-tech .category-spending-panel-head h3,.ledger-tech .hero-form-head h3{font-family:var(--font-body);font-size:var(--text-heading-size);letter-spacing:0;font-weight:500;line-height:1.35}.ledger-tech .section-heading p,.ledger-tech .category-spending-panel-head p{font-size:var(--text-label-size);color:var(--etoupe-muted)}.ledger-tech .eyebrow,.ledger-tech .hero-panel-label{color:var(--etoupe-muted);font-size:var(--text-label-size);letter-spacing:.02em;text-transform:none;font-weight:400}.ledger-tech .hero-topline .ghost-button{min-height:var(--space-row);color:var(--etoupe);border:var(--border-default);border-radius:var(--radius-sm);font-size:var(--text-label-size);box-shadow:none;background:0 0;padding:8px 12px;font-weight:400}.ledger-tech .hero-topline .ghost-button:hover{color:var(--etoupe);border-color:var(--etoupe-muted);background:0 0}.daily-hero{grid-template-columns:minmax(0,1.12fr) minmax(350px,.88fr);align-items:start;gap:36px;display:grid}.daily-hero.hero-panel{background:0 0;border:0;padding:0;overflow:visible}.daily-hero.hero-panel:after{display:none}.hero-copy,.trend-hero-copy{z-index:1;gap:19px;display:grid;position:relative}.daily-overview-bay{background:var(--canvas);border:1px solid var(--hairline);padding:32px}.ledger-tech .daily-overview-bay{padding:var(--space-card-padding);background:var(--surface)}.hero-topline{justify-content:space-between;align-items:center;gap:12px;display:flex}.hero-topline .ghost-button{min-height:33px;padding:7px 9px;font-size:.71rem}.month-controller{max-width:440px}.month-controller-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;display:grid}.month-field select{min-height:42px}.hero-stats-grid{border:1px solid var(--hairline);background:var(--canvas);grid-template-columns:repeat(3,minmax(0,1fr));display:grid;overflow:hidden}.stat-card{background:0 0;border:0;min-height:126px;padding:18px}.stat-card-topline,.stat-card>span{color:var(--quiet);font-size:.71rem;font-weight:800;display:block}.stat-card strong,.trend-category-meta strong,.trip-hero-total strong{font-family:var(--serif);letter-spacing:-.035em;margin-top:9px;font-size:2rem;font-weight:400;line-height:1;display:block}.stat-card p,.summary-balance-card small,.comparison-grid small{color:var(--quiet);margin-top:8px;font-size:.71rem}.stat-split,.comparison-grid{gap:12px;display:grid}.stat-split-3{grid-template-columns:repeat(3,minmax(0,1fr))}.summary-balance-card{border-bottom:1px solid var(--hairline);background:linear-gradient(90deg,#b85e4213,#0000 56%);grid-column:1/-1;min-height:147px;padding:17px 18px 18px;position:relative}.ledger-tech .summary-balance-card{border-bottom-color:var(--line);background:0 0}.summary-balance-card:before{content:"";background:var(--copper);width:44px;height:3px;position:absolute;top:0;left:0}.ledger-tech .summary-balance-card:before{display:none}.summary-balance-card .stat-card-topline{color:var(--copper-dark);letter-spacing:.08em;text-transform:uppercase}.ledger-tech .summary-balance-card .stat-card-topline{color:var(--etoupe-muted);letter-spacing:.02em;text-transform:none;font-weight:400}.summary-balance-card .stat-split{gap:0;margin-top:14px}.summary-balance-card .stat-split>div{border-left:1px solid var(--hairline);min-width:0;padding:0 18px}.ledger-tech .summary-balance-card .stat-split>div{border-left-color:var(--line)}.summary-balance-card .stat-split>div:first-child{border-left:0;padding-left:0}.summary-balance-card small{color:var(--quiet);white-space:nowrap;margin:0;display:block}.ledger-tech .summary-balance-card small{color:var(--etoupe-muted);font-size:var(--text-label-size);font-weight:400}.summary-balance-card .stat-split strong{color:var(--ink)}.summary-balance-card .stat-split>div:first-child strong{color:var(--copper-dark)}.ledger-tech .summary-balance-card .stat-split strong{font-family:var(--font-brand);font-variant-numeric:tabular-nums;color:var(--etoupe);font-weight:500}.ledger-tech .summary-balance-card .stat-split>div:first-child strong{font-size:var(--text-figures-size);color:var(--etoupe)}.ledger-tech .summary-balance-card .stat-split>div:not(:first-child) strong,.ledger-tech .summary-balance-card .stat-split .balance-summary-trigger strong{font-size:var(--text-figures-size);font-weight:500;line-height:1.15}.balance-summary-trigger{width:100%;color:inherit;text-align:left;background:0 0;border:0;padding:0;display:block}.balance-summary-trigger small span{color:var(--copper-dark);margin-left:3px}.ledger-tech .balance-summary-trigger small span{color:var(--etoupe-muted)}.balance-summary-trigger:hover small,.balance-summary-trigger:hover strong{color:var(--copper-dark)}.ledger-tech .balance-summary-trigger:hover small,.ledger-tech .balance-summary-trigger:hover strong{color:var(--etoupe)}.balance-summary-trigger:focus-visible{outline:2px solid var(--copper);outline-offset:6px;border-radius:2px}.ledger-tech .balance-summary-trigger:focus-visible{outline-color:var(--orange-soft)}.hero-stats-grid>.stat-card:not(.summary-balance-card){min-height:132px}.hero-stats-grid>.stat-card:not(.comparison-card){border-right:1px solid var(--hairline)}.comparison-card{grid-column:2/-1}.comparison-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin-top:12px}.comparison-grid>div{border-left:1px solid var(--hairline);min-width:0;padding:0 18px}.comparison-grid>div:first-child{border-left:0;padding-left:0}.stat-split strong,.comparison-grid strong{font-size:1.5rem}.hero-quick-form{z-index:1;-webkit-backdrop-filter:blur(16px)saturate(1.04);backdrop-filter:blur(16px)saturate(1.04);background:linear-gradient(145deg,#ffffffdb,#ffffff85);border:1px solid #ffffffd1;gap:15px;padding:21px;display:grid;position:relative;box-shadow:0 22px 40px #27302d26,0 4px 10px #27302d0f,inset 0 1px #fffffff5}.ledger-tech .hero-quick-form{gap:var(--space-section-gap);padding:var(--space-card-padding);background:var(--surface);border:var(--border-default);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.hero-form-head{border-bottom:1px solid var(--hairline);justify-content:space-between;align-items:end;gap:12px;padding-bottom:12px;display:flex}.ledger-tech .hero-form-head{border-bottom-color:var(--line)}.hero-form-head h3{margin-top:4px;font-size:1.3rem}.ledger-tech .hero-form-head h3{margin-top:6px}.hero-quick-form .field-grid{gap:12px}.hero-quick-form .field input:not([type=date]),.hero-quick-form .field select{height:44px;min-height:44px;line-height:1.2}.hero-quick-form .balance-field{grid-column:1/-1}.segmented{border:1px solid var(--hairline-strong);background:var(--paper);border-radius:3px;grid-template-columns:repeat(2,minmax(0,1fr));padding:3px;display:grid}.segmented button{min-height:32px;color:var(--quiet);background:0 0;border:0;border-radius:2px;font-size:.74rem;font-weight:800}.segmented button.is-active{color:var(--etoupe);background:var(--night);box-shadow:none}.inline-summary-stack{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;display:grid}.inline-summary{background:var(--paper);border-top:1px solid var(--hairline);color:var(--quiet);gap:2px;padding:9px;font-size:.69rem;display:grid}.inline-summary strong{color:var(--ink);font-family:var(--serif);font-size:1.14rem;font-weight:400}.inline-summary-total{background:var(--moss-pale)}.hero-form-submit .primary-button{width:100%}.ledger-tech .hero-form-submit .primary-button{min-height:var(--space-row);border-radius:var(--radius-sm);font-size:var(--text-body-size);box-shadow:none;font-weight:500}.ledger-tech .hero-form-submit .primary-button:hover{transform:none}.ledger-tech .hero-quick-form .field>span{color:var(--etoupe-muted);font-size:var(--text-label-size);font-weight:400}.content-grid{grid-template-columns:minmax(0,1.65fr) minmax(290px,.85fr);gap:26px;display:grid}.content-grid>.span-2{grid-column:1/-1}.budget-dashboard{grid-template-columns:minmax(0,1.15fr) minmax(310px,.85fr);gap:20px;display:grid}.category-spending-panel,.chart-card,.budget-total-panel,.budget-summary-item,.budget-summary-box{padding:19px}.category-spending-panel-head,.chart-card-head,.budget-total-top{border-bottom:1px solid var(--hairline);justify-content:space-between;gap:14px;padding-bottom:13px;display:flex}.category-spending-panel-head h3,.chart-card-head h3,.budget-total-top h3{font-size:1.13rem}.category-spending-panel-head p{max-width:340px;font-size:.72rem}.category-spending-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.category-spending-summary div,.category-spending-metrics div{gap:2px;display:grid}.category-spending-summary span,.category-spending-metrics span{color:var(--quiet);font-size:.65rem;font-weight:700}.category-spending-summary strong{font-family:var(--serif);font-size:1.2rem;font-weight:400}.category-spending-list,.budget-summary-list{gap:0;display:grid}.category-spending-row{border-bottom:1px solid var(--hairline);gap:10px;padding:14px 0;display:grid}.category-spending-row:last-child{border-bottom:0}.category-spending-row-main{justify-content:space-between;align-items:center;gap:12px;display:flex}.category-spending-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:0;min-width:min(100%,520px);display:grid}.category-spending-metrics>div{border-left:1px solid color-mix(in srgb, var(--hairline) 82%, transparent);min-width:0;padding:0 10px}.category-spending-metrics>div:first-child{border-left:0;padding-left:0}.category-spending-metrics>div:last-child{padding-right:0}.category-spending-metrics span,.category-spending-metrics strong{white-space:nowrap}.category-spending-metrics strong{font-size:.95rem}.budget-metric-emphasis strong{color:var(--moss-dark);font-weight:800}.budget-metric-alert strong{color:var(--danger);font-weight:800}.budget-chart-stack{gap:15px;display:grid}.chart-frame{background:0 0;min-width:0}.chart-frame--category .recharts-text,.chart-frame--category text{fill:var(--chart-label);font-family:var(--font-body);font-size:var(--text-label-size)}.chart-frame--category .recharts-cartesian-grid line,.chart-frame--category .recharts-polar-grid-angle line,.chart-frame--category .recharts-polar-grid-concentric path{stroke:var(--chart-grid)}.chart-frame--category .recharts-tooltip-label,.chart-frame--category .recharts-tooltip-item,.chart-frame--category .recharts-tooltip-item-name,.chart-frame--category .recharts-tooltip-item-value,.chart-frame--category .recharts-tooltip-item-separator{color:var(--etoupe)!important}.chart-frame--category .recharts-default-tooltip{background:var(--surface)!important;border:1px solid var(--line)!important;border-radius:var(--radius-sm)!important;box-shadow:none!important;color:var(--etoupe)!important}.chart-frame--category .legend-item{color:var(--chart-label);border-bottom-color:var(--chart-grid)}.chart-frame--category .legend-item strong{color:var(--chart-label)}.legend-list{grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:8px 14px;padding:13px 2px 1px;display:grid}.legend-item{border-bottom:1px solid color-mix(in srgb, var(--hairline) 76%, transparent);min-width:0;color:var(--ink-soft);justify-content:space-between;align-items:center;gap:8px;padding-bottom:6px;font-size:.72rem;display:flex}.legend-label{align-items:center;gap:6px;min-width:0;display:flex}.legend-label>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.legend-dot{border-radius:50%;flex:0 0 7px;width:7px;height:7px}.legend-item strong{color:var(--ink);flex:none;font-size:.72rem}.chart-frame .recharts-text,.chart-frame text{fill:var(--quiet);font-family:var(--sans);font-size:11px}.chart-frame .recharts-cartesian-grid line,.chart-frame .recharts-polar-grid-angle line,.chart-frame .recharts-polar-grid-concentric path{stroke:var(--hairline)}.progress-track{background:#e5e1d8;border-radius:99px;height:5px;overflow:hidden}.ledger-tech .progress-track{background:color-mix(in srgb, var(--line) 65%, var(--surface));border-radius:var(--radius-sm);height:4px}.progress-fill{background:var(--moss);border-radius:inherit;height:100%;display:block}.progress-fill.is-danger{background:var(--danger)}.ledger-tech .hero-stats-grid>.stat-card:not(.summary-balance-card):not(.comparison-card) .progress-fill,.ledger-tech .hero-stats-grid>.stat-card:not(.summary-balance-card):not(.comparison-card) .progress-fill.is-danger{background:var(--orange)}.ledger-tech .category-spending-row .progress-fill,.ledger-tech .category-spending-row .progress-fill.is-danger{background:var(--taupe-bar)}.ledger-tech .category-spending-metrics>div:last-child.budget-metric-alert strong{color:var(--orange-soft);font-weight:500}.ledger-tech .budget-metric-emphasis strong{color:var(--etoupe);font-weight:500}.ledger-tech .hero-stats-grid>.stat-card:not(.comparison-card){border-right-color:var(--line)}.ledger-tech .stat-card>span,.ledger-tech .stat-card-topline,.ledger-tech .comparison-grid small{color:var(--etoupe-muted);font-size:var(--text-label-size);font-weight:400}.ledger-tech .stat-card strong,.ledger-tech .comparison-grid strong{font-family:var(--font-brand);font-variant-numeric:tabular-nums;color:var(--etoupe);font-weight:500}.ledger-tech .stat-card p{color:var(--etoupe-muted);font-size:var(--text-label-size);font-weight:400}.ledger-tech .category-spending-row{min-height:var(--space-row);border-bottom-color:var(--line);padding-block:12px}.ledger-tech .category-spending-metrics span{color:var(--etoupe-muted);font-weight:400}.ledger-tech .category-spending-metrics strong{font-family:var(--font-brand);font-variant-numeric:tabular-nums;color:var(--etoupe);font-weight:500}.ledger-tech .category-spending-summary strong{font-family:var(--font-brand);font-size:var(--text-figures-size);font-variant-numeric:tabular-nums;font-weight:500}.ledger-tech .category-spending-row-main{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:8px 16px;display:flex}.ledger-tech .category-spending-metrics{flex:280px;min-width:min(100%,240px)}.ledger-tech .category-pill{white-space:nowrap;border:1px solid var(--line);border-left:3px solid var(--category-color,var(--taupe-bar));border-radius:var(--radius-sm);width:max-content;max-width:100%;font-size:var(--text-label-size);flex:none;font-weight:400;color:var(--etoupe)!important;background:0 0!important}.ledger-tech .legend-item{color:var(--etoupe-muted);border-bottom-color:var(--line)}.ledger-tech .legend-item strong{color:var(--etoupe);font-family:var(--font-brand);font-variant-numeric:tabular-nums}.ledger-tech .content-grid,.ledger-tech .budget-dashboard{gap:var(--space-section-gap)}.ledger-tech .category-spending-panel,.ledger-tech .chart-card{padding:var(--space-card-padding);background:var(--surface)}.ledger-tech .category-spending-panel-head,.ledger-tech .chart-card-head,.ledger-tech .expense-list-toolbar{border-bottom-color:var(--line)}.ledger-tech .expense-item{min-height:var(--space-row);border-bottom-color:var(--line);background:0 0;padding-block:14px}.ledger-tech .expense-main>strong{font-size:var(--text-body-size);color:var(--etoupe);font-weight:400}.ledger-tech .date-chip{color:var(--etoupe-muted);border:var(--border-default);border-radius:var(--radius-sm);background:0 0;font-weight:400}.ledger-tech .money-row{font-family:var(--font-brand);font-size:var(--text-label-size);font-variant-numeric:tabular-nums;color:var(--etoupe-muted);font-weight:500}.ledger-tech .money-row span{white-space:nowrap}.ledger-tech .inline-actions .ghost-button{min-height:34px;color:var(--etoupe);border:var(--border-default);font-size:var(--text-label-size);background:0 0;font-weight:400}.ledger-tech .inline-actions .ghost-button:hover{color:var(--etoupe);border-color:var(--etoupe-muted);background:0 0}.ledger-tech .inline-actions .ghost-button.danger{color:var(--etoupe);border-color:var(--line);background:0 0}.ledger-tech .inline-actions .ghost-button.danger:hover{color:var(--etoupe);border-color:var(--etoupe-muted);background:0 0}.expense-list-toolbar{border-bottom:1px solid var(--hairline);gap:13px;margin-bottom:6px;padding-bottom:17px;display:grid}.expense-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:12px;display:grid}.expense-filter-grid .field>input:not([type=date]),.expense-filter-grid .field>select{height:44px;min-height:44px;line-height:1.2}.expense-filter-grid:has(>.ghost-button){grid-template-columns:repeat(3,minmax(0,1fr)) auto}.expense-filter-grid>.ghost-button{white-space:nowrap;min-height:44px}.expense-list-summary{font-size:.75rem}.expense-list{max-height:620px;display:grid;overflow:auto}.expense-item{border-width:0 0 1px;justify-content:space-between;align-items:center;gap:18px;padding:15px 0;display:flex}.expense-item:last-child{border-bottom:0}.expense-main{gap:6px;min-width:0;display:grid}.expense-main>strong{color:var(--ink);font-size:.9rem}.expense-meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.date-chip,.subtle-chip,.member-chip,.category-pill{border-radius:99px;align-items:center;width:max-content;max-width:100%;min-height:23px;padding:3px 7px;font-size:.67rem;font-weight:800;line-height:1.1;display:inline-flex}.date-chip,.subtle-chip,.member-chip{color:var(--ink-soft);background:var(--paper-deep)}.category-pill{border:1px solid #0000000d}.money-row{color:var(--ink-soft);flex-wrap:wrap;font-size:.75rem;font-weight:800}.money-row span+span{border-left:1px solid var(--hairline);padding-left:9px}.inline-actions{flex-wrap:wrap;justify-content:flex-end}.inline-actions .ghost-button{min-height:34px;padding:7px 10px;font-size:.7rem}.table-scroll{overflow-x:auto}.summary-table{border-collapse:collapse;white-space:nowrap;width:100%}.summary-table th,.summary-table td{border-bottom:1px solid var(--hairline);text-align:left;padding:12px 14px}.summary-table th{color:var(--quiet);font-size:.68rem;font-weight:800}.summary-table td{color:var(--ink-soft);font-size:.78rem}.summary-table tbody tr:last-child td{border-bottom:0}.trips-card-section{background:0 0;border:0;padding:0}.trip-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:19px;display:grid}.trip-card{background:var(--canvas);border:1px solid var(--hairline-strong);box-shadow:var(--shadow-sm);transition:transform .18s,box-shadow .18s;overflow:hidden}.trip-card:hover{transform:translateY(-3px);box-shadow:0 18px 40px #252b281f}.trip-cover{background:var(--moss-dark);text-align:left;border:0;width:100%;height:225px;padding:0;display:block;position:relative;overflow:hidden}.trip-cover:after{content:"";pointer-events:none;background:linear-gradient(#1119170f,#11191780);position:absolute;inset:0}.trip-cover-image{object-fit:cover;width:100%;height:100%;transition:transform .4s}.trip-card:hover .trip-cover-image{transform:scale(1.045)}.trip-cover-fallback{z-index:1;color:#fff;background:linear-gradient(135deg,#2e5147,#688f7d);align-content:end;width:100%;height:100%;padding:21px;display:grid;position:relative}.ledger-tech .trip-cover-fallback{color:var(--etoupe);background:var(--night)}.trip-cover-fallback strong{font-family:var(--serif);letter-spacing:-.04em;font-size:2.35rem;font-weight:400}.trip-card-body{gap:16px;padding:19px 20px 20px;display:grid}.trip-card-top{justify-content:space-between;align-items:start}.trip-card-top .eyebrow{color:var(--copper);font-size:.63rem}.trip-title-row{align-items:center;gap:8px;margin-top:5px;display:flex}.trip-title-row h2{font-family:var(--serif);letter-spacing:-.025em;font-size:1.55rem;font-weight:400}.icon-button{border-radius:50%;width:30px;min-width:30px;min-height:30px;padding:6px}.trip-card-actions{justify-content:space-between}.trip-edit-menu-wrap{position:relative}.trip-edit-menu{z-index:4;background:var(--surface);border:var(--border-default);min-width:158px;box-shadow:none;padding:5px;display:grid;position:absolute;bottom:calc(100% + 8px);right:0}.trip-edit-menu button{color:var(--ink-soft);text-align:left;background:0 0;border:0;border-radius:2px;padding:9px;font-size:.74rem;font-weight:700}.trip-edit-menu button:hover,.trip-edit-menu button:focus-visible{background:var(--moss-pale);outline:none}.trip-delete-backdrop,.drawer-backdrop,.confirm-backdrop{z-index:20;-webkit-backdrop-filter:none;backdrop-filter:none;background:#1e2633b8;place-items:center;padding:22px;display:grid;position:fixed;inset:0}.trip-delete-dialog,.confirm-dialog{width:min(410px,100%);box-shadow:var(--shadow-lg);padding:24px}.trip-delete-dialog h3,.confirm-dialog h3{font-family:var(--serif);font-size:1.55rem;font-weight:400}.trip-delete-dialog p,.confirm-dialog p{color:var(--quiet);margin-top:8px}.trip-delete-actions,.confirm-actions{justify-content:flex-end;gap:9px;margin-top:21px;display:flex}.fab{z-index:8;min-height:46px;padding-inline:17px;position:fixed;bottom:28px;right:30px}.back-link{width:max-content;color:var(--moss-dark);font-size:.76rem;font-weight:800}.back-link:hover{color:var(--copper-dark)}.trip-hero{background:var(--surface);border-color:var(--line);color:var(--etoupe);grid-template-columns:minmax(0,1fr) minmax(230px,.32fr);gap:25px;padding:30px;display:grid}.trip-hero .eyebrow{color:var(--etoupe-muted)}.trip-hero h2{font-family:var(--serif);letter-spacing:-.04em;margin-top:5px;font-size:clamp(2rem,4vw,3.4rem);font-weight:400;line-height:.98}.trip-hero-copy{color:var(--etoupe-muted);margin-top:7px}.trip-hero-main{z-index:1;gap:18px;display:grid;position:relative}.trip-hero .ghost-button{color:var(--etoupe);border-color:var(--line)}.trip-hero .ghost-button:hover{color:var(--etoupe);background:var(--moss-pale);border-color:var(--line)}.trip-hero-total{z-index:1;border-left:1px solid var(--line);align-self:end;padding:18px 0 2px 21px;position:relative}.trip-hero-total span,.trip-hero-total p{color:var(--etoupe-muted);font-size:.71rem;font-weight:700}.trip-hero-total strong{color:var(--etoupe);font-size:2.55rem}.member-form{gap:8px;display:flex}.member-form input{min-width:0}.member-chip{gap:6px}.chip-close{width:17px;height:17px;color:inherit;background:0 0;border:0;padding:0;font-size:1rem;line-height:1}.drawer{background:var(--canvas);border:1px solid var(--hairline-strong);width:min(520px,100%);max-height:min(760px,100dvh - 44px);box-shadow:var(--shadow-lg);padding:25px;overflow:auto}.drawer-head{border-bottom:1px solid var(--hairline);justify-content:space-between;align-items:start;gap:15px;margin-bottom:20px;padding-bottom:18px;display:flex}.drawer-head h2{font-family:var(--serif);letter-spacing:-.025em;font-size:1.7rem;font-weight:400}.drawer-head .muted{margin-top:5px;font-size:.78rem}.drawer-close-button{width:32px;height:32px;color:var(--ink-soft);border:1px solid var(--hairline-strong);background:0 0;border-radius:50%;flex:0 0 32px;place-items:center;padding:0;font-size:1.35rem;line-height:1;display:grid}.drawer-close-button:hover{color:var(--copper-dark);border-color:var(--copper)}.drawer-body{padding-bottom:2px}.balance-summary-drawer{width:min(840px,100%)}.balance-summary-content{grid-template-columns:repeat(2,minmax(0,1fr));gap:48px;display:grid;position:relative}.balance-summary-content:before{background:var(--hairline);content:"";width:1px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.balance-summary-totals{display:none}.balance-summary-section{min-width:0}.balance-summary-heading{border-bottom:1px solid var(--hairline-strong);justify-content:space-between;align-items:end;gap:12px;padding-bottom:10px;display:flex}.balance-summary-heading span{color:var(--ink);font-size:.88rem;font-weight:800;display:block}.balance-summary-heading small{color:var(--quiet);margin-top:2px;font-size:.7rem;display:block}.balance-summary-heading strong{color:var(--copper-dark);font-family:var(--serif);white-space:nowrap;font-size:1.45rem;font-weight:400;line-height:1}.balance-summary-section+.balance-summary-section .balance-summary-heading strong{color:var(--moss-dark)}.balance-summary-list{margin:0;padding:0;list-style:none}.balance-summary-item{border-bottom:1px solid var(--hairline);justify-content:space-between;align-items:center;gap:16px;padding:11px 0;display:flex}.balance-summary-item-main{min-width:0}.balance-summary-meta{color:var(--quiet);flex-wrap:wrap;gap:4px 10px;font-size:.68rem;font-weight:700;display:flex}.balance-summary-note{overflow-wrap:anywhere;margin-top:3px;font-size:.78rem;display:block}.balance-summary-item>strong{font-variant-numeric:tabular-nums;white-space:nowrap;flex:none;font-size:.84rem}.balance-summary-empty{color:var(--quiet);padding:16px 0 2px;font-size:.78rem}.settings-grid,.category-manager-list{gap:10px;display:grid}.settings-card,.category-manager-item{padding:14px}.category-manager-item{justify-content:space-between;align-items:center;gap:12px;display:flex}.category-manager-info,.category-manager-order{align-items:center;gap:9px;min-width:0;display:flex}.category-manager-actions{flex-wrap:wrap;justify-content:flex-end;gap:7px;display:flex}.category-manager-actions .primary-button,.category-manager-actions .ghost-button{min-height:34px;padding:7px 9px}.category-drag-handle{color:var(--quiet);background:var(--paper-deep);border:0;border-radius:2px;padding:5px}.category-color-grid{flex-wrap:wrap;gap:8px;display:flex}.color-swatch{width:27px;height:27px;box-shadow:none;border:2px solid #0000;border-radius:50%;padding:0}.color-swatch.is-active{border-color:var(--etoupe);box-shadow:none;outline:2px solid var(--etoupe);outline-offset:2px}.category-manager-item.is-editing{border-color:var(--moss);background:var(--moss-pale);display:block}.category-manager-item--floating{opacity:.93;box-shadow:var(--shadow-lg);transform:rotate(1deg)}.category-drop-indicator{background:var(--taupe-bar);border-radius:var(--radius-sm);height:5px}.cover-adjust-panel{gap:15px;display:grid}.cover-adjust-preview{background:var(--paper-deep);height:285px;position:relative;overflow:hidden}.cover-adjust-preview img{object-fit:cover;width:100%;height:100%}.range-field{gap:7px;display:grid}.range-field input{accent-color:var(--taupe-bar)}.file-dropzone-wrap{gap:11px;display:grid}.file-dropzone{width:100%;min-height:150px;color:var(--ink-soft);background:var(--paper);border:1px dashed var(--moss);text-align:center;border-radius:3px;gap:6px;padding:20px;display:grid}.file-dropzone strong{color:var(--moss-dark)}.file-dropzone span,.file-dropzone small{color:var(--quiet)}.file-dropzone.is-dragging{background:var(--moss-pale);border-style:solid}.upload-progress{color:var(--quiet);gap:5px;font-size:.72rem;display:grid}.import-hint-card{border-left:3px solid var(--line);padding:15px}.trend-hero{grid-template-columns:minmax(0,1fr) 210px;align-items:end;gap:28px;display:grid}.trend-hero h2{max-width:760px;font-family:var(--serif);letter-spacing:-.045em;font-size:clamp(2rem,4vw,3.3rem);font-weight:400;line-height:1.04}.trend-year-field{align-self:end}.stats-grid{border:1px solid var(--hairline-strong);background:var(--hairline-strong);grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;display:grid}.stats-grid .stat-card{min-height:140px}.trend-category-stack{gap:15px;display:grid}.trend-category-card{padding:20px}.trend-category-card-head{border-bottom:1px solid var(--hairline);justify-content:space-between;align-items:start;gap:16px;margin-bottom:12px;padding-bottom:14px;display:flex}.trend-category-meta{text-align:right}.trend-category-meta span{color:var(--quiet);margin-top:4px;font-size:.7rem;font-weight:700;display:block}.empty-state,.loading-panel{background:var(--paper);border-style:dashed;justify-items:start;gap:8px;padding:30px;display:grid}.empty-state p{max-width:480px;color:var(--quiet)}.loading-panel{min-height:180px;color:var(--quiet);place-items:center}@media (width<=900px){.daily-hero,.budget-dashboard,.content-grid{grid-template-columns:1fr}.content-grid>.span-2{grid-column:auto}.trip-hero{grid-template-columns:1fr}.trip-hero-total{border-top:1px solid var(--line);border-left:0;padding:16px 0 0}}@media (width<=1100px){.daily-hero{grid-template-columns:1fr}.expense-filter-grid:has(>.ghost-button){grid-template-columns:repeat(2,minmax(0,1fr))}.expense-filter-grid:has(>.ghost-button)>.field:nth-child(3){grid-column:1/-1}.expense-filter-grid:has(>.ghost-button)>.ghost-button{justify-self:start}.table-scroll{overflow:visible}.summary-table,.summary-table tbody{white-space:normal;width:100%;display:grid}.summary-table thead{display:none}.summary-table tbody{gap:10px}.summary-table tr{border:1px solid var(--hairline);background:#ffffff57;grid-template-columns:repeat(2,minmax(0,1fr));display:grid;overflow:hidden}.summary-table td{border:0;gap:3px;min-width:0;padding:10px 12px;display:grid}.summary-table td:before{content:attr(data-label);color:var(--quiet);font-size:.64rem;font-weight:800}.summary-table td:first-child{color:var(--moss-dark);background:var(--moss-pale);grid-column:1/-1;padding-block:9px;font-size:.86rem;font-weight:800}.summary-table td:first-child:before{display:none}}@media (width<=719px){.balance-summary-content{grid-template-columns:1fr;gap:24px}.balance-summary-content:before{display:none}.balance-summary-totals{border-bottom:1px solid var(--hairline-strong);grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:24px;padding-bottom:18px;display:grid}.balance-summary-totals>div+div{border-left:1px solid var(--hairline);padding-left:16px}.balance-summary-totals span{color:var(--quiet);font-size:.72rem;display:block}.balance-summary-totals strong{color:var(--copper-dark);font-family:var(--serif);margin-top:6px;font-size:1.6rem;font-weight:400;display:block}.balance-summary-totals>div+div strong{color:var(--moss-dark)}body{font-size:14px}body:has(.ledger-tech){font-size:var(--text-body-size)}.app-shell{padding:16px 15px calc(96px + env(safe-area-inset-bottom))}.app-shell:has(.ledger-tech){padding-inline:var(--layout-gutter)}.app-main{padding-top:23px}.topbar{align-items:start;gap:17px;padding-top:10px;padding-bottom:15px;overflow:visible}.brand-kicker{display:none}.brand-wordmark img{width:clamp(11.25rem,48vw,12.5rem)}.brand-tagline{margin-top:4px;font-size:.65rem}.top-nav{display:none}.bottom-nav{z-index:15;left:50%;bottom:max(13px, env(safe-area-inset-bottom));background:var(--surface);border:var(--border-default);width:min(100vw - 28px,430px);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;grid-template-columns:repeat(3,minmax(0,1fr));padding:6px;display:grid;position:fixed;transform:translate(-50%)}.bottom-link{min-height:47px;color:var(--quiet);border-radius:3px;place-items:center;gap:3px;font-size:.64rem;font-weight:800;display:grid}.bottom-link.is-active{color:var(--moss-dark);background:var(--moss-pale)}.nav-glyph{width:18px;height:18px}.page-stack{gap:19px}.hero-panel,.card{padding:20px}.daily-hero{gap:23px}.hero-panel:after{bottom:-195px;right:-175px}.hero-stats-grid,.stats-grid{grid-template-columns:1fr;gap:1px}.hero-stats-grid .comparison-card{grid-column:1}.hero-stats-grid>.stat-card:not(.summary-balance-card){border-right:0;border-bottom:1px solid var(--hairline)}.hero-stats-grid>.comparison-card{border-bottom:0!important}.stat-card{min-height:auto;padding:16px}.stat-card strong{font-size:1.85rem}.stat-split-3{grid-template-columns:repeat(3,minmax(0,1fr))}.summary-balance-card .stat-split>div{padding-inline:10px}.summary-balance-card .stat-split>div:first-child{padding-left:0}.summary-balance-card .stat-split>div:last-child{padding-right:0}.summary-balance-card small{letter-spacing:-.02em;font-size:.67rem}.stat-split strong,.comparison-grid strong{font-size:1.27rem}.hero-topline{align-items:start}.hero-topline-actions{gap:5px}.hero-topline .ghost-button{padding:6px 7px}:is(.field-grid,.date-category-grid,.amount-entry-grid,.trip-currency-grid,.expense-filter-grid,.expense-filter-grid:has(>.ghost-button)){grid-template-columns:1fr}.trip-expense-form .trip-expense-paired-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.hero-quick-form .field-grid{grid-template-columns:1fr}.hero-quick-form .date-category-grid>.field{width:100%}.inline-summary-stack{grid-template-columns:1fr 1fr}.section-heading{gap:12px;margin-bottom:17px;display:grid}.section-actions{justify-content:start}.section-heading h2{font-size:1.32rem}.content-grid,.budget-dashboard{gap:16px}.card{padding:18px}.category-spending-panel,.chart-card{padding:15px}.category-spending-panel-head,.chart-card-head{display:grid}.category-spending-row-main{grid-template-columns:max-content minmax(0,1fr);align-items:center;display:grid}.category-spending-row-main>.category-pill{white-space:nowrap;align-self:center}.category-spending-metrics{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;min-width:0}.category-spending-metrics>div{padding:7px 10px}.category-spending-metrics>div:nth-child(odd){border-left:0;padding-left:0}.category-spending-metrics>div:nth-child(n+3){border-top:1px solid color-mix(in srgb, var(--hairline) 82%, transparent)}.expense-item{flex-direction:column;align-items:start;gap:11px}.ledger-tech .expense-item{align-items:stretch}.ledger-tech .expense-item .expense-main{width:100%}.ledger-tech .money-row{flex-wrap:nowrap;justify-content:flex-end;width:100%}.expense-item .inline-actions{justify-content:stretch;width:100%}.expense-item .inline-actions .ghost-button{flex:1}.expense-list{max-height:none}.trip-grid{grid-template-columns:1fr}.trip-cover{height:205px}.trip-card-body{padding:17px}.trip-card-actions{width:100%}.trip-card-actions>.primary-button{flex:1}.fab{min-height:42px;bottom:86px;right:20px}.drawer-backdrop,.trip-delete-backdrop,.confirm-backdrop{align-items:end;padding:0}.drawer{border-width:1px 0 0;width:100%;max-height:min(86dvh,760px);padding:21px}.trip-delete-dialog,.confirm-dialog{border-width:1px 0 0;width:100%;padding:23px}.trip-hero{gap:17px;padding:22px}.trip-hero h2,.trend-hero h2{font-size:2.15rem}.member-form{flex-direction:column}.trend-hero{grid-template-columns:1fr;gap:19px}.trend-year-field{width:100%}.trend-category-card{padding:16px}.trend-category-card-head{gap:11px}.category-manager-item{flex-direction:column;align-items:start}.category-manager-actions{justify-content:start}.form-actions{justify-content:stretch}.form-actions .primary-button,.form-actions .ghost-button{flex:1}}@media (width<=390px){.app-shell{padding-inline:12px}.hero-panel,.card{padding:17px}.hero-topline{display:grid}.hero-topline-actions{justify-content:start}.stat-split-3{grid-template-columns:1fr}.stat-card.accent{min-height:195px}.share-row{grid-template-columns:minmax(0,1fr) minmax(104px,.72fr);gap:9px}}.app-shell:has(.ledger-tech){background:var(--midnight)}.ledger-tech .daily-overview-bay{background:var(--glass-fill);border:var(--border-default);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(20px)saturate(1.2);box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.ledger-tech .daily-overview-bay:before{content:"";pointer-events:none;z-index:0;filter:blur(2px);background:radial-gradient(55% 80% at 18% 40%,#8b5cf659,#0000 68%),radial-gradient(50% 70% at 82% 30%,#2dd4bf38,#0000 70%);height:70%;position:absolute;inset:-40% -20% auto}.ledger-tech .daily-overview-bay>*{z-index:1;position:relative}.ledger-tech .card,.ledger-tech .hero-quick-form,.ledger-tech .category-spending-panel,.ledger-tech .chart-card,.ledger-tech .trend-category-card,.ledger-tech .trip-card,.ledger-tech .hero-panel.trend-hero,.ledger-tech .trips-card-section,.ledger-tech .stats-grid .stat-card,.ledger-tech .drawer,.ledger-tech .confirm-dialog,.ledger-tech .trip-delete-dialog{background:var(--glass-fill);border:var(--border-default);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(18px)saturate(1.15);box-shadow:var(--shadow-sm)}.ledger-tech .hero-stats-grid{border-color:var(--glass-border);border-radius:var(--radius-md);background:0 0}.ledger-tech .hero-stats-grid>.stat-card:not(.summary-balance-card):not(.comparison-card) .progress-fill:not(.is-danger){background:var(--budget-gradient)}.ledger-tech .hero-stats-grid>.stat-card:not(.summary-balance-card):not(.comparison-card) .progress-fill.is-danger{background:linear-gradient(90deg, var(--violet) 0%, var(--danger) 100%)}.ledger-tech .stat-card:has(.progress-fill.is-danger)>p{color:var(--danger-soft)}.ledger-tech .category-spending-metrics>div:last-child.budget-metric-alert strong{color:var(--danger-soft)}.ledger-tech .hero-form-submit .primary-button{color:var(--on-light)!important;background:#fff!important;border:1px solid #ffffff59!important;font-weight:600!important;box-shadow:0 10px 30px #00000047!important}.ledger-tech .hero-form-submit .primary-button:hover{transform:translateY(-1px);background:#f8fafc!important;border-color:#ffffff8c!important}:is(.app-shell:has(.ledger-tech) .nav-pill.is-active,.app-shell:has(.ledger-tech) .bottom-link.is-active){border:1px solid color-mix(in srgb, var(--violet) 35%, transparent);color:var(--text)!important;background:color-mix(in srgb, var(--violet) 22%, transparent)!important}.app-shell:has(.ledger-tech) .brand-mark{color:var(--text);background:linear-gradient(135deg, color-mix(in srgb, var(--violet) 85%, #000), color-mix(in srgb, var(--teal) 70%, #000));border:1px solid var(--glass-border);font-family:var(--font-mono);font-size:.72rem;font-weight:500}.ledger-tech .summary-balance-card .stat-split>div:nth-child(2) strong{color:var(--violet-soft)}.ledger-tech .summary-balance-card .stat-split>div:nth-child(3) strong{color:var(--teal-soft)}.ledger-tech .summary-balance-card .stat-split strong,.ledger-tech .summary-balance-card .stat-split .balance-summary-trigger strong{font-size:var(--text-figures-size);margin-top:0;font-weight:500;line-height:1.15}.ledger-tech .comparison-grid>div{grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:3px 12px;display:grid}.ledger-tech .comparison-grid small{grid-area:1/1;align-self:start;margin-top:0}.ledger-tech .comparison-grid strong{text-align:right;white-space:nowrap;font-size:var(--text-figures-size);grid-area:2/2;place-self:end;margin-top:0;font-weight:500;line-height:1.15}.ledger-tech .comparison-grid p{grid-area:2/1;align-self:end;min-width:0;margin-top:0;margin-bottom:0}.ledger-tech .comparison-grid>div{min-width:0;padding-inline:12px}.ledger-tech .comparison-grid>div:first-child{padding-left:0}.ledger-tech .comparison-grid small,.ledger-tech .comparison-grid p{white-space:nowrap;overflow-wrap:normal;word-break:keep-all}@media (width>=720px){.ledger-tech .summary-balance-card .stat-split{align-items:stretch}.ledger-tech .summary-balance-card .stat-split>div{flex-direction:column;justify-content:flex-start;gap:8px;min-height:76px;padding-block:2px 0;padding-inline:18px;display:flex}.ledger-tech .summary-balance-card .stat-split>div:first-child{padding-left:0}.ledger-tech .summary-balance-card .stat-split>div .balance-summary-trigger{text-align:left;flex-direction:column;flex:auto;justify-content:space-between;gap:8px;width:100%;min-height:100%;display:flex}.ledger-tech .summary-balance-card .stat-split strong,.ledger-tech .summary-balance-card .stat-split .balance-summary-trigger strong{text-align:right;align-self:stretch;width:100%;margin-top:auto}.ledger-tech .comparison-grid>div{grid-template-rows:auto auto auto;grid-template-columns:minmax(0,1fr);align-items:stretch;gap:2px 0}.ledger-tech .comparison-grid small{grid-area:1/1;align-self:start}.ledger-tech .comparison-grid p{grid-area:2/1;align-self:start}.ledger-tech .comparison-grid strong{grid-area:3/1;place-self:end;margin-top:2px}.ledger-tech .hero-stats-grid>.stat-card:not(.summary-balance-card):not(.comparison-card)>p{white-space:nowrap;overflow-wrap:normal}}.ledger-tech .stat-card strong,.ledger-tech .comparison-grid strong,.ledger-tech .summary-balance-card .stat-split strong,.ledger-tech .category-spending-metrics strong,.ledger-tech .category-spending-summary strong,.ledger-tech .trend-category-meta strong,.ledger-tech .trip-hero-total strong{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.ledger-tech .field input,.ledger-tech .field textarea,.ledger-tech .member-form input,.ledger-tech .share-row input{color:var(--text);background:color-mix(in srgb, var(--midnight) 72%, var(--surface));border-color:var(--glass-border)}.ledger-tech .field select{color:var(--text);background-color:color-mix(in srgb, var(--midnight) 72%, var(--surface));border-color:var(--glass-border)}.ledger-tech .field input:focus,.ledger-tech .field select:focus,.ledger-tech .field textarea:focus{border-color:color-mix(in srgb, var(--violet) 55%, var(--glass-border));box-shadow:0 0 0 3px color-mix(in srgb, var(--violet) 28%, transparent)}.ledger-tech .primary-button:focus-visible,.ledger-tech .ghost-button:focus-visible,.ledger-tech .nav-pill:focus-visible,.ledger-tech .bottom-link:focus-visible,.ledger-tech .import-button:focus-visible{outline:3px solid color-mix(in srgb, var(--violet) 55%, transparent);outline-offset:3px}@media (prefers-reduced-motion:reduce){.ledger-tech .daily-overview-bay:before{filter:none}.ledger-tech .hero-form-submit .primary-button:hover{transform:none}}@media (width<=719px){.ledger-tech .bottom-nav{background:color-mix(in srgb, var(--glass-fill) 92%, var(--midnight));border:var(--border-default);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(18px);box-shadow:var(--shadow-lg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.app-shell:has(.ledger-tech) .brand-kicker{color:var(--etoupe-muted);letter-spacing:.08em;font-weight:400}.app-shell:has(.ledger-tech) .brand-tagline{color:var(--text-muted);letter-spacing:.02em;font-size:.8125rem}.ledger-tech .summary-balance-card .stat-split strong,.ledger-tech .comparison-grid strong,.ledger-tech .stat-card>strong,.ledger-tech .category-spending-metrics strong,.ledger-tech .category-spending-summary strong,.ledger-tech .trend-category-meta strong,.ledger-tech .trip-hero-total strong,.ledger-tech .balance-summary-heading strong,.ledger-tech .balance-summary-item>strong{text-align:right;font-variant-numeric:tabular-nums}.ledger-tech .hero-stats-grid .stat-card>strong,.ledger-tech .summary-balance-card .stat-split strong,.ledger-tech .comparison-grid strong{white-space:nowrap}.ledger-tech .hero-stats-grid>.stat-card:not(.summary-balance-card):not(.comparison-card)>strong{margin-bottom:10px}.ledger-tech .hero-stats-grid>.stat-card:not(.summary-balance-card):not(.comparison-card) .progress-track{margin-top:0}.ledger-tech .balance-summary-heading strong,.ledger-tech .balance-summary-section+.balance-summary-section .balance-summary-heading strong,.ledger-tech .balance-summary-totals strong,.ledger-tech .balance-summary-totals>div+div strong{color:var(--etoupe);font-family:var(--font-brand);font-weight:500}:is(.app-shell:has(.ledger-tech) .primary-button,.app-shell:has(.ledger-tech) .month-shift-button){color:var(--etoupe);border:1px solid var(--line);box-shadow:none;background:0 0;font-weight:400}:is(.app-shell:has(.ledger-tech) .primary-button:hover,.app-shell:has(.ledger-tech) .month-shift-button:hover,.app-shell:has(.ledger-tech) .fab:hover){color:var(--etoupe);background:var(--surface);border-color:var(--etoupe-muted);transform:none}.app-shell:has(.ledger-tech) .fab{color:var(--etoupe);background:var(--surface);border:1px solid var(--line);box-shadow:none;font-weight:400}.app-shell:has(.ledger-tech) .hero-quick-form .hero-form-submit .primary-button{color:var(--on-orange);background:var(--orange);border-color:#0000;font-weight:500}.app-shell:has(.ledger-tech) .hero-quick-form .hero-form-submit .primary-button:hover{color:var(--on-orange);background:var(--orange);border-color:#0000}@media (width<=1100px){.ledger-tech .summary-table tr{background:var(--surface);border:1px solid var(--line)}.ledger-tech .summary-table td:first-child{color:var(--etoupe);background:var(--night);font-weight:500}}@media (width<=719px){.ledger-tech .hero-copy{gap:12px}.ledger-tech .hero-topline{align-items:center;display:flex}.ledger-tech .hero-topline .ghost-button{min-height:36px;padding:6px 8px}.ledger-tech .hero-stats-grid>.stat-card,.ledger-tech .hero-stats-grid>.stat-card:not(.summary-balance-card),.ledger-tech .stat-card.accent,.ledger-tech .summary-balance-card{min-height:0}.ledger-tech .hero-stats-grid>.stat-card{padding:12px 14px}.ledger-tech .stat-card>strong{font-size:var(--text-figures-size);margin-top:4px}.ledger-tech .stat-split-3{grid-template-columns:1fr}.ledger-tech .summary-balance-card small,.ledger-tech .stat-card p{white-space:normal;overflow-wrap:anywhere}.ledger-tech .comparison-grid p,.ledger-tech .comparison-grid small{white-space:nowrap;overflow-wrap:normal;word-break:keep-all}.ledger-tech .summary-balance-card .stat-split{--summary-row-padding:10px;gap:0;margin-top:8px}.ledger-tech .summary-balance-card .stat-split>div{min-height:44px;padding-block:var(--summary-row-padding);box-sizing:border-box;border-left:0;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;column-gap:12px;padding-inline:0;display:grid}.ledger-tech .summary-balance-card .stat-split>div+div{border-top:1px solid var(--line);margin-top:0}.ledger-tech .summary-balance-card .stat-split strong,.ledger-tech .summary-balance-card .stat-split .balance-summary-trigger strong{text-align:right;white-space:nowrap;font-size:clamp(.95rem, 4.15vw, var(--text-figures-size));grid-area:1/2;margin-top:0;font-weight:500;line-height:1.15}.ledger-tech .summary-balance-card .stat-split>div>small{white-space:normal;overflow-wrap:anywhere;grid-area:1/1;min-width:0}.ledger-tech .summary-balance-card .stat-split>div .balance-summary-trigger{text-align:left;grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;column-gap:12px;width:100%;padding:0;display:grid}.ledger-tech .summary-balance-card .stat-split>div .balance-summary-trigger small{white-space:normal;overflow-wrap:anywhere;grid-area:1/1;min-width:0}.ledger-tech .summary-balance-card .stat-split>div .balance-summary-trigger{align-content:center;min-height:100%}.ledger-tech .comparison-grid{--summary-row-padding:10px;grid-template-columns:1fr;gap:0;margin-top:8px}.ledger-tech .comparison-grid>div{min-width:0;min-height:52px;padding-block:var(--summary-row-padding);box-sizing:border-box;border-left:0;padding-inline:0}.ledger-tech .comparison-grid>div+div{border-top:1px solid var(--line);border-left:0;margin-top:0}.ledger-tech .comparison-grid small{white-space:nowrap;min-width:0}.ledger-tech .comparison-grid p{white-space:nowrap;overflow-wrap:normal;word-break:keep-all}.ledger-tech .comparison-grid strong{font-size:clamp(.95rem, 4.15vw, var(--text-figures-size))}.app-shell:has(.ledger-tech) .bottom-nav{background:var(--night);border-color:var(--line)}}@media (width<=390px){.ledger-tech .stat-card.accent,.ledger-tech .summary-balance-card{min-height:0}}@media (width>=720px){.ledger-tech .hero-stats-grid{grid-template-columns:minmax(0,1.28fr) minmax(0,1fr);container:hero-stats/inline-size}.ledger-tech .summary-balance-card{grid-column:1/-1}.ledger-tech .hero-stats-grid>.stat-card:not(.summary-balance-card):not(.comparison-card){grid-column:1;min-width:0}.ledger-tech .hero-stats-grid>.stat-card.comparison-card{flex-direction:column;grid-column:2;min-width:0;display:flex}@container hero-stats (width<=620px){.ledger-tech .hero-stats-grid{grid-template-columns:1fr}.ledger-tech .hero-stats-grid>.stat-card:not(.summary-balance-card):not(.comparison-card),.ledger-tech .hero-stats-grid>.stat-card.comparison-card{grid-column:1/-1}.ledger-tech .hero-stats-grid>.stat-card:not(.summary-balance-card):not(.comparison-card){border-right:0;border-bottom:1px solid var(--line)}}.ledger-tech .hero-stats-grid>.stat-card:has(.progress-track){flex-direction:column;align-items:stretch;gap:8px;display:flex}.ledger-tech .hero-stats-grid>.stat-card:has(.progress-track)>span{width:100%;min-width:0;max-width:100%}.ledger-tech .hero-stats-grid>.stat-card:has(.progress-track)>strong{width:100%;min-width:0;max-width:100%}.ledger-tech .hero-stats-grid>.stat-card:has(.progress-track)>.progress-track{width:100%;min-width:0;max-width:100%}.ledger-tech .hero-stats-grid>.stat-card:has(.progress-track)>p{width:100%;min-width:0;max-width:100%}.ledger-tech .hero-stats-grid>.stat-card:has(.progress-track)>strong{margin-top:9px;margin-bottom:0}.ledger-tech .hero-stats-grid>.stat-card:has(.progress-track)>p{white-space:nowrap;margin-top:0;line-height:1.35}.ledger-tech .hero-stats-grid>.stat-card.comparison-card>span{white-space:nowrap}.ledger-tech .hero-stats-grid>.stat-card.comparison-card .comparison-grid{margin-top:auto}.ledger-tech .hero-stats-grid>.stat-card.comparison-card .comparison-grid strong{text-align:right}.ledger-tech .hero-stats-grid>.stat-card.comparison-card .comparison-grid>div{padding-inline:10px}.ledger-tech .hero-stats-grid>.stat-card.comparison-card .comparison-grid>div:first-child{padding-left:0}.ledger-tech .hero-stats-grid>.stat-card.comparison-card .comparison-grid p,.ledger-tech .hero-stats-grid>.stat-card.comparison-card .comparison-grid small{white-space:nowrap}.ledger-tech .expense-item{grid-template-rows:auto;grid-template-columns:minmax(0,1fr) auto auto;align-items:stretch;gap:0 18px;min-height:auto;padding-block:14px;display:grid}.ledger-tech .expense-item .expense-main{grid-area:1/1/auto/3;grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr) auto;gap:6px 18px;width:auto;min-width:0;display:grid}.ledger-tech .expense-meta{grid-area:1/1/auto/-1;align-self:center;margin-top:0}.ledger-tech .expense-main>strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;line-height:var(--leading-body);grid-area:2/1;align-self:baseline;margin-top:0;overflow:hidden}.ledger-tech .expense-main .money-row{box-sizing:border-box;text-align:right;white-space:nowrap;width:auto;max-width:100%;line-height:var(--leading-body);flex-wrap:nowrap;grid-area:2/2;justify-content:flex-end;align-self:baseline}.ledger-tech .expense-item>.inline-actions{grid-area:1/3;align-self:center}}@media (width<=719px){.ledger-tech .expense-item{align-items:stretch}.ledger-tech .expense-item .expense-main{gap:6px;width:100%;min-width:0;display:grid}.ledger-tech .expense-meta{flex-wrap:nowrap;align-items:center;gap:6px;width:100%;min-width:0;display:flex}.ledger-tech .expense-meta .date-chip,.ledger-tech .expense-meta .category-pill{flex:none}.ledger-tech .expense-meta .subtle-chip{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:0;max-width:100%;margin-left:auto;overflow:hidden}.ledger-tech .expense-main .money-row{box-sizing:border-box;flex-wrap:nowrap;justify-content:flex-end;align-self:stretch;width:100%;max-width:100%;padding-right:0;display:flex}}
