:root {--bg:#faf9f5;--surface:#fff;--ink:#142923;--muted:#71817b;--line:#ecece5;--accent:#008657;--accent-2:#235a4e;--food:#f76c2a;--gas:#008957;--subscription:#2872c3;}
body {background:var(--bg);font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;}
h1,h2,h3 {color:#10221c;letter-spacing:0;}
h2 {font-size:19px;}h3 {font-size:16px;}
.app-header {padding:12px 18px 6px;background:#faf9f5f5;backdrop-filter:blur(16px);border-bottom:0;gap:8px;}
.app-header>div {width:min(720px,100%);padding-right:0;}
.app-header>div:first-child {height:44px;display:flex;align-items:center;justify-content:center;}
.app-header h1 {font-size:19px;text-align:center;font-weight:700;}
.app-header .eyebrow {display:none;}
.header-settings {top:0;right:0;padding:8px;min-height:44px;background:none;border:0;}
.ui-header-back {position:absolute;left:-8px;top:0;display:grid;place-items:center;width:44px;height:44px;background:none;border:0;color:#375e52;}
.ui-header-back svg {width:22px;height:22px;}
.header-periods {display:grid;gap:10px;}
.period-nav {grid-template-columns:44px minmax(0,1fr) 44px;gap:8px;min-height:44px;}
.header-periods .period-nav:has([data-plan-add]) {grid-template-columns:44px minmax(0,1fr) 44px 44px;}
.period-title {font-size:16px;padding:8px;border:0;background:none;color:#142923;}
.period-nav .icon-button {background:none;border:0;border-radius:0;box-shadow:none;color:#61776e;padding:8px;min-height:44px;}
.segmented {background:#efeee9;border:0;border-radius:8px;padding:3px;gap:3px;min-height:40px;}
.segmented button {min-height:36px;background:none;border:0;border-radius:7px;font-size:14px;font-weight:500;padding:6px 10px;color:#142923;}
.segmented button[aria-pressed=true],.segmented button[aria-selected=true],.segmented button.active {background:#26574b;color:#fff;box-shadow:none;}
.ui-mode {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));}
#ui-income-mode {grid-template-columns:repeat(2,minmax(0,1fr));order:-1;}
.ui-category-tabs {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:none;padding:0;gap:5px;}
.ui-category-tabs button {font-size:13px;border-radius:7px;background:#efeee9;}
.ui-category-tabs button[data-list-category=food][aria-pressed=true] {background:#fce1d0;color:#a64718;}
.ui-category-tabs button[data-list-category=gasoline][aria-pressed=true] {background:#def0e5;color:#096940;}
.ui-category-tabs button[data-list-category=subscription][aria-pressed=true] {background:#e0eaf4;color:#2464a2;}
.tabs {grid-template-columns:repeat(6,minmax(0,1fr));gap:0;padding:8px 10px max(8px,env(safe-area-inset-bottom));background:#faf9f5f5;border-top:1px solid var(--line);backdrop-filter:blur(12px);}
.tabs a,.tabs button {display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-height:50px;border:0;background:none;font-size:11px;color:#8a9390;font-weight:500;padding:2px 0;border-radius:0;}
.tabs a svg,.tabs button svg {width:23px;height:23px;}
.tabs a.active {background:none;color:var(--accent);}
.tabs a.active svg {stroke-width:2.5;}
main {width:min(760px,100%);padding:12px 18px 88px;}
.screen.active {gap:18px;}
.screen>h2 {display:none;}
.button {border-radius:8px;font-weight:600;box-shadow:none;min-height:44px;}
.button.primary {background:var(--accent);border-color:var(--accent);box-shadow:none;}
.panel,.receipt-card,.summary-card,.chart {box-shadow:none;border-color:var(--line);border-radius:8px;background:var(--surface);}
.chart {padding:14px;}
.section-band {padding:0;border:0;}
.section-title {align-items:center;}
.section-title a {color:var(--accent);font-size:13px;text-decoration:none;}
.stats-grid>div {box-shadow:none;border:0;border-bottom:1px solid var(--line);background:none;border-radius:0;padding:10px 0;}
.stats-grid dd {font-size:20px;color:var(--ink);}
.meta {font-size:13px;line-height:1.65;}
.ui-details {border-top:1px solid var(--line);padding:10px 0;margin-top:4px;}
.ui-details>summary {min-height:44px;display:flex;align-items:center;gap:8px;font-size:14px;color:#436757;cursor:pointer;font-weight:600;}
.ui-details>summary::before {content:'+';}
.ui-details[open]>summary::before {content:'-';}
.ui-details>div {padding-top:12px;}
.ui-details .segmented {position:static;}
details>summary::-webkit-details-marker {display:none;}
#home {display:none;}
#home.active {display:grid;}
#home>#home-planning,#home>.budget-heading,#home>.home-totals,#home>.card-summary-link {display:none;}
#home>#ui-home-summary {order:0;}
#home>.home-recent {order:1;padding-top:6px;}
#home>#ui-home-details {order:3;}
#home>.reference-summary {order:2;margin:0;background:none;padding:0;font-size:12px;}
#home>#data-status {order:4;}
.ui-home-donut-area {display:grid;grid-template-columns:148px minmax(0,1fr);gap:16px;align-items:center;padding:16px 0 22px;}
.ui-home-donut {width:148px;height:148px;border-radius:50%;display:grid;place-items:center;}
.ui-home-donut>div {width:108px;height:108px;border-radius:50%;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;text-align:center;}
.ui-home-donut span {font-size:12px;}
.ui-home-donut strong {font-size:22px;line-height:1.2;}
.ui-donut-legend {display:grid;gap:16px;font-size:12px;}
.ui-donut-legend>div {display:flex;justify-content:space-between;align-items:center;gap:5px;}
.ui-donut-legend span {display:flex;gap:6px;align-items:center;white-space:nowrap;}
.ui-donut-legend b {width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.ui-donut-legend strong {font-weight:650;white-space:nowrap;}
.ui-category-cards {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;}
.ui-category-card {border:0;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;min-width:0;min-height:144px;padding:14px 6px;}
.ui-category-card svg {width:29px;height:29px;}
.ui-category-card span {font-size:13px;color:#17271f;}
.ui-category-card strong {font-size:19px;color:#15281f;}
.ui-category-card small {font-size:12px;color:#506056;}
.ui-food {background:#fce9db;color:var(--food);}
.ui-gasoline {background:#e6f0e3;color:var(--gas);}
.ui-subscription {background:#e6edf2;color:var(--subscription);}
.ui-other {background:#f0ede5;color:#8b826a;}
.ui-home-links {display:flex;justify-content:space-between;padding-top:14px;gap:12px;}
.ui-home-links a {display:flex;align-items:center;gap:6px;color:#3e6757;font-size:13px;text-decoration:none;min-height:44px;}
.ui-home-links svg {width:16px;height:16px;}
.ui-expense-row {display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:10px;align-items:center;min-height:70px;padding:12px 0;color:#142923;text-decoration:none;border-bottom:1px solid var(--line);list-style:none;}
.ui-expense-icon {width:36px;height:38px;display:grid;place-items:center;border-radius:8px;}
.ui-expense-icon svg {width:27px;height:27px;}
.ui-row-text {min-width:0;display:grid;gap:5px;}
.ui-row-text strong {font-size:14px;font-weight:600;line-height:1.4;}
.ui-category-label {font-size:12px;}
.ui-text-food {color:var(--food);}.ui-text-gasoline {color:var(--gas);}.ui-text-subscription {color:var(--subscription);}.ui-text-other {color:#8b826a;}
.ui-row-amount {font-size:15px;white-space:nowrap;}
.ui-row-date {grid-column:2;grid-row:2;font-size:11px;color:var(--muted);}
.ui-line-list .ui-expense-row {grid-template-columns:36px minmax(0,1fr) auto;gap:4px 9px;}
.ui-line-list .ui-row-text {grid-row:1 / span 2;grid-column:2;}
.ui-line-list .ui-row-date {grid-column:3;grid-row:2;text-align:right;}
.ui-line-list .ui-expense-icon {grid-row:1 / span 2;}
.ui-date-heading {font-size:13px;padding:14px 0 3px;margin:0;color:#25483a;}
.ui-expense-detail {margin:0;padding:0;}
.ui-expense-info {padding:14px;background:#f0f3ed;font-size:13px;line-height:1.7;}
.ui-expense-info .card-actions {margin-top:10px;}
#list>.button {font-size:13px;justify-self:end;min-height:36px;}
#list-count {font-size:12px;}
#ui-list-filters {padding:0;border:0;margin:0;}
#ui-list-filters:not([open]) {display:none;}
#ui-list-filters>summary {display:none;}
#ui-list-filters .filters {margin-bottom:12px;}
#ui-list-tools {display:none;position:absolute;right:-8px;top:0;}
#ui-list-tools button {width:38px;height:44px;background:none;border:0;color:#264a3c;display:grid;place-items:center;}
#ui-list-tools svg {width:20px;height:20px;}
body[data-view=list] #ui-list-tools {display:flex;}
body[data-view=list] .header-settings {display:none;}
#ui-exports>section>h2 {display:none;}
.settings-navigation {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0;}
.settings-navigation .button {flex-direction:column;font-size:13px;}
#scan {gap:18px;}
#scan-form {padding:16px;background:#fff;border:1px solid var(--line);display:flex;flex-direction:column;gap:18px;color:var(--ink);}
#scan-form .file-picker {position:absolute;width:1px;height:1px;overflow:hidden;padding:0;border:0;clip-path:inset(50%);}
.ui-simple-preview {width:100%;max-height:300px;object-fit:contain;border-radius:4px;}
.upload-actions {display:grid;grid-template-columns:minmax(0,1fr);align-items:center;gap:12px;}
#choose-image,#take-photo,#manual-add {width:100%;min-height:48px;height:auto;justify-self:stretch;justify-content:center;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);padding:12px;}
#scan-form>[type=submit] {background:#008657;color:white;}
#scan .upload-note {font-size:11px;color:var(--muted);}
#scan-status {color:var(--muted);}
#receipt-form {background:#fff;border:0;gap:14px;padding:16px;}
#receipt-form label {font-size:13px;color:#436052;}
#receipt-form input,#receipt-form select,#receipt-form textarea {background:#faf9f5;border-color:#e8e8df;}
#income>h2,#subscriptions>h2 {display:none;}
#income-stats,#income-balance {margin:0;}
#ui-income {display:grid;gap:18px;}
.ui-income-plot {display:grid;grid-template-columns:60px minmax(0,1fr);gap:6px;padding:20px 0 10px;}
.ui-chart-axis {display:flex;flex-direction:column;justify-content:space-between;padding-bottom:24px;font-size:10px;color:#6c7e75;}
.ui-income-columns {display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;border-bottom:1px solid var(--line);}
.ui-income-column {display:flex;flex-direction:column;text-align:center;gap:8px;font-size:12px;}
.ui-income-stack {display:flex;height:175px;flex-direction:column-reverse;justify-content:flex-start;background:repeating-linear-gradient(to top,transparent 0,transparent 86px,#e9ece6 86px,#e9ece6 87px);}
.ui-income-stack span {display:block;width:100%;flex-shrink:0;box-shadow:inset 0 1px #fff9;min-height:0;}
.ui-income-hero {background:#e9f1e4;border-radius:8px;padding:22px 18px;display:flex;align-items:center;gap:20px;}
.ui-income-hero>svg {width:47px;height:47px;color:var(--accent);stroke-width:2;flex-shrink:0;}
.ui-income-hero>div {display:flex;flex-direction:column;gap:7px;min-width:0;}
.ui-income-hero span {font-size:13px;}
.ui-income-hero strong {font-size:30px;line-height:1.1;}
.ui-income-hero small {color:var(--accent);font-size:13px;}
.ui-income-breakdown {border:1px solid var(--line);border-radius:8px;padding:0 12px;}
.ui-income-breakdown>div {display:flex;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:1px solid var(--line);font-size:13px;}
.ui-income-breakdown>div:last-child {border:0;}
.ui-income-breakdown span {min-width:0;display:flex;gap:7px;align-items:center;}
.ui-income-breakdown b {width:9px;height:9px;flex-shrink:0;border-radius:2px;}
.ui-income-breakdown strong {white-space:nowrap;}
.ui-income-history {border:1px solid var(--line);border-radius:8px;}
.ui-income-history button {display:grid;grid-template-columns:45px minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;padding:14px 12px;background:none;border:0;border-bottom:1px solid var(--line);font-size:13px;text-align:left;color:var(--ink);}
.ui-income-history button:last-child {border:0;}
.ui-income-history button>span {min-width:0;overflow-wrap:anywhere;}
.ui-subscription-total {padding:24px 12px;background:#eef0e9;text-align:center;border-radius:8px;display:flex;flex-direction:column;gap:8px;}
.ui-subscription-total span {font-size:13px;}
.ui-subscription-total strong {font-size:28px;}
.ui-subscription-list {margin-top:12px;}
.ui-subscription-row {display:grid;grid-template-columns:48px minmax(0,1fr) 44px;gap:12px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line);}
.ui-subscription-icon {width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:#e7eef5;color:#2872c3;}
.ui-subscription-icon svg {width:29px;height:29px;}
.ui-brand-music-2 {background:#e1f4e8;color:#00a36a;}.ui-brand-shopping-bag {background:#fff0df;color:#c57710;}.ui-brand-sparkles {background:#eee8f5;color:#7854a2;}.ui-brand-house {background:#e7f1e6;color:#4e7f52;}.ui-brand-shield-check {background:#fce5e5;color:#bb4d4d;}
.ui-subscription-row>div {display:flex;flex-direction:column;gap:7px;min-width:0;}
.ui-subscription-row strong {font-size:15px;overflow-wrap:anywhere;}
.ui-subscription-row span {font-size:13px;}
.ui-subscription-row small {font-size:12px;color:#657d70;line-height:1.45;}
.ui-row-chevron {width:44px;height:44px;border:0;background:none;color:#698573;display:grid;place-items:center;}
.ui-row-chevron svg {width:20px;height:20px;}
.ui-switch {position:relative;width:44px;height:44px;display:flex;align-items:center;}
.ui-switch input {position:absolute;inset:0;opacity:0;width:44px;height:44px;margin:0;cursor:pointer;z-index:1;}
.ui-switch>span {width:40px;height:24px;border-radius:20px;background:#bdc6bf;position:relative;}
.ui-switch>span::after {content:'';position:absolute;width:20px;height:20px;top:2px;left:2px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0002;}
.ui-switch input:checked+span {background:var(--accent);}
.ui-switch input:checked+span::after {left:18px;}
.ui-switch input:focus-visible+span {outline:2px solid #26574b;outline-offset:3px;}
#subscriptions-filter {font-size:16px;}
#ui-subscription-history .section-title h3 {font-size:16px;}
#ui-subscription-history-content>div {margin:10px 0;}
#subscription-management {margin-top:0;}
.ui-home-donut-area,.ui-category-cards,.ui-income-plot {max-width:100%;}
@media(max-width:360px){main {padding-left:14px;padding-right:14px;}.app-header {padding-left:14px;padding-right:14px;}.ui-home-donut-area {grid-template-columns:132px minmax(0,1fr);gap:10px;}.ui-home-donut {width:132px;height:132px;}.ui-home-donut>div {width:98px;height:98px;}.ui-home-donut strong {font-size:20px;}.ui-donut-legend {font-size:11px;gap:16px;}.ui-category-card strong {font-size:16px;}.ui-category-card {min-height:132px;gap:8px;}.ui-subscription-row {gap:9px;grid-template-columns:42px minmax(0,1fr) 40px;}.ui-subscription-icon {width:40px;height:40px;}.ui-income-hero strong {font-size:26px;}.ui-income-history button {grid-template-columns:38px minmax(0,1fr) auto;gap:6px;font-size:12px;}.ui-income-columns {gap:9px;}}
@media(min-width:800px){main {padding-top:22px;}.ui-home-donut-area {grid-template-columns:190px minmax(0,1fr);gap:34px;max-width:600px;margin:0 auto;}.ui-home-donut {width:190px;height:190px;}.ui-home-donut>div {width:140px;height:140px;}.ui-home-donut strong {font-size:28px;}.ui-donut-legend {font-size:15px;}.ui-category-card {min-height:160px;}.ui-income-stack {height:230px;}.ui-viewfinder {height:520px;}.ui-home-links {justify-content:center;gap:70px;}}
.photo-box-row {display:grid;grid-template-columns:76px minmax(0,1fr);gap:14px;padding:16px 0;border-bottom:1px solid var(--line);}
.photo-box-row>img {width:76px;height:104px;object-fit:cover;object-position:top;background:#eee;border:1px solid var(--line);border-radius:5px;}
.photo-box-row>div {min-width:0;display:flex;flex-direction:column;gap:8px;}
.photo-box-row strong {font-size:14px;overflow-wrap:anywhere;}
.photo-box-row small {color:var(--muted);font-size:12px;overflow-wrap:anywhere;line-height:1.5;}
.photo-box-state {font-size:12px;color:#6b7a70;}
.photo-box-ready {color:#008657;}.photo-box-error {color:#be432f;}.photo-box-processing {color:#246ca5;}
.photo-box-actions {display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.photo-box-actions .button {font-size:13px;min-height:44px;}
#photo-box .section-title {margin-top:12px;}
#photo-box-status {margin:8px 0;}
