/* Validated neutral-card identity. Both appearances share the same layout. */
:root{--bg:#f8f7f4;--panel:#fffefd;--ink:#142039;--muted:#637080;--line:#e4e3df;--soft:#f0f0ed;--accent:#0068e8;--accent-soft:#e9f2ff;--hero:var(--panel);--hero-ink:var(--ink);--hero-muted:var(--muted);--hero-line:var(--line);--button:#0068e8;--button-ink:#fff;--red:#b72e40;--amber:#865a08;--shadow:0 5px 20px #26344b06;color-scheme:light}
:root[data-theme="dark"]{--bg:#151e27;--panel:#202c36;--ink:#f4f6f8;--muted:#b2bdc7;--line:#384651;--soft:#293640;--accent:#55bdff;--accent-soft:#213c50;--button:#0578ee;--button-ink:#fff;--red:#ffacb5;--amber:#f1c363;--shadow:0 8px 26px #00000014;color-scheme:dark}
body{background:var(--bg);color:var(--ink);font-family:Arial,"Helvetica Neue",system-ui,sans-serif;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}
h1,h2,h3,strong,b{font-weight:650}button{font:inherit}input,select,textarea{font-family:inherit}button{cursor:pointer}button:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
.main{max-width:1160px;width:100%;padding:32px clamp(24px,4vw,56px) 60px}.app-header{margin-bottom:24px;gap:14px}.app-identity .app-logo{width:43px;height:43px;border-radius:13px}.eyebrow{display:none}#welcome{font-size:1.2rem;font-weight:650;letter-spacing:-.03em}.brand-caption{font-size:.72rem}.side{background:var(--bg);border-right:1px solid var(--line)}.nav button.active{background:var(--accent-soft);color:var(--accent)}
.top{margin-bottom:20px}.shell[data-view="dashboard"] .top{height:0;margin:0;overflow:hidden}.shell[data-view="dashboard"] #pageTitle{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.btn.primary,.icon-button.primary{background:var(--button);color:var(--button-ink);box-shadow:0 4px 12px #0068e81a}.primary .icon,.primary span{color:var(--button-ink)}#quickAdd{width:46px;height:46px;border-radius:50%;flex:0 0 46px}#quickAdd .icon{width:25px;height:25px}
.overview{display:block;max-width:none;margin-bottom:24px}.balance-card.accounts-hero{background:transparent;color:var(--ink);border:0;padding:0;border-radius:0;box-shadow:none}.accounts-hero>.k-label{margin:0;border:1px solid var(--line);border-bottom:0;border-radius:23px 23px 0 0;padding:22px 24px 8px;background:var(--panel);font-size:1rem;color:var(--ink)}.accounts-hero>.k-value{display:block;border:1px solid var(--line);border-top:0;border-bottom:0;padding:0 24px 8px;background:var(--panel);font-size:clamp(2rem,7.9vw,3rem);font-weight:700;letter-spacing:-.045em;line-height:1.2;color:var(--ink)}.accounts-hero>.balance-note{margin:0 0 12px;border:1px solid var(--line);border-top:0;border-radius:0 0 23px 23px;padding:0 24px 18px;background:var(--panel);color:var(--muted);font-size:.73rem;line-height:1.45}
.dashboard-accounts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,10.5rem),1fr));gap:12px;border:0}.account-snapshot{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:6px;text-align:left;padding:17px 16px;border:1px solid var(--line);border-radius:20px;background:var(--panel);color:var(--ink);box-shadow:var(--shadow);min-width:0;width:100%}.snapshot-name{display:flex;align-items:center;gap:7px;font-size:.95rem;font-weight:550}.snapshot-name .icon{width:20px;height:20px;flex-shrink:0}.snapshot-name>span{margin-left:auto;color:var(--muted)}.account-snapshot>strong{font-size:1.12rem;font-weight:650;color:var(--ink);text-align:left;max-width:100%;flex-shrink:1}.account-snapshot>.balance-date{font-size:.68rem;color:var(--muted);margin:0;line-height:1.4;overflow-wrap:anywhere}.accounts-open{color:var(--muted);font-size:.76rem;padding:12px 2px 0;min-height:32px}.accounts-open .icon{width:16px;height:16px}#dashboardDebts{margin-top:20px}#dashboardDebts h3{color:var(--muted)}
.daily-tracker{margin:20px 2px 0}.daily-line{display:flex;justify-content:space-between;align-items:baseline;gap:7px;font-size:.78rem;margin-bottom:9px;flex-wrap:wrap}.daily-line strong{color:var(--ink)}#dailyRemaining{color:var(--accent);margin-left:auto}.daily-tracker progress{height:7px;background:var(--soft);--accent:var(--button)}.daily-tracker.over #dailyRemaining{color:var(--red)}.daily-tracker.over progress{--accent:var(--red)}.daily-tracker.pending #dailyRemaining{color:var(--amber)}
.dashboard-period{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:18px;background:var(--panel);padding:2px 9px;margin:0 0 18px;box-shadow:var(--shadow)}.dashboard-period #dashboardMonthPicker{display:block;margin:0;max-width:calc(100% - 88px)}.dashboard-period .period-control input{width:100%;max-width:240px;min-height:44px;font-size:1rem;text-align:center;color:var(--ink);background:transparent;letter-spacing:0}.dashboard-period .icon-button{background:transparent;font-size:1.8rem;color:var(--ink);width:36px;flex-shrink:0}
.dashboard-detail{max-width:none;display:grid;grid-template-columns:minmax(0,1fr);gap:16px}.category-panel{background:var(--panel);border:1px solid var(--line);border-radius:23px;padding:20px 22px 7px;box-shadow:var(--shadow);min-width:0}.category-panel .section-heading{margin:0 0 6px;gap:12px;align-items:baseline}.category-panel h2{font-size:1.2rem;margin:0;letter-spacing:-.025em}.category-panel .section-heading>strong{font-size:.85rem;color:var(--muted);font-weight:500}.category-total{display:flex;align-items:center;gap:8px;border:0;border-bottom:1px solid var(--line);width:100%;background:transparent;color:var(--ink);padding:15px 0;min-height:52px;text-align:left;font-size:.95rem}.category-total:last-child{border-bottom:0}.category-total>span:first-child{flex:1;min-width:0;overflow-wrap:anywhere}.category-total>strong{font-size:.92rem;white-space:nowrap;text-align:right}.category-total small{display:block;font-size:.7rem;font-weight:400;color:var(--amber)}.category-chevron{color:var(--muted);font-size:1.1rem}.category-empty{font-size:.875rem;color:var(--muted);padding:12px 0}.more-categories>summary{color:var(--accent);font-size:.85rem;text-align:center;padding:16px 0;min-height:44px;cursor:pointer}.monthly-details{margin-top:20px;border:1px solid var(--line);border-radius:20px;padding:0 22px;background:var(--panel)}.monthly-details>summary{padding:18px 0;font-size:.85rem;color:var(--muted);cursor:pointer}.monthly-details .monthly-card{padding-top:12px}.monthly-details .recent-panel{padding:16px 0}
.card,.settings-section{background:var(--panel);border:1px solid var(--line);border-radius:23px;padding:22px;box-shadow:var(--shadow)}.settings-grid>.card{padding:22px;border:1px solid var(--line)}.settings-grid{gap:18px}.settings-section>summary{padding:0}.settings-section[open]>summary{padding-bottom:18px}.settings-body{padding:0}.settings-grid>.settings-section{grid-column:1/-1}.settings-shortcuts{display:flex;gap:8px;flex-wrap:wrap}.settings-shortcuts h2{width:100%}.appearance-card h2{margin-bottom:18px}.daily-choice{display:flex;align-items:center;gap:12px;padding:8px 0;font-size:.95rem;color:var(--ink)}.daily-choice input{width:20px;min-height:20px;height:20px;accent-color:var(--button);flex-shrink:0}#dailySettingsForm{display:grid;gap:16px}#dailySettingsForm fieldset{border:0;padding:0;margin:0}#dailySettingsForm legend{font-size:.85rem;color:var(--muted);margin-bottom:8px}
.account-card{padding:22px;margin-bottom:16px}.account-grid{gap:16px}.account-balance{padding-left:0}.tracking-tabs button.active{color:var(--accent);background:var(--panel)}.sheet{background:var(--bg);border-color:var(--line);box-shadow:0 -10px 40px #00000014}.notice,.badge,.secret,.codes{background:var(--soft);color:var(--ink)}.notice.error,.toast.error{color:var(--red);background:var(--panel)}.text-button{color:var(--accent)}.auth-heading{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow)}.auth-heading #authTitle{color:var(--ink);font-weight:650}.auth-heading #authMessage{color:var(--muted)}.app-logo{border-radius:14px}.auth-logo{border-radius:20px}.toast{box-shadow:var(--shadow)}
@media(min-width:1100px){.dashboard-detail{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-accounts{grid-template-columns:repeat(auto-fit,minmax(min(100%,10.5rem),1fr))}#unassignedPanel{grid-column:1/-1}.daily-tracker{max-width:640px}.dashboard-period{max-width:100%}}
@media(max-width:800px),(max-width:1000px) and (pointer:coarse){.main{max-width:620px;margin:0 auto;padding:24px 20px calc(112px + env(safe-area-inset-bottom))}.app-header{margin-bottom:20px}.bottom{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:min(calc(100% - 24px),600px);bottom:0;border:1px solid var(--line);border-bottom:0;border-radius:25px 25px 0 0;background:var(--panel);box-shadow:0 -4px 24px #14203906;padding:9px 8px calc(12px + env(safe-area-inset-bottom))}.bottom button{font-size:.74rem;min-height:54px}.bottom button.active{background:transparent;color:var(--accent)}.bottom .icon{width:22px;height:22px}.category-panel{padding:18px 18px 5px}.account-snapshot{padding:15px 13px}.card{padding:20px;border-radius:23px}.settings-body .card{padding:0;border:0;box-shadow:none}}
@media(max-width:360px){.main{padding-left:14px;padding-right:14px}.daily-line{font-size:.7rem}.account-snapshot{padding:13px 11px}.snapshot-name{font-size:.83rem}.account-snapshot>strong{font-size:.95rem}.accounts-hero>.k-value{font-size:2rem}.category-panel{padding-left:14px;padding-right:14px}.category-total{font-size:.86rem}.category-total>strong{font-size:.84rem}}
@media(prefers-reduced-motion:no-preference){button{transition:background-color .15s ease,border-color .15s ease}button:active{filter:brightness(.97)}}
@media print{body{background:white;color:black}.daily-tracker{break-inside:avoid}.bottom{display:none!important}}

/* Let content reflow within its viewport, including larger accessibility text. */
html{width:100%;-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:env(safe-area-inset-top,0px)}
body,.shell{width:100%;min-width:0;max-width:100%}
.main>.view,.overview,.accounts-hero,.dashboard-detail,.dashboard-accounts,.settings-grid,.settings-section,.settings-body,.account-grid{min-width:0;max-width:100%}
.main>*,.accounts-hero>*,.account-snapshot>*,.daily-line>*,.settings-grid>*,.form-grid>*,.account-head>*,.section-heading>*{min-width:0}
.account-snapshot{white-space:normal;overflow-wrap:anywhere}
.snapshot-name{width:100%;flex-wrap:wrap;overflow-wrap:anywhere}
.account-snapshot>strong,.category-total>strong{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}
.category-total>strong{flex:0 1 auto;max-width:55%}
.daily-line{min-width:0}.daily-line>span{overflow-wrap:anywhere}
.accounts-hero>.k-label,.accounts-hero>.balance-note{overflow-wrap:anywhere}
.account-head,.account-card footer,.section-heading{flex-wrap:wrap}
.account-head>div{flex:1 1 8rem}.account-card footer>*{min-width:0;overflow-wrap:anywhere}
input,select,textarea,fieldset{max-width:100%;min-width:0}
.settings-section>summary>span,.daily-choice>span{min-width:0;overflow-wrap:anywhere}
.auth{padding-top:calc(26px + env(safe-area-inset-top,0px));padding-bottom:calc(26px + env(safe-area-inset-bottom,0px));padding-left:max(18px,env(safe-area-inset-left,0px));padding-right:max(18px,env(safe-area-inset-right,0px))}
@media(max-width:800px),(max-width:1000px) and (pointer:coarse){
 .shell{display:block}.side{display:none}
 .main{width:100%;max-width:620px;margin-inline:auto;padding:calc(20px + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) calc(140px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px))}
 .bottom{position:fixed;z-index:30;left:0;right:0;bottom:0;transform:none;margin-inline:auto;width:100%;max-width:620px;min-width:0;grid-template-columns:repeat(3,minmax(0,1fr));padding:9px max(8px,env(safe-area-inset-right,0px)) calc(12px + env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px))}
 .bottom button{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;white-space:normal;overflow-wrap:anywhere;padding-inline:2px}
 .bottom button span{max-width:100%;min-width:0}
 .sheet{width:100%;max-width:620px;max-height:calc(100dvh - env(safe-area-inset-top,0px) - 12px);padding:22px max(18px,env(safe-area-inset-right,0px)) calc(24px + env(safe-area-inset-bottom,0px)) max(18px,env(safe-area-inset-left,0px))}
 .settings-grid,.account-grid,.filters{grid-template-columns:minmax(0,1fr)}
 .settings-grid>.settings-section{grid-column:1}
 .toast{bottom:calc(110px + env(safe-area-inset-bottom,0px))}
}
@media(display-mode:standalone){body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);background:var(--bg);z-index:40;pointer-events:none}}

.daily-question{padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--soft)}.daily-question select{margin-top:10px}.daily-choice-actions{display:flex;gap:12px}.daily-choice-actions .btn{flex:1}.daily-unclassified{margin-top:12px;border:1px solid var(--line);border-radius:16px;padding:0 14px}.daily-unclassified .category-total{flex-wrap:wrap}

