:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--theme-ink, #18342f);background:var(--theme-canvas, #f4f6f2);font-size:15px}*{box-sizing:border-box}body{margin:0}main{max-width:1400px;margin:auto;padding:40px}header,.toolbar,.toolbar>div,.actions{display:flex;align-items:center;justify-content:space-between;gap:16px}h1{font-size:36px;letter-spacing:-1.3px;margin:10px 0}h2{font-size:22px;margin:0}p{color:var(--theme-muted, #62746e);line-height:1.6}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:700}button,input,select{font:inherit}button{background:var(--theme-accent, #255c4b);border:1px solid transparent;border-radius:8px;padding:11px 17px;color:white;cursor:pointer;font-weight:600}button:hover{filter:brightness(.94)}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #d6a646;outline-offset:2px}.secondary,.toolbar button{background:white;color:var(--theme-ink, #25483c);border-color:var(--theme-line, #d8e0d8)}.toolbar{margin:34px 0 22px}.summary{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.summary article{padding:24px;background:white;border:1px solid var(--theme-line, #dce4dc);border-radius:12px}.summary span{display:block;color:var(--theme-muted, #65746c);font-size:13px}.summary strong{display:block;font-size:28px;margin-top:10px;font-weight:600}.legend{font-size:12px;margin:22px 0 10px}.legend span{margin-left:12px}#calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--theme-line, #d7dfd7);border-left:1px solid var(--theme-line, #d7dfd7);border-radius:10px;overflow:hidden}.weekday{padding:12px;background:var(--theme-soft, #e8ede5);font-size:12px;font-weight:700}.day,.blank,.weekday{border-right:1px solid var(--theme-line, #d7dfd7);border-bottom:1px solid var(--theme-line, #d7dfd7)}.day{background:white;min-height:160px;display:flex;flex-direction:column;padding:10px;gap:6px;min-width:0}.blank{background:var(--theme-soft, #edf0e9)}.day.today{background:var(--theme-highlight, #f0f8ee);box-shadow:inset 0 3px var(--theme-ink, #32624b)}.date{font-size:12px;font-weight:700;align-self:flex-start;border:0;background:transparent;color:var(--theme-ink, #385346);padding:2px 0}.event{background:var(--theme-canvas, #f7f8f5);border:0;border-left:3px solid #b2554b;color:#98493e;border-radius:3px;text-align:left;font-size:12px;padding:5px 7px;overflow-wrap:anywhere;font-weight:400}.event.income{border-color:#3c8564;color:var(--theme-accent, #286b4b)}.event.estimated{border-left-style:dashed}.event b{display:block;font-variant-numeric:tabular-nums}.balance{text-align:right;margin-top:auto;padding-top:12px;font-size:13px;font-variant-numeric:tabular-nums}.negative{color:#b03f3f!important}.transactions{margin-top:32px}.transactions>p{font-size:13px}.row{width:100%;display:flex;justify-content:space-between;gap:16px;background:white;color:var(--theme-ink, #294739);border:1px solid var(--theme-line, #dce4dc);border-radius:0;text-align:left;font-weight:400}.row small{display:block;color:var(--theme-muted, #758279);margin-top:5px}.row:first-child{border-radius:8px 8px 0 0}.row:last-child{border-radius:0 0 8px 8px}footer{font-size:12px;color:var(--theme-muted, #78867c);margin-top:32px}dialog{border:1px solid var(--theme-line, #d5dfd4);border-radius:16px;padding:28px;width:min(460px,94vw);color:var(--theme-ink, #18342f)}dialog::backdrop{background:#12271d70}form{display:grid;gap:16px}label{display:grid;gap:7px;font-size:13px;font-weight:600}input,select{padding:11px;border:1px solid var(--theme-line, #cbd6cb);border-radius:7px;width:100%;background:white;color:var(--theme-ink, #18342f)}.actions{justify-content:flex-end;margin-top:12px}.error{color:#aa3333;margin:0;font-size:13px}.danger{background:#a7463c}[hidden]{display:none!important}@media(max-width:700px){main{padding:20px 12px}header{align-items:flex-start;flex-direction:column}h1{font-size:30px}.toolbar{gap:10px;flex-wrap:wrap}.toolbar>div{gap:8px}h2{font-size:19px}.toolbar button{padding:8px 11px}.summary{gap:7px}.summary article{padding:12px 8px}.summary strong{font-size:18px}.summary span{font-size:11px}.legend span{display:block;margin:5px 0}.day{min-height:115px;padding:5px 3px;gap:4px}.event{font-size:10px;padding:4px 2px}.event .description{display:none}.balance{font-size:9px;letter-spacing:-.3px}.weekday{font-size:10px;padding:9px 3px}.date{font-size:11px}}

.repeat-help{font-size:12px;margin:0}dialog{max-height:90dvh;overflow-y:auto}#detail .actions{flex-wrap:wrap}

