/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--ease-out:cubic-bezier(0, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.fixed{position:fixed}.static{position:static}.sticky{position:sticky}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.shrink{flex-shrink:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.border{border-style:var(--tw-border-style);border-width:1px}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}}:root{--bg:#f3f5f8;--surface:#fff;--surface-2:#e7edf6;--line:#dfe5ec;--ink:#0f1b2d;--ink-soft:#2a3a50;--ink-2:#5d6b7a;--ink-3:#8a95a3;--muted:#5d6b7a;--brand:#1b3a6b;--brand-soft:#e7edf6;--act-camera:#0e7c7b;--act-manual:#4a5d73;--act-expense:#b7791f;--act-pending:#b3261e;--ok:#1b7f4b;--ok-soft:#e3f2e8;--warn:#b7791f;--warn-soft:#fbf1dc;--bad:#b3261e;--bad-soft:#fbe9e7;--r-card:14px;--r-control:10px;--r-pill:999px;--shadow-card:0 1px 2px #0f1b2d0f;--shadow-float:0 10px 24px #0f1b2d38;--cream:var(--bg);--paper:var(--surface);--line-1:var(--line);--ink-1:var(--ink);--mint:var(--surface-2);--orange:var(--act-expense);--sand:var(--bg);--lavender:var(--surface-2);--shadow:var(--shadow-card)}*{box-sizing:border-box}html{background:var(--cream)}body{color:var(--ink);background:var(--cream);-webkit-font-smoothing:antialiased;margin:0;font-family:Noto Sans TC,Microsoft JhengHei,system-ui,sans-serif}button,input,select,textarea{font:inherit}button{color:inherit}button:disabled{cursor:not-allowed;opacity:.62}.app-shell{background:radial-gradient(circle at 4% 0%, #eea6652e, transparent 30%), radial-gradient(circle at 100% 20%, #85baa02e, transparent 32%), var(--cream);min-height:100dvh;position:relative;overflow:hidden}.app-frame{z-index:1;min-height:100dvh;padding-bottom:92px;position:relative}.topbar{z-index:20;background:#f5f2eae0;border-bottom:1px solid #17353614;grid-template-columns:1fr auto auto;align-items:center;gap:18px;height:76px;padding:0 5vw;display:grid;position:sticky;top:0}.brand{cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:10px;width:fit-content;padding:0;display:inline-flex}.brand-mark{color:#fff;background:var(--ink);letter-spacing:-.04em;border-radius:12px 12px 12px 4px;place-items:center;width:38px;height:38px;font-size:13px;font-weight:800;display:grid;box-shadow:0 8px 18px #17353633}.brand strong{letter-spacing:-.04em;font-size:20px;line-height:1;display:block}.brand small{color:var(--muted);margin-top:4px;font-size:11px;display:block}.store-switch{cursor:pointer;background:#fffdf8bf;border:1px solid #1735361c;border-radius:999px;align-items:center;gap:8px;padding:9px 13px;font-size:13px;display:flex}.store-dot{background:#5aa377;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #5aa3771f}.chevron{color:var(--muted);font-size:15px}.avatar{cursor:pointer;background:#e7d6ba;border:0;border-radius:50%;width:38px;height:38px;font-weight:700;position:relative}.notification-dot{border:2px solid var(--cream);background:#e67d5c;border-radius:50%;width:8px;height:8px;position:absolute;top:0;right:0}.view-area{width:min(1120px,90vw);margin:0 auto;padding:40px 0 56px}.cloud-banner{border-radius:13px;width:min(1120px,90vw);margin:18px auto 0;padding:12px 15px;font-size:12px}.error-banner{color:#914d3f;background:#f7ded7;border:1px solid #ecc8bd}.warn-banner{color:#8a6a1f;font:inherit;text-align:left;cursor:pointer;background:#fdf3d7;border:1px solid #ecd9a8;font-size:12px;font-weight:700;display:block}.inline-icon,.inline-icon-left{vertical-align:-2px;display:inline-block}.inline-icon{margin-left:4px}.inline-icon-left{margin-right:4px}.close-button,.photo-viewer-close,.month-step,.today-mark,.empty-state>span,.upload-icon{place-items:center;display:grid}.vendor-caret svg,.today-mark svg,.upload-icon svg{display:block}.trash-list{gap:8px;display:grid}.trash-row{background:#f4f6f3;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:11px 13px;display:flex}.trash-copy{gap:2px;min-width:0;display:grid}.trash-copy strong{font-size:13px}.trash-copy small{color:var(--muted);overflow-wrap:anywhere;font-size:11px}.member-role{vertical-align:1px;border-radius:999px;margin-left:7px;padding:2px 8px;font-size:10px;font-weight:800}.member-toggle{cursor:pointer;background:#f4f6f3;border-radius:13px;align-items:flex-start;gap:10px;padding:12px 14px;font-size:12px;display:flex}.member-toggle input{accent-color:#35605c;width:17px;height:17px;margin-top:3px}.member-toggle span{color:var(--ink-soft);line-height:1.55}.member-steps{color:#2f5763;background:#eef5f8;border:1px dashed #cfe0e6;border-radius:13px;gap:5px;padding:12px 14px;font-size:12px;line-height:1.6;display:grid}.member-steps a.secondary-button{justify-self:start;margin-top:4px;text-decoration:none}.who-am-i{align-items:center;gap:9px;min-width:0;display:flex}.who-am-i .avatar{flex-shrink:0}.who-am-i-copy{gap:1px;min-width:0;display:grid}.who-am-i-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.who-am-i-copy small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}@media (width<=520px){.who-am-i-copy{display:none}}.sign-out-button{font:inherit;color:var(--ink-soft);cursor:pointer;white-space:nowrap;background:#fffdf8bf;border:1px solid #17353624;border-radius:999px;flex-shrink:0;padding:7px 12px;font-size:11px;font-weight:700}.sign-out-confirm{color:#7c3f28;background:#fbe9e2;border:1px solid #eec4b4;border-radius:15px;gap:12px;margin:14px 5vw 0;padding:15px 17px;display:grid}.sign-out-confirm strong{margin-bottom:4px;font-size:13px;display:block}.sign-out-confirm span{font-size:12px;line-height:1.55}.sign-out-confirm .recon-switch-actions a{flex:1;place-items:center;text-decoration:none;display:grid}.ai-notice-backdrop{z-index:120;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0d202080;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.ai-notice{background:var(--surface,#fff);width:min(100%,420px);max-height:calc(100dvh - 32px);color:var(--ink);border-radius:16px;gap:12px;padding:18px 18px 16px;display:grid;overflow:auto;box-shadow:0 18px 48px #0d202047}.ai-notice>strong{color:var(--brand);font-size:15px}.ai-notice p{margin:0;font-size:13px;line-height:1.65}.ai-notice ol{gap:8px;margin:0;padding:0;font-size:13px;line-height:1.65;list-style:none;display:grid}.ai-notice li{grid-template-columns:20px minmax(0,1fr);align-items:start;display:grid}.ai-notice-num{color:var(--brand);font-weight:700}.ai-notice li strong{display:block}.ai-notice-actions{border-top:1px solid #17353614;gap:10px;padding-top:4px;display:grid}.ai-notice-actions .check-label{align-items:center;gap:8px;font-size:13px;display:flex}.ai-notice-actions .check-label input{width:18px;height:18px;accent-color:var(--brand)}.ai-notice-actions .primary-button{width:100%}.access-notice{background:var(--paper);max-width:520px;box-shadow:var(--shadow);border-radius:22px;justify-items:start;gap:14px;margin:40px auto 0;padding:28px;display:grid}.access-notice h1{letter-spacing:-.02em;font-size:21px}.access-email{color:var(--ink-soft);overflow-wrap:anywhere;margin:0;font-size:12px}.access-email strong{color:var(--ink)}.access-notice p{color:var(--muted);margin:0;font-size:13px;line-height:1.75}.welcome-row{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:24px;display:flex}.eyebrow{color:#778580;text-transform:uppercase;letter-spacing:.13em;font-size:11px;font-weight:700}.welcome-row h1,.page-title-row h1{letter-spacing:-.055em;margin:6px 0 8px;font-size:clamp(28px,4vw,42px);line-height:1.06}.welcome-row p,.page-title-row p{color:var(--muted);margin:0;font-size:14px}.month-button{cursor:pointer;background:#ffffff8c;border:1px solid #17353624;border-radius:12px;padding:10px 14px}.month-switcher{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.month-switcher .month-step{cursor:pointer;background:#ffffff8c;border:1px solid #17353624;border-radius:11px;width:36px;height:36px;font-size:17px;line-height:1}.month-switcher .month-step:disabled{opacity:.35;cursor:default}.month-switcher .month-label{white-space:nowrap;background:#ffffff8c;border:1px solid #17353624;border-radius:12px;padding:9px 13px;font-size:13px;font-weight:750}.month-switcher .month-current{background:var(--ink);color:#fff;cursor:pointer;white-space:nowrap;border:0;border-radius:12px;padding:10px 13px;font-size:12px;font-weight:700}.page-title-tools{justify-items:end;gap:8px;display:grid}.completeness-card{border-radius:var(--r-card);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-card);margin-top:26px;padding:16px 18px}.health-heading{z-index:1;justify-content:space-between;align-items:flex-start;gap:16px;display:flex;position:relative}.health-heading h2{letter-spacing:-.02em;font-size:17px;font-family:var(--num);font-variant-numeric:tabular-nums;margin:4px 0 0}.health-heading button{white-space:nowrap;color:var(--brand);cursor:pointer;background:0 0;border:0;align-items:center;padding:4px 0;font-size:13px;font-weight:700;display:inline-flex}.progress-track{background:var(--surface-2);border-radius:999px;width:100%;height:4px;margin:12px 0 8px;overflow:hidden}.progress-track span{border-radius:inherit;background:var(--brand);height:100%;display:block}.completeness-card p{color:var(--ink-2);margin:0;font-size:12px}.metric-grid{grid-template-columns:repeat(4,1fr);gap:14px;margin-top:14px;display:grid}.metric-card{border:1px solid #17353612;border-radius:20px;flex-direction:column;justify-content:space-between;min-height:148px;padding:19px;display:flex;box-shadow:0 8px 24px #243d3a0d}.metric-card>span{color:var(--ink-soft);font-size:12px;font-weight:700}.metric-card strong{letter-spacing:-.045em;align-items:baseline;gap:6px;font-size:clamp(20px,2.6vw,27px);display:flex}.metric-card strong small{letter-spacing:0;opacity:.65;font-size:10px}.metric-card .metric-detail{color:var(--muted);font-size:11px;display:block}.metric-card .metric-detail em{white-space:nowrap;color:var(--ink-soft);opacity:.85;margin-top:3px;font-style:normal;font-weight:800;display:block}.metric-tappable{font:inherit;color:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .12s,box-shadow .12s}.metric-tappable:active{transform:scale(.985);box-shadow:0 4px 14px #243d3a14}.month-delta{color:var(--muted);font-size:11px;font-weight:700}.report-hero .month-delta{color:#ffffffb8;margin-bottom:10px;display:block}.balance-gap{width:100%;font:inherit;text-align:left;cursor:pointer;border:1px solid #0000;border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;margin-top:12px;padding:12px 15px;font-size:12px;font-weight:700;display:flex}.balance-gap em{opacity:.8;white-space:nowrap;font-size:11px;font-style:normal}.balance-gap-loading{cursor:default}.balance-gap-light.balance-gap-open{color:#8a4a20;background:#fdeee4;border-color:#f2d4bf}.balance-gap-light.balance-gap-clear,.balance-gap-light.balance-gap-loading{color:#2d6247;background:#eaf4ee;border-color:#cfe3d6}.balance-gap-dark{color:#ffffffdb;background:#173536e6;border-radius:0 0 18px 18px;margin-top:-14px;padding-top:20px}.bar-tappable{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;padding:0;display:block}.bar-tappable:active{opacity:.68}.filter-chip{color:var(--ink-soft);cursor:pointer;background:#fff;border:1px solid #d9dfd8;border-radius:999px;align-self:start;padding:6px 13px;font-size:11px;font-weight:700}.template-offer{color:#2f5763;background:#eef5f8;border:1px solid #cfe0e6;border-radius:14px;gap:10px;padding:13px 15px;font-size:12px;font-weight:700;display:grid}.template-save{width:100%;font:inherit;color:var(--ink-soft);cursor:pointer;background:0 0;border:1px dashed #c9d2c8;border-radius:14px;padding:12px;font-size:12px;font-weight:700}.template-save:disabled{opacity:.55;cursor:default}.manual-blank-hint{color:var(--muted);margin:-6px 0 0;font-size:11px;line-height:1.5}.manual-blank-hint strong{color:var(--ink-soft)}.recon-month-grid{grid-template-columns:1fr}.recon-month-card h3{color:var(--ink-soft);margin:14px 0 6px;font-size:12px}.recon-month-total{border-radius:15px;justify-content:space-between;align-items:baseline;gap:12px;margin:6px 0 12px;padding:15px 16px;display:flex}.recon-month-total span{font-size:12px;font-weight:700}.recon-month-total strong{letter-spacing:-.04em;font-size:clamp(22px,4vw,30px)}.recon-month-split{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.recon-month-split>div{background:#f4f6f3;border-radius:12px;gap:3px;padding:11px 13px;display:grid}.recon-month-split span{color:var(--muted);font-size:11px}.recon-month-split strong{font-size:15px}.recon-month-day{border-bottom:1px solid #17353612;justify-content:space-between;align-items:center;gap:12px;padding:9px 0;font-size:13px;display:flex}.recon-month-day strong{color:#a03e22;font-size:13px}.section-heading{justify-content:space-between;align-items:flex-end;margin-bottom:16px;display:flex}.section-heading.compact{margin-bottom:12px}.section-heading h2{letter-spacing:-.035em;margin:4px 0 0;font-size:22px}.time-hint{color:var(--muted);font-size:11px}.action-section .section-heading{margin-bottom:12px}.action-primary-tile{border-radius:var(--r-card);background:var(--brand);color:#fff;text-align:left;cursor:pointer;border:0;align-items:center;gap:14px;width:100%;min-height:80px;margin-bottom:10px;padding:16px 18px;transition:transform 80ms;display:flex;box-shadow:0 8px 20px #0f1b2d2e}.action-primary-tile:active{transform:scale(.99)}.action-primary-tile .action-mark{background:#ffffff2e;border-radius:12px;flex-shrink:0;place-items:center;width:44px;height:44px;display:grid}.action-primary-tile>span:nth-child(2){flex:1;min-width:0}.action-primary-tile strong{letter-spacing:-.01em;font-size:18px;font-weight:700;display:block}.action-primary-tile small{opacity:.85;margin-top:3px;font-size:12px;line-height:1.4;display:block}.action-primary-tile .action-arrow{opacity:.7;display:grid}.action-grid{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.action-tile{border:1px solid var(--line-1);border-radius:var(--r-card);background:var(--surface);min-height:112px;color:var(--ink-1);text-align:left;cursor:pointer;box-shadow:var(--shadow-card);flex-direction:column;align-items:flex-start;gap:12px;padding:14px;transition:background 80ms;display:flex;position:relative}.action-tile:active{background:var(--bg)}.action-tile .action-mark{color:#fff;border-radius:12px;place-items:center;width:40px;height:40px;display:grid}.action-tile[data-act=camera] .action-mark{background:var(--act-camera)}.action-tile[data-act=manual] .action-mark{background:var(--act-manual)}.action-tile[data-act=expense] .action-mark{background:var(--act-expense)}.action-tile[data-act=pending] .action-mark{background:var(--act-pending)}.action-tile strong{font-size:15px;font-weight:700;display:block}.action-tile small{color:var(--ink-2);margin-top:2px;font-size:11px;line-height:1.4;display:block}.action-tile .action-badge{background:var(--act-pending);color:#fff;border-radius:var(--r-pill);place-items:center;min-width:20px;height:20px;padding:0 6px;font-size:11px;font-weight:700;display:grid;position:absolute;top:12px;right:12px}.fab-camera{z-index:29;right:max(18px,50vw - min(1120px,90vw)/2);bottom:calc(100px + env(safe-area-inset-bottom));border-radius:var(--r-pill);background:var(--brand);color:#fff;width:60px;height:60px;box-shadow:var(--shadow-float);cursor:pointer;border:0;place-items:center;transition:transform 80ms;display:grid;position:fixed}.fab-camera:active{transform:scale(.94)}.fab-camera svg,.action-mark svg{display:block}.reminder-list{grid-template-columns:1fr 1fr;gap:12px;display:grid}.reminder-list button{text-align:left;cursor:pointer;background:#fffdf8b3;border:1px solid #17353614;border-radius:16px;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;padding:16px;display:grid}.reminder-mark{border-radius:50%;place-items:center;width:32px;height:32px;font-weight:800;display:grid}.reminder-mark.warning{color:#a6562f;background:#f8dfc8}.reminder-mark.info{color:#376c69;background:#dcebe9}.reminder-list strong,.reminder-list small{display:block}.reminder-list strong{font-size:13px}.reminder-list small{color:var(--muted);margin-top:3px;font-size:11px}.bottom-nav{z-index:30;background:#fffdf8ed;border:1px solid #1735361a;border-radius:22px;grid-template-columns:repeat(4,1fr);width:min(500px,100vw - 28px);height:68px;padding:6px 8px;display:grid;position:fixed;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 18px 50px #1b34322e}.bottom-nav button{color:#87928e;cursor:pointer;background:0 0;border:0;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:10px;display:flex;position:relative}.nav-mark{place-items:center;height:20px;display:grid}.nav-mark svg{display:block}.nav-mark{font-size:19px;line-height:1}.nav-badge{color:#fff;background:#e77d5d;border:2px solid #fff;border-radius:999px;place-items:center;min-width:17px;height:17px;padding:0 4px;font-size:9px;display:grid;position:absolute;top:6px;right:24%}.panel-backdrop{z-index:100;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0d202080;justify-content:center;align-items:flex-end;animation:.18s fadeIn;display:flex;position:fixed;inset:0}.action-panel{--panel-inline:26px;--panel-bottom:max(28px, env(safe-area-inset-bottom));background:var(--paper);width:min(680px,100%);max-height:min(88dvh,760px);padding:10px var(--panel-inline) var(--panel-bottom);border-radius:28px 28px 0 0;animation:.26s slideUp;overflow:auto;box-shadow:0 -24px 80px #0d202033}.detail-panel{width:min(780px,100%);max-height:min(94dvh,900px)}.panel-handle{background:#d6dad4;border-radius:99px;width:46px;height:5px;margin:0 auto 18px}.panel-heading{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.panel-heading h2{letter-spacing:-.04em;margin:4px 0 0;font-size:25px}.close-button{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:50%;width:36px;height:36px;font-size:22px}.panel-form{gap:16px;margin-top:22px;display:grid}.panel-form label{color:var(--ink-soft);gap:7px;font-size:12px;font-weight:700;display:grid}.panel-form input,.panel-form select,.panel-form textarea{width:100%;color:var(--ink);background:#fff;border:1px solid #d9dfd8;border-radius:12px;outline:none;padding:12px 13px}.panel-form input:focus,.panel-form select:focus,.panel-form textarea:focus{border-color:#75a493;box-shadow:0 0 0 3px #75a49324}.field-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.upload-zone{text-align:center;background:#f1f5ef;border-radius:20px;flex-direction:column;justify-content:center;align-items:center;min-height:210px;padding:24px;border:1.5px dashed #aebbb3!important;display:flex!important}.upload-zone.has-file{background:#edf6f0;border-style:solid!important;border-color:#75a493!important}.upload-zone input{opacity:0;width:1px;height:1px;position:absolute}.upload-zone strong{color:var(--ink);font-size:14px}.upload-zone small{color:var(--muted);max-width:320px;font-size:11px;font-weight:400;line-height:1.5}.upload-icon{background:var(--ink);color:#fff;border-radius:15px;place-items:center;width:44px;height:44px;margin-bottom:10px;font-size:25px;display:grid}.upload-choice-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-self:stretch;gap:9px;max-width:360px;margin:17px auto 0;display:grid}.panel-form .upload-choice{min-width:0;min-height:44px;color:var(--ink);white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #17353629;border-radius:12px;justify-content:center;align-items:center;padding:10px 8px;font-size:12px;font-weight:750;position:relative;box-shadow:0 5px 14px #1735360f;display:flex!important}.panel-form .camera-choice{background:var(--ink);color:#fff}.panel-form .upload-choice:active{transform:translateY(1px)}.segmented{background:#ecefe9;border-radius:13px;grid-template-columns:1fr 1fr;gap:4px;padding:4px;display:grid}.segmented button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:10px;padding:10px;font-size:12px}.segmented button.selected{color:var(--ink);background:#fff;font-weight:700;box-shadow:0 3px 10px #22393614}.primary-button{color:#fff;background:var(--ink);cursor:pointer;border:0;border-radius:14px;padding:14px 20px;font-weight:700;box-shadow:0 10px 24px #1735362e}.secondary-button{cursor:pointer;background:#ffffffa3;border:1px solid #17353624;border-radius:13px;padding:10px 14px;font-weight:700}.form-message{color:#34654b;background:#e2f0e8;border-radius:10px;margin:0;padding:11px 13px;font-size:12px}.income-grid{grid-template-columns:1fr 1fr;gap:11px;display:grid}.income-grid label:last-child{grid-column:1/-1}.income-grid label{background:#fff;border:1px solid #e0e4de;border-radius:14px;padding:11px 12px}.money-input{align-items:center;gap:5px;display:flex}.money-input small{color:var(--muted)}.money-input input{border:0;padding:2px 0;font-size:18px;font-weight:750;box-shadow:none!important}.money-input.large{background:#fff;border:1px solid #d9dfd8;border-radius:12px;padding:9px 13px}.money-input.large input{font-size:24px}.form-total{background:#edf2eb;border-radius:14px;justify-content:space-between;align-items:center;padding:16px;display:flex}.form-total span{color:var(--muted);font-size:12px}.form-total strong{font-size:19px}.manual-intro{color:var(--ink);background:#e7f0ea;border-radius:13px;gap:4px;padding:13px 14px;display:grid}.manual-intro strong{font-size:13px}.manual-intro span{color:var(--muted);font-size:11px;line-height:1.5}.manual-items-heading{justify-content:space-between;align-items:center;display:flex}.manual-items-heading strong{font-size:13px}.manual-items-heading button,.manual-item-title button{color:#4f7d6d;cursor:pointer;background:0 0;border:0;font-size:11px;font-weight:700}.manual-items{gap:10px;display:grid}.manual-item{background:#fff;border:1px solid #dde3dc;border-radius:16px;gap:10px;padding:14px;display:grid}.manual-item-title{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;font-size:10px;font-weight:800;display:flex}.manual-item-grid{grid-template-columns:.8fr 1fr 1.2fr;gap:8px;display:grid}.review-item-grid{grid-template-columns:.75fr 1fr 1fr 1fr;gap:8px;display:grid}.line-subtotal{color:var(--ink-soft);text-align:right;font-weight:700}.panel-form .check-label{flex-direction:row;align-items:center;gap:8px;min-height:46px;padding:0 2px;display:flex}.panel-form .check-label input{width:18px;height:18px;accent-color:var(--ink);margin:0}.document-detail-image{background:#e9ede8;border:1px solid #dce2dc;border-radius:18px;place-items:center;min-height:150px;max-height:290px;display:grid;overflow:hidden}.document-detail-image img{object-fit:contain;width:100%;height:100%;max-height:290px;display:block}.review-state{border-radius:13px;gap:4px;padding:13px 14px;display:grid}.review-state strong{font-size:13px}.review-state span{font-size:11px;line-height:1.5}.month-assignment{border:1px solid #0000;border-radius:13px;gap:4px;padding:13px 14px;display:grid}.month-assignment strong{font-size:12px}.month-assignment span{font-size:11px;line-height:1.5}.month-warning{color:#844b2d;background:#fae8da;border-color:#e6c1a7}.empty-review-items{color:var(--muted);text-align:center;background:#ffffff8c;border:1px dashed #ccd7cf;border-radius:14px;padding:16px;font-size:11px}.review-coach{border-radius:var(--r-control);background:var(--brand-soft);color:var(--ink-2);border:1px solid #c9d6ea;margin:0;padding:11px 13px;font-size:12px;line-height:1.6}.detail-actions .learn-all{grid-column:1/-1}.today-check{background:#fdf6e7;border:1px solid #e6cf9f;border-radius:18px;margin-bottom:16px;padding:15px 17px}.today-check.today-clear{background:var(--paper-soft,#eaf3ed);border-color:#c9dfd1;align-items:center;gap:12px;display:flex}.today-check.today-clear strong{color:#2f5f45;font-size:14px;display:block}.today-check.today-clear span:last-child{color:#4f7a63;font-size:11px}.today-heading{align-items:center;gap:9px;margin-bottom:10px;display:flex}.today-heading strong{color:#7a4a15;font-size:14px}.today-mark{color:#2f5f45;background:#cfe3d6;border-radius:50%;flex-shrink:0;place-items:center;width:24px;height:24px;font-size:13px;font-weight:800;display:grid}.today-check ul{gap:7px;margin:0;padding:0;list-style:none;display:grid}.today-check li{background:#ffffffb8;border-radius:11px;justify-content:space-between;align-items:center;gap:11px;padding:10px 12px;display:flex}.today-check li span{color:#6c5327;font-size:12px}.today-check li button{background:var(--ink);color:#fff;cursor:pointer;white-space:nowrap;border:0;border-radius:9px;padding:7px 11px;font-size:11px;font-weight:700}.repeat-order{background:#eef5f0;border:1px solid #d5e2d9;border-radius:14px;gap:8px;padding:12px 13px;display:grid}.repeat-order-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.repeat-order-label{color:#3c6a51;font-size:11px;font-weight:700}.repeat-order-reset{color:var(--ink);cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #cadbd0;border-radius:999px;padding:6px 12px;font-size:11px;font-weight:700}.repeat-order-chips{gap:8px;padding-bottom:2px;display:flex;overflow-x:auto}.repeat-order-chips button{text-align:left;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #cadbd0;border-radius:11px;flex-shrink:0;gap:2px;padding:9px 12px;display:grid}.repeat-order-chips strong{color:var(--ink);font-size:12px}.repeat-order-chips small{color:var(--muted);font-size:10px}.duplicate-warning{color:#7a4a15;background:#fbf1dc;border-color:#e6cf9f}.duplicate-badge{color:#7a4a15;white-space:nowrap;background:#f6e3bd;border:1px solid #e6cf9f;border-radius:999px;padding:3px 7px;font-size:10px;font-weight:800}.duplicate-banner{background:#fbf1dc;border:1px solid #e6cf9f;border-radius:14px;gap:4px;margin-bottom:14px;padding:13px 15px;display:grid}.duplicate-banner strong{color:#7a4a15;font-size:13px}.duplicate-banner span{color:#8a6230;font-size:11px;line-height:1.5}.danger-zone{background:#fdf1ec;border:1px dashed #e0b7ab;border-radius:13px;gap:9px;padding:13px 14px;display:grid}.danger-zone span{color:#914d3f;font-size:11px;line-height:1.5}.danger-link{color:#a14a37;cursor:pointer;text-align:left;background:0 0;border:0;padding:0;font-size:12px;font-weight:700}.danger-actions{grid-template-columns:1fr 1.2fr;gap:9px;display:grid}.danger-button{color:#fff;cursor:pointer;background:#b3442e;border:0;border-radius:12px;padding:12px;font-weight:750}.danger-button:disabled{opacity:.6}.danger-button.compact{border-radius:9px;padding:7px 12px;font-size:11px}.delete-icon-button{color:#a14a37;cursor:pointer;background:#fdf1ec;border:1px solid #e0b7ab;border-radius:9px;padding:7px 11px;font-size:11px;font-weight:700}.delete-icon-button:disabled{opacity:.5;cursor:default}.delete-confirm-text{color:#914d3f;align-self:center;font-size:11px}.detail-actions{bottom:calc(-1 * var(--panel-bottom));z-index:2;margin:2px -4px calc(-1 * var(--panel-bottom));padding:14px 4px var(--panel-bottom);background:linear-gradient(180deg, #faf8f200, var(--paper) 18%);grid-template-columns:1fr 1.2fr;gap:10px;display:grid;position:sticky}.detail-actions>:only-child{grid-column:1/-1}.pending-panel-list{gap:10px;margin-top:22px;display:grid}.pending-item{background:#fff;border:1px solid #e1e5df;border-radius:16px;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:13px;display:grid}.document-thumb{color:#9a673e;background:#ede4d5;border:1px solid #e1d2bd;border-radius:8px;place-items:center;width:45px;height:54px;font-size:12px;font-weight:800;display:grid}.document-thumb.confirmed{color:#39704e;background:#deeee4;border-color:#c6dfcf}.manual-thumb{color:#356f54;background:#dfece5;border-color:#c7ddd1}.image-thumb{background:#edf0e9;overflow:hidden}.image-thumb img{object-fit:cover;width:100%;height:100%;display:block}.document-title-row{align-items:center;gap:8px;display:flex}.document-copy p{color:var(--muted);margin:4px 0;font-size:11px}.document-copy small{color:#89948f;font-size:10px}.document-copy .ai-note{color:#a4633f;max-width:520px;margin-top:5px;line-height:1.4;display:block}.confidence{border-radius:99px;padding:3px 6px;font-size:9px}.confidence-high{color:#39704e;background:#ddede2}.confidence-low{color:#8b6527;background:#f5e7c9}.confirm-button{background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:10px;padding:8px 10px;font-size:11px}.retry-button{color:var(--ink);cursor:pointer;background:#fff;border:1px solid #1735362e;border-radius:10px;padding:8px 10px;font-size:11px}.detail-button{background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:10px;padding:8px 10px;font-size:11px}.document-actions{justify-content:flex-end;gap:7px;margin-top:8px;display:flex}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:220px;display:flex}.empty-state>span{color:#43805a;background:#e0efe5;border-radius:50%;place-items:center;width:48px;height:48px;margin-bottom:12px;font-weight:800;display:grid}.empty-state p{color:var(--muted);margin:6px 0 0;font-size:12px}.page-section{min-height:70vh}.page-title-row{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:28px;display:flex}.search-row{gap:8px;margin-bottom:12px;display:flex}.search-row input{min-width:0;color:var(--ink);background:#fff;border:1px solid #d9dfd8;border-radius:12px;outline:none;flex:1;padding:11px 13px}.search-row input:focus{border-color:#75a493;box-shadow:0 0 0 3px #75a49324}.search-row button{cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #dce2dc;border-radius:12px;padding:0 14px;font-size:12px}.filter-row{gap:8px;margin-bottom:14px;padding-bottom:4px;display:flex;overflow-x:auto}.filter-row button{white-space:nowrap;cursor:pointer;background:#ffffff80;border:1px solid #dce2dc;border-radius:999px;padding:8px 13px;font-size:12px}.filter-row button.active{background:var(--ink);color:#fff;border-color:var(--ink)}.expense-records{gap:8px;margin-top:18px;display:grid}.expense-records-head{border-bottom:1px solid #1735361f;justify-content:space-between;align-items:baseline;gap:10px;padding-bottom:8px;display:flex}.expense-records-head strong{font-size:13px}.expense-records-head span{color:var(--muted);white-space:nowrap;font-size:11px}.expense-record{background:#fffdf8d9;border:1px solid #17353614;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.expense-record-copy{gap:3px;min-width:0;display:grid}.expense-record-copy strong{font-size:13px}.expense-record-copy small{color:var(--muted);overflow-wrap:anywhere;font-size:11px}.expense-record-side{white-space:nowrap;align-items:center;gap:10px;display:flex}.expense-record-side strong{font-size:13px}.expense-record-actions{align-items:center;gap:6px;display:flex}.expense-records-empty{color:var(--muted);margin:2px 0 0;font-size:12px;line-height:1.6}.anomaly-note{color:#8a6a1f;background:#fdf3d7;border:1px solid #efdba4;border-radius:10px;padding:11px 13px;font-size:12px;line-height:1.55}.closed-day-button{color:#7d6a48;cursor:pointer;background:#faf5e9;border:1px dashed #c8b89a;border-radius:12px;padding:11px 14px;font-size:12px;font-weight:700}.suggest-chip{text-align:left;color:#34654b;cursor:pointer;background:#eaf4ee;border:1px solid #cfe0d5;border-radius:11px;justify-self:start;padding:9px 12px;font-size:12px;font-weight:700;line-height:1.5}.merge-card{background:#fffdf8cc;border:1px solid #17353614;border-radius:20px;gap:10px;margin-bottom:14px;padding:20px;display:grid}.merge-card>strong{font-size:15px}.merge-card>p{color:var(--muted);margin:0;font-size:12px;line-height:1.6}.merge-empty{color:var(--muted);margin:0;font-size:12px}.merge-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.merge-row label{color:var(--ink-soft);gap:7px;font-size:12px;font-weight:700;display:grid}.merge-row select,.merge-row input{width:100%;color:var(--ink);background:#fff;border:1px solid #d9dfd8;border-radius:12px;outline:none;padding:12px 13px}.merge-confirm{color:#7c3f28;background:#fbe9e2;border:1px solid #eec4b4;border-radius:12px;gap:10px;padding:12px 14px;font-size:12px;display:grid}.term-suggest-note{color:#7a4a15;background:#fbf1dc;border:1px solid #e6cf9f;border-radius:12px;margin:0;padding:11px 13px;font-size:12px;line-height:1.6}.term-suggest-note strong{color:#5f3a10}.term-list{gap:7px;display:grid}.term-row{background:#fff;border:1px solid #e0e4de;border-radius:12px;align-items:center;gap:11px;min-height:46px;padding:9px 13px;display:flex}.term-pick{cursor:pointer;flex:1;align-items:center;gap:11px;min-width:0;display:flex}.term-pick input[type=checkbox]{accent-color:#35605c;flex-shrink:0;width:19px;height:19px}.term-alias{width:92px;color:var(--ink);text-align:center;background:#fff;border:1px solid #d9dfd8;border-radius:9px;flex-shrink:0;padding:8px 9px}.term-name{gap:2px;min-width:0;display:grid}.term-name strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.term-name small{color:var(--muted);font-size:11px}.contact-card{border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface);text-align:center;justify-items:center;gap:10px;margin:18px 0 72px;padding:16px;display:grid}.contact-text{gap:4px;display:grid}.contact-text strong{color:var(--ink);font-size:14px}.contact-text span{color:var(--ink-2);font-size:12px;line-height:1.6}.contact-line{border-radius:var(--r-control);color:#fff;background:#06c755;justify-content:center;align-items:center;gap:6px;width:min(100%,280px);min-height:44px;padding:0 18px;font-size:14px;font-weight:700;text-decoration:none;display:inline-flex}.contact-line:hover{background:#05b34c}.contact-line:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.contact-mail{color:var(--ink-2);font-size:12px;text-decoration:none}.contact-mail:hover{text-decoration:underline}.faq-footer{border-top:1px solid var(--line);text-align:center;justify-items:center;gap:6px;margin-top:22px;padding:16px;display:grid}.faq-footer strong{color:var(--ink);font-size:14px}.faq-footer span{color:var(--ink-2);font-size:12px;line-height:1.6}.faq-footer .contact-line{margin-top:6px}.cloud-banner.line-banner-ok{color:var(--ok);background:var(--ok-soft);border:1px solid #bfe3cd}.cloud-banner:has(>.danger-link){justify-content:space-between;align-items:center;gap:12px;display:flex}.cloud-banner>.danger-link{color:inherit;flex:none;text-decoration:underline}.item-name-label{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.catalog-badge{white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:10px;font-weight:800;display:inline-block}.catalog-none{color:#7a4a15;background:#fbf1dc;border:1px solid #e6cf9f}.catalog-likely{color:#a14a37;background:#fdf1ec;border:1px solid #e0b7ab}.catalog-exact{color:#34654b;background:#eaf4ee;border:1px solid #cfe0d5}.remember-toggle{color:var(--ink-soft);cursor:pointer;background:#f4f6f3;border-radius:10px;align-items:flex-start;gap:8px;margin-top:-4px;padding:8px 10px;font-size:11px;font-weight:600;flex-direction:row!important;display:flex!important}.remember-toggle input{accent-color:#35605c;flex-shrink:0;height:17px;margin-top:1px;width:17px!important}.remember-toggle span{line-height:1.5}.catalog-group{background:#fff;border:1px solid #e0e4de;border-radius:12px;padding:0 13px}.catalog-group summary{cursor:pointer;-webkit-tap-highlight-color:transparent;align-items:center;gap:10px;min-height:46px;list-style:none;display:flex}.catalog-group summary::-webkit-details-marker{display:none}.catalog-group[open] .vendor-caret{transform:rotate(90deg)}.catalog-rows{gap:6px;padding:2px 0 12px;display:grid}.catalog-row{background:#f4f6f3;border-radius:9px;grid-template-columns:1fr auto;align-items:center;gap:6px 10px;padding:8px 10px;font-size:12px;display:grid}.catalog-row strong{font-size:13px}.catalog-row small{color:var(--muted);grid-column:1/-1;font-size:11px;line-height:1.5}.catalog-row .delete-icon-button{padding:5px 9px;font-size:10px}.backup-status{color:#34654b;background:#e9f1ec;border-radius:12px;padding:11px 13px;font-size:13px;font-weight:700}.backup-status.backup-stale{color:#a13f26;background:#fbe9e2}.template-manage-list{gap:7px;display:grid}.template-manage{background:#fff;border:1px solid #e0e4de;border-radius:12px;padding:0 13px}.template-manage summary{cursor:pointer;-webkit-tap-highlight-color:transparent;align-items:center;gap:10px;min-height:46px;list-style:none;display:flex}.template-manage summary::-webkit-details-marker{display:none}.template-manage[open] .vendor-caret{transform:rotate(90deg)}.template-manage-name{gap:2px;min-width:0;display:grid}.template-manage-name strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.template-manage-name small{color:var(--muted);font-size:11px}.template-manage-items{gap:6px;margin:0;padding:2px 0 10px;list-style:none;display:grid}.template-manage-items li{background:#f4f6f3;border-radius:9px;justify-content:space-between;align-items:baseline;gap:10px;padding:7px 10px;font-size:12px;display:flex}.template-manage-items small{color:var(--muted);white-space:nowrap}.template-manage-delete{margin-bottom:12px;display:block}.template-manage .recon-switch-actions{padding-bottom:12px}.default-group{background:#fbfcfa;border:1px solid #e0e4de;border-radius:13px;gap:7px;padding:12px 13px;display:grid}.default-group-head{gap:3px;display:grid}.default-group-head strong{font-size:13px}.default-group-head small{color:var(--muted);font-size:11px;line-height:1.5}.default-row{align-items:center;gap:8px;display:flex}.default-label{min-width:0;color:var(--ink);background:#fff;border:1px solid #d9dfd8;border-radius:9px;flex:1;padding:9px 10px}.default-label:disabled{color:var(--ink-soft);background:#f2f4f1}.default-row .money-input{background:#fff;border:1px solid #d9dfd8;border-radius:9px;flex-shrink:0;width:118px;padding:6px 9px}.default-row .money-input input{text-align:right;font-size:15px}.merge-confirm-actions{gap:8px;display:flex}.upload-file-list{gap:6px;display:grid}.upload-file-row{background:#fffdf8d9;border:1px solid #17353617;border-radius:11px;align-items:center;gap:10px;padding:9px 12px;font-size:12px;display:flex}.upload-file-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:700;overflow:hidden}.upload-file-row small{color:var(--muted);white-space:nowrap}.upload-file-row button{color:#b0552f;cursor:pointer;white-space:nowrap;background:0 0;border:0;font-size:11px;font-weight:700}.upload-file-mark{background:#e7eae4;border-radius:999px;flex-shrink:0;place-items:center;width:20px;height:20px;font-size:11px;font-weight:800;display:grid}.batch-done .upload-file-mark{color:#fff;background:#5c9376}.batch-failed .upload-file-mark{color:#fff;background:#cf5d43}.batch-saved .upload-file-mark{color:#fff;background:#e0a33d}.upload-clear{cursor:pointer;background:#fff;border:1px solid #dce2dc;border-radius:999px;justify-self:start;padding:6px 12px;font-size:11px;font-weight:700}.recon-section-head{border-bottom:1px solid #1735361f;justify-content:space-between;align-items:baseline;gap:10px;margin-top:6px;padding-bottom:8px;display:flex}.recon-section-head strong{font-size:13px}.recon-section-head span{color:var(--muted);font-size:11px}.recon-denoms{gap:7px;display:grid}.recon-denom-row{grid-template-columns:74px 1fr auto;align-items:center;gap:10px;display:grid}.recon-denom-row input{text-align:center;background:#fff;border:1px solid #d9dfd8;border-radius:11px;outline:none;width:100%;padding:10px 12px}.recon-denom-row input:focus{border-color:#75a493;box-shadow:0 0 0 3px #75a49324}.recon-denom-row small{text-align:right;min-width:92px;color:var(--muted);white-space:nowrap;font-size:12px}.recon-subtotal{background:#eef2ed;border-radius:13px;gap:6px;padding:13px 15px;display:grid}.recon-subtotal>div{justify-content:space-between;font-size:12px;display:flex}.recon-subtotal .recon-expected{border-top:1px dashed #17353633;padding-top:8px;font-weight:800}.recon-idle{color:var(--muted);background:#f0efe9}.recon-even{color:#2d6247;background:#e3f2e8}.recon-short{color:#a03e22;background:#fbe5dc}.recon-over{color:#8a6a1f;background:#fdf3d7}.item-list{gap:8px;display:grid}.item-row{text-align:left;cursor:pointer;background:#fffdf8d9;border:1px solid #17353617;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:13px 15px;display:flex}.item-row-copy{gap:3px;min-width:0;display:grid}.item-row-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.item-row-copy small{color:var(--muted);font-size:11px}.item-row-price{text-align:right;white-space:nowrap;gap:3px;display:grid}.item-row-price strong{font-size:14px}.item-row-price small{font-size:11px;font-weight:700}.item-flat{color:var(--muted);font-weight:400!important}.secondary-button.compact{padding:8px 13px;font-size:12px}.back-link{text-align:left;justify-self:start}.review-nav{background:#eef2ed;border-radius:12px;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex}.review-nav span{color:var(--ink-soft);font-size:12px;font-weight:700}.review-nav button{cursor:pointer;background:#fff;border:1px solid #17353624;border-radius:11px;width:36px;height:36px;font-size:17px}.review-nav button:disabled{opacity:.35;cursor:not-allowed}.photo-zoom-trigger{cursor:zoom-in;background:0 0;border:0;width:100%;height:100%;padding:0;display:block;position:relative}.photo-zoom-hint{color:#fff;background:#0d2020b8;border-radius:999px;padding:5px 10px;font-size:10px;font-weight:700;position:absolute;bottom:10px;right:10px}.photo-viewer{z-index:200;background:#081212f0;place-items:center;padding:16px;animation:.15s fadeIn;display:grid;position:fixed;inset:0;overflow:auto}.photo-viewer img{object-fit:contain;touch-action:pinch-zoom;max-width:100%;max-height:100%}.photo-viewer-close{top:max(14px, env(safe-area-inset-top));color:#fff;cursor:pointer;background:#ffffff29;border:0;border-radius:999px;width:44px;height:44px;font-size:24px;line-height:1;position:fixed;right:14px}.catch-up{background:#fdeee4;border:1px solid #f2d4bf;border-radius:20px;gap:8px;margin-bottom:16px;padding:18px 20px;display:grid}.catch-up-head{gap:3px;margin-bottom:4px;display:grid}.catch-up-head strong{color:#8a4a20;font-size:14px}.catch-up-head span{color:#a3714f;font-size:11px}.catch-up-row{background:#ffffffbf;border-radius:12px;align-items:center;gap:8px;padding:9px 12px;display:flex}.catch-up-date{flex:1;min-width:0;font-size:13px;font-weight:700}.catch-up-closed{color:#8a4a20;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #ecc9ae;border-radius:999px;padding:7px 13px;font-size:11px;font-weight:700}.catch-up-more{color:#a3714f;margin:2px 0 0;font-size:11px}.keep-going{text-align:center;color:var(--muted);margin:20px 0 0;font-size:11px}.recon-loading{color:var(--muted);background:#eef2ed;border-radius:12px;padding:12px 14px;font-size:12px}.recon-prefill{color:#34654b;background:#e9f1ec;border-radius:12px;padding:11px 14px;font-size:12px}.recon-switch-warning,.recon-confirm{color:#7c3f28;background:#fbe9e2;border:1px solid #eec4b4;border-radius:13px;gap:10px;padding:13px 15px;font-size:12px;line-height:1.55;display:grid}.recon-confirm{color:var(--ink-soft);background:#eef2ed;border-color:#cfd8cf}.recon-confirm strong{color:var(--ink);font-size:13px}.recon-switch-actions{gap:8px;display:flex}.recon-switch-actions button{flex:1}.primary-button.compact{padding:10px 14px;font-size:12px}.recon-formula{overflow-wrap:anywhere;background:#eef2ed;border-radius:12px;padding:12px 14px;font-size:12px;line-height:1.6}.recon-formula strong{font-size:13px}.recon-formula em{color:#a03e22;margin-top:6px;font-style:normal;font-weight:700;display:block}.recon-sticky{z-index:2;margin:4px calc(-1 * var(--panel-inline)) calc(-1 * var(--panel-bottom));padding:14px var(--panel-inline) max(18px, env(safe-area-inset-bottom));border-top:1px solid #1735361a;justify-content:space-between;align-items:center;gap:12px;display:flex;position:sticky;bottom:0;box-shadow:0 -8px 24px #0d202014}.recon-sticky>div{gap:2px;display:grid}.recon-sticky span{opacity:.75;font-size:10px}.recon-sticky strong{font-size:15px}.recon-sticky-verdict{text-align:right}.recon-sticky-verdict strong{font-size:18px}.recon-income-link{text-align:center;color:#648077;cursor:pointer;background:0 0;border:0;padding:4px 0;font-size:12px;font-weight:700}.recon-hint{color:var(--muted);margin:-8px 0 0;font-size:12px;line-height:1.5}.recon-tag-short{color:#a03e22}.recon-tag-over{color:#8a6a1f}.recon-tag-hidden{color:var(--muted);white-space:nowrap;font-size:11px}.closing-check{gap:10px;display:grid}.closing-intro{color:var(--muted);margin:0 0 4px;font-size:12px}.closing-row{background:#fdeee4;border:1px solid #f2d4bf;border-radius:14px;align-items:center;gap:12px;padding:13px 15px;display:flex}.closing-row.closing-ok{background:#eaf4ee;border-color:#cfe3d6}.closing-mark{color:#fff;background:#e77d5d;border-radius:999px;flex-shrink:0;place-items:center;width:26px;height:26px;font-size:13px;font-weight:800;display:grid}.closing-label{flex:1;font-size:13px;font-weight:700}.closing-export{background:#eef2ed;border-radius:14px;gap:10px;margin-top:8px;padding:15px;display:grid}.closing-ready{color:#34654b;margin:0;font-size:12px;font-weight:700}.closing-caveat{color:#8a6a1f;margin:0;font-size:12px}.missing-days{background:#fdeee4;border:1px solid #f2d4bf;border-radius:12px;flex-wrap:wrap;align-items:center;gap:6px;padding:10px 12px;display:flex}.missing-days-label{color:#a35c33;font-size:11px;font-weight:700}.missing-days button{color:#8a4a20;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #ecc9ae;border-radius:999px;padding:5px 11px;font-size:11px;font-weight:700}.vendor-group{background:#fffdf8d1;border:1px solid #17353617;border-radius:17px;margin-top:10px;overflow:hidden}.vendor-group summary{list-style:none}.vendor-group summary::-webkit-details-marker{display:none}.vendor-summary{cursor:pointer;-webkit-tap-highlight-color:transparent;align-items:center;gap:12px;padding:15px 16px;display:flex}.vendor-caret{color:var(--muted);font-size:13px;transition:transform .15s}.vendor-group[open] .vendor-caret{transform:rotate(90deg)}.vendor-name{flex:1;gap:3px;min-width:0;display:grid}.vendor-name strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.vendor-name small{color:var(--muted);font-size:11px}.vendor-total{white-space:nowrap;font-size:14px}.vendor-group .document-table article{background:#fff}.document-table{gap:10px;display:grid}.loading-state{min-height:180px;color:var(--muted);place-items:center;font-size:13px;display:grid}.cloud-empty{background:#fffdf885;border:1px dashed #cdd6ce;border-radius:20px;min-height:300px}.cloud-document-table{margin-top:14px}.document-table article{background:#fffdf8c7;border:1px solid #17353614;border-radius:17px;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:14px;display:grid}.document-table p{color:var(--muted);margin:4px 0;font-size:12px}.document-table small{color:#8a9590}.document-amount{text-align:right}.document-amount strong,.document-amount span{display:block}.status{color:#47805c;margin-top:5px;font-size:10px}.price-empty{background:#fffdf88c;border:1px dashed #cbd7cf;border-radius:18px;gap:5px;padding:20px;display:grid}.price-empty strong{font-size:13px}.price-empty span{color:var(--muted);font-size:11px}.price-change-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.price-change{text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;background:#fffdf8c7;border:1px solid #17353614;border-radius:17px;justify-content:space-between;align-items:center;gap:18px;padding:16px;display:flex}.price-change>div:first-child{gap:3px;display:grid}.price-change>div:first-child>span{border-radius:999px;width:fit-content;padding:3px 7px;font-size:9px;font-weight:800}.price-change.up>div:first-child>span{color:#a34c36;background:#f5ddd6}.price-change.down>div:first-child>span{color:#39704e;background:#ddede2}.price-change strong{font-size:14px}.price-change small{color:var(--muted);font-size:10px}.price-delta{text-align:right;gap:4px;display:grid}.price-delta>strong{font-size:20px}.price-history{gap:13px;margin-top:20px;display:grid}.price-history-stats{grid-template-columns:repeat(3,1fr);gap:9px;display:grid}.price-history-stats>div{text-align:center;background:#eef4f0;border:1px solid #d7e3da;border-radius:13px;gap:3px;padding:12px;display:grid}.price-history-stats span{color:var(--muted);font-size:10px}.price-history-stats strong{font-size:15px}.price-history-range{color:var(--muted);margin:0;font-size:11px}.price-history-list{gap:9px;display:grid}.price-history-list article{background:#fff;border:1px solid #e1e5df;border-radius:13px;gap:6px;padding:11px 13px;display:grid}.price-history-head{align-items:center;gap:8px;display:flex}.price-history-head strong{font-size:16px}.price-history-head span{border-radius:999px;padding:2px 7px;font-size:10px;font-weight:800}.delta-up{color:#a34c36;background:#f5ddd6}.delta-down{color:#39704e;background:#ddede2}.latest-tag{color:#35545f;background:#dde9ee;margin-left:auto}.price-history-bar{background:#eef1ec;border-radius:999px;height:7px;overflow:hidden}.price-history-bar span{border-radius:inherit;background:linear-gradient(90deg,#92c4a7,#e6a465);height:100%;display:block}.price-history-list small{color:var(--muted);font-size:10px}.report-hero{background:var(--ink);color:#fff;box-shadow:var(--shadow);border-radius:24px;padding:28px}.report-hero span{color:#ffffffa6;font-size:12px}.report-hero strong{letter-spacing:-.05em;margin:8px 0;font-size:clamp(30px,5vw,48px);display:block}.report-hero p{color:#ffffff94;max-width:680px;margin:0;font-size:11px;line-height:1.5}.report-grid{grid-template-columns:1fr 1fr;gap:14px;margin-top:14px;display:grid}.report-grid>article{background:#fffdf8cc;border:1px solid #17353614;border-radius:20px;padding:22px}.report-card-heading{justify-content:space-between;margin-bottom:22px;display:flex}.report-card-heading span{color:var(--muted);font-size:11px}.bar-row>div:first-child{justify-content:space-between;margin-bottom:6px;font-size:11px;display:flex}.bar-row strong{font-size:11px}.bar-track{background:#e7eae4;border-radius:99px;height:7px;overflow:hidden}.bar-track span{border-radius:inherit;height:100%;display:block}.report-note{color:#806542;background:#f3ead7;border-radius:10px;margin-top:24px;padding:12px;font-size:11px;line-height:1.5}.settings-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.settings-grid article{background:#fffdf8cc;border:1px solid #17353614;border-radius:18px;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;padding:18px;display:grid}.settings-mark{background:#e4ede5;border-radius:13px;place-items:center;width:40px;height:40px;font-weight:800;display:grid}.settings-grid p{color:var(--muted);margin:5px 0 0;font-size:11px}.settings-grid button{cursor:pointer;color:#648077;background:0 0;border:0;font-size:11px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:.6;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@media (width<=800px){.topbar{grid-template-columns:1fr auto;height:68px;padding:0 18px}.brand small,.store-switch{display:none}.view-area{width:auto;margin:0;padding:27px 16px 48px}.welcome-row h1,.page-title-row h1{font-size:30px}.welcome-row p{max-width:260px;line-height:1.5}.metric-grid{grid-template-columns:1fr 1fr;gap:10px}.metric-card{border-radius:17px;min-height:130px;padding:15px}.metric-card strong{font-size:20px}.action-grid{grid-template-columns:1fr 1fr;gap:10px}.action-arrow{display:none}.reminder-list,.report-grid,.settings-grid,.price-change-grid{grid-template-columns:1fr}.page-title-row{align-items:flex-start}}@media (width<=520px){.welcome-row{flex-direction:column;align-items:stretch}.page-title-tools{justify-items:start}.health-heading{display:block}.health-heading button{margin-top:6px}.metric-card .metric-detail{line-height:1.4}.recon-month-split,.field-row,.income-grid{grid-template-columns:1fr}.income-grid label:last-child{grid-column:auto}.action-panel{--panel-inline:18px}.pending-item{grid-template-columns:auto 1fr}.pending-item .confirm-button{grid-column:2;width:fit-content}.document-table article{grid-template-columns:auto 1fr}.document-amount{text-align:left;grid-column:2;grid-template-columns:1fr auto;align-items:start;gap:2px 10px;display:grid}.page-title-row{display:block}.page-title-row .secondary-button{margin-top:16px}.manual-item-grid,.merge-row{grid-template-columns:1fr}.review-item-grid{grid-template-columns:1fr 1fr}.detail-actions{grid-template-columns:1fr}.detail-actions>:only-child{grid-column:auto}.document-actions{grid-column:1/-1;justify-content:flex-start;width:100%}}@media (width<=768px){input,select,textarea{font-size:16px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}body{--num:"IBM Plex Sans", "Noto Sans TC", "Microsoft JhengHei", sans-serif}.app-shell{background:var(--bg)}.topbar{border-bottom:1px solid var(--line);background:var(--surface);-webkit-backdrop-filter:none;backdrop-filter:none;height:60px}.brand-mark{background:var(--brand);width:34px;height:34px;box-shadow:none;font-family:var(--num);border-radius:10px 10px 10px 3px;font-weight:700}.brand strong{letter-spacing:-.02em;font-size:17px}.store-switch{border-color:var(--line);background:var(--surface)}.store-dot{background:var(--ok);box-shadow:0 0 0 4px var(--ok-soft)}.avatar{background:var(--surface-2);color:var(--ink)}.notification-dot{background:var(--bad);border-color:var(--surface)}.sign-out-button{border-color:var(--line);background:var(--surface);color:var(--ink-2)}.sign-out-confirm{background:var(--bad-soft);color:#7a1f17;border-color:#efc9c5}.eyebrow{color:var(--ink-2);text-transform:none;letter-spacing:.12em}.eyebrow.light{color:var(--ink-2)}.welcome-row h1,.page-title-row h1{letter-spacing:-.03em;font-size:clamp(26px,3.4vw,34px)}.month-switcher .month-step,.month-switcher .month-label,.month-button{border-color:var(--line);background:var(--surface);border-radius:var(--r-control)}.month-switcher .month-current{background:var(--brand);border-radius:var(--r-control)}.cloud-banner{border-radius:var(--r-control)}.error-banner{color:var(--bad);background:var(--bad-soft);border-color:#efc9c5}.warn-banner{color:#7a5a12;background:var(--warn-soft);border-color:#ebd9a6}.metric-card strong,.report-hero strong,.vendor-total,.document-amount strong,.recon-sticky strong,.recon-sticky-verdict strong,.recon-subtotal,.recon-denom,.recon-denom-row small,.money-input input,.price-delta>strong,.item-row-price strong,.form-total strong,.bar-row strong,.recon-month-total strong,.recon-month-split strong,.price-history-stats strong,.price-history-head strong,.expense-record-side strong,.catalog-row small,.template-manage-items small,.default-row .money-input input,.term-alias,.nav-badge,.action-badge{font-family:var(--num);font-variant-numeric:tabular-nums}.metric-card{border-radius:var(--r-card);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-card);min-height:132px;padding:16px}.metric-card>span{color:var(--ink-2)}.metric-card strong{letter-spacing:-.03em;font-size:clamp(22px,2.6vw,28px)}.metric-card .metric-detail em{color:var(--brand);opacity:1;font-weight:700}.metric-tappable:active{box-shadow:var(--shadow-card);background:var(--bg);transform:none}.month-delta{color:var(--ink-2)}.balance-gap{border-radius:var(--r-control)}.balance-gap-light.balance-gap-open{background:var(--warn-soft);color:#7a5a12;border-color:#ebd9a6}.balance-gap-light.balance-gap-clear,.balance-gap-light.balance-gap-loading{background:var(--ok-soft);color:var(--ok);border-color:#cfe4d6}.balance-gap-dark{border-radius:var(--r-control);background:var(--surface-2);color:var(--ink);margin-top:10px;padding-top:12px}.section-block{margin-top:30px}.section-heading h2{letter-spacing:-.025em;font-size:20px}.time-hint{color:var(--ink-2)}.catch-up{border-radius:var(--r-card);background:var(--warn-soft);border-color:#ebd9a6}.catch-up-head strong{color:#7a5a12}.catch-up-head span,.catch-up-more{color:#8a6d1f}.catch-up-row{border-radius:var(--r-control);background:var(--surface)}.catch-up-closed{color:#7a5a12;border-color:#ebd9a6}.keep-going{color:var(--ink-2)}.price-change{justify-content:flex-start;align-items:center;gap:12px;display:flex}.price-change .price-change-copy{flex:auto;justify-items:start;gap:3px;min-width:0;display:grid}.price-change .price-change-tag{border-radius:999px;padding:3px 7px;font-size:10px;font-weight:800}.price-change.up .price-change-tag{color:var(--bad);background:var(--bad-soft)}.price-change.down .price-change-tag{color:var(--ok);background:var(--ok-soft)}.price-change .price-change-name{font-size:14px}.price-change .price-change-meta{color:var(--ink-2);font-size:11px;line-height:1.5}.price-change .price-change-move{text-align:right;flex:none;justify-items:end;gap:3px;min-width:104px;display:grid}.price-change .price-change-pct{font-size:20px;font-family:var(--num);font-variant-numeric:tabular-nums}.price-change.up .price-change-pct{color:var(--bad)}.price-change.down .price-change-pct{color:var(--ok)}.price-change .price-change-range{white-space:nowrap;color:var(--ink-2);font-size:11px;font-family:var(--num);font-variant-numeric:tabular-nums}.price-trend{min-width:0;color:var(--ink)}.price-trend svg{width:100%;height:28px;display:block}.price-change .price-trend,.item-row .price-trend{flex:0 0 64px}.item-row .item-suspicious{color:#7a5a12}.item-filter{margin-bottom:4px}.price-suspicious{border-radius:var(--r-card);background:var(--warn-soft);border:1px solid #ebd9a6;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;margin-bottom:10px;padding:11px 13px;display:grid}.price-suspicious strong{color:#7a5a12;font-size:13px;display:block}.price-suspicious span{color:#7a5a12;font-size:11px;line-height:1.5}.price-all-changes{font:inherit;color:var(--brand);cursor:pointer;background:0 0;border:0;align-items:center;gap:2px;margin-top:10px;padding:4px 0;font-size:12px;font-weight:700;display:inline-flex}.access-banner{border-radius:var(--r-card);border:1px solid;gap:4px;margin:12px 5vw 0;padding:12px 15px;display:grid}.access-banner strong{font-size:14px}.access-banner span{font-size:12px;line-height:1.6}.access-soon{background:var(--warn-soft);color:#7a5a12;border-color:#ebd9a6}.access-expired{background:var(--bad-soft);color:var(--bad);border-color:#efc9c5}.access-expired span{color:var(--ink)}.access-renew{background:var(--brand);color:#fff;border-radius:8px;justify-self:start;align-items:center;gap:2px;margin-top:4px;padding:7px 11px;font-size:12px;font-weight:700;text-decoration:none;display:inline-flex}.trial-note{color:var(--ink-2);margin:-8px 0 14px;font-size:12px}@media (width>=801px){.access-banner{max-width:min(1120px,90vw);margin-left:auto;margin-right:auto}}.setup-guide{border-radius:var(--r-card);background:var(--brand-soft);border:1px solid #c9d6ea;gap:10px;margin-bottom:16px;padding:15px 17px;display:grid}.setup-guide-head{gap:3px;display:grid}.setup-guide-head strong{color:var(--brand);font-size:14px}.setup-guide-head span{color:var(--ink-2);font-size:11px;line-height:1.5}.setup-guide ol{gap:7px;margin:0;padding:0;list-style:none;display:grid}.setup-guide li{border-radius:var(--r-control);background:var(--surface);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;padding:10px 12px;display:grid}.setup-guide li>div{gap:2px;min-width:0;display:grid}.setup-guide li>div strong{color:var(--ink);font-size:13px}.setup-guide li>div span{color:var(--ink-2);font-size:11px;line-height:1.45}.setup-guide li.done>div strong{color:var(--ink-2);text-decoration:line-through;-webkit-text-decoration-color:var(--line);-webkit-text-decoration-color:var(--line);-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line)}.setup-mark{background:var(--surface-2);width:24px;height:24px;color:var(--brand);border-radius:50%;flex-shrink:0;place-items:center;font-family:IBM Plex Sans,Noto Sans TC,sans-serif;font-size:12px;font-weight:700;display:grid}.setup-guide li.done .setup-mark{background:var(--ok-soft);color:var(--ok)}.setup-guide li button{background:var(--brand);color:#fff;cursor:pointer;white-space:nowrap;border:0;border-radius:8px;align-items:center;gap:2px;padding:7px 11px;font-size:11px;font-weight:700;display:inline-flex}.setup-guide-help{font:inherit;color:var(--brand);cursor:pointer;background:0 0;border:0;justify-self:start;align-items:center;gap:2px;padding:2px 0 0;font-size:11px;font-weight:700;display:inline-flex}.faq{gap:18px;display:grid}.faq-intro{color:var(--ink-2);margin:0;font-size:12px;line-height:1.6}.faq-group{gap:6px;display:grid}.faq-item{border:1px solid var(--line);border-radius:var(--r-control);background:var(--surface)}.faq-item summary{color:var(--ink);cursor:pointer;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 13px;font-size:13px;font-weight:700;list-style:none;display:grid}.faq-item summary::-webkit-details-marker{display:none}.faq-chevron{color:var(--ink-2);transition:transform .15s}.faq-item[open] .faq-chevron{transform:rotate(180deg)}.faq-answer{justify-items:start;gap:9px;padding:0 13px 13px;display:grid}.faq-answer p{color:var(--ink);margin:0;font-size:12px;line-height:1.7}.faq-answer .detail-button{padding:7px 11px;font-size:11px}.faq-answer a.detail-button{align-items:center;text-decoration:none;display:inline-flex}.price-change,.price-empty,.item-row,.expense-record,.reminder-list button,.pending-item,.upload-file-row{border-radius:var(--r-card);border-color:var(--line);background:var(--surface)}.price-change:hover{border-color:var(--ink-3)}.price-change.up>div:first-child>span,.delta-up{color:var(--bad);background:var(--bad-soft)}.price-change.down>div:first-child>span,.delta-down{color:var(--ok);background:var(--ok-soft)}.price-change.up .price-delta>strong{color:var(--bad)}.price-change.down .price-delta>strong{color:var(--ok)}.latest-tag{color:var(--brand);background:var(--brand-soft)}.price-history-stats>div{background:var(--bg);border-color:var(--line);border-radius:var(--r-control)}.price-history-list article{border-color:var(--line);border-radius:var(--r-control)}.price-history-bar{background:var(--surface-2)}.price-history-bar span{background:var(--brand)}.item-merge{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr);gap:10px;margin-top:18px;padding-top:14px;display:grid}.item-merge>.secondary-button{justify-self:start}.item-merge-names{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;display:flex}.item-merge-name{border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface);color:var(--ink);align-items:center;gap:6px;padding:4px 6px 4px 10px;display:inline-flex}.item-merge-name button{background:var(--surface-2);color:var(--ink-2);border-radius:var(--r-pill);cursor:pointer;border:0;padding:2px 8px;font-size:11px}.item-merge-picker,.item-merge-confirm{grid-template-columns:minmax(0,1fr);gap:10px;display:grid}.item-merge-confirm p{color:var(--ink);margin:0;font-size:13px;line-height:1.6}.item-merge-actions{grid-template-columns:minmax(0,1fr);gap:8px;display:grid}.today-check{border-radius:var(--r-card);background:var(--warn-soft);border-color:#ebd9a6}.today-check.today-clear{background:var(--ok-soft);border-color:#cfe4d6}.today-check.today-clear strong,.today-check.today-clear span:last-child{color:var(--ok)}.today-heading strong,.today-check li span{color:#7a5a12}.today-check li{border-radius:var(--r-control);background:var(--surface)}.today-check li button{background:var(--brand);border-radius:8px}.today-mark{background:var(--ok-soft);color:var(--ok)}.today-mark.warn{color:#7a5a12;background:#f3dfa8}.bottom-nav{border:0;border-top:1px solid var(--line);background:var(--surface);width:100%;height:auto;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;padding:6px 10px calc(10px + env(safe-area-inset-bottom));border-radius:0;bottom:0;left:0;transform:none}.bottom-nav button{color:var(--ink-2);border-radius:var(--r-control);gap:4px;padding:6px 0;font-size:11px;font-weight:500}.bottom-nav button.active{color:var(--ink);background:0 0;font-weight:700}.nav-badge{background:var(--act-pending);border-color:var(--surface);top:2px}.app-frame{padding-bottom:96px}.fab-camera{bottom:calc(84px + env(safe-area-inset-bottom))}.fab-help{z-index:29;left:max(18px,50vw - min(1120px,90vw)/2);bottom:calc(88px + env(safe-area-inset-bottom));cursor:pointer;filter:drop-shadow(0 4px 10px #0f1b2d2e);background:0 0;border:0;width:52px;height:52px;padding:0;transition:transform 80ms;position:fixed}.fab-help:active{transform:scale(.94)}.fab-help img{object-fit:contain;width:52px;height:52px;display:block}@media (width>=801px){.bottom-nav{border:1px solid var(--line);border-radius:var(--r-card) var(--r-card) 0 0;border-bottom:0;width:min(560px,100%);left:50%;transform:translate(-50%)}}.primary-button{border-radius:var(--r-control);background:var(--brand);box-shadow:none;padding:13px 20px}.primary-button.compact{padding:10px 14px}.secondary-button{border-color:var(--line);background:var(--surface);border-radius:var(--r-control);color:var(--ink)}.detail-button,.confirm-button{background:var(--brand);border-radius:8px}.retry-button{border-color:var(--line);border-radius:8px}.danger-button{background:var(--bad);border-radius:var(--r-control)}.delete-icon-button{background:var(--bad-soft);color:var(--bad);border-color:#efc9c5;border-radius:8px}.filter-chip,.filter-row button,.repeat-order-reset,.upload-clear,.missing-days button{border-color:var(--line);background:var(--surface);color:var(--ink)}.filter-row button.active{background:var(--brand);border-color:var(--brand);color:#fff}.recon-income-link,.manual-items-heading button,.manual-item-title button,.settings-grid button{color:var(--brand)}.closed-day-button{border-color:var(--line);background:var(--surface);color:var(--ink-2);border-radius:var(--r-control)}.suggest-chip{background:var(--ok-soft);color:var(--ok);border-radius:var(--r-control);border-color:#cfe4d6}.template-save{border-color:var(--line);color:var(--ink-2);border-radius:var(--r-control)}.upload-icon{background:var(--brand);border-radius:12px}.panel-form .upload-choice{border-color:var(--line);border-radius:var(--r-control);box-shadow:none}.panel-form .camera-choice{background:var(--brand)}.segmented{background:var(--surface-2);border-radius:var(--r-control)}.segmented button{color:var(--ink-2)}.segmented button.selected{color:var(--ink);box-shadow:var(--shadow-card)}.recon-retry{background:var(--bad)}.panel-form input,.panel-form select,.panel-form textarea,.search-row input,.merge-row select,.merge-row input,.recon-denom-row input,.term-alias,.default-label,.money-input.large,.default-row .money-input,.income-grid label{border-color:var(--line);border-radius:var(--r-control);background:var(--surface);color:var(--ink)}.panel-form input:focus,.panel-form select:focus,.panel-form textarea:focus,.search-row input:focus,.recon-denom-row input:focus{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}.panel-form label,.merge-row label{color:var(--ink)}.search-row button{border-color:var(--line);border-radius:var(--r-control)}.upload-zone{border-radius:var(--r-card);background:var(--bg);border-color:var(--line)!important}.upload-zone.has-file{background:var(--brand-soft);border-color:var(--brand)!important}.form-total,.recon-subtotal,.recon-formula,.recon-loading,.review-nav,.closing-export,.manual-intro,.trash-row,.catalog-row,.template-manage-items li,.recon-month-split>div,.member-toggle,.remember-toggle{background:var(--bg);border-radius:var(--r-control)}.form-message{background:var(--ok-soft);color:var(--ok);border-radius:var(--r-control)}.form-error{color:var(--bad);background:var(--bad-soft)}.manual-item,.term-row,.catalog-group,.template-manage,.default-group,.item-row{border-color:var(--line);background:var(--surface)}.manual-item{border-radius:var(--r-card)}.term-row.term-monthly{background:var(--brand-soft);border-color:#bfd6e8}.term-pick input[type=checkbox],.member-toggle input,.remember-toggle input,.panel-form .check-label input{accent-color:var(--brand)}.template-offer,.member-steps{background:var(--brand-soft);color:#234069;border-radius:var(--r-control);border-color:#bfd6e8}.repeat-order{border-color:var(--line);background:var(--bg);border-radius:var(--r-control)}.repeat-order-label{color:var(--ink-2)}.repeat-order-chips button{border-color:var(--line);border-radius:var(--r-control)}.recon-prefill,.backup-status,.closing-ready{background:var(--ok-soft);color:var(--ok)}.backup-status.backup-stale{background:var(--bad-soft);color:var(--bad)}.recon-switch-warning,.recon-confirm,.merge-confirm,.danger-zone{border-radius:var(--r-control)}.recon-switch-warning,.merge-confirm{background:var(--bad-soft);color:#7a1f17;border-color:#efc9c5}.recon-confirm{background:var(--bg);border-color:var(--line);color:var(--ink-soft)}.danger-zone{background:var(--bad-soft);border-color:#efc9c5}.danger-zone span,.danger-link,.delete-confirm-text{color:var(--bad)}.recon-even,.closing-row.closing-ok{background:var(--ok-soft);color:var(--ok);border-color:#cfe4d6}.recon-short,.recon-formula em,.recon-tag-short,.recon-month-day strong{color:var(--bad)}.recon-short{background:var(--bad-soft)}.recon-over,.recon-tag-over,.closing-caveat{color:#7a5a12}.recon-over{background:var(--warn-soft)}.recon-idle{background:var(--bg);color:var(--ink-2)}.recon-tag-even{color:var(--ok)}.closing-row{border-radius:var(--r-control);background:var(--warn-soft);border-color:#ebd9a6}.closing-mark{background:var(--warn)}.closing-ok .closing-mark{background:var(--ok)}.missing-days,.duplicate-banner,.duplicate-warning,.anomaly-note,.term-suggest-note,.month-warning{border-radius:var(--r-control);background:var(--warn-soft);color:#7a5a12;border-color:#ebd9a6}.missing-days-label,.duplicate-banner strong,.duplicate-banner span,.term-suggest-note strong{color:#7a5a12}.duplicate-badge{background:var(--warn-soft);color:#7a5a12;border-color:#ebd9a6}.same-month{color:var(--ok);background:var(--ok-soft);border-color:#cfe4d6}.review-state.needs-review{color:#7a5a12;background:var(--warn-soft)}.review-state.reviewed{color:var(--ok);background:var(--ok-soft)}.review-state,.month-assignment{border-radius:var(--r-control)}.empty-review-items,.cloud-empty,.price-empty{border-color:var(--line);background:var(--surface);border-radius:var(--r-card)}.empty-state>span{background:var(--brand-soft);color:var(--brand)}.document-detail-image{border-color:var(--line);background:var(--surface-2);border-radius:var(--r-card)}.photo-zoom-hint{background:#0f1b2db8}.status{color:var(--ok)}.pending-status{color:var(--warn)}.confidence-high{background:var(--ok-soft);color:var(--ok)}.confidence-low{background:var(--warn-soft);color:#7a5a12}.catalog-none{background:var(--warn-soft);color:#7a5a12;border-color:#ebd9a6}.catalog-likely{background:var(--bad-soft);color:var(--bad);border-color:#efc9c5}.catalog-exact{background:var(--ok-soft);color:var(--ok);border-color:#cfe4d6}.member-role-family{color:var(--ok);background:var(--ok-soft)}.member-role-staff{color:var(--brand);background:var(--brand-soft)}.document-thumb{background:var(--surface-2);border-color:var(--line);color:var(--ink-2);border-radius:8px}.document-thumb.confirmed{background:var(--ok-soft);color:var(--ok);border-color:#cfe4d6}.manual-thumb{background:var(--brand-soft);color:var(--brand);border-color:#bfd6e8}.image-thumb{background:var(--surface-2)}.document-copy small,.document-table small{color:var(--ink-2)}.document-copy .ai-note{color:#7a5a12}.upload-file-mark{background:var(--surface-2)}.batch-done .upload-file-mark{background:var(--ok)}.batch-failed .upload-file-mark{background:var(--bad)}.batch-saved .upload-file-mark{background:var(--warn)}.upload-file-row button{color:var(--bad)}.panel-backdrop{-webkit-backdrop-filter:none;backdrop-filter:none;background:#0f1b2d73}.action-panel{background:var(--bg);box-shadow:var(--shadow-float);border-radius:20px 20px 0 0}.panel-handle{background:var(--line)}.panel-heading h2{letter-spacing:-.02em;font-size:22px}.close-button{border-color:var(--line);background:var(--surface);width:40px;height:40px;color:var(--ink)}.detail-actions{background:linear-gradient(180deg, #f3f5f800, var(--bg) 18%)}.recon-sticky{background:var(--surface);border-top-color:var(--line);box-shadow:0 -8px 24px #0f1b2d14}.review-nav button{border-color:var(--line);border-radius:var(--r-control)}.review-nav span{color:var(--ink-soft)}.recon-section-head,.expense-records-head{border-bottom-color:var(--line)}.line-subtotal{color:var(--ink-soft)}.vendor-group{border-radius:var(--r-card);border-color:var(--line);background:var(--surface)}.vendor-group .document-table article,.document-table article{background:var(--surface);border-color:var(--line);border-radius:var(--r-control)}.vendor-caret,.vendor-name small,.document-table p,.loading-state{color:var(--ink-2)}.vendor-total{font-weight:700}.report-hero{border-radius:var(--r-card);background:var(--surface);color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow-card);padding:20px}.report-hero span,.report-hero p,.report-hero .month-delta{color:var(--ink-2)}.report-hero strong{letter-spacing:-.03em;font-size:clamp(32px,5vw,44px)}.report-grid>article{border-radius:var(--r-card);background:var(--surface);border-color:var(--line);box-shadow:var(--shadow-card);padding:18px}.report-card-heading{margin-bottom:16px}.report-card-heading span{color:var(--ink-2)}.bar-track{background:var(--surface-2)}.bar-navy{background:var(--brand)}.bar-green{background:var(--act-camera)}.bar-orange{background:var(--act-expense)}.bar-gray{background:var(--ink-3)}.report-note{border-radius:var(--r-control);background:var(--bg);color:var(--ink-2)}.recon-month-total{border-radius:var(--r-control)}.recon-month-card h3{color:var(--ink-2)}.recon-month-day{border-bottom-color:var(--line)}.merge-card,.settings-grid article{border-radius:var(--r-card);background:var(--surface);border-color:var(--line);box-shadow:var(--shadow-card)}.settings-mark{background:var(--brand-soft);color:var(--brand);border-radius:12px}.merge-card>p,.merge-empty,.trash-copy small,.template-manage-name small,.default-group-head small,.catalog-row small,.term-name small{color:var(--ink-2)}.default-label:disabled{background:var(--bg);color:var(--ink-2)}.access-notice{border-radius:var(--r-card);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-card)}.access-email{color:var(--ink-soft)}.recon-sticky{transition:background-color .2s,color .2s}.recon-sticky.recon-idle{background:var(--bg);color:var(--ink-2)}.recon-sticky.recon-even{background:var(--ok-soft);color:var(--ok)}.recon-sticky.recon-short{background:var(--bad-soft);color:var(--bad)}.recon-sticky.recon-over{background:var(--warn-soft);color:#7a5a12}.recon-sticky.recon-even strong,.recon-sticky.recon-short strong,.recon-sticky.recon-over strong{color:inherit}.recon-sticky.recon-reveal .recon-sticky-verdict strong{color:var(--ink)}.recon-sticky.recon-revealed .recon-sticky-verdict strong{animation:.22s ease-out verdictLand;display:inline-block}@keyframes verdictLand{0%{transform:scale(.94)}60%{transform:scale(1.03)}to{transform:none}}.welcome-row{align-items:flex-end;margin-bottom:10px}.welcome-row h1{margin:6px 0 0}.completeness-inline{color:var(--ink-2);white-space:nowrap;padding-bottom:6px;font-size:12px}.completeness-inline strong{font-family:var(--num);font-variant-numeric:tabular-nums;color:var(--ink);margin-left:2px;font-size:15px}.progress-track-page{margin:0 0 22px}.section-eyebrow{margin-bottom:10px;display:block}.action-section{margin-top:22px}.numbers-section .section-heading{align-items:center}.numbers-section .month-switcher .month-step{width:32px;height:32px}.numbers-section .month-switcher .month-label{padding:6px 11px;font-size:12px}.numbers-section .month-switcher .month-current{padding:7px 11px;font-size:11px}.metric-card.metric-hero{gap:8px;width:100%;min-height:0;margin-bottom:10px;padding:16px;display:flex}.metric-card.metric-hero>span{font-size:12px;font-weight:500}.metric-card.metric-hero strong{font-size:clamp(32px,6vw,40px)}.metric-card.metric-hero .metric-detail{margin-top:2px}.metric-grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}.metric-card.metric-small{justify-content:flex-start;gap:6px;min-height:0;padding:12px}.metric-card.metric-small>span{font-size:11px;font-weight:500}.metric-card.metric-small strong{gap:3px;font-size:17px}.metric-card.metric-small strong small{font-size:9px}.metric-card.metric-small .metric-detail{font-size:10px;line-height:1.4}.metric-card.metric-small .metric-detail em{white-space:normal;margin-top:2px;font-size:10px}.numbers-note{color:var(--ink-2);margin:10px 0 0;font-size:12px}@media (width<=520px){.welcome-row{flex-direction:row;align-items:flex-end}.metric-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.metric-card.metric-small .metric-detail em{display:none}}.page-title-row-tight{align-items:center;margin-bottom:14px}.page-title-row-tight h1{margin:4px 0 0}.upload-button{justify-content:center;align-items:center;gap:8px;width:100%;height:48px;margin-bottom:12px;font-size:13px;display:flex}.upload-button svg{display:block}.search-row{margin-bottom:12px}.search-box{border:1px solid var(--line);border-radius:var(--r-control);background:var(--surface);min-width:0;height:48px;color:var(--ink-2);flex:1;align-items:center;gap:10px;padding:0 14px;display:flex}.search-box svg{flex-shrink:0;display:block}.search-box input{min-width:0;color:var(--ink);box-shadow:none;background:0 0;border:0;outline:none;flex:1;padding:0}.search-box:focus-within{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}.filter-row{gap:8px;margin-bottom:14px}.filter-row button{align-items:center;height:32px;padding:0 12px;font-size:12px;font-weight:700;display:inline-flex}.chip-count{border-radius:var(--r-pill);background:var(--act-pending);color:#fff;min-width:20px;height:20px;font-size:11px;font-family:var(--num);place-items:center;margin-left:6px;padding:0 6px;display:inline-grid}.vendor-group{margin-top:10px;overflow:hidden}.vendor-summary{padding:14px 16px}.vendor-name small{margin-top:1px}.vendor-group .cloud-document-table{margin:0;padding:0 16px 4px}.cloud-document-table{gap:0}.document-table article,.vendor-group .document-table article{border:0;border-top:1px solid var(--line);background:0 0;border-radius:0;grid-template-columns:40px 1fr auto;align-items:center;gap:8px 12px;padding:12px 0}.document-table>article:first-child{border-top:0}.vendor-group .document-table>article:first-child{border-top:1px solid var(--line)}.page-section>.cloud-document-table,.page-section>.duplicate-banner+.cloud-document-table,.pending-panel-list .cloud-document-table{border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface);padding:0 16px}.document-thumb{border-radius:8px;width:40px;height:40px;font-size:13px}.document-title-row strong{font-size:14px}.document-copy p{white-space:nowrap;text-overflow:ellipsis;margin:2px 0 0;font-size:12px;overflow:hidden}.document-copy small{margin-top:2px;font-size:11px;display:block}.document-copy{min-width:0}.document-amount{text-align:right;flex-direction:column;grid-column:auto;align-items:flex-end;gap:6px;display:flex}.document-amount strong{letter-spacing:-.02em;font-size:17px}.status-pill{border-radius:var(--r-pill);white-space:nowrap;place-items:center;height:20px;padding:0 8px;font-size:10px;font-weight:700;display:inline-grid}.status-ok{background:var(--ok-soft);color:var(--ok)}.status-warn{background:var(--warn-soft);color:#7a5a12}.document-actions{grid-column:1/-1;justify-content:flex-start;gap:8px;margin:0}.document-actions:empty{display:none}.detail-button,.retry-button,.delete-icon-button{padding:7px 11px;font-size:11px}@media (width<=520px){.page-title-row-tight{display:flex}.document-table article,.vendor-group .document-table article{grid-template-columns:40px 1fr auto}.document-amount{grid-column:auto;display:flex}}.action-panel{padding-top:8px}.panel-heading{align-items:center;margin-top:4px;padding-left:12px;position:relative}.panel-heading:before{content:"";left:calc(-1 * var(--panel-inline));background:var(--brand);border-radius:0 3px 3px 0;width:6px;position:absolute;top:-2px;bottom:-2px}.action-panel[data-panel=upload] .panel-heading:before,.action-panel[data-panel=detail] .panel-heading:before,.action-panel[data-panel=pending] .panel-heading:before{background:var(--act-camera)}.action-panel[data-panel=manual] .panel-heading:before{background:var(--act-manual)}.action-panel[data-panel=expense] .panel-heading:before{background:var(--act-expense)}.action-panel[data-panel=price] .panel-heading:before,.action-panel[data-panel=items] .panel-heading:before{background:var(--ink-3)}.panel-heading h2{margin-top:2px;font-size:20px}.panel-form{gap:14px;margin-top:18px}.panel-form label{color:var(--ink);font-size:13px}.recon-section-head{margin-top:4px}.recon-denoms{gap:8px}.recon-denom-row{grid-template-columns:58px minmax(0,1fr) 92px;gap:10px}.recon-denom{text-align:left;color:var(--ink);font-size:14px;font-weight:700}.recon-denom-row input{text-align:left;height:40px;font-family:var(--num);font-variant-numeric:tabular-nums;padding:0 12px}.recon-denom-row small{min-width:0;color:var(--ink-2);font-size:13px;font-weight:600}.recon-subtotal{background:var(--brand-soft);border-radius:var(--r-control);padding:12px 14px}.recon-subtotal>div{font-size:13px}.recon-subtotal .recon-expected{border-top:1px solid #0f1b2d1f;font-size:14px}.recon-subtotal .recon-expected strong{font-size:18px}.recon-amount-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.recon-amount-grid .money-input.large input{font-size:18px}.recon-payout-suggest{align-items:center;gap:6px;display:flex}.manual-item{gap:10px;padding:14px}.manual-item-title{text-transform:none;letter-spacing:0;font-size:11px;font-weight:700}.review-item-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.review-item-grid label{color:var(--ink-2);font-size:11px}.review-item-grid input{height:40px;font-family:var(--num);font-variant-numeric:tabular-nums;padding:0 10px}.detail-actions{margin:2px calc(-1 * var(--panel-inline)) calc(-1 * var(--panel-bottom));padding:12px var(--panel-inline) var(--panel-bottom);background:var(--surface);border-top:1px solid var(--line)}.recon-sticky{margin-top:8px}@media (width<=520px){.review-item-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.recon-denom-row{grid-template-columns:50px minmax(0,1fr) 84px}.detail-actions{grid-template-columns:1fr 1.4fr}.detail-actions>:only-child{grid-column:1/-1}}.metric-grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:0}.metric-grid-2+.metric-card.metric-small{width:100%;margin-top:10px;display:flex}.page-section .metric-card.metric-hero{margin-bottom:10px}.metric-card .month-delta{font-size:11px}.report-grid,.breakdown-grid{margin-top:14px}.bar-green,.bar-orange,.bar-gray{background:var(--brand)}.bar-row{margin-top:12px}.bar-row>div:first-child,.bar-row strong{font-size:12px}.bar-track{height:8px}.merge-card>strong,.report-card-heading strong{font-size:16px}.report-foot{gap:10px;margin-top:18px;display:grid}.report-foot-button{justify-content:center;align-items:center;gap:8px;width:100%;height:48px;font-size:13px;display:flex}.report-foot-button svg{display:block}@media (width<=520px){.metric-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-grid-2 .metric-card.metric-small .metric-detail em{display:none}}.recon-history{gap:8px}.recon-history-head{gap:4px;padding:0 0 8px;display:grid}.recon-history-head strong{font-size:15px}.recon-history-row .expense-record-side{gap:12px}.recon-history-row .expense-record-side strong{font-family:var(--num);font-variant-numeric:tabular-nums}.manual-top{grid-template-columns:1fr 1fr;align-items:end;gap:10px;display:grid}.manual-hint{color:var(--ink-2);padding-bottom:12px;font-size:11px;line-height:1.5}.manual-step{justify-content:space-between;align-items:center;gap:10px;margin-top:4px;display:flex}.manual-step strong{font-size:13px}.manual-step strong span{color:var(--ink-2);font-weight:500}.manual-step>span{color:var(--ink-2);font-size:11px}.manual-step-items{margin-top:8px}.manual-step-items button{color:var(--brand);cursor:pointer;background:0 0;border:0;font-size:12px;font-weight:700}.vendor-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.vendor-choice{border:1.5px solid var(--line);border-radius:var(--r-control);background:var(--surface);min-height:56px;color:var(--ink);text-align:left;cursor:pointer;align-items:center;gap:8px;padding:10px 12px;display:flex}.vendor-choice.selected{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}.vendor-choice svg{flex-shrink:0}.vendor-choice-copy{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.vendor-choice-copy strong{white-space:nowrap;text-overflow:ellipsis;color:var(--ink);font-size:13px;overflow:hidden}.vendor-choice-copy small{color:var(--ink-2);font-size:10px}.vendor-choice-other{color:var(--ink-2);border-style:dashed;justify-content:center;gap:6px;font-size:13px;font-weight:700}.manual-rows{border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface);flex-direction:column;padding:0 14px;display:flex}.manual-row{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) 62px 60px 82px;align-items:end;gap:6px;padding:10px 0;display:grid}.manual-row:first-child{border-top:0}.manual-row label{color:var(--ink-2);flex-direction:column;gap:3px;min-width:0;font-size:10px;font-weight:600;display:flex}.manual-row input{border:1px solid var(--line);border-radius:var(--r-control);background:var(--surface);width:100%;height:44px;color:var(--ink);padding:0 8px;font-size:16px}.manual-row label:nth-child(3) input,.manual-row label:nth-child(4) input{font-family:var(--num);font-variant-numeric:tabular-nums}.manual-row-qty input{text-align:center;font-family:var(--num);font-variant-numeric:tabular-nums;border-width:1.5px;padding:0 4px;font-size:18px;font-weight:700}.manual-row-qty input:not(:placeholder-shown){border-color:var(--brand)}.manual-row-sub{color:var(--ink-2);grid-column:1/-1;justify-content:space-between;align-items:center;margin-top:-2px;font-size:11px;display:flex}.manual-row-sub button{color:var(--bad);cursor:pointer;background:0 0;border:0;padding:0;font-size:11px;font-weight:700}.manual-foot{bottom:calc(-1 * var(--panel-bottom));z-index:2;margin:6px calc(-1 * var(--panel-inline)) calc(-1 * var(--panel-bottom));padding:12px var(--panel-inline) var(--panel-bottom);background:var(--surface);border-top:1px solid var(--line);gap:10px;display:grid;position:sticky}.manual-foot-total{color:var(--ink-2);justify-content:space-between;align-items:center;font-size:12px;display:flex}.manual-foot-total strong{font-family:var(--num);font-variant-numeric:tabular-nums;color:var(--ink);font-size:20px}.manual-foot-actions{grid-template-columns:1fr 1.4fr;gap:10px;display:grid}.manual-foot-actions>:only-child{grid-column:1/-1}.manual-foot-actions .secondary-button,.manual-foot-actions .primary-button{height:48px;padding:0 10px;font-size:12px}@media (width<=520px){.manual-top{grid-template-columns:1fr 1fr}}.settings-page .page-title-row-tight{margin-bottom:0}.settings-group{border-radius:var(--r-card);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-card);flex-direction:column;margin-top:14px;padding:0 16px;display:flex}.settings-group-title{letter-spacing:.12em;color:var(--ink-2);padding:14px 0 6px;font-size:11px}.settings-row{border:0;border-top:1px solid var(--line);width:100%;min-height:56px;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border-radius:0;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:12px;margin:0;padding:8px 0;display:grid}.settings-group-title+.settings-row{border-top:0}.settings-row:active .settings-row-icon{background:var(--line)}.settings-row-icon{background:var(--surface-2);width:40px;height:40px;color:var(--brand);border-radius:12px;place-items:center;display:grid}.settings-row-icon.tone-ok{color:var(--ok)}.settings-row-icon.tone-warn{color:var(--warn)}.settings-row-icon.tone-bad{color:var(--bad)}.settings-row-copy{gap:3px;min-width:0;display:grid}.settings-row-copy strong{font-size:14px;font-weight:700}.settings-row-copy small{color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;font-variant-numeric:tabular-nums;font-size:11px;overflow:hidden}.settings-row-chevron{color:var(--ink-2)}.status-bad{background:var(--bad-soft);color:var(--bad)}.settings-alert{border-radius:var(--r-card);background:var(--bad-soft);width:100%;color:var(--bad);text-align:left;cursor:pointer;border:1px solid #efc9c5;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;margin-top:14px;padding:12px 14px;font-size:13px;font-weight:700;display:grid}.setting-panel{grid-template-columns:minmax(0,1fr);gap:14px;margin-top:18px;display:grid}.setting-body{grid-template-columns:minmax(0,1fr);gap:12px;display:grid}.setting-panel .trash-row,.setting-panel .member-toggle{background:var(--surface);border:1px solid var(--line)}.setting-search{height:44px}.setting-help{color:var(--ink-2);font-size:12px;line-height:1.6}.setting-help summary{cursor:pointer;-webkit-tap-highlight-color:transparent;justify-content:space-between;align-items:flex-start;gap:12px;list-style:none;display:flex}.setting-help summary::-webkit-details-marker{display:none}.setting-help summary em{color:var(--brand);white-space:nowrap;flex-shrink:0;align-items:center;gap:2px;font-style:normal;font-weight:700;display:inline-flex}.setting-help[open] summary em svg{transform:rotate(180deg)}.setting-help-body{border-radius:var(--r-control);background:var(--surface);border:1px solid var(--line);margin-top:8px;padding:10px 12px}.setting-help-body p{margin:0 0 6px}.setting-help-body p:last-child{margin:0}.setting-help-body strong{color:var(--ink)}.setting-foot{margin-top:4px}.setting-foot-note{color:var(--ink-2);font-size:12px}.setting-foot .primary-button{width:100%;height:48px}.default-row .money-input{min-width:0}.default-row .money-input small{flex-shrink:0}.default-row .money-input input{flex:1 1 0;width:100%;min-width:0}.default-row .delete-icon-button{white-space:nowrap;flex-shrink:0}.default-row .money-input{width:128px}.default-row .money-input input{font-size:14px}.setting-panel .default-group,.setting-panel .trash-list,.setting-panel .term-list,.setting-panel .template-manage-list,.setting-panel .catalog-rows{grid-template-columns:minmax(0,1fr)}.setting-panel .merge-row{grid-template-columns:repeat(2,minmax(0,1fr))}@media (width<=520px){.setting-panel .merge-row{grid-template-columns:minmax(0,1fr)}}.plan-line{border-radius:var(--r-control);background:var(--surface);border:1px solid var(--line);color:var(--ink-2);font-variant-numeric:tabular-nums;margin:0;padding:10px 12px;font-size:12px}.plan-line strong{color:var(--ink)}.plan-line-full{background:var(--bad-soft);color:var(--bad);border-color:#efc9c5}.plan-line-full strong{color:var(--bad)}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
