:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#f2f4ed;--surface:#ffffffd1;--ink:#17241d;--muted:#617068;--line:#17241d1f;--accent:#176b4d;--accent-soft:#d8efe4;--warning:#a64b2a;--warning-soft:#f7e2d8}*{box-sizing:border-box}html{background:radial-gradient(circle at 15% 5%, #beddcabf, transparent 35rem), linear-gradient(145deg, #f7f8f3 0%, var(--background) 100%);min-height:100%}body{min-height:100vh;color:var(--ink);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}main{width:min(1040px,100% - 40px);margin:0 auto;padding:88px 0 64px}.hero{max-width:780px}.eyebrow,.status-label{color:var(--accent);letter-spacing:.12em;text-transform:uppercase;margin:0 0 12px;font-size:.78rem;font-weight:760}h1,h2,p{margin-top:0}h1{letter-spacing:-.055em;max-width:760px;margin-bottom:22px;font-family:Georgia,Times New Roman,serif;font-size:clamp(3.1rem,8vw,6.5rem);font-weight:500;line-height:.94}.intro{max-width:620px;color:var(--muted);font-size:clamp(1.05rem,2.2vw,1.3rem);line-height:1.6}.status-card{border:1px solid var(--line);background:var(--surface);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:24px;grid-template-columns:auto 1fr;align-items:start;gap:20px;margin:64px 0 32px;padding:28px;display:grid;box-shadow:0 20px 60px #1f382b14}.status-card.positive{border-color:#176b4d40}.status-card.negative{border-color:#a64b2a40}.status-indicator{background:var(--warning);width:14px;height:14px;box-shadow:0 0 0 7px var(--warning-soft);border-radius:50%;margin-top:5px}.positive .status-indicator{background:var(--accent);box-shadow:0 0 0 7px var(--accent-soft)}.status-card h2{margin-bottom:8px;font-size:1.55rem}.status-card p:last-child{color:var(--muted);margin-bottom:0}.roadmap{grid-template-columns:minmax(220px,.75fr) 1fr;gap:48px;padding:40px 0 0;display:grid}.roadmap h2{letter-spacing:-.03em;max-width:350px;font-family:Georgia,Times New Roman,serif;font-size:2.15rem;font-weight:500;line-height:1.1}.roadmap ul{margin:0;padding:0;list-style:none}.roadmap li{border-bottom:1px solid var(--line);grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:18px 0;font-weight:650;display:grid}.roadmap li span{color:var(--accent)}.module-link,.back-link{color:var(--accent);text-underline-offset:4px;text-decoration-thickness:1px}.module-link:hover,.back-link:hover{text-decoration-thickness:2px}.roadmap small{color:var(--muted);font-size:.75rem;font-weight:500}.category-page{padding-top:48px}.back-link{margin-bottom:72px;font-size:.9rem;font-weight:650;display:inline-block}.category-intro{max-width:760px;margin-bottom:52px}.category-intro h1{font-size:clamp(3.5rem,7vw,6rem)}.category-groups{gap:28px;display:grid}.category-group{border:1px solid var(--line);background:var(--surface);border-radius:24px;overflow:hidden;box-shadow:0 16px 50px #1f382b0f}.category-group>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:start;gap:24px;padding:24px 28px;display:flex}.category-group h2{margin:0;font-family:Georgia,Times New Roman,serif;font-size:1.8rem;font-weight:500}.category-type{color:var(--accent);letter-spacing:.1em;text-transform:uppercase;margin-bottom:5px;font-size:.72rem;font-weight:760}.category-count{background:var(--accent-soft);color:var(--accent);border-radius:999px;flex:none;padding:8px 12px;font-size:.76rem;font-weight:700}.category-group ul{margin:0;padding:0 28px;list-style:none}.category-group li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;padding:18px 0;display:flex}.category-group li:last-child{border-bottom:0}.category-group li>div{gap:4px;display:grid}.category-group small{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.68rem}.category-group button{border:1px solid var(--line);min-width:110px;color:var(--ink);cursor:pointer;font:inherit;background:0 0;border-radius:10px;padding:9px 13px;font-size:.78rem;font-weight:700}.category-group button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.category-group button:disabled{cursor:wait;opacity:.55}.category-inactive strong,.category-inactive small{opacity:.45;text-decoration:line-through}.category-error,.category-unavailable{background:var(--warning-soft);color:var(--warning);border:1px solid #a64b2a40;border-radius:16px;margin-bottom:28px;padding:20px 24px}.category-unavailable h2{margin-bottom:8px}.category-unavailable p{margin-bottom:0}.transaction-page{width:min(1240px,100% - 40px);padding-top:48px}.transaction-intro{max-width:780px;margin-bottom:48px}.transaction-intro h1{font-size:clamp(3.5rem,7vw,6rem)}.transaction-workspace{gap:28px;display:grid}.transaction-panel{border:1px solid var(--line);background:var(--surface);border-radius:24px;padding:28px;box-shadow:0 16px 50px #1f382b0f}.panel-heading,.split-heading{justify-content:space-between;align-items:start;gap:20px;display:flex}.panel-heading{margin-bottom:24px}.panel-heading h2,.empty-account h2{margin-bottom:0;font-family:Georgia,Times New Roman,serif;font-size:2rem;font-weight:500}.transaction-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.transaction-form label,.empty-account label{color:var(--muted);gap:7px;font-size:.78rem;font-weight:700;display:grid}.transaction-form input,.transaction-form select,.transaction-filters input,.transaction-filters select,.empty-account input{border:1px solid var(--line);width:100%;min-height:44px;color:var(--ink);font:inherit;background:#ffffffd1;border-radius:11px;padding:10px 12px}.wide-field{grid-column:1/-1}.split-editor{background:#d8efe473;border-radius:16px;gap:12px;padding:18px;display:grid}.split-heading>div{gap:4px;display:grid}.split-heading small{color:var(--muted)}.split-row{grid-template-columns:1.5fr 1fr .65fr auto;gap:9px;display:grid}.primary-button,.secondary-button,.icon-button,.row-actions button,.empty-account button{border:1px solid var(--line);cursor:pointer;font:inherit;border-radius:10px;padding:10px 14px;font-size:.8rem;font-weight:750}.primary-button,.empty-account button{border-color:var(--accent);background:var(--accent);color:#fff}.secondary-button,.icon-button,.row-actions button{color:var(--ink);background:0 0}.icon-button{min-width:44px;font-size:1.2rem}button:disabled{cursor:wait;opacity:.55}.form-error{color:var(--warning);margin:18px 0 0;font-weight:650}.transaction-filters{grid-template-columns:minmax(220px,1fr) 180px auto auto;align-items:center;gap:12px;margin-bottom:22px;display:grid}.bulk-categorization{background:#d8efe461;border:1px solid #2f6f5233;border-radius:14px;grid-template-columns:auto minmax(120px,auto) minmax(170px,1fr) minmax(150px,.7fr) auto;align-items:center;gap:12px;margin-bottom:10px;padding:14px;display:grid}.bulk-categorization select{border:1px solid var(--line);min-height:40px;color:var(--ink);font:inherit;background:#ffffffd1;border-radius:10px;padding:8px 10px}.bulk-categorization strong{font-size:.82rem}.checkbox-label{color:var(--muted);align-items:center;gap:8px;font-size:.82rem;font-weight:650;display:flex}.checkbox-label input{width:auto;min-height:auto}.transaction-row{border-bottom:1px solid var(--line);grid-template-columns:auto 100px minmax(180px,1fr) auto auto;align-items:center;gap:18px;padding:18px 0;display:grid}.transaction-row.selected{background:#d8efe461;border-radius:12px;margin-inline:-10px;padding-inline:10px}.row-selection{width:17px;height:17px;accent-color:var(--accent)}.transaction-date,.transaction-copy span{color:var(--muted);font-size:.8rem}.transaction-copy{gap:4px;display:grid}.amount-positive{color:var(--accent)}.amount-negative{color:var(--ink)}.row-actions{gap:6px;display:flex}.row-actions .danger-button{color:var(--warning)}.empty-list{color:var(--muted);padding:30px 0}.pagination{justify-content:center;align-items:center;gap:16px;padding-top:22px;display:flex}.empty-account form{align-items:end;gap:12px;max-width:620px;margin-top:24px;display:flex}.empty-account label{flex:1}@media (max-width:760px){.transaction-form,.transaction-filters,.bulk-categorization,.transaction-row,.split-row{grid-template-columns:1fr}.row-actions{justify-content:end}.wide-field{grid-column:auto}}.import-page{width:min(1180px,100% - 40px);padding-top:48px}.import-workspace{gap:28px;display:grid}.import-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.import-form label,.mapping-grid label{color:var(--muted);gap:7px;font-size:.78rem;font-weight:700;display:grid}.import-form input,.import-form select{border:1px solid var(--line);min-height:44px;color:var(--ink);font:inherit;background:#fff;border-radius:11px;padding:10px 12px}.mapping-grid{background:#d8efe473;border-radius:16px;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:18px;display:grid}.format-detected{background:var(--accent-soft);color:var(--accent);border-radius:14px;margin:0;padding:16px 18px;font-weight:700}.preview-valid,.preview-errors,.preview-duplicates,.preview-possible{border-radius:999px;padding:9px 12px;font-size:.78rem;font-weight:750}.preview-summary{flex-wrap:wrap;justify-content:end;align-items:center;gap:8px;display:flex}.preview-valid{background:var(--accent-soft);color:var(--accent)}.preview-duplicates{color:var(--muted);background:#5b655f1f}.preview-possible{color:#7a5c00;background:#fff2cc}.preview-errors{background:var(--warning-soft);color:var(--warning)}.preview-table{overflow-x:auto}.preview-row{border-bottom:1px solid var(--line);grid-template-columns:55px 110px minmax(180px,1fr) 110px minmax(190px,.8fr) minmax(150px,.6fr);gap:14px;min-width:720px;padding:13px 0;font-size:.82rem;display:grid}.preview-row.invalid,.preview-row.possible_duplicate{color:var(--warning)}.preview-row.duplicate,.preview-row.skipped{color:var(--muted);background:#5b655f0d}.preview-row select{border:1px solid var(--line);min-height:36px;color:var(--ink);font:inherit;background:#fff;border-radius:9px;padding:6px 8px}.confirm-import{width:100%;margin-top:24px}.import-complete{background:var(--accent-soft);color:var(--accent);border-radius:14px;margin:24px 0 0;padding:18px;font-weight:700}.suggestion-page{width:min(1240px,100% - 40px);padding-top:48px}.suggestion-intro{max-width:780px;margin-bottom:48px}.suggestion-intro h1{font-size:clamp(3.5rem,7vw,6rem)}.suggestion-workspace{gap:28px;display:grid}.rule-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.rule-form label{color:var(--muted);gap:7px;font-size:.78rem;font-weight:700;display:grid}.rule-form input,.rule-form select{border:1px solid var(--line);min-height:44px;color:var(--ink);font:inherit;background:#fff;border-radius:11px;padding:10px 12px}.form-notice{background:var(--accent-soft);color:var(--accent);border-radius:12px;margin:0 0 18px;padding:14px 16px;font-weight:700}.suggestion-list,.rule-list{gap:12px;display:grid}.suggestion-card{background:#d8efe447;border:1px solid #176b4d33;border-radius:16px;grid-template-columns:minmax(210px,1fr) auto minmax(150px,.5fr);align-items:center;gap:18px;padding:20px;display:grid}.suggestion-card h3{margin:4px 0}.suggestion-card p,.suggestion-card small{color:var(--muted);margin-bottom:0}.suggestion-target{gap:3px;display:grid}.suggestion-target>span{color:var(--accent);text-transform:uppercase;font-size:.7rem;font-weight:750}.suggestion-explanation{grid-column:1/-2;font-size:.8rem}.suggestion-card-actions{justify-content:end;gap:8px;display:flex}.rule-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(150px,.8fr) minmax(220px,1.2fr) minmax(160px,.8fr) auto auto;align-items:center;gap:16px;padding:14px 0;font-size:.82rem;display:grid}.rule-row>span,.rule-row>small{color:var(--muted)}.report-page{width:min(1240px,100% - 40px);padding-top:48px}.report-intro{max-width:820px;margin-bottom:48px}.report-intro h1{font-size:clamp(3.5rem,7vw,6rem)}.report-navigation{justify-content:space-between;align-items:center;gap:20px;display:flex}.report-workspace{gap:32px;display:grid}.report-filters{grid-template-columns:repeat(3,minmax(160px,1fr)) auto;align-items:end;gap:14px;display:grid}.report-filters label{color:var(--muted);gap:7px;font-size:.78rem;font-weight:700;display:grid}.report-filters input,.report-filters select{border:1px solid var(--line);min-height:44px;color:var(--ink);font:inherit;background:#fff;border-radius:11px;padding:10px 12px}.report-heading{justify-content:space-between;align-items:end;gap:20px;margin-bottom:18px;display:flex}.report-heading h2{text-transform:capitalize;margin-bottom:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(2rem,5vw,3.5rem);font-weight:500}.report-heading>span{color:var(--muted);font-size:.82rem}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.metric-card{border:1px solid var(--line);background:var(--surface);border-radius:20px;gap:8px;min-height:150px;padding:22px;display:grid;box-shadow:0 14px 40px #1f382b0d}.metric-card>span{color:var(--muted);text-transform:uppercase;font-size:.78rem;font-weight:750}.metric-card>strong{align-self:center;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.5rem,3vw,2.25rem);font-weight:500}.metric-card>small{color:var(--muted)}.metric-card.income,.metric-card.balance.positive,.metric-card.comparison.positive{background:#d8efe485;border-color:#176b4d40}.metric-card.expenses,.metric-card.balance.negative,.metric-card.comparison.negative{background:#f7e2d880;border-color:#a64b2a33}.uncategorized-warning{background:var(--warning-soft);border:1px solid #a64b2a3d;border-radius:16px;justify-content:space-between;align-items:center;gap:20px;padding:20px 24px;display:flex}.uncategorized-warning>div{gap:4px;display:grid}.uncategorized-warning span{color:var(--warning);font-size:.82rem}.uncategorized-warning a{color:var(--warning);font-weight:750}.currency-warning{color:var(--muted);margin:-18px 0 0;font-size:.82rem}.report-category-groups{gap:22px;display:grid}.report-category-group{border-bottom:1px solid var(--line);padding-bottom:22px}.report-category-group:last-child{border-bottom:0;padding-bottom:0}.report-category-group>header{justify-content:space-between;align-items:start;gap:20px;margin-bottom:14px;display:flex}.report-category-group>header>div{gap:3px;display:grid}.report-category-group header small{color:var(--muted)}.category-bars{gap:10px;display:grid}.category-bar-row{grid-template-columns:minmax(140px,.7fr) minmax(180px,1.5fr) 120px;align-items:center;gap:14px;font-size:.82rem;display:grid}.category-bar-row>strong{text-align:right}.category-bar-track{background:#17241d14;border-radius:999px;height:10px;overflow:hidden}.category-bar-fill{border-radius:inherit;background:var(--warning);height:100%}.category-bar-fill.income{background:var(--accent)}.category-bar-fill.transfer,.category-bar-fill.neutral{background:var(--muted)}.yearly-report-filters{grid-template-columns:repeat(4,minmax(120px,1fr)) auto;align-items:end;gap:14px;display:grid}.yearly-report-filters label,.month-chart-heading label{color:var(--muted);gap:7px;font-size:.78rem;font-weight:700;display:grid}.yearly-report-filters input,.yearly-report-filters select,.month-chart-heading select{border:1px solid var(--line);min-height:44px;color:var(--ink);font:inherit;background:#fff;border-radius:11px;padding:10px 12px}.yearly-report-filters .trend-filter{grid-column:span 2}.year-comparison-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;display:grid}.year-summary-card{border:1px solid var(--line);background:var(--surface);border-radius:20px;gap:18px;padding:22px;display:grid;box-shadow:0 14px 40px #1f382b0d}.year-summary-card header{justify-content:space-between;align-items:baseline;display:flex}.year-summary-card header strong{font-family:Georgia,Times New Roman,serif;font-size:2.2rem;font-weight:500}.year-summary-card header span,.year-summary-card small{color:var(--muted);font-size:.76rem}.year-summary-card dl{gap:10px;margin:0;display:grid}.year-summary-card dl div{justify-content:space-between;gap:12px;display:flex}.year-summary-card dt{color:var(--muted)}.year-summary-card dd{margin:0;font-weight:750}.positive{color:var(--accent)!important}.negative{color:var(--warning)!important}.month-chart-heading{align-items:end}.month-chart-heading label{min-width:120px}.monthly-column-chart{grid-template-columns:repeat(12,minmax(54px,1fr));gap:10px;min-width:760px;height:310px;padding-top:18px;display:grid;overflow:hidden}.month-column{text-align:center;grid-template-rows:minmax(180px,1fr) auto auto;gap:8px;min-width:0;display:grid}.month-bars{border-bottom:1px solid var(--line);justify-content:center;align-items:end;gap:5px;min-height:180px;display:flex}.month-bar{background:var(--accent);border-radius:7px 7px 2px 2px;width:min(18px,35%);min-height:2px}.month-bar.expenses{background:var(--warning)}.month-column>strong{font-size:.76rem}.month-column>small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.66rem;overflow:hidden}.chart-legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:20px;margin-top:16px;font-size:.74rem;display:flex}.chart-legend span{align-items:center;gap:7px;display:flex}.chart-legend i{background:var(--accent);border-radius:3px;width:10px;height:10px}.chart-legend i.expenses{background:var(--warning)}.trend-years{gap:24px;display:grid}.trend-year{grid-template-columns:70px minmax(720px,1fr);align-items:center;gap:18px;display:grid;overflow-x:auto}.trend-year>strong{font-family:Georgia,Times New Roman,serif;font-size:1.6rem;font-weight:500}.trend-months{grid-template-columns:repeat(12,minmax(42px,1fr));gap:7px;height:130px;display:grid}.trend-month{text-align:center;grid-template-rows:1fr auto;gap:5px;display:grid}.trend-bar-track{border-bottom:1px solid var(--line);justify-content:center;align-items:end;display:flex}.trend-bar{background:var(--warning);border-radius:7px 7px 2px 2px;width:min(24px,55%);min-height:2px}.trend-month span{color:var(--muted);font-size:.66rem}@media (max-width:760px){.import-form,.mapping-grid,.rule-form,.suggestion-card,.rule-row,.report-filters,.yearly-report-filters,.metric-grid,.category-bar-row{grid-template-columns:1fr}.yearly-report-filters .trend-filter,.suggestion-explanation{grid-column:auto}.suggestion-card-actions{justify-content:stretch}.suggestion-card-actions button{flex:1}.report-heading,.uncategorized-warning{flex-direction:column;align-items:flex-start}.category-bar-row>strong{text-align:left}.report-navigation{flex-direction:column;align-items:flex-start}.transaction-panel:has(.monthly-column-chart){overflow-x:auto}.trend-year{grid-template-columns:1fr}}@media (max-width:700px){main{width:min(100% - 28px,1040px);padding-top:56px}.roadmap{grid-template-columns:1fr;gap:12px}.roadmap li{grid-template-columns:auto 1fr}.roadmap small{grid-column:2}.category-group>header,.category-group li{align-items:flex-start}.category-group li{flex-direction:column}}.login-page{place-items:center;min-height:100vh;padding-block:40px;display:grid}.login-card{border:1px solid var(--line);background:var(--surface);border-radius:28px;width:min(520px,100%);padding:clamp(28px,6vw,54px);box-shadow:0 28px 80px #1f382b1f}.login-card h1{margin:10px 0 14px;font-size:clamp(2.8rem,8vw,4.8rem)}.login-card>p:not(.eyebrow),.login-card>small{color:var(--muted)}.login-form{gap:18px;margin:32px 0 20px;display:grid}.login-form label,.user-form label{color:var(--muted);gap:7px;font-size:.78rem;font-weight:700;display:grid}.login-form input,.user-form input,.user-form select{border:1px solid var(--line);min-height:46px;color:var(--ink);font:inherit;background:#fff;border-radius:11px;padding:10px 12px}.auth-status{background:#d8efe466;border:1px solid #176b4d33;border-radius:16px;justify-content:space-between;align-items:center;gap:20px;margin:28px 0;padding:18px 22px;display:flex}.auth-identity{gap:3px;display:grid}.auth-status span,.auth-status small{color:var(--muted);font-size:.76rem}.password-change{color:var(--muted);font-size:.78rem;position:relative}.password-change summary{cursor:pointer;font-weight:700}.password-change form{z-index:2;border:1px solid var(--line);background:var(--surface);border-radius:14px;gap:9px;width:min(320px,80vw);padding:16px;display:grid;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 20px 50px #1f382b26}.password-change input{border:1px solid var(--line);min-height:40px;font:inherit;border-radius:9px;padding:9px 10px}.user-page{width:min(1180px,100% - 40px);padding-top:48px}.user-intro{max-width:820px;margin-bottom:48px}.user-intro h1{font-size:clamp(3.5rem,7vw,6rem)}.user-workspace{gap:28px;display:grid}.user-form{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:18px;display:grid}.security-note{color:var(--muted);margin-top:14px;display:block}.user-list{display:grid}.user-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(180px,1fr) auto auto auto;align-items:center;gap:18px;padding:16px 0;display:grid}.user-row:last-child{border-bottom:0}.user-row.inactive{opacity:.58}.user-row>div{gap:3px;display:grid}.user-row>div span,.user-row>span{color:var(--muted);font-size:.78rem}.role-badge{background:#5b655f1f;border-radius:999px;padding:7px 10px}.role-badge.admin{background:var(--accent-soft);color:var(--accent)}@media (max-width:760px){.auth-status{flex-direction:column;align-items:stretch}.password-change form{left:0;right:auto}.user-form,.user-row{grid-template-columns:1fr}.user-row .secondary-button{justify-self:start}}
