:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;color-scheme:light;--bg:#f5f7f4;--card:#fff;--text:#192d26;--muted:#77837c;--line:#e8ede8;--accent:#237b60;--accent-soft:#e3f0e8;--amber:#a97928;--amber-soft:#fff3dd;--danger:#b55649;--danger-soft:#fbeae6;--shadow:0 8px 28px #223c2910;--safe-top:0px;--safe-bottom:0px;--safe-left:0px;--safe-right:0px;background:var(--bg);color:var(--text)}
:root[data-theme=dark]{color-scheme:dark;--bg:#121c19;--card:#1d2a25;--text:#edf3ee;--muted:#9ea9a2;--line:#314138;--accent:#91d5b5;--accent-soft:#263f34;--amber:#ecc080;--amber-soft:#423927;--danger:#f2a190;--danger-soft:#412e29;--shadow:0 8px 28px #0002}
*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;border:0;background:none}button:disabled{opacity:.45;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:3px}a{color:var(--accent)}button svg{pointer-events:none}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}h1,h2,h3,p{margin:0}h1{font-size:27px;line-height:1.35;letter-spacing:-1px;font-weight:700}h2{font-size:17px;font-weight:650}h3{font-size:15px}p{line-height:1.65}small,.caption{font-size:11px;color:var(--muted)}strong,.money{font-variant-numeric:tabular-nums}input,textarea,select{width:100%;min-height:44px;border:1px solid var(--line);border-radius:11px;padding:11px 12px;background:var(--bg);color:var(--text);outline:none}textarea{min-height:88px;resize:vertical}label{display:block;font-size:12px;line-height:1.6;color:var(--muted);margin:14px 0 6px}label input,label select,label textarea{display:block;margin-top:6px;color:var(--text)}.app-shell{max-width:580px;min-height:100dvh;margin:0 auto;padding:calc(18px + var(--safe-top)) calc(20px + var(--safe-right)) calc(100px + var(--safe-bottom)) calc(20px + var(--safe-left))}.topline{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:25px}.brand{display:flex;align-items:center;gap:9px;letter-spacing:.1px;font-size:13px;font-weight:650}.brand-mark{width:32px;height:32px;background:var(--accent);color:var(--bg);border-radius:11px;display:grid;place-items:center;font-size:12px;font-weight:800;letter-spacing:-.5px}.top-actions{display:flex;gap:6px;align-items:center}.isolation{font-size:10px;padding:5px 7px;background:var(--amber-soft);border-radius:6px;color:var(--amber)}.icon-button{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:var(--card)}.heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:22px}.eyebrow{display:block;color:var(--muted);font-size:11px;letter-spacing:1.6px;margin-bottom:6px}.month-select{width:auto;max-width:120px;min-height:35px;padding:6px 9px;border-radius:9px;font-size:12px;background:var(--card)}.subtitle{font-size:12px;color:var(--muted);margin-top:7px}.card{background:var(--card);border:1px solid var(--line);border-radius:19px;padding:19px;margin-bottom:16px;box-shadow:var(--shadow)}.hero{background:var(--text);color:var(--card);position:relative;overflow:hidden;border:0;padding:23px}.hero:after{content:"";position:absolute;width:170px;height:170px;border:1px solid #ffffff14;border-radius:50%;right:-55px;top:-35px;box-shadow:0 0 0 24px #ffffff06,0 0 0 50px #ffffff04;pointer-events:none}.hero .caption{color:inherit;opacity:.6}.hero-label{font-size:12px;opacity:.75}.hero-total{font-size:37px;font-weight:550;letter-spacing:-1.5px;margin:12px 0 20px}.hero-total span{font-size:12px;letter-spacing:0;font-weight:400;opacity:.7;margin-left:8px}.hero-divider{height:1px;background:currentColor;opacity:.12}.hero-bottom{display:flex;justify-content:space-between;font-size:11px;gap:16px;margin-top:16px}.hero-bottom strong{display:block;font-size:17px;margin-top:5px;font-weight:550}.section-heading{display:flex;justify-content:space-between;align-items:center;margin:24px 0 13px}.text-button{font-size:12px;color:var(--accent);padding:8px 0 8px 8px;display:flex;align-items:center;gap:3px}.text-button svg{width:14px;height:14px}.action-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.quick-action{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:9px;min-height:102px;background:var(--card);border:1px solid var(--line);padding:13px;border-radius:15px;font-size:12px}.quick-action svg{color:var(--accent);width:24px;height:24px}.quick-action small{font-size:10px;margin-top:-3px}.row{display:flex;align-items:center;gap:12px;min-width:0}.row-between{display:flex;justify-content:space-between;align-items:center;gap:12px}.grow{flex:1;min-width:0}.clip{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.receipt-icon{width:41px;height:43px;border-radius:13px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;flex-shrink:0}.receipt-row{width:100%;text-align:left;display:flex;align-items:center;gap:11px;padding:14px 0;border-bottom:1px solid var(--line)}.receipt-row:last-child{border-bottom:0}.receipt-row h3{font-size:13px;line-height:1.5}.receipt-row .money{font-size:14px;font-weight:600;white-space:nowrap}.receipt-row .meta{font-size:10px;color:var(--muted);margin-top:4px;display:flex;align-items:center;gap:5px;flex-wrap:wrap}.record-side{text-align:right;flex-shrink:0}.record-side small{display:block;margin-top:5px}.list-card{padding:2px 16px}.badge{font-size:9px;border-radius:5px;padding:3px 5px;display:inline-block;background:var(--accent-soft);color:var(--accent)}.badge.amber{background:var(--amber-soft);color:var(--amber)}.badge.danger{background:var(--danger-soft);color:var(--danger)}.nav{position:fixed;z-index:20;left:50%;bottom:0;transform:translateX(-50%);width:100%;max-width:580px;display:flex;background:var(--card);border-top:1px solid var(--line);padding:10px 9px calc(11px + var(--safe-bottom));gap:2px}.nav button{flex:1;min-width:0;display:flex;align-items:center;flex-direction:column;gap:5px;font-size:10px;color:var(--muted);padding:4px}.nav button.active{color:var(--accent);font-weight:650}.nav button.active svg{stroke-width:2.25}.nav svg{width:22px;height:22px}.empty{padding:32px 10px;text-align:center;color:var(--muted);font-size:13px}.empty svg{width:38px;height:38px;margin-bottom:12px}.segmented{display:flex;background:var(--line);padding:4px;border-radius:11px;margin-bottom:19px;gap:2px}.segmented button{font-size:11px;flex:1;padding:9px 5px;border-radius:8px;white-space:nowrap}.segmented .active{background:var(--card);box-shadow:0 2px 4px #0001;color:var(--accent);font-weight:650}.search{position:relative;margin:0 0 16px}.search svg{position:absolute;top:12px;left:12px;width:18px;height:18px;color:var(--muted)}.search input{padding-left:38px;background:var(--card);font-size:12px}.hint{display:flex;gap:8px;align-items:flex-start;color:var(--muted);font-size:11px;line-height:1.7;margin:12px 0 18px}.hint svg{width:15px;height:15px;margin-top:2px}.notice-card{background:var(--amber-soft);color:var(--amber);font-size:12px;line-height:1.65;padding:13px 15px;border-radius:12px;margin-bottom:15px}.pending-card{position:relative;touch-action:pan-y}.pending-card .receipt-row{border-bottom:0;padding:0}.pending-card .mini-actions{display:flex;justify-content:flex-end;border-top:1px solid var(--line);padding-top:11px;margin-top:13px;gap:8px}.mini-actions button{font-size:11px;padding:7px 11px;border-radius:7px;background:var(--bg);color:var(--muted)}.mini-actions .confirm{background:var(--accent-soft);color:var(--accent)}.swipe-cue{font-size:10px;color:var(--accent);margin-top:10px;min-height:12px}.back-label{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--muted);padding:0;margin-bottom:20px}.back-label svg{width:16px;height:16px}.detail-top{text-align:center;padding:8px 0 21px}.detail-top .receipt-icon{width:56px;height:56px;margin:0 auto 13px}.detail-amount{font-size:38px;font-weight:550;letter-spacing:-1.3px;margin:12px 0}.detail-top .badge{font-size:10px}.detail-facts{display:grid;grid-template-columns:1fr 1fr;gap:20px 10px}.fact span{display:block;font-size:10px;color:var(--muted);margin-bottom:6px}.fact strong{font-size:12px;font-weight:500}.source-button{display:flex;align-items:center;gap:11px;width:100%;text-align:left;border:1px solid var(--line);border-radius:12px;padding:12px;margin:9px 0;background:var(--bg)}.source-button .thumb{width:32px;height:42px;background:var(--card);border:1px solid var(--line);border-radius:4px;display:grid;place-items:center;color:var(--accent)}.source-button p{font-size:12px}.source-button small{font-size:10px}.item-row{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:12px}.item-row:last-child{border:0}.item-row small{display:block;margin-top:5px;font-size:10px}.primary,.secondary,.danger-button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:46px;padding:12px 15px;border-radius:12px;font-size:13px;font-weight:600}.primary{background:var(--accent);color:var(--card)}.secondary{border:1px solid var(--line);background:var(--card);color:var(--text)}.danger-button{background:var(--danger-soft);color:var(--danger)}.button-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.button-stack{display:flex;flex-direction:column;gap:9px;margin-top:16px}.donut{width:190px;height:190px;margin:13px auto 23px;border-radius:50%;position:relative;display:grid;place-items:center;background:var(--line)}.donut:before{position:absolute;content:"";inset:21px;background:var(--card);border-radius:50%}.donut-content{z-index:1;text-align:center}.donut-content small{font-size:10px}.donut-content strong{display:block;font-size:26px;font-weight:600;letter-spacing:-1px;margin-top:7px}.legend-row{display:flex;align-items:center;gap:10px;padding:12px 0;width:100%;text-align:left;border-bottom:1px solid var(--line);font-size:12px}.legend-row:last-child{border:0}.color-dot{width:9px;height:9px;border-radius:3px;flex-shrink:0}.legend-row strong{font-size:12px;font-weight:600;margin-left:auto}.legend-row small{min-width:34px;text-align:right;font-size:10px}.legend-row svg{width:13px;height:13px;color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.stat strong{font-size:24px;font-weight:600;display:block;margin:9px 0 3px;letter-spacing:-.6px}.stat strong span{font-size:11px;font-weight:400;margin-left:4px}.calendar-header{display:grid;grid-template-columns:repeat(7,1fr);margin:15px 0 8px;text-align:center;font-size:10px;color:var(--muted)}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.day{height:43px;border-radius:9px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:11px}.day small{font-size:8px}.day.recorded{background:var(--accent-soft);color:var(--accent)}.day.selected{background:var(--accent);color:var(--card)}.day.selected small{color:inherit}.day.weekend:not(.recorded):not(.selected){color:var(--muted)}.calendar-key{display:flex;gap:14px;margin-top:15px;color:var(--muted);font-size:10px}.calendar-key span{display:flex;gap:5px;align-items:center}.step{display:flex;align-items:flex-start;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.step:last-child{border:0}.step-number{width:25px;height:25px;background:var(--accent-soft);color:var(--accent);border-radius:50%;display:grid;place-items:center;font-size:11px;flex-shrink:0}.step h3{font-size:12px;margin:3px 0 5px}.step p{font-size:11px;color:var(--muted)}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 0;border-bottom:1px solid var(--line);font-size:12px}.settings-row:last-child{border:0}.settings-row small{display:block;margin-top:4px;font-size:10px}.settings-row>span{color:var(--muted);font-size:11px;text-align:right}.tag-list{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}.tag{background:var(--bg);font-size:10px;padding:7px 9px;border-radius:7px}.profile{display:flex;align-items:center;gap:13px;margin-bottom:22px}.avatar{width:47px;height:47px;background:var(--accent-soft);border-radius:17px;display:grid;place-items:center;color:var(--accent)}.profile p{font-size:11px;color:var(--muted);margin-top:5px}.version-note{text-align:center;margin:28px 0 0;color:var(--muted);font-size:10px;line-height:1.8}.modal-backdrop{position:fixed;inset:0;background:#08181070;z-index:100;display:flex;align-items:flex-end;justify-content:center;padding-top:calc(20px + var(--safe-top))}.sheet{width:100%;max-width:580px;background:var(--card);border-radius:24px 24px 0 0;padding:12px 22px calc(24px + var(--safe-bottom));max-height:90dvh;overflow-y:auto;box-shadow:0 -12px 50px #0002}.sheet-handle{width:34px;height:4px;border-radius:3px;background:var(--line);margin:0 auto 23px}.sheet h2{font-size:21px}.sheet p{font-size:12px;color:var(--muted);margin:12px 0}.sheet-amount{font-size:31px;font-weight:600;margin:22px 0}.sheet-error{background:var(--danger-soft);color:var(--danger);padding:12px;border-radius:10px;font-size:12px;line-height:1.6;margin:12px 0}.sheet input[type=range]{padding:0;accent-color:var(--accent);border:0;min-height:30px}.image-modal{align-items:stretch;background:#09110fee}.image-viewer{display:flex;flex-direction:column;width:100%;max-width:800px;color:#fff;padding:12px 16px calc(15px + var(--safe-bottom));min-height:0}.image-toolbar{display:flex;align-items:center;gap:15px;padding:0 0 16px;font-size:12px}.image-toolbar button{margin-left:auto;border:1px solid #ffffff50;border-radius:50%;width:36px;height:36px;display:grid;place-items:center}.image-scroll{overflow:auto;flex:1;min-height:0;text-align:center;border-radius:10px;background:#ffffff0a;touch-action:pan-x pan-y pinch-zoom}.image-scroll img{display:block;width:100%;max-width:none;margin:auto;transform-origin:top left}.image-zoom{display:flex;align-items:center;gap:13px;font-size:12px;padding-top:15px}.image-zoom input{min-height:25px;accent-color:#91d5b5;padding:0;border:0}.startup{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:17px;min-height:90dvh;padding:30px;text-align:center}.startup .brand-mark{width:54px;height:54px;border-radius:18px;font-size:18px}.startup p{font-size:13px;color:var(--muted)}#notice{position:fixed;z-index:120;left:50%;bottom:calc(90px + var(--safe-bottom));transform:translateX(-50%);width:max-content;max-width:calc(100vw - 40px);background:var(--text);color:var(--card);padding:13px 17px;border-radius:13px;font-size:12px;line-height:1.6;box-shadow:var(--shadow);pointer-events:none;opacity:0;transition:opacity .15s}#notice.visible{opacity:1}.page-footer{color:var(--muted);text-align:center;font-size:10px;line-height:1.7;margin-top:22px}.loading{opacity:.5;pointer-events:none}.download{display:block;font-size:12px;margin-top:10px}.no-margin{margin:0}.mt{margin-top:16px}.currency-select{width:auto;min-height:31px;padding:4px 8px;font-size:11px}.danger-text{color:var(--danger)}.summary-line{font-size:11px;color:var(--muted);display:flex;justify-content:space-between;gap:10px;padding:6px 0}.summary-line strong{color:var(--text);font-weight:500}.accent-text{color:var(--accent)}@media(min-width:700px){.app-shell{padding-top:28px}.card{box-shadow:var(--shadow)}.sheet{margin-bottom:25px;border-radius:24px}.modal-backdrop{align-items:center}.image-modal{align-items:stretch}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.single-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.technical-info{margin:24px 0 10px;border-top:1px solid var(--line);padding-top:14px;font-size:11px;color:var(--muted)}.technical-info summary{cursor:pointer;min-height:30px}.technical-info dl{margin:8px 0}.technical-info dt{font-weight:600;margin:12px 0 5px}.technical-info dd{margin:0;overflow-wrap:anywhere;line-height:1.7}.allocation-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.allocation-part{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:13px 9px;text-align:center;min-width:0}.allocation-part>span{font-size:11px;display:block;color:var(--muted)}.allocation-part strong{display:block;font-size:17px;margin:9px 0 5px;font-weight:600;letter-spacing:-.4px}.allocation-part small{font-size:10px}.allocation-part.needs-review{background:var(--amber-soft);border-color:transparent}.allocation-part.needs-review>span,.allocation-part.needs-review strong{color:var(--amber)}.allocation-note{font-size:10px;line-height:1.7;color:var(--muted);margin:10px 0 16px}.review-record .receipt-row{padding:0;border:0}.review-record .record-side .badge{margin-top:7px}.review-record .subtitle{margin-top:12px}.detail-top .caption{display:inline-block}

.donut-svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);stroke:none;overflow:visible}.donut-arc{fill:none;stroke-width:22;stroke-linecap:butt}.donut:before{z-index:1}.donut-content{z-index:2}.estimate-toggle{display:flex;align-items:center;justify-content:space-between;gap:15px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin:0 0 15px;color:var(--text)}.estimate-toggle strong{display:block;font-size:12px}.estimate-toggle small{display:block;font-size:10px;margin-top:3px}.estimate-toggle input{width:34px;min-height:22px;margin:0;accent-color:var(--accent);flex-shrink:0}.estimate-summary{display:flex;flex-wrap:wrap;gap:5px 14px;color:var(--muted);font-size:10px;margin-bottom:8px}.legend-tag{display:block!important;text-align:left!important;margin-top:3px;font-size:9px!important}.color-dot.estimated{background-image:repeating-linear-gradient(135deg,transparent 0 3px,#e9edf0 3px 4px)}.color-dot.unclassified{background-image:repeating-linear-gradient(135deg,transparent 0 3px,#bfc7cd 3px 4px)}.legend-row .color-dot{width:11px;height:11px}.readonly-label{background:var(--accent-soft);color:var(--accent)}.claim-check{display:flex;align-items:center;gap:8px;margin:0;font-size:11px}.claim-check input{width:18px;min-height:18px;margin:0;accent-color:var(--accent)}.claim-button{width:auto;min-height:36px;padding:8px 10px;font-size:11px}.claim-button:disabled{cursor:default}.prior-candidate .receipt-row{padding-top:0}

/* Direction C: reviewed tokens apply equally to the complete and read-only views. */
:root{font-family:Manrope,"Noto Sans SC",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;font-size:14px;font-weight:500;--bg:#F4F6F3;--card:#FFFFFF;--text:#17201C;--muted:#56615B;--line:#E7EBE7;--accent:#17604A;--accent-soft:#E1F0E9;--on-accent:#FFFFFF;--blue:#1F4E8C;--blue-soft:#E8EFF9;--on-blue:#FFFFFF;--amber:#8A5300;--amber-soft:#FFF1D6;--danger:#9D3329;--danger-soft:#FCEBE8;--shadow:0 3px 16px #17201C06}
:root[data-theme=dark]{--bg:#111A16;--card:#1B2922;--text:#F1F6F3;--muted:#BCC9C1;--line:#34463B;--accent:#A2E3C2;--accent-soft:#234A37;--on-accent:#10251A;--blue:#B6D1FA;--blue-soft:#253F63;--on-blue:#142A47;--amber:#FFD493;--amber-soft:#463820;--danger:#FFC0B4;--danger-soft:#4D2924;--shadow:0 3px 16px #00000018}
body{font-variant-numeric:tabular-nums}h1{font-size:26px;font-weight:800;letter-spacing:-.7px;line-height:1.35}h2,h3{font-size:16px;font-weight:800;line-height:1.5}small,.caption{font-size:12px;line-height:1.55}button,a,input,select,textarea,summary{min-height:44px}button{min-width:44px}button:disabled{opacity:1;cursor:default;background:var(--bg);color:var(--muted)}input,textarea,select{font-size:14px;border-radius:12px;line-height:1.5}label{font-size:13px}input[type=checkbox]{min-width:44px;min-height:44px;width:44px;height:44px;flex-shrink:0}a{display:inline-flex;align-items:center}
.app-shell{padding:calc(16px + var(--safe-top)) calc(16px + var(--safe-right)) calc(100px + var(--safe-bottom)) calc(16px + var(--safe-left))}.topline{margin-bottom:24px;gap:8px}.brand{font-size:14px;font-weight:800}.brand-mark{background:var(--accent);color:var(--on-accent);width:36px;height:36px;border-radius:12px;font-size:13px}.top-actions{gap:8px}.isolation{font-size:12px;line-height:1.5;padding:5px 8px}.icon-button{width:44px;height:44px;border-radius:12px}.heading{align-items:flex-start;margin-bottom:20px;gap:12px}.heading>div{min-width:0}.eyebrow{font-size:11px;letter-spacing:1.4px;font-weight:800;margin-bottom:6px}.subtitle{font-size:13px;line-height:1.65;margin-top:8px}.month-select{min-height:44px;font-size:12px;border-radius:12px;max-width:132px;flex-shrink:0;padding:8px}.card{border-radius:20px;padding:16px;margin-bottom:16px;box-shadow:none}.list-card{padding:0 16px}.section-heading{margin:24px 0 12px;gap:10px}.section-heading h2{font-size:16px}.section-heading small{font-size:12px;text-align:right}.text-button{min-height:44px;font-size:13px;padding:8px;line-height:1.5}.text-button svg{width:16px;height:16px}.badge,.tag{font-size:12px;line-height:1.5;padding:4px 7px;border-radius:6px}.badge.amber{color:var(--amber);background:var(--amber-soft)}.badge.expense-badge{color:var(--blue);background:var(--blue-soft)}
.scope-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:5px;margin:0 0 16px;border:1px solid var(--line);border-radius:16px;background:var(--card)}.scope-switch button{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:6px;min-height:48px;border-radius:12px;padding:8px 5px;font-size:14px;font-weight:800;color:var(--muted)}.scope-switch svg{width:18px;height:18px}.scope-switch .active{background:var(--accent-soft);color:var(--accent)}.scope-switch [data-home-scope=expenses].active{background:var(--blue-soft);color:var(--blue)}.scope-switch button:disabled{background:var(--bg);color:var(--muted)}.scope-switch small{font-size:12px;white-space:nowrap;font-weight:500;color:inherit}.scope-note{font-size:12px;color:var(--muted);margin:-4px 0 16px;line-height:1.7}
.hero{border-radius:24px;background:#17604A;color:#FFFFFF;padding:22px 20px}.hero:after{display:none}.hero-label{font-size:14px;font-weight:800;opacity:1;letter-spacing:.2px}.hero-total{font-size:clamp(44px,10.5vw,46px);font-weight:800;letter-spacing:-1.5px;line-height:1.25;margin:14px 0 6px;overflow-wrap:anywhere}.hero-total span{font-size:13px;font-weight:500;opacity:1;color:#FFFFFF}.hero-note{font-size:12px;line-height:1.7;color:#FFFFFF;margin:0 0 20px}.hero-divider{opacity:1;background:#FFFFFF45}.hero-bottom{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;font-size:12px;line-height:1.6;margin-top:16px}.hero-bottom>div{min-width:0}.hero-bottom strong{font-size:18px;font-weight:800;letter-spacing:-.3px;margin-top:5px;overflow-wrap:anywhere}.hero .caption,.hero small{color:#FFFFFF;opacity:1}.hero-bottom .caption{font-size:12px;font-weight:500}.expense-hero{background:#1F4E8C}.hero-balance{margin:18px 0 10px;display:flex;flex-direction:column;gap:7px}.hero-balance>span{font-size:13px}.hero-balance>strong{font-size:36px;font-weight:800;letter-spacing:-1px}.expense-metrics{gap:10px}.expense-metrics strong{font-size:16px;line-height:1.55}.expense-metrics small{font-size:12px;display:block;line-height:1.6;margin-top:5px}.reference-total{padding:16px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr auto;align-items:center;gap:6px}.reference-total>span{font-size:13px;color:var(--muted)}.reference-total>strong{font-size:26px;font-weight:800;letter-spacing:-.7px}.reference-total>small{grid-column:1/-1}.expense-button{background:var(--blue);color:var(--on-blue);margin-bottom:12px}.expense-reference .allocation-note{margin:12px 0}
.action-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.quick-action{border-radius:18px;padding:14px 10px;gap:8px;min-height:154px;font-size:14px;min-width:0}.quick-action svg{width:23px;height:23px}.quick-action>span{font-size:14px;font-weight:800}.quick-action>strong{font-size:22px;font-weight:800;letter-spacing:-.5px}.quick-action small{font-size:12px;color:var(--muted);line-height:1.55;margin-top:0}.quick-action>small{overflow-wrap:anywhere}.quick-action strong small{font-weight:500;font-size:12px}.receipt-row{padding:16px 0;gap:10px}.receipt-row h3{font-size:14px;font-weight:800;line-height:1.5}.receipt-row .money{font-size:15px;font-weight:800}.receipt-row .meta{font-size:12px;gap:4px;line-height:1.55}.receipt-icon{width:40px;height:44px;border-radius:12px}.record-side small{margin-top:6px}.record-side .badge{font-size:12px}.empty{font-size:14px;padding:26px 8px}.page-footer{font-size:12px;line-height:1.75;margin-top:24px}.summary-line{font-size:13px;line-height:1.6;align-items:center;padding:8px 0}.summary-line strong{font-weight:800}
.search input{font-size:14px;min-height:48px}.search svg{top:15px}.segmented{gap:4px;padding:4px;border-radius:14px;margin-bottom:16px;background:var(--line)}.segmented button{font-size:13px;min-height:44px;border-radius:11px;padding:8px 2px}.segmented button.active{font-weight:800;box-shadow:none}.hint{font-size:13px;line-height:1.7;gap:8px}.hint svg{width:18px;height:18px}.notice-card{font-size:13px;border-radius:12px;padding:14px;line-height:1.7}.pending-group .section-heading{margin:20px 0 12px}.pending-card{padding:16px;border-radius:20px}.pending-first{display:flex;align-items:flex-start;gap:10px;justify-content:space-between}.pending-first h3{font-size:16px;line-height:1.5;overflow-wrap:anywhere;min-width:0}.pending-first .money{font-size:18px;font-weight:800;white-space:nowrap;letter-spacing:-.3px}.pending-meta{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:8px 0 12px;font-size:12px;color:var(--muted);line-height:1.6}.pending-meta .badge{font-size:12px;padding:2px 6px}.meta-separator{color:var(--muted)}.pending-bottom{display:flex;align-items:center;gap:10px;border-top:1px solid var(--line);padding-top:12px}.pending-bottom p{font-size:13px;line-height:1.6;color:var(--muted);flex:1;min-width:0;overflow-wrap:anywhere}.pending-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.pending-primary{display:flex;align-items:center;justify-content:center;gap:4px;background:var(--accent);color:var(--on-accent);font-size:14px;font-weight:800;min-height:44px;border-radius:12px;padding:10px 12px}.pending-primary svg{width:16px;height:16px}.skip-text{font-size:13px;color:var(--muted);padding:8px 6px}.pending-bottom:has(.pending-actions:empty) .pending-actions{display:none}
.allocation-summary{gap:12px}.allocation-part{border-radius:18px;padding:14px 8px;min-width:0}.allocation-part>span{font-size:12px}.allocation-part strong{font-size:18px;font-weight:800;letter-spacing:-.5px;margin:10px 0 6px;overflow-wrap:anywhere}.allocation-part small{font-size:12px}.allocation-note{font-size:12px;line-height:1.7;margin:12px 0 16px}.estimate-toggle{border-radius:18px;padding:14px 16px;gap:12px}.estimate-toggle strong{font-size:14px;font-weight:800}.estimate-toggle small{font-size:12px;line-height:1.6}.estimate-toggle input{width:44px;min-height:44px}.estimate-summary{font-size:12px;line-height:1.7;gap:8px 12px}.currency-select{min-height:44px;font-size:12px;border-radius:12px;max-width:50%}.chart-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.chart-heading>div{text-align:right}.chart-heading small{display:block;font-size:12px}.chart-heading strong{display:block;margin-top:3px;font-size:18px;font-weight:800}.category-bars{display:flex;flex-direction:column;gap:4px}.category-bar{padding:12px 0;min-height:66px;width:100%;display:flex;flex-direction:column;gap:10px;text-align:left;border-radius:10px}.category-bar.selected{background:var(--accent-soft);padding-left:8px;padding-right:8px}.bar-label{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto 42px;gap:9px;align-items:center;font-size:14px;line-height:1.55}.bar-label>span{min-width:0;overflow-wrap:anywhere;font-weight:700}.bar-label strong{font-size:14px;font-weight:800;white-space:nowrap}.bar-label>small{text-align:right;font-size:12px}.bar-tag{display:inline-block;font-size:12px;margin-left:5px;color:var(--muted);font-weight:500}.bar-track{display:block;width:100%;height:9px;background:var(--line);border-radius:6px;overflow:hidden}.bar-fill{display:block;height:100%;border-radius:6px;min-width:1px}.bar-fill.estimated{background-image:repeating-linear-gradient(135deg,transparent 0 4px,#FFFFFF70 4px 6px)}.bar-fill.unclassified{background-image:repeating-linear-gradient(135deg,transparent 0 4px,#64716B55 4px 6px)}.review-record .subtitle{font-size:13px}.single-line{white-space:normal;overflow-wrap:anywhere;text-overflow:clip}
.nav{padding:8px 12px calc(10px + var(--safe-bottom));gap:4px;background:var(--card)}.nav button{min-height:52px;min-width:44px;font-size:11px;gap:5px;border-radius:12px;padding:6px 3px}.nav button.active{background:var(--accent-soft);font-weight:800}.nav svg{width:22px;height:22px}.primary,.secondary,.danger-button{font-size:14px;font-weight:800;min-height:48px;border-radius:12px;padding:12px;line-height:1.5}.primary{background:var(--accent);color:var(--on-accent)}.primary.expense-button{background:var(--blue);color:var(--on-blue)}.primary:disabled,.secondary:disabled{background:var(--bg);color:var(--muted)}.button-pair{gap:12px;margin:16px 0}.back-label{font-size:13px;min-height:44px}.detail-top h2{font-size:22px}.detail-amount{font-size:44px;font-weight:800}.detail-top .badge{font-size:12px}.detail-facts .fact span{font-size:12px}.fact strong{font-size:14px;font-weight:700}.item-row{font-size:14px;line-height:1.6;padding:14px 0}.item-row small,.source-button small{font-size:12px}.source-button p{font-size:14px}.source-button{border-radius:12px;padding:12px;min-height:64px}.source-button .thumb{min-height:44px}.stat strong{font-size:26px;font-weight:800}.stat strong span{font-size:13px}.step h3{font-size:15px;font-weight:800}.step p{font-size:13px;line-height:1.7}.step-number{width:28px;height:28px;font-size:13px;font-weight:800}.settings-row{font-size:14px;line-height:1.6}.settings-row small,.settings-row>span{font-size:12px}.profile p,.version-note{font-size:12px}.tag-list{gap:8px}.tag{padding:7px 9px}.claim-check{min-height:44px;font-size:13px;gap:8px}.claim-check input{width:44px;min-height:44px}.claim-button{font-size:13px;min-height:44px;padding:10px;width:auto}.calendar-header{font-size:12px;margin-top:18px}.card:has(.calendar){padding-left:10px;padding-right:10px}.calendar{grid-template-columns:repeat(7,minmax(44px,1fr));gap:2px}.day{height:48px;min-width:44px;border-radius:12px;font-size:14px;gap:2px;padding:4px 0}.day small{font-size:12px;line-height:1.4}.day.selected{color:var(--on-accent)}.day.selected small{color:var(--on-accent)}.calendar-key{font-size:12px;gap:10px;flex-wrap:wrap;line-height:1.6}
.sheet{padding:12px 16px calc(24px + var(--safe-bottom));border-radius:24px 24px 0 0}.sheet h2{font-size:22px;font-weight:800}.sheet p{font-size:14px;line-height:1.7}.sheet-amount{font-size:36px;font-weight:800}.sheet-error{font-size:13px;line-height:1.7}.sheet input[type=range],.image-zoom input{min-height:44px}.sheet input[type=checkbox]{min-width:44px!important;min-height:44px!important;width:44px!important;height:44px}.sheet-handle{margin-bottom:20px}.image-toolbar,.image-zoom{font-size:14px}.image-toolbar button{width:44px;height:44px;min-height:44px;min-width:44px}.startup p{font-size:14px}.startup small{font-size:12px}.download{font-size:14px}#notice{font-size:14px;line-height:1.7;max-width:calc(100vw - 32px);padding:14px 16px}.loading{opacity:1}
@media(max-width:374px){.calendar{overflow-x:auto}.hero{padding:20px 16px}.hero-bottom{gap:8px}.hero-bottom strong{font-size:16px}.allocation-summary{gap:8px}.allocation-part strong{font-size:16px}.scope-switch{gap:4px}.scope-switch button{gap:4px}.pending-bottom{align-items:flex-start}.pending-primary{padding:10px}.bar-label{grid-template-columns:minmax(0,1fr) auto 38px;gap:6px;font-size:13px}.bar-label strong{font-size:13px}}
@media(min-width:700px){.app-shell{padding-top:24px}.card{box-shadow:none}.hero{padding:26px}.quick-action{padding:16px}.sheet{border-radius:24px}}
html{scrollbar-width:none}html::-webkit-scrollbar{display:none}.pending-first{align-items:center}.pending-title{padding:0;min-height:44px;min-width:44px;font-size:16px;font-weight:800;line-height:1.5;text-align:left;overflow-wrap:anywhere;flex:1}
.pending-title,.pending-first h3{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.pending-first .money{flex-shrink:0}.pending-first h3{flex:1}
.estimate-toggle input[type=checkbox]{appearance:none;-webkit-appearance:none;position:relative;display:block;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border:0;border-radius:0;background:transparent;cursor:pointer}.estimate-toggle input[type=checkbox]::before{content:"";position:absolute;inset:10px 0;width:44px;height:24px;border:1px solid var(--muted);border-radius:14px;background:var(--line)}.estimate-toggle input[type=checkbox]::after{content:"";position:absolute;left:3px;top:13px;width:18px;height:18px;border-radius:50%;background:var(--muted);transition:left .15s}.estimate-toggle input[type=checkbox]:checked::before{background:var(--accent);border-color:var(--accent)}.estimate-toggle input[type=checkbox]:checked::after{left:23px;background:var(--on-accent)}
.pending-card .pending-actions{border:0;padding:0;margin:0;gap:4px}.pending-card .pending-actions .pending-primary{background:var(--accent);color:var(--on-accent);font-size:14px;padding:10px 12px;border-radius:12px}.pending-card .pending-actions .skip-text{background:none;color:var(--muted);font-size:13px;padding:8px 6px}

/* Compact pending rows preserve 44px controls and keep navigation local. */
.pending-card{padding:8px 12px;margin-bottom:10px;border-radius:16px}
.pending-card .pending-first{min-height:44px;gap:8px}
.pending-card .pending-title{height:44px;line-height:24px}
.pending-card .pending-first h3{line-height:24px}
.pending-card .pending-first .badge{flex-shrink:0;white-space:nowrap}
.pending-card .pending-meta{height:20px;margin:0;gap:5px;flex-wrap:nowrap;line-height:20px;overflow:hidden}
.pending-card .pending-meta>span{white-space:nowrap;flex-shrink:0}
.pending-card .pending-meta .pending-category{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis}
.pending-card .pending-meta .badge{line-height:20px;padding:0 6px}
.pending-card .pending-bottom{min-height:44px;align-items:center;gap:8px;border:0;padding:0}
.pending-card .pending-bottom p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}
.pending-card .pending-actions button{min-height:44px;white-space:nowrap}
.pending-card .pending-actions .pending-primary{padding:10px;line-height:20px}
.failed-card .pending-actions .secondary{width:auto;min-height:44px;padding:8px;font-size:12px;line-height:20px}
.pending-expand{margin:4px 0 16px;min-height:44px}
.pending-counts{display:flex;flex-direction:column;gap:1px}
.expense-hero .expense-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}

/* Read-only bank reconciliation uses the shared light/dark design tokens. */
.reconciliation-link{width:100%;margin:8px 0 16px}.reconciliation-total,.reconciliation-group{min-width:0;overflow-wrap:anywhere}.reconciliation-balances{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}.reconciliation-balances strong{display:block;font-size:23px;margin-top:7px}.reconciliation-total p,.reconciliation-row p,.group-amount{font-size:12px;line-height:1.7;margin:6px 0}.reconciliation-row{padding:14px 0;border-top:1px solid var(--line)}.reconciliation-first{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.reconciliation-first h3{min-width:0;overflow-wrap:anywhere;font-size:14px;margin:0}.reconciliation-first strong{flex-shrink:0;font-size:14px}.readonly-expand summary{cursor:pointer;font-size:13px;padding:14px 0}.readonly-expand{min-width:0}.list-card>.readonly-expand>summary{padding:14px 16px}.candidate-copy{overflow-wrap:anywhere}.review-note{font-weight:600}.reconciliation-group .section-heading{margin:0}.reconciliation-total .eyebrow{letter-spacing:.04em}

/* 006: compact, plain-language readonly reconciliation. */
.reconciliation-conclusion{padding:16px}.conclusion-lead{font-size:14px;line-height:1.7}.conclusion-lead>strong{font-size:23px;white-space:nowrap;color:var(--accent)}.reconciliation-conclusion .reconciliation-balances{gap:12px;margin:12px 0}.reconciliation-balances>div>span{font-size:12px;color:var(--muted)}.reconciliation-balances .euro-amount{font-size:23px;margin:4px 0}.reconciliation-balances .foreign-amount{font-size:15px;margin:6px 0 0;font-weight:650}.conclusion-counts,.foreign-counts{font-size:11px;line-height:1.55;color:var(--muted)}.foreign-counts{margin-top:5px}.plain-reconciliation .scope-note{font-size:11px;margin:8px 0 12px}.plain-reconciliation .notice-card{font-size:12px;line-height:1.55;padding:12px 14px;margin:0 0 12px}.plain-reconciliation .reconciliation-group{padding:14px;margin-bottom:12px}.plain-reconciliation .section-heading h2{font-size:16px}.group-help{font-size:11px;line-height:1.5;color:var(--muted);margin:5px 0 8px}.plain-reconciliation .reconciliation-row{padding:9px 0}.reconciliation-first h3{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:normal;font-size:13px;line-height:1.4}.reconciliation-first strong{font-size:13px;line-height:1.4}.reconciliation-row .meta{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:10px;line-height:1.4;margin:4px 0 0}.candidate-list{list-style:none;padding:0 0 0 9px;margin:8px 0 0;border-left:2px solid var(--line)}.candidate-line{display:flex;justify-content:space-between;gap:8px;align-items:center;margin:5px 0;font-size:11px;line-height:1.4}.candidate-line>span{min-width:0;display:flex;align-items:baseline;gap:7px}.candidate-line b{font-weight:500;max-width:128px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.candidate-line small{font-size:9px;white-space:nowrap}.candidate-line strong{font-size:11px;font-weight:550;white-space:nowrap}.reconciliation-row .candidate-overflow{font-size:10px;margin:5px 0 0;color:var(--muted)}.reconciliation-row .category-suggestion{font-size:10px;line-height:1.4;margin:5px 0 0}.plain-reconciliation .readonly-expand summary{font-size:11px;padding:10px 0 0}.plain-reconciliation .other-money{padding:12px 14px;margin-bottom:12px}.plain-reconciliation .other-money>summary{padding:0}.plain-defaults{font-size:10px;line-height:1.5;color:var(--muted);margin-top:12px}.hero .hero-balance.foreign-balance strong{font-size:20px;letter-spacing:0}.hero .hero-balance.foreign-balance{margin-top:10px}.hero .hero-balance.foreign-balance span{font-size:11px}

/* Connected household views: preserve the full amount and merchant at 390px. */
.money,.hero-total,.hero-balance>strong,.detail-amount,.sheet-amount,.reconciliation-balances strong,.summary-line strong{font-variant-numeric:tabular-nums;white-space:normal;overflow-wrap:anywhere;text-overflow:clip;min-width:0}
.hero-total,.detail-amount{font-size:clamp(28px,8.5vw,42px);letter-spacing:-.6px}.hero-balance>strong{font-size:clamp(25px,7vw,36px)}
.pending-title,.pending-first h3,.receipt-row .clip,.reconciliation-first h3,.candidate-line b{height:auto;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
.pending-first .money,.reconciliation-first strong{white-space:normal;overflow-wrap:anywhere;max-width:50%;flex-shrink:1}
.record-side{min-width:0;max-width:52%}.receipt-row .grow{min-width:0}.pending-card .pending-bottom p{white-space:normal;overflow:visible}.pending-card .pending-meta{height:auto;flex-wrap:wrap;overflow:visible}
.bank-preview-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px;padding:14px 0;border-bottom:1px solid var(--line);font-size:14px}.bank-preview-row strong{grid-column:1/-1;overflow-wrap:anywhere}.bank-preview-row b{text-align:right;overflow-wrap:anywhere}.receipt-delivery{color:var(--muted);font-size:13px;line-height:1.7}
.bar-label{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 42px}.bar-label strong{white-space:normal;overflow-wrap:anywhere;text-align:right}.conclusion-lead>strong,.candidate-line strong{white-space:normal;overflow-wrap:anywhere}
.nav{overflow-x:auto;justify-content:space-around}.nav button{flex:1;min-width:44px}.sheet details summary{min-height:44px;padding:12px 0}.sheet select,.sheet input{min-height:44px}

/* Lists keep merchant names to two lines; the detail retains the full name. */
.pending-card .pending-title,.pending-card .pending-first h3,.receipt-row .clip{height:auto;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;max-height:3em;white-space:normal}
.detail-top h2{overflow-wrap:anywhere}

/* The connected journal keeps bank and receipt values in separate currencies. */
.journal-month select{min-height:44px;max-width:155px;font-size:14px}
.journal-hero{background:#17604A;color:#fff;padding:24px;border-radius:24px;margin:16px 0}
.journal-hero.expense-hero{background:#1F4E8C}
.journal-hero p{color:#fff}.journal-totals{display:grid;gap:10px;margin:12px 0}
.journal-totals strong{font-size:44px;line-height:1.2;overflow-wrap:anywhere;white-space:normal}
.journal-entry-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}
.journal-entry-grid button{min-height:88px;text-align:left}.journal-entry-grid span{display:block;font-size:12px;margin-top:8px;color:var(--muted)}
.journal-question h3{font-size:16px;line-height:1.5;white-space:normal;overflow-wrap:anywhere;max-height:none;margin:6px 0}
.journal-facts{font-size:14px;line-height:1.6;overflow-wrap:anywhere}.journal-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.journal-actions button{min-height:44px;margin:0;white-space:normal;font-size:14px}.journal-section{margin-top:20px}
.journal-expand summary{min-height:44px;padding:12px 0;cursor:pointer;font-size:14px}.journal-row,.journal-claim,.journal-cash,.journal-coverage,.journal-identity{padding:12px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.journal-row span{display:block;font-size:13px;color:var(--muted);margin-top:6px}.journal-warning{color:#8A5300;background:#FFF1D6;border-radius:6px;padding:8px;font-size:13px}
html[data-theme=dark] .journal-warning{background:#3D2C13;color:#FFDA99}
.journal-category{margin:14px 0}.journal-category>div:first-child{display:grid;grid-template-columns:1fr auto;gap:6px;min-width:0;font-size:14px}.journal-category small{grid-column:1/-1;text-align:right}
.journal-bar{height:8px;border-radius:6px;background:var(--line);overflow:hidden;margin-top:7px}.journal-bar i{height:100%;display:block;border-radius:6px}
.journal-small-totals{display:grid;text-align:right;gap:6px;max-width:70%;overflow-wrap:anywhere}.journal-small-totals strong{font-size:15px}
.journal-empty{padding:20px 10px;text-align:center;color:var(--muted);font-size:14px}.journal-no-amount{font-size:15px}
.journal-conclusion>p{font-size:14px;line-height:1.7}.journal-identity .badge{margin-top:6px}
.page-title{display:flex;align-items:center;justify-content:space-between;gap:12px}
.page-title h1{font-size:26px;margin:0;font-weight:800;min-width:0}
.journal-month{margin:0;flex:0 0 auto;max-width:165px}