/* Keep editable controls readable: small inherited label text triggers iOS focus zoom.
   This floor also covers date/month controls with more specific compact styles. */
input,select,textarea{font-size:max(16px,1rem)!important}
.auth{width:100%;min-width:0;grid-template-columns:minmax(0,1fr);align-content:start}
.auth-card{width:100%;max-width:440px;min-width:0;margin-inline:auto}
.auth-card>*,.auth form,.auth form>*,.auth label,.auth-heading,.auth-actions{min-width:0;max-width:100%}
.auth form{grid-template-columns:minmax(0,1fr)}
.auth-heading,.auth-actions .btn,.auth-footer,.auth-divider,#passkeyLoginArea>p{overflow-wrap:anywhere}
.auth #passkeyLogin{white-space:normal;gap:10px}
.auth #passkeyLogin span{min-width:0;overflow-wrap:anywhere}
.auth #passkeyLogin .icon,.auth-footer .icon{flex-shrink:0}
.main,.view,.card,.sheet,.filters,.form-grid,.daily-unclassified{min-width:0;max-width:100%}
.daily-unclassified .category-total>span:first-child{flex:1 1 12rem}
.daily-unclassified .category-total>span:last-child{white-space:normal;overflow-wrap:anywhere}
@media(max-width:480px){
 .auth-heading{padding:20px}.auth-wordmark{margin-bottom:16px}
 .auth-actions .btn{flex:1 1 9rem;white-space:normal}
 .daily-choice-actions{flex-wrap:wrap}.daily-choice-actions .btn{min-width:0;white-space:normal}
}