.screen-nav{display:flex;gap:24px;margin:22px 0;border-bottom:1px solid var(--theme-line, #d7dfd7)}.screen-nav a{padding:12px 0;color:var(--theme-muted, #62746e);text-decoration:none;font-weight:600;border-bottom:3px solid transparent}.screen-nav a[aria-current]{color:var(--theme-accent, #255c4b);border-bottom-color:var(--theme-accent, #255c4b)}.setup-card{background:white;border:1px solid var(--theme-line, #dce4dc);border-radius:12px;padding:24px;max-width:540px}#setup-screen{margin-top:30px}#setup-saved{color:var(--theme-accent, #286b4b);font-size:13px;margin:0}

.detail-primary-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}.detail-primary-actions button{padding:11px 8px;font-size:14px}.detail-close{margin-top:20px}#detail .actions:has(> [hidden]):not(:has(> :not([hidden]))){display:none}

.account-balances{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.account-card{font-size:12px;background:var(--theme-soft, #e8ede5);padding:9px 12px;border-radius:7px}.account-tag{display:block;font-size:10px;color:var(--theme-muted, #62746e);margin-top:4px}.toolbar label{max-width:220px}#accounts-list{max-width:540px;margin-bottom:22px}.setup-card{margin-top:16px}

.account-picker{max-width:540px;margin:20px 0}

.day{cursor:pointer}.day .balance{cursor:pointer}
.auth-screen{max-width:500px;margin:8vh auto;padding:16px}.auth-screen h1{font-size:28px}.auth-screen #auth-mode{margin-top:18px}.session-bar{display:flex;align-items:center;justify-content:flex-end;gap:16px;font-size:12px;margin-top:20px}#reconcile-result{margin-top:24px}#invite-code{overflow-wrap:anywhere;font-family:monospace}#household-screen{margin-top:32px}#rec-entries .row{line-height:1.5}

/* Allow content to shrink inside grid/flex layouts instead of widening the page. */
main,section,header,header>div,form,label,.summary article,.row>span,.toolbar>div{min-width:0}
input,select{min-width:0;max-width:100%}
form{grid-template-columns:minmax(0,1fr)}
.summary{grid-template-columns:repeat(3,minmax(0,1fr))}
.summary strong,p,.account-card,.row,dialog h2{overflow-wrap:anywhere}
.row>span:first-child{flex:1}.row>span:last-child{flex-shrink:0}
.actions{flex-wrap:wrap}
.calendar-view{display:flex;gap:8px;justify-content:flex-end;margin:12px 0}
.calendar-view button[aria-pressed=true]{color:white;background:var(--theme-accent, #255c4b);border-color:var(--theme-accent, #255c4b)}
.agenda-date,.agenda-balance-label{display:none}
#calendar.agenda-view{display:flex;flex-direction:column;border:0;gap:12px;overflow:visible}
#calendar.agenda-view .weekday,#calendar.agenda-view .blank{display:none}
#calendar.agenda-view .day{min-height:100px;border:1px solid var(--theme-line, #d7dfd7);border-radius:10px;padding:14px;gap:8px}
#calendar.agenda-view .date{display:flex;align-items:baseline;gap:8px;font-size:20px;padding:4px 0}
#calendar.agenda-view .agenda-date{display:inline;font-size:13px;color:var(--theme-muted, #62746e);font-weight:500}
#calendar.agenda-view .event{font-size:14px;padding:10px 12px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px}
#calendar.agenda-view .event b{grid-column:2;grid-row:1}
#calendar.agenda-view .event .description{display:block;grid-column:1;grid-row:1}
#calendar.agenda-view .account-tag{grid-column:1 / -1;font-size:12px}
#calendar.agenda-view .balance{font-size:14px;letter-spacing:normal;padding-top:10px}
#calendar.agenda-view .agenda-balance-label{display:inline;font-size:12px;color:var(--theme-muted, #62746e)}
@media(max-width:700px){
  main{width:100%;padding:20px 12px}
  .toolbar>div{display:grid;grid-template-columns:40px minmax(0,1fr) 40px auto;width:100%;gap:6px}
  .toolbar h2{font-size:18px;text-align:center}
  .toolbar label{max-width:none;width:100%}
  .toolbar button{min-height:44px;padding:8px}
  .summary{grid-template-columns:minmax(0,1fr);gap:8px}
  .summary article{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 16px}
  .summary span{font-size:12px;max-width:60%}
  .summary strong{font-size:22px;margin:0;text-align:right}
  .session-bar{flex-wrap:wrap}
  .screen-nav{justify-content:space-between;gap:12px}
  .screen-nav a{min-height:44px}
  .setup-card{width:100%;padding:18px}
  input,select{font-size:16px;min-height:44px}
  input[type=date]{appearance:none;-webkit-appearance:none;display:block;width:100%}
  dialog{width:calc(100% - 24px);max-width:460px;padding:20px;max-height:90dvh}
  .actions button{min-width:0;white-space:normal}
  .detail-primary-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .row{padding:12px;gap:10px;font-size:14px;align-items:flex-start}
  .account-balances{display:grid;grid-template-columns:minmax(0,1fr)}
  .account-card{font-size:13px}
  #calendar:not(.agenda-view) .event{min-width:0;max-width:100%}
  #calendar:not(.agenda-view) .event b{overflow-wrap:anywhere;font-size:9px}
  #calendar:not(.agenda-view) .account-tag{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:8px}
  #calendar:not(.agenda-view) .balance{overflow-wrap:anywhere}
  #reconcile-screen>p,#notice{font-size:13px}
  .calendar-view{justify-content:flex-start}.calendar-view button{flex:1}
}

.password-field{display:flex;align-items:stretch;gap:8px;min-width:0;margin-top:-9px}.password-field input{flex:1;min-width:0}.password-field button{flex-shrink:0;min-width:68px}
#passkey-login{display:block;width:100%;margin-top:16px}.passkey-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--theme-line, #dce4dc)}.passkey-row span{min-width:0;overflow-wrap:anywhere}.passkey-row small{display:block;color:var(--theme-muted, #62746e);margin-top:6px;font-size:12px}#passkey-settings{margin-top:24px}
#plaid-settings{margin-top:24px;max-width:760px}.sandbox-item{margin-top:24px}.sandbox-account{background:var(--theme-soft, #e8ede5);border-radius:7px;padding:10px;font-size:13px}.sandbox-item .row{font-size:13px}.sandbox-item .actions{justify-content:flex-start;margin-bottom:14px}

.sandbox-account p{margin-top:0}.sandbox-account button{margin:10px 0}.sandbox-account small{display:block;color:var(--theme-muted, #62746e)}
#sandbox-review{width:min(760px,calc(100% - 24px))}.review-card{padding:18px 0;border-bottom:1px solid var(--theme-line, #dce4dc)}.review-card h3{margin-top:0;overflow-wrap:anywhere}.review-card label{margin:12px 0}.review-card button{margin:8px 8px 8px 0}.review-card details{margin:16px 0;padding:12px;background:var(--theme-canvas, #f4f6f2);border-radius:8px}.review-card summary{cursor:pointer;font-weight:600}.review-card .error{margin-top:8px}
.transaction-filters{display:grid;grid-template-columns:minmax(160px,2fr) repeat(2,minmax(140px,1fr)) auto;align-items:end;gap:12px;margin-top:24px}.review-filter{max-width:280px}.history-pagination{justify-content:space-between}.screen-nav{flex-wrap:wrap}#transactions-bank{margin-top:32px}.transaction-filters label{min-width:0}
.transaction-sync{grid-column:1/-1;grid-row:2;justify-content:flex-start}
.transaction-sync:has(button[hidden]):has([role=status]:empty){display:none}@media(max-width:700px){.transaction-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.transaction-filters label:first-child{grid-column:1/-1}.transaction-filters>button{grid-column:1/-1}.screen-nav{gap:8px}.screen-nav a{font-size:13px}.history-pagination{gap:8px;font-size:12px}.history-pagination button{padding:10px}}

.setup-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 24px;border-bottom:1px solid var(--theme-line, #d7dfd7);padding-bottom:12px}.setup-tabs button{background:white;color:var(--theme-ink, #25483c);border-color:var(--theme-line, #d8e0d8);min-height:44px}.setup-tabs button[aria-selected="true"]{background:var(--theme-accent, #255c4b);color:white;border-color:var(--theme-accent, #255c4b)}#setup-screen [role="tabpanel"]{margin-top:0}#setup-accounts{max-width:540px}
.category-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:16px 0;border-bottom:1px solid var(--theme-line, #dce4dc)}.category-row label{flex:1 1 180px;margin:0}.category-row small{flex:1 1 120px}#category-form{max-width:440px}
.calendar-category-filter{margin:16px 0;padding:14px 16px;border:1px solid var(--theme-line, #dce4dc);border-radius:12px}.calendar-category-filter summary{cursor:pointer;font-weight:600}.calendar-category-filter p{color:var(--theme-muted, #526158)}.calendar-category-options{display:flex;flex-wrap:wrap;gap:8px 18px;margin:14px 0}.calendar-category-options label{display:flex;align-items:center;gap:8px;margin:0;padding:8px 0;cursor:pointer}.calendar-category-options input[type=checkbox]{width:20px;height:20px;margin:0;accent-color:var(--theme-accent, #265c43);flex-shrink:0}
.daily-card-toggle{display:flex;align-items:center;gap:7px;margin-top:8px;font-size:12px;cursor:pointer}.daily-card-toggle input[type=checkbox]{width:18px;height:18px;margin:0;accent-color:var(--theme-accent, #265c43);flex-shrink:0}.daily-card-balance{text-align:right;font-size:12px;font-variant-numeric:tabular-nums;color:var(--theme-muted, #62746e);overflow-wrap:anywhere;padding-top:2px;cursor:default}#calendar.agenda-view .daily-card-balance{font-size:13px}@media(max-width:700px){#calendar:not(.agenda-view) .daily-card-balance{font-size:9px;letter-spacing:-.3px}}

.estimated-balance-toggle{display:flex;align-items:center;gap:8px;cursor:pointer;max-width:260px}.estimated-balance-toggle input[type=checkbox]{width:18px;height:18px;margin:0;accent-color:var(--theme-accent, #265c43);flex-shrink:0}

.screen-nav{flex-wrap:wrap}
.spending-controls{display:flex;align-items:end;flex-wrap:wrap;gap:16px;margin:16px 0}
.spending-toggle{display:flex;align-items:center;min-height:44px}
.spending-toggle input{width:auto;accent-color:var(--theme-accent, #255c4b)}
.spending-panel{padding:clamp(12px,3vw,24px);margin:16px 0;background:white;border:1px solid var(--theme-line, #dce4dc);border-radius:12px}
.spending-panel>p:first-child{margin-top:0}
.spending-bar{display:block;width:100%;margin:4px 0;padding:8px;background:white;color:var(--theme-ink, #18342f);text-align:left}
.spending-bar[aria-pressed=true]{border-color:var(--theme-accent, #255c4b);background:var(--theme-highlight, #f0f8ee)}
.spending-labels{display:flex;justify-content:space-between;gap:8px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.spending-labels>span:last-child{text-align:right}
.spending-track{display:flex;height:9px;margin-top:6px;background:var(--theme-soft, #e8ede5);border-radius:8px;overflow:hidden}
.spending-posted-mark{background:var(--theme-accent, #255c4b)}
.spending-pending-mark{background:repeating-linear-gradient(135deg,var(--theme-accent, #255c4b) 0 2px,transparent 2px 5px)}
#spending-legend .spending-pending-mark{display:inline-block;width:16px;height:9px}
#spending-entries{list-style:none;padding:0;margin:0}
#spending-entries li{padding:10px 0;border-top:1px solid var(--theme-line, #dce4dc)}
#spending-entries small{display:block;color:var(--theme-muted, #62746e);margin-top:4px}
.spending-month-nav{display:flex;align-items:end;gap:8px;max-width:100%}
.spending-month-nav button{min-width:44px;min-height:44px;padding-inline:10px}
.spending-month-nav button:disabled{opacity:.5;cursor:default}

.app-header{flex-direction:row;flex-wrap:wrap;align-items:flex-start;gap:8px 16px}
.app-header h1,.app-header p{margin:0}
.app-header p{flex-basis:100%}
.header-preferences{margin-left:auto}
.app-header .session-bar{margin:0}
.app-header + .screen-nav{margin-top:36px}
.calendar-controls{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin:12px 0}
.calendar-controls .calendar-view{margin:0}
#theme-picker [data-theme="forest"]{--theme-accent:#255c4b}
[data-theme="ocean"]{--theme-accent:#24577f;--theme-ink:#18364d;--theme-muted:#4e6577;--theme-canvas:#eef5fa;--theme-soft:#e1edf5;--theme-line:#c6d8e6;--theme-highlight:#e7f4ff}
[data-theme="plum"]{--theme-accent:#67446f;--theme-ink:#392541;--theme-muted:#6a5870;--theme-canvas:#f7f1f8;--theme-soft:#eee4f1;--theme-line:#dacbdf;--theme-highlight:#f3e9f8}
[data-theme="clay"]{--theme-accent:#824c33;--theme-ink:#442c22;--theme-muted:#735d51;--theme-canvas:#fbf3ed;--theme-soft:#f3e7dd;--theme-line:#e5d3c6;--theme-highlight:#fff0e1}
[data-theme="slate"]{--theme-accent:#465770;--theme-ink:#273548;--theme-muted:#566375;--theme-canvas:#f2f4f7;--theme-soft:#e6ebf1;--theme-line:#cdd6e0;--theme-highlight:#e8eff8}

#theme-picker{display:flex;justify-content:flex-end;gap:4px;margin-top:4px}
#theme-picker button{display:grid;place-items:center;width:32px;height:32px;min-height:32px;padding:0;border:0;background:transparent}
#theme-picker button::before{content:"";width:19px;height:19px;border-radius:50%;background:var(--theme-accent)}
#theme-picker button[aria-pressed="true"]::before{outline:2px solid var(--theme-accent);outline-offset:3px}