/* One expense question, three readable choices at every phone width. */
#dailyChoiceDialog .daily-choice-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
#dailyChoiceDialog .daily-choice-actions .btn{width:100%;white-space:normal;overflow-wrap:anywhere;min-height:48px}

.expense-question{margin:0;min-width:0}.expense-question legend{padding:0 4px;font-size:.95rem;color:var(--ink)}.expense-options{display:grid;grid-template-columns:minmax(0,1fr);gap:9px;margin-top:8px}.expense-options .expense-option{width:100%;min-width:0;min-height:48px;white-space:normal;overflow-wrap:anywhere;text-align:center;background:var(--panel);color:var(--ink);border:1px solid var(--line)}.expense-options .expense-option[aria-pressed="true"]{background:var(--button);color:var(--button-ink);border-color:var(--button);box-shadow:inset 0 0 0 1px var(--button)}

.field-step{min-width:0}.field-value{font-size:1.15rem;font-weight:650;overflow-wrap:anywhere;padding:18px;border:1px solid var(--line);border-radius:15px;background:var(--panel)}.field-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.field-actions .btn{min-width:0;white-space:normal}#assistantFieldCorrection .btn{width:100%;margin-top:12px}#assistantFieldHelp{font-size:.85rem}#assistantFieldProgress{font-size:.8rem}#assistantDraftStorage{display:none}


/* Receipt intake: readable summary, targeted corrections and one final save. */
.receipt-summary{padding:18px;border:1px solid var(--line);border-radius:18px;background:var(--soft);overflow-wrap:anywhere}
.receipt-summary>p:first-child{margin-top:0}.receipt-total{font-size:1.65rem;font-weight:650;margin:12px 0;font-variant-numeric:tabular-nums}
.receipt-summary dl{margin:12px 0}.receipt-summary dl>div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;border-bottom:1px solid var(--line);padding:12px 0}
.receipt-summary dd{max-width:65%;min-width:0}.receipt-summary .text-button{min-height:44px;padding:6px 0;font-size:.85rem}
.assistant-sheet details>summary{cursor:pointer;min-height:44px;padding:12px 0;overflow-wrap:anywhere}.assistant-sheet details label{display:block;margin:12px 0}
.assistant-sheet details input:not([type=checkbox]),.assistant-sheet details select{width:100%;margin-top:8px}
.receipt-part{border-top:1px solid var(--line);padding:8px 0}.receipt-part summary{font-weight:550}
#assistantSuccess{padding:20px 0;line-height:1.6}#assistantSuccess .btn{width:100%;margin-top:16px}
#assistantConfirm{white-space:normal;min-height:48px}#assistantFieldStep{border-left:3px solid var(--accent);padding-left:16px}
@media(max-width:380px){.receipt-summary{padding:14px}.receipt-summary dl>div{display:block}.receipt-summary dd{max-width:100%;text-align:left;margin-top:6px}.assistant-review-actions .btn{flex-basis:100%}}

/* Category > subcategory > operation details. Native disclosures work without hover. */
.category-group{border-bottom:1px solid var(--line);min-width:0}.category-group>summary{display:flex;align-items:center;gap:12px;min-height:52px;padding:14px 0;cursor:pointer;list-style:none}.category-group>summary::before{content:'›';color:var(--muted);font-size:1.2rem}.category-group[open]>summary::before{content:'⌄'}.category-group>summary>span{flex:1;min-width:0;overflow-wrap:anywhere}.category-group>summary>strong{text-align:right;overflow-wrap:anywhere}.category-group summary small{display:block;font-weight:400;color:var(--muted)}.category-subcategories{padding-left:18px;border-left:2px solid var(--line);margin:0 0 12px 6px}.category-subcategories .category-total{padding:12px 0 12px 8px}.category-group>summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:8px}
