@import "https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;500;600;700;800&display=swap";:root{font-synthesis:none;color:#263e34;--green:#315d49;--muted:#92a398;--line:#eaf0e7;background:#f8faf6;font-family:Noto Sans TC,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;color:inherit;background:0 0;border:0}button,a,input,select{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline-offset:4px;outline:2px solid #8eaf98}input:focus,select:focus{outline-offset:1px;outline:2px solid #9ebda6}a{color:inherit;text-decoration:none}[hidden]{display:none!important}.icon{vertical-align:middle;flex-shrink:0;width:21px;height:21px}.app-shell{max-width:480px;min-height:100dvh;padding-bottom:calc(100px + var(--app-safe-bottom));background:#f9fbf7;margin:auto;position:relative}.app-header{justify-content:space-between;align-items:center;height:76px;padding:48px 24px 0;display:flex}.wordmark{color:#527b5c;align-items:center;gap:9px;display:flex}.wordmark .icon{stroke-width:1px;width:15px;height:15px}.wordmark span{font-size:calc(11px * var(--fs,1));letter-spacing:2.5px;font-weight:600}.book-avatar{width:34px;height:34px;font-size:calc(14px * var(--fs,1));color:#527158;background:#e4ece0;border-radius:50%;font-weight:500;box-shadow:0 0 0 2px #fff}@media (hover:hover){.book-avatar:hover{background:#d9e7d5}}main{padding:7px 24px 0}.welcome{margin-bottom:22px}h1{font-size:calc(26px * var(--fs,1));letter-spacing:.4px;margin:0;font-weight:700;line-height:1.4}.welcome p,.page-heading>p:last-child{font-size:calc(13px * var(--fs,1));color:#8e9f94;letter-spacing:.4px;margin:6px 0 0;line-height:18px}.total-card{color:#f9fcf9;background:#315d49;border-radius:21px;height:156px;padding:21px;position:relative;overflow:hidden;box-shadow:0 10px 25px #315d4910}.total-top{z-index:1;justify-content:space-between;align-items:center;display:flex;position:relative}.total-top>span{font-size:calc(13px * var(--fs,1));color:#dce8da}.month-pill{color:#dce9dc;font-size:calc(11px * var(--fs,1));letter-spacing:.3px;border:1px solid #ffffff21;border-radius:20px;align-items:center;gap:4px;min-height:25px;padding:4px 8px;display:flex}.month-pill>span:first-child{font-size:calc(11px * var(--fs,1))}.total-number{font-size:calc(31px * var(--fs,1));letter-spacing:-.5px;z-index:1;margin-top:14px;font-weight:700;line-height:1.3;position:relative}.total-footer{z-index:1;justify-content:space-between;align-items:center;display:flex;position:absolute;bottom:22px;left:21px;right:21px}.total-footer>span{font-size:calc(12px * var(--fs,1));color:#d5e5d3}.total-footer>button{font-size:calc(19px * var(--fs,1));color:#d3e4cd;padding:0 1px;line-height:20px}.card-rings{pointer-events:none;border:1px solid #ffffff04;border-radius:50%;width:186px;height:186px;position:absolute;bottom:-110px;right:-47px;box-shadow:0 0 0 22px #ffffff04,0 0 0 44px #ffffff03,0 0 0 66px #ffffff02}.quick-actions{grid-template-columns:1fr 1fr;gap:11px;margin-top:14px;display:grid}.quick-card{text-align:left;border-radius:17px;flex-direction:column;align-items:flex-start;height:110px;padding:16px 14px;transition:transform .15s,filter .15s;display:flex;position:relative}@media (hover:hover){.quick-card:hover{filter:brightness(.98);transform:translateY(-2px)}}.scan-quick{background:#e5eee1}.manual-quick{background:#f3ecdf}.quick-icon{color:#375d45;background:#ffffffb5;border-radius:11px;place-items:center;width:33px;height:33px;margin-bottom:10px;display:grid}.quick-icon .icon{width:20px;height:20px}.quick-arrow{font-size:calc(17px * var(--fs,1));color:#849b80;position:absolute;top:13px;right:14px}.quick-card strong{font-size:calc(14px * var(--fs,1));font-weight:600;line-height:18px}.quick-card small{font-size:calc(11px * var(--fs,1));color:#8b9e86;letter-spacing:.2px;margin-top:3px}.recent-section{margin-top:34px}.eyebrow{font-size:calc(11px * var(--fs,1));color:#829b85;letter-spacing:2px;margin:0 0 10px;font-weight:500;line-height:12px}.section-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-heading h2{font-size:calc(18px * var(--fs,1));margin:0;font-weight:600;line-height:24px}.text-button{font-size:calc(11px * var(--fs,1));color:#648b69;padding:2px 0}@media (hover:hover){.text-button:hover{color:#315d49}}.home-empty{text-align:center;padding:52px 0 32px}.empty-spark{color:#b5cbb5;font-size:calc(32px * var(--fs,1));margin-bottom:16px;font-weight:400;line-height:32px;display:block}.home-empty strong{font-size:calc(13px * var(--fs,1));color:#658668;font-weight:500;display:block}.home-empty p{font-size:calc(11px * var(--fs,1));color:#97a891;letter-spacing:.1px;margin:7px 0 0;line-height:17px}.recent-item{border-bottom:1px solid var(--line);align-items:center;gap:11px;padding:17px 0;display:flex}.recent-item>div{flex:1;min-width:0}.recent-item strong{font-size:calc(14px * var(--fs,1));text-overflow:ellipsis;white-space:nowrap;font-weight:500;display:block;overflow:hidden}.recent-item small{font-size:calc(11px * var(--fs,1));color:#98a48e;margin-top:5px;display:block}.recent-item>b{font-size:calc(14px * var(--fs,1));white-space:nowrap;font-weight:600}.category-icon{width:34px;height:34px;font-size:calc(13px * var(--fs,1));border-radius:11px;flex-shrink:0;place-items:center;display:grid}.bottom-nav{width:100%;max-width:480px;height:calc(86px + var(--app-safe-bottom));padding:15px 15px calc(26px + var(--app-safe-bottom));z-index:10;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fefffcf5;border-top:1px solid #eef2e9;grid-template-columns:repeat(5,1fr);align-items:center;display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.bottom-nav>button{color:#a3b2a6;height:43px;font-size:calc(11px * var(--fs,1));flex-direction:column;justify-content:center;align-items:center;gap:4px;display:flex}.bottom-nav .icon{stroke-width:1.3px;width:18px;height:18px}.bottom-nav>button.active{color:#376b48}.bottom-nav>.nav-add{color:#fff;background:#315d49;border-radius:14px;place-self:center;width:43px;height:43px;transform:translateY(-5px);box-shadow:0 4px 10px #315d4929}.nav-add .icon{stroke-width:1.7px;width:25px;height:25px}@media (hover:hover){.bottom-nav>.nav-add:hover{background:#244f3c}}.page-heading{margin:10px 0 24px}.page-heading .eyebrow{margin-bottom:12px}.page-heading h1{font-size:calc(26px * var(--fs,1))}.panel,.stat-card{border:1px solid var(--line);background:#fff;border-radius:18px;min-width:0;padding:20px}.records{background:0 0;border:0;padding:0}.count-badge{font-size:calc(12px * var(--fs,1));color:#7a9572;background:#e7efe0;border-radius:5px;padding:2px 6px}.filters{gap:9px;margin:21px 0;display:flex}.search-box{background:#fff;border:1px solid #e1e9dc;border-radius:10px;flex:1;align-items:center;gap:7px;min-width:0;padding:10px;display:flex}.search-box>.icon{color:#90a28a;width:15px;height:15px}.search-box input{width:100%;min-width:0;font-size:calc(12px * var(--fs,1));color:#435c40;background:0 0;border:0}.search-box input::placeholder{color:#a0ad98}.filters select{color:#819575;width:95px;max-width:40%;font-size:calc(12px * var(--fs,1));background:#fff;border:1px solid #e1e9dc;border-radius:10px;padding:8px}.table-wrap table{border-collapse:collapse;width:100%}.table-wrap thead{display:none}.table-wrap tr{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto 24px;align-items:center;padding:14px 0 27px;display:grid;position:relative}.table-wrap td{font-size:calc(12px * var(--fs,1));padding:0}.table-wrap td:nth-child(2){font-size:calc(11px * var(--fs,1));color:#9aa88f;position:absolute;bottom:10px;left:45px}.table-wrap td:nth-child(3){font-size:calc(11px * var(--fs,1));color:#9aa88f;position:absolute;bottom:10px;left:114px}.table-wrap td:nth-child(4){display:none}.merchant{align-items:center;gap:11px;min-width:0;display:flex}.merchant strong{font-size:calc(14px * var(--fs,1));overflow-wrap:anywhere;font-weight:500}.amount-cell{text-align:right;white-space:nowrap;font-size:calc(14px * var(--fs,1))!important}.amount-cell strong{font-weight:600}.delete-button{font-size:calc(22px * var(--fs,1));color:#b6c2ad;width:24px;padding:0}@media (hover:hover){.delete-button:hover{color:#b77761}}.empty-state{text-align:center;padding:55px 0}.empty-state strong{font-size:calc(14px * var(--fs,1));color:#6d8b66;font-weight:500;display:block}.empty-state p{font-size:calc(12px * var(--fs,1));color:#9aa88e;margin:10px 0 18px;line-height:1.9}.stats-month{font-size:calc(14px * var(--fs,1));margin:-5px 0 18px}.stats-summary{grid-template-columns:1fr 1fr;gap:12px;display:grid}.stat-card{padding:17px}.stat-card:first-child{background:#e8efe3;border:0;grid-column:1/-1}.stat-card:first-child .stat-number{font-size:calc(31px * var(--fs,1))}.card-label{font-size:calc(12px * var(--fs,1));color:#7d9374;justify-content:space-between;align-items:center;gap:5px;display:flex}.card-label .text-button{font-size:calc(11px * var(--fs,1))}.stat-number{font-size:calc(24px * var(--fs,1));overflow-wrap:anywhere;margin:15px 0 13px;font-weight:600}.stat-number small{font-size:calc(13px * var(--fs,1));font-weight:400}.muted{font-size:calc(11px * var(--fs,1));color:#92a18a;line-height:1.8}.stat-card p{margin:8px 0 0}.progress{background:#e8ede2;border-radius:10px;height:4px;overflow:hidden}.progress i{border-radius:10px;height:100%;display:block}.charts-grid{gap:15px;margin-top:16px;display:grid}.charts-grid .section-heading h2{font-size:calc(17px * var(--fs,1))}.charts-grid .section-heading>.icon{color:#a0b092;width:18px;height:18px}.category-body{align-items:center;gap:20px;margin-top:24px;display:flex}.donut{border-radius:50%;flex-shrink:0;place-items:center;width:125px;height:125px;display:grid}.donut>div{background:#fff;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:7px;width:96px;height:96px;display:flex}.donut small,.donut span{font-size:calc(11px * var(--fs,1));color:#9ca992}.donut strong{font-size:calc(17px * var(--fs,1));font-weight:600}.legend{flex:1;min-width:0}.legend-row{border-radius:4px;align-items:center;gap:5px;width:100%;padding:8px 0;display:flex}@media (hover:hover){.legend-row:hover{background:#eff4e9}}.legend-row i{border-radius:2px;flex-shrink:0;width:6px;height:6px}.legend-row>span{font-size:calc(11px * var(--fs,1));white-space:nowrap;color:#8a9a7d}.legend-row>strong{font-size:calc(11px * var(--fs,1));white-space:nowrap;margin-left:auto;font-weight:500}.legend-row>small{font-size:calc(11px * var(--fs,1));color:#a4af99;text-align:right;min-width:22px}.trend{gap:9px;height:185px;padding-top:25px;display:flex;position:relative}.y-axis{text-align:right;color:#a6b09b;width:32px;font-size:calc(11px * var(--fs,1));flex-direction:column;justify-content:space-between;display:flex}.bars{background:repeating-linear-gradient(0deg,#0000 0 calc(50% - 1px),#f0f3eb calc(50% - 1px) 50%);border-bottom:1px solid #e7ecdf;flex:1;align-items:flex-end;gap:3px;display:flex}.bar-slot{flex:1;align-items:flex-end;min-width:0;height:100%;display:flex}.bar{background:#8ea981;border-radius:3px 3px 0 0;width:100%;min-height:1px}.chart-empty{font-size:calc(11px * var(--fs,1));color:#a2ae97;text-align:center;position:absolute;inset:50% 0 auto 32px}.chart-caption{font-size:calc(11px * var(--fs,1));color:#a6b09b;justify-content:space-between;margin:10px 0 0 41px;display:flex}.primary{color:#fff;font-size:calc(14px * var(--fs,1));background:#315d49;border-radius:11px;justify-content:center;align-items:center;gap:8px;padding:13px 18px;display:inline-flex}@media (hover:hover){.primary:hover{background:#244e3b}}.save-button{width:100%;margin-top:7px}.primary .icon{width:18px;height:18px}dialog{color:#31513e;background:#fcfdf9;border:1px solid #e2eadb;border-radius:22px;width:min(430px,100% - 32px);max-height:90dvh;padding:25px;overflow-y:auto;box-shadow:0 25px 100px #1f3d2a26}dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#213b2c66}.dialog-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;display:flex}.dialog-heading h2{font-size:calc(21px * var(--fs,1));margin:0;font-weight:600;line-height:1.5}.dialog-heading .eyebrow{font-size:calc(11px * var(--fs,1));letter-spacing:1px}.close-button{font-size:calc(30px * var(--fs,1));color:#97a88c;padding:0 5px}form>label,.form-row>label{font-size:calc(13px * var(--fs,1));flex-direction:column;gap:8px;margin-bottom:18px;display:flex}form label input,form label select{width:100%;min-width:0;font-size:calc(16px * var(--fs,1));color:#47603f;background:#fff;border:1px solid #e0e8d9;border-radius:10px;padding:12px 10px}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.upload-area{background:#edf3e7;border:1px dashed #adbea0;border-radius:13px;flex-direction:column;align-items:center;gap:10px;padding:20px;display:flex}.upload-area>.icon{color:#78916a;width:29px;height:29px}.upload-area strong{font-size:calc(14px * var(--fs,1))}.upload-area span{font-size:calc(12px * var(--fs,1));color:#8d9e80}.upload-area input{font-size:calc(12px * var(--fs,1));color:#849577;max-width:100%}.scan-status{font-size:calc(12px * var(--fs,1));color:#8c9d80;margin:12px 0 20px;line-height:1.9}#photoPreview{object-fit:contain;background:#f0f4ea;border-radius:10px;width:100%;height:180px;margin-top:12px}#formError,#budgetError{color:#ad7158;font-size:calc(12px * var(--fs,1))}.book-switch{grid-template-columns:1fr 1fr;gap:10px;margin-top:20px;display:grid}.book-switch button{font-size:calc(16px * var(--fs,1));color:#90a17e;border:1px solid #dfe8d6;border-radius:14px;padding:20px 10px}.book-switch button.selected{color:#456b3d;background:#e7efdf;border-color:#bdd0ac}.period-control{justify-content:space-between;align-items:center;gap:10px;padding:10px 0 20px;display:flex}.period-control button{font-size:calc(31px * var(--fs,1));color:#8b9c7d}.period-control input{color:#547346;width:190px;font-size:calc(17px * var(--fs,1));background:#fff;border:1px solid #dee7d5;border-radius:10px;padding:12px}.toast{bottom:calc(100px + var(--app-safe-bottom));opacity:0;pointer-events:none;color:#fff;width:max-content;max-width:90%;font-size:calc(13px * var(--fs,1));z-index:30;background:#315d49;border-radius:12px;padding:13px 19px;transition:all .2s;position:fixed;left:50%;transform:translate(-50%,12px);box-shadow:0 6px 25px #294a3520}.toast.visible{opacity:1;transform:translate(-50%)}@media (width>=600px){:root{background:#ecf0e9}.app-shell{border-left:1px solid #e2e9dd;border-right:1px solid #e2e9dd;box-shadow:0 0 80px #263e3407}.app-header{padding-top:48px}.quick-card{height:128px;padding:20px}.quick-icon{margin-bottom:14px}.total-card{height:180px;padding:24px}.total-number{font-size:calc(37px * var(--fs,1));margin-top:20px}.total-footer{bottom:24px;left:24px;right:24px}.recent-section{margin-top:38px}.home-empty{padding-top:60px}.bottom-nav{border-left:1px solid #e2e9dd;border-right:1px solid #e2e9dd}.category-body{gap:25px}.donut{width:150px;height:150px}.donut>div{width:116px;height:116px}.donut strong{font-size:calc(18px * var(--fs,1))}.legend-row>span,.legend-row>strong{font-size:calc(12px * var(--fs,1))}}@media (width<=350px){.app-header,main{padding-left:20px;padding-right:20px}.category-body{gap:12px}.donut{width:105px;height:105px}.donut>div{width:81px;height:81px}.donut strong{font-size:calc(14px * var(--fs,1))}.legend-row>small{display:none}.stats-summary{gap:9px}.stat-card{padding:13px}.stat-number{font-size:calc(22px * var(--fs,1))}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}}.add-choice-sheet{width:min(480px,100%);max-width:100%;padding:12px 24px calc(30px + var(--app-safe-bottom));border-bottom:0;border-radius:26px 26px 0 0;margin:0 auto;position:fixed;inset:auto 0 0}.sheet-handle{background:#d7e1d0;border-radius:4px;width:34px;height:4px;margin:0 auto 23px}.add-choice-sheet .dialog-heading{margin-bottom:21px}.add-choice-sheet .eyebrow{font-size:calc(11px * var(--fs,1));letter-spacing:1.5px}.add-choice-options{gap:12px;display:grid}.add-choice{text-align:left;border-radius:16px;align-items:center;gap:14px;width:100%;padding:18px 16px;display:flex}@media (hover:hover){.add-choice:hover{filter:brightness(.98)}}.add-choice .quick-icon{border-radius:13px;width:43px;height:43px;margin:0}.add-choice strong{font-size:calc(17px * var(--fs,1));font-weight:600;display:block}.add-choice small{font-size:calc(12px * var(--fs,1));color:#8b9e86;margin-top:6px;display:block}.choice-arrow{font-size:calc(25px * var(--fs,1));color:#8b9e86;margin-left:auto}.add-choice-backdrop{inset:0 0 calc(86px + var(--app-safe-bottom));z-index:15;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#213b2c66;position:fixed}.add-choice-sheet{bottom:calc(86px + var(--app-safe-bottom));z-index:19;max-height:calc(100dvh - 100px - var(--app-safe-bottom));padding-bottom:25px}.choice-open{overflow:hidden}.choice-open .bottom-nav{z-index:20;background:#fefffc}.nav-add .icon{transition:transform .18s}@media (prefers-reduced-motion:reduce){.nav-add .icon{transition:none}}.photo-source-trigger{cursor:pointer;color:#47603f;width:100%}@media (hover:hover){.photo-source-trigger:hover{background:#e6efdd}}.photo-source-options{gap:9px;margin-top:12px;display:grid}.photo-source-options>button{text-align:left;background:#f4f7ef;border:1px solid #dfe8d6;border-radius:12px;align-items:center;gap:12px;padding:15px;display:flex}@media (hover:hover){.photo-source-options>button:hover{background:#e9f0e1}}.photo-source-options .icon{color:#688b5e;width:23px;height:23px}.photo-source-options strong{font-size:calc(14px * var(--fs,1));font-weight:500;display:block}.photo-source-options small{font-size:calc(11px * var(--fs,1));color:#92a184;margin-top:5px;display:block}.camera-panel{background:#edf2e6;border-radius:13px;margin-top:13px;padding:10px}.camera-panel video{object-fit:contain;background:#1f3528;border-radius:8px;width:100%;max-height:260px;display:block}.camera-actions{justify-content:space-between;align-items:center;gap:10px;margin-top:10px;display:flex}.camera-actions .primary{font-size:calc(13px * var(--fs,1));padding:10px 13px}button:disabled{opacity:.5;cursor:wait}.account-avatar{width:34px;height:34px;font-size:calc(14px * var(--fs,1));color:#527158;background:#e4ece0;border-radius:50%;flex-shrink:0;place-items:center;font-weight:500;display:grid;box-shadow:0 0 0 2px #fff}@media (hover:hover){.account-avatar:hover{background:#d9e7d5}}.ledger-switch{background:#edf2e8;border-radius:12px;gap:4px;margin:16px 0 23px;padding:4px;display:flex}.ledger-switch button{color:#91a086;font-size:calc(13px * var(--fs,1));border-radius:9px;flex:1;justify-content:center;align-items:center;gap:7px;padding:10px 6px;transition:background .15s,color .15s;display:flex}.ledger-switch button.selected{color:#3f6546;background:#fff;font-weight:500;box-shadow:0 2px 5px #315d4908}.ledger-switch .icon{width:15px;height:15px}@media (hover:hover){.ledger-switch button:hover{color:#3f6546}}.account-summary{background:#eef3e8;border-radius:14px;align-items:center;gap:13px;margin-bottom:23px;padding:17px;display:flex}.account-summary .account-avatar{width:45px;height:45px;font-size:calc(19px * var(--fs,1))}.account-summary>div{min-width:0}.account-summary strong{font-size:calc(17px * var(--fs,1));overflow-wrap:anywhere;font-weight:600;display:block}.account-summary small{font-size:calc(11px * var(--fs,1));color:#95a38a;margin-top:5px;line-height:1.9;display:block}.account-security{border-top:1px solid #e5ecde;margin-top:25px;padding-top:20px}.account-security h3{font-size:calc(14px * var(--fs,1));margin:0 0 12px;font-weight:600}.account-setting-row{width:100%;font-size:calc(14px * var(--fs,1));text-align:left;border:1px solid #e2ead9;border-radius:12px;justify-content:space-between;align-items:center;padding:15px;display:flex}@media (hover:hover){.account-setting-row:hover{background:#f0f5e9}}.account-setting-row>span:last-child{color:#96a88a;font-size:calc(22px * var(--fs,1));line-height:12px}.account-notice{font-size:calc(12px * var(--fs,1));color:#8b9d7f;background:#f0f4e9;border-radius:10px;margin:11px 0 0;padding:13px;line-height:1.9}#profileError{color:#ad7158;font-size:calc(12px * var(--fs,1))}dialog.bottom-sheet{inset:auto 0 calc(86px + var(--app-safe-bottom));width:min(480px,100%);max-width:100%;max-height:calc(100dvh - 110px - var(--app-safe-bottom));z-index:19;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#d5dfce transparent;background:#fcfdf9;border:1px solid #e2eadb;border-bottom:0;border-radius:26px 26px 0 0;margin:0 auto;padding:12px 24px 25px;animation:.2s ease-out sheet-rise;position:fixed;overflow-y:auto;box-shadow:0 -12px 45px #213b2c09}.bottom-sheet .sheet-handle{flex-shrink:0;margin-bottom:23px}.bottom-sheet .dialog-heading{margin-bottom:24px}.bottom-sheet .dialog-heading h2{font-size:calc(22px * var(--fs,1))}.bottom-sheet form{margin:0}.delete-actions{grid-template-columns:1fr 1fr;gap:12px;margin-top:24px;display:grid}.secondary{color:#66805b;font-size:calc(14px * var(--fs,1));background:#edf3e7;border:1px solid #dce6d4;border-radius:11px;padding:13px}.choice-open .bottom-nav{box-shadow:0 -1px #eaf0e7}.choice-open .nav-add .icon{transform:rotate(45deg)}@keyframes sheet-rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){dialog.bottom-sheet{animation:none}}.total-card{background:var(--accent);color:var(--accent-ink)}.total-top>span,.month-pill,.total-footer>span,.total-footer>button{color:var(--accent-ink)}.total-top>span,.total-footer>span{opacity:.85}.month-pill{border-color:color-mix(in srgb,var(--accent-ink) 20%,transparent)}.primary,.bottom-nav>.nav-add{background:var(--accent);color:var(--accent-ink)}@media (hover:hover){.primary:hover,.bottom-nav>.nav-add:hover{background:var(--accent-hover)}}.bottom-nav>button.active,.text-button,.wordmark,.quick-icon,.quick-card,.account-avatar,.photo-source-trigger,.photo-source-options .icon{color:var(--accent-text)}.scan-quick,.account-summary,.account-avatar,.stats-summary .stat-card:first-child{background:var(--accent-soft)}.upload-area,.photo-source-options>button,.camera-panel,.ledger-switch{background:var(--accent-faint)}@media (hover:hover){.photo-source-trigger:hover,.photo-source-options>button:hover{background:var(--accent-soft)}}.bar{background:var(--accent)}.ledger-switch button{position:relative}.ledger-switch button:before{content:"";background:var(--book-color);border-radius:50%;flex-shrink:0;width:7px;height:7px}.ledger-switch button.selected{color:var(--accent-text);box-shadow:0 2px 5px #315d4908,inset 0 -2px var(--accent)}@media (hover:hover){.ledger-switch button:hover{color:var(--accent-text)}}.theme-settings{border-top:1px solid #e5ecde;margin-top:25px;padding-top:20px}.theme-settings h3{font-size:calc(14px * var(--fs,1));margin:0;font-weight:600}.theme-book{padding:14px 0}.theme-book+.theme-book{border-top:1px solid #edf1e7}.theme-book-heading{align-items:center;gap:8px;margin-bottom:13px;display:flex}.theme-book-heading strong{font-size:calc(13px * var(--fs,1));font-weight:500}.theme-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px}.custom-color{font-size:calc(12px * var(--fs,1));color:#8d9d83;cursor:pointer;align-items:center;gap:7px;margin-left:auto;display:flex}.custom-color input{cursor:pointer;background:#fff;border:1px solid #dce6d4;border-radius:7px;width:27px;height:27px;padding:2px}.color-swatches{justify-content:space-between;gap:10px;padding:2px;display:flex}.color-swatch{background:var(--swatch);color:#fff;border-radius:50%;flex-shrink:0;place-items:center;width:29px;height:29px;display:grid;position:relative}.color-swatch>span{opacity:0;font-size:calc(16px * var(--fs,1))}.color-swatch[aria-pressed=true]{outline:2px solid var(--swatch);outline-offset:3px}.color-swatch[aria-pressed=true]>span{opacity:1}#themeError{color:#ad7158;font-size:calc(12px * var(--fs,1))}.theme-settings>.muted{margin-bottom:5px}.ledger-switch{isolation:isolate;touch-action:pan-y;-webkit-user-select:none;user-select:none;background:#edf1ec;gap:0;padding:4px;position:relative}.ledger-slider{background:var(--ledger-selected);width:calc(50% - 4px);transform:translateX(calc(var(--ledger-position,0)*100%));z-index:0;pointer-events:none;border-radius:9px;transition:transform .26s cubic-bezier(.22,.68,0,1),background .26s;position:absolute;top:4px;bottom:4px;left:4px;box-shadow:0 3px 8px #263e3412}.ledger-switch button{z-index:1;background:0 0;min-height:40px;padding:11px 6px;transition:color .2s}.ledger-switch button.selected{color:#fff;box-shadow:none;background:0 0}@media (hover:hover){.ledger-switch button.selected:hover{color:#fff}}.ledger-switch button.selected:before{opacity:.7;background:#fff}.ledger-switch button:before{transition:background .2s}.ledger-switch .icon{pointer-events:none}.ledger-switch button:focus-visible{outline-offset:-3px}@media (prefers-reduced-motion:reduce){.ledger-slider,.ledger-switch button,.ledger-switch button:before{transition:none}}.ledger-switch button:before{content:none}.icon-picker-heading{font-size:calc(12px * var(--fs,1));color:#8d9d83;justify-content:space-between;align-items:center;margin:20px 0 11px;display:flex}.icon-picker-heading .text-button{font-size:calc(11px * var(--fs,1))}.ledger-icon-options{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.ledger-icon-option{color:#94a38a;background:#f5f7f0;border:1px solid #e6ecdf;border-radius:11px;flex-direction:column;justify-content:center;align-items:center;gap:7px;min-height:61px;padding:10px 3px;display:flex}.ledger-icon-option .icon{width:20px;height:20px}.ledger-icon-option>span{font-size:calc(11px * var(--fs,1))}@media (hover:hover){.ledger-icon-option:hover{background:var(--accent-faint);color:var(--accent-text)}}.ledger-icon-option[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-text);box-shadow:inset 0 0 0 1px var(--accent)}.ledger-icon-option{gap:0;min-height:48px;padding:12px 3px}.family-members{background:var(--accent-faint);border:1px solid #e5ebdf;border-radius:15px;margin:-5px 0 24px;padding:15px}.family-members-heading{justify-content:space-between;align-items:center;gap:10px;display:flex}.family-members-heading h2{font-size:calc(12px * var(--fs,1));color:var(--accent-text);margin:0;font-weight:500}.family-members-heading h2>span{font-size:calc(11px * var(--fs,1));color:#98a58f;margin-left:4px}.family-members-list{overscroll-behavior-x:contain;scrollbar-width:thin;align-items:flex-start;gap:15px;padding:15px 1px 2px;display:flex;overflow-x:auto}.family-member{flex-direction:column;flex-shrink:0;align-items:center;gap:6px;min-width:41px;max-width:70px;display:flex}.member-avatar{width:36px;height:36px;font-size:calc(16px * var(--fs,1));color:#5d735d;border-radius:50%;flex-shrink:0;place-items:center;display:grid;box-shadow:0 0 0 2px #ffffffb0}.family-member>span:not(.member-avatar){font-size:calc(11px * var(--fs,1));text-overflow:ellipsis;white-space:nowrap;max-width:70px;overflow:hidden}.family-member small{font-size:calc(11px * var(--fs,1));color:#99a790;margin-top:-3px}.add-family-member{color:#98ac89;border:1px dashed #bdcdb2;border-radius:50%;flex-shrink:0;place-items:center;width:36px;height:36px;margin:0 4px;display:grid}@media (hover:hover){.add-family-member:hover{background:var(--accent-soft);color:var(--accent-text)}}.add-family-member .icon{width:18px;height:18px}.members-manage-list{margin:18px 0 25px}.member-manage-row{border-bottom:1px solid #e9efe2;align-items:center;gap:12px;padding:13px 0;display:flex}.member-manage-row strong{font-size:calc(14px * var(--fs,1));overflow-wrap:anywhere;flex:1;min-width:0;font-weight:500}.member-manage-row>.text-button,.member-manage-row>.muted{flex-shrink:0}#memberForm .section-heading{margin-bottom:18px}#memberForm h3{font-size:calc(16px * var(--fs,1));margin:0;font-weight:500}#memberError{font-size:calc(12px * var(--fs,1));color:#ad7158}.ledger-title-row{align-items:center;gap:12px;min-width:0;display:flex}.ledger-title-row h1{white-space:nowrap;flex-shrink:0}.ledger-title-row .family-members{background:0 0;border:0;border-radius:0;flex-shrink:0;margin:0;padding:0}.ledger-title-row .family-members-list{align-items:center;gap:0;padding:3px;display:flex;overflow:visible}.ledger-title-row .family-member{flex-shrink:0;width:29px;min-width:0;max-width:none;height:29px;padding:0;display:block;position:relative}.ledger-title-row .family-member+.family-member{margin-left:-7px}.ledger-title-row .member-avatar{width:29px;height:29px;font-size:calc(12px * var(--fs,1));box-shadow:0 0 0 2px #f9fbf7}@media (hover:hover){.ledger-title-row .family-member:hover{z-index:1;transform:translateY(-2px)}}.ledger-title-row .add-family-member{background:0 0;border:1px dashed #aebfa4;width:27px;height:27px;margin:0 0 0 7px}.ledger-title-row .add-family-member .icon{width:15px;height:15px}.member-overflow{background:var(--accent-soft);min-width:29px;height:29px;color:var(--accent-text);font-size:calc(11px * var(--fs,1));border-radius:50%;margin-left:-7px;padding:0 4px;position:relative;box-shadow:0 0 0 2px #f9fbf7}@media (width<=350px){.ledger-title-row{gap:9px}.ledger-title-row .family-member,.ledger-title-row .member-avatar{width:26px;height:26px}.ledger-title-row .add-family-member{width:25px;height:25px;margin-left:6px}.member-overflow{min-width:26px;height:26px}}.ledger-title-row .family-members{order:1;margin-left:auto}.total-card>.card-details-link{z-index:2;border-radius:inherit;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.total-card>.card-details-link:focus-visible{outline:3px solid var(--accent-ink);outline-offset:-5px}.total-footer .card-arrow{font-size:calc(19px * var(--fs,1));color:var(--accent-ink);line-height:20px}.total-card .total-top{z-index:3;pointer-events:none}.home-category{border-radius:18px;margin-top:23px;padding:20px 17px}.home-category .section-heading h2{font-size:calc(17px * var(--fs,1))}.category-stats-link{color:#9aaa8d;place-items:center;width:25px;height:25px;padding:0;display:grid}@media (hover:hover){.category-stats-link:hover{color:var(--accent-text)}}.category-stats-link .icon{width:20px;height:20px}.home-category .category-body{gap:19px;margin-top:24px}.home-category .donut{width:115px;height:115px}.home-category .donut>div{width:89px;height:89px}.home-category .donut strong{font-size:calc(17px * var(--fs,1))}.home-category .legend-row{padding:8px 0}.home-category .legend-row>span,.home-category .legend-row>strong{font-size:calc(11px * var(--fs,1))}.home-category .legend-row>small{font-size:calc(11px * var(--fs,1));min-width:24px}@media (width>=600px){.home-category{padding:23px 20px}.home-category .donut{width:145px;height:145px}.home-category .donut>div{width:112px;height:112px}.home-category .donut strong{font-size:calc(19px * var(--fs,1))}.home-category .legend-row>span,.home-category .legend-row>strong{font-size:calc(12px * var(--fs,1))}}@media (width<=350px){.home-category{padding:18px 13px}.home-category .category-body{gap:12px}.home-category .donut{width:100px;height:100px}.home-category .donut>div{width:77px;height:77px}.home-category .donut strong{font-size:calc(14px * var(--fs,1))}.home-category .legend-row{gap:4px}.home-category .legend-row>span,.home-category .legend-row>strong{font-size:calc(11px * var(--fs,1))}.home-category .legend-row>small{min-width:22px;font-size:calc(11px * var(--fs,1));display:block}}.book-name-form{margin:2px 0 18px}.book-name-form>label{font-size:calc(12px * var(--fs,1));color:#8d9d83;margin-bottom:8px}.book-name-input-row{align-items:center;gap:8px;display:flex}.book-name-input-row input{color:#47603f;width:100%;min-width:0;font-size:calc(14px * var(--fs,1));background:#fff;border:1px solid #dfe8d6;border-radius:9px;flex:1;padding:10px}.book-name-input-row .primary{font-size:calc(12px * var(--fs,1));flex-shrink:0;padding:10px 14px}.book-name-error{font-size:calc(12px * var(--fs,1));color:#ad7158;margin:7px 0 0}.book-name-error:empty{display:none}.ledger-switch button{min-width:0}.ledger-switch [data-book-label]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ledger-title-row h1{text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.theme-book-heading strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.theme-book-heading .custom-color{flex-shrink:0}dialog.bottom-sheet{scrollbar-width:none;-ms-overflow-style:none}dialog.bottom-sheet::-webkit-scrollbar{width:0;height:0;display:none}.color-swatches{gap:8px}.custom-color-swatch{cursor:pointer;background:conic-gradient(#d8a49b,#d6c48b,#99b49d,#91a9c4,#b29bc3,#d8a49b);border:1px dashed #9caf90;border-radius:50%;flex-shrink:0;place-items:center;width:29px;height:29px;margin:0;display:grid;position:relative;overflow:hidden}.custom-color-swatch>span{z-index:1;font-size:calc(20px * var(--fs,1));color:#3b5644;pointer-events:none;background:#ffffffc9;border-radius:50%;place-items:center;width:21px;height:21px;line-height:1;display:grid;position:relative}.custom-color-swatch input{opacity:0;cursor:pointer;border:0;width:100%;height:100%;margin:0;padding:0;position:absolute;inset:0}.custom-color-swatch:focus-within{outline:2px solid var(--accent);outline-offset:3px}.book-icon-picker{flex-shrink:0;position:relative}.book-icon-trigger{background:var(--accent-faint);min-width:53px;height:40px;color:var(--accent-text);border:1px solid #dfe8d6;border-radius:10px;justify-content:center;align-items:center;gap:5px;padding:8px;display:flex}.book-icon-trigger .icon{width:20px;height:20px}.icon-dropdown-arrow{font-size:calc(14px * var(--fs,1));color:#92a184;line-height:1}.book-icon-trigger[aria-expanded=true]{border-color:var(--accent);background:var(--accent-soft)}.book-icon-dropdown{z-index:5;background:#fcfdf9;border:1px solid #dfe8d6;border-radius:14px;width:230px;padding:13px;position:absolute;top:calc(100% + 8px);left:0;box-shadow:0 10px 30px #263e341c}.book-icon-dropdown .icon-picker-heading{margin:0 0 12px}.book-icon-dropdown .ledger-icon-option{min-height:42px;padding:9px 3px}.book-name-input-row{gap:7px}.book-name-input-row .primary{padding-left:12px;padding-right:12px}@media (width<=350px){.book-icon-dropdown{width:215px}.book-icon-trigger{min-width:45px;padding:7px 5px}.book-name-input-row{gap:6px}.book-name-input-row .primary{padding-left:9px;padding-right:9px}}.theme-book .color-swatches{padding-top:6px;padding-bottom:6px}.book-icon-trigger .selected-ledger-icon{justify-content:center;align-items:center;line-height:0;display:flex}.book-icon-trigger .icon-dropdown-arrow{flex-shrink:0;align-self:center;width:12px;height:12px;display:block}.category-field{margin-bottom:18px}.category-field>span{font-size:calc(13px * var(--fs,1));margin-bottom:8px;display:block}.category-picker{background:#fff;border:1px solid #e0e8d9;border-radius:10px;overflow:hidden}.category-picker:focus-within{outline-offset:1px;outline:2px solid #9ebda6}.category-picker-trigger{text-align:left;width:100%;font-size:calc(16px * var(--fs,1));color:#47603f;justify-content:space-between;align-items:center;gap:12px;min-height:44px;padding:12px 10px;display:flex}.category-picker-trigger svg{flex-shrink:0;width:14px;height:14px;transition:transform .15s}.category-picker-trigger[aria-expanded=true] svg{transform:rotate(180deg)}.category-picker-options{overscroll-behavior:contain;scrollbar-width:none;border-top:1px solid #e7edde;gap:3px;max-height:232px;padding:5px;display:grid;overflow-y:auto}.category-picker-options::-webkit-scrollbar{display:none}.category-choice{text-align:left;font-size:calc(14px * var(--fs,1));color:#8b9b80;border-radius:7px;align-items:center;gap:10px;width:100%;padding:11px 10px;display:flex}.category-choice>i{border-radius:3px;flex-shrink:0;width:7px;height:7px}.category-choice-check{opacity:0;margin-left:auto}@media (hover:hover){.category-choice:hover{background:var(--accent-faint);color:var(--accent-text)}}.category-choice[aria-pressed=true]{background:var(--accent-soft);color:var(--accent-text)}.category-choice[aria-pressed=true] .category-choice-check{opacity:1}.category-picker-trigger:focus-visible{outline-offset:-3px}.inline-color-editor{background:#f5f7f0;border:1px solid #e0e8d7;border-radius:14px;margin:17px 0 5px;padding:16px}.color-editor-heading{justify-content:space-between;align-items:center;gap:10px;margin-bottom:18px;display:flex}.color-editor-heading strong{font-size:calc(13px * var(--fs,1));font-weight:500}.color-preview-row{align-items:center;gap:13px;margin-bottom:19px;display:flex}.color-preview{border-radius:13px;flex-shrink:0;width:50px;height:50px;box-shadow:inset 0 0 0 1px #00000009}.color-preview-row label{color:#92a087;font-size:calc(11px * var(--fs,1));flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.color-preview-row input{color:#47603f;width:100%;font-size:calc(14px * var(--fs,1));background:#fff;border:1px solid #dfe7d6;border-radius:8px;padding:9px 10px}.color-slider-label{font-size:calc(12px * var(--fs,1));color:#8c9e7e;flex-direction:column;gap:9px;margin:15px 0;display:flex}.color-slider-label input{cursor:pointer;width:100%;height:8px;accent-color:var(--accent);margin:0}.color-slider-label .color-hue{appearance:none;background:linear-gradient(90deg,#e87070,#e8d470,#82ba79,#77bdc1,#7c8bc2,#ba80b8,#e87070);border-radius:8px}.color-hue::-webkit-slider-thumb{appearance:none;border:2px solid var(--accent);background:#fff;border-radius:50%;width:17px;height:17px;box-shadow:0 1px 4px #0002}.color-hue::-moz-range-thumb{border:2px solid var(--accent);background:#fff;border-radius:50%;width:14px;height:14px}.color-editor-error{color:#ad7158;font-size:calc(12px * var(--fs,1))}.color-editor-error:empty{display:none}.custom-color-swatch[aria-expanded=true]{outline:2px solid var(--accent);outline-offset:3px}.custom-color-swatch{justify-content:center;place-items:center;padding:0;line-height:0}.custom-color-swatch>span{place-items:center;margin:0;padding:0;line-height:0;display:grid}.custom-color-swatch>span .icon{stroke-width:1.5px;width:16px;height:16px;margin:0;display:block}.custom-color-swatch[aria-pressed=true],.custom-color-swatch[aria-expanded=true]{outline:2px solid var(--custom-ring,var(--accent));outline-offset:3px}.card-rings{border-color:rgb(var(--card-ring-rgb,255 255 255) / .06);box-shadow:0 0 0 22px rgb(var(--card-ring-rgb,255 255 255) / .065),0 0 0 44px rgb(var(--card-ring-rgb,255 255 255) / .045),0 0 0 66px rgb(var(--card-ring-rgb,255 255 255) / .025)}#accountDialog .account-security{margin-top:23px;padding-top:21px}#accountDialog .theme-settings{margin-top:25px;padding-top:23px}#accountDialog .theme-settings>.section-heading h3{font-size:calc(17px * var(--fs,1));color:#354e3d}#accountDialog .theme-settings>.muted{font-size:calc(12px * var(--fs,1));color:#8d9c82;margin:10px 0 19px;line-height:1.9}.theme-settings .theme-book{background:#f7f9f3;border:1px solid #e0e8d8;border-radius:15px;margin:14px 0;padding:18px 15px}.theme-settings .theme-book+.theme-book{border-top:1px solid #e0e8d8}.theme-book-heading{gap:7px;margin-bottom:21px}.theme-book-heading .theme-dot{width:7px;height:7px}.theme-book-heading strong{font-size:calc(14px * var(--fs,1))}.book-type-badge{font-size:calc(11px * var(--fs,1));white-space:nowrap;color:#7a8d6d;background:#e8eedf;border-radius:5px;flex-shrink:0;padding:4px 6px}.setting-field-label{font-size:calc(12px * var(--fs,1));color:#869a78;margin:20px 0 12px}.theme-book .book-name-form{margin-bottom:0}.theme-book .book-name-form>label{font-size:calc(12px * var(--fs,1));color:#869a78}.theme-book .color-swatches{gap:6px;padding:6px 0}.account-signout{border-top:1px solid #e5ecde;margin-top:25px;padding-top:22px}.logout-button{width:100%;font-size:calc(14px * var(--fs,1));color:#a37763;background:#f4ede7;border:1px solid #e7d9ce;border-radius:12px;padding:14px}.logout-button:disabled{opacity:.65;cursor:default}.account-signout p{font-size:calc(11px * var(--fs,1));color:#9aa58e;text-align:center;margin:11px 0 0;line-height:1.8}@media (width<=350px){.theme-settings .theme-book{padding:16px 11px}.theme-book .color-swatches{gap:4px}.theme-book .color-swatch,.theme-book .custom-color-swatch{width:26px;height:26px}}.ledger-switch-row{align-items:center;gap:9px;min-width:0;margin:16px 0 23px;display:flex}.ledger-switch-row .ledger-switch{scrollbar-width:none;overscroll-behavior-x:contain;touch-action:pan-y;scroll-behavior:smooth;flex:1;min-width:0;margin:0;overflow-x:auto}.ledger-switch-row .ledger-switch::-webkit-scrollbar{display:none}.ledger-switch-row .ledger-switch [data-book]{flex:0 0 calc(50% - 4px);min-width:0}.ledger-switch-row .ledger-slider{width:var(--ledger-width,calc(50% - 4px));transform:translateX(var(--ledger-offset,0px))}.add-book-button{background:var(--accent-faint);width:34px;height:34px;color:var(--accent-text);border:1px dashed #b5c5aa;border-radius:11px;flex-shrink:0;place-items:center;display:grid}@media (hover:hover){.add-book-button:hover{background:var(--accent-soft)}}.add-book-button .icon{width:18px;height:18px}.add-book-setting{background:var(--accent-faint);width:100%;color:var(--accent-text);font-size:calc(14px * var(--fs,1));border:1px dashed #b8c9ad;border-radius:13px;justify-content:center;align-items:center;gap:8px;margin-top:20px;padding:15px;display:flex}.add-book-setting .icon{width:17px;height:17px}.new-book-preview{border-radius:15px;flex-direction:column;gap:11px;margin:3px 0 22px;padding:21px 18px;display:flex;overflow:hidden}.new-book-preview .icon{width:27px;height:27px}.new-book-preview strong{font-size:calc(20px * var(--fs,1));overflow-wrap:anywhere;font-weight:600}.new-book-preview small{font-size:calc(11px * var(--fs,1));opacity:.8}.new-book-hex-label{margin-top:22px}.new-book-hex-label small{font-size:calc(11px * var(--fs,1));color:#98a88d;line-height:1.8}#newBookError{font-size:calc(12px * var(--fs,1));color:#ad7158}@media (prefers-reduced-motion:reduce){.ledger-switch-row .ledger-switch{scroll-behavior:auto}}input[type=number]{appearance:textfield}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.account-budget{border-top:1px solid #e5ecde;margin-top:24px;padding-top:21px}.account-budget h3{font-size:calc(14px * var(--fs,1));margin:0 0 13px;font-weight:600}.account-budget-label{flex-direction:column;flex:1;gap:7px;min-width:0;display:flex}.account-budget-label strong{font-size:calc(14px * var(--fs,1));font-weight:500}.account-budget-label small{font-size:calc(11px * var(--fs,1));color:#96a48a;overflow-wrap:anywhere;line-height:1.8}#accountBudgetButton{gap:12px}#accountBudgetValue{font-size:calc(13px * var(--fs,1));color:var(--accent-text);white-space:nowrap}.new-book-mode{border:0;min-width:0;margin:0 0 22px;padding:0}.new-book-mode legend{font-size:calc(13px * var(--fs,1));margin-bottom:11px;padding:0}.book-mode-options{grid-template-columns:1fr 1fr;gap:10px;display:grid}.book-mode-option{cursor:pointer;min-width:0;position:relative}.book-mode-option>input{opacity:0;width:1px;height:1px;position:absolute;top:12px;left:12px}.book-mode-content{color:#93a28b;background:#f5f8f0;border:1px solid #e0e8d8;border-radius:13px;flex-direction:column;gap:9px;min-height:113px;padding:17px 13px;display:flex}.book-mode-content .icon{width:22px;height:22px}.book-mode-content strong{font-size:calc(14px * var(--fs,1));font-weight:500}.book-mode-content small{font-size:calc(11px * var(--fs,1));line-height:1.8}.book-mode-option>input:checked+.book-mode-content{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-text);box-shadow:inset 0 0 0 1px var(--accent)}.book-mode-option>input:focus-visible+.book-mode-content{outline:2px solid var(--accent);outline-offset:3px}.new-book-mode>.muted{font-size:calc(11px * var(--fs,1));margin:11px 0 0;line-height:1.9}.shared-sync-info{font-size:calc(11px * var(--fs,1))!important;color:#9ba990!important;margin-top:6px!important;line-height:1.8!important}.join-book-entry{width:100%;font-size:calc(13px * var(--fs,1));color:var(--accent-text);border-top:1px solid #e3ebdc;margin-top:18px;padding:17px 8px 0}.invite-member-entry{background:var(--accent-soft);width:100%;color:var(--accent-text);font-size:calc(13px * var(--fs,1));border-radius:12px;align-items:center;gap:8px;margin-top:17px;padding:14px;display:flex}.invite-member-entry>.icon{width:17px;height:17px}.invite-member-entry>span{margin-left:auto}.invite-book-name{font-size:calc(16px * var(--fs,1));color:var(--accent-text);overflow-wrap:anywhere;font-weight:500}.invite-code{font-size:calc(28px * var(--fs,1));letter-spacing:4px;color:var(--accent-text);text-align:center;font-weight:600;line-height:1.6}#inviteCountdown{font-size:calc(12px * var(--fs,1));color:#93a085}.copy-invite{width:100%;margin-top:10px}.shared-error{font-size:calc(13px * var(--fs,1));color:#b0715b;line-height:1.9}.shared-service-note{font-size:calc(11px * var(--fs,1));color:#98a68e;margin:17px 0 0;line-height:2}.join-code-input{letter-spacing:3px;text-transform:uppercase}input.field-invalid,select.field-invalid,textarea.field-invalid{background:snow;border-color:#ce6666!important}input.field-invalid:focus,select.field-invalid:focus,textarea.field-invalid:focus{outline-offset:1px;outline:2px solid #d68181}.field-warning{font-size:calc(12px * var(--fs,1));color:#c25c5c;letter-spacing:0;margin:1px 0 0;font-weight:400;line-height:1.8;display:block}.book-name-form .field-warning{margin-top:7px}.form-row .field-warning{max-width:100%}.bottom-nav>.nav-add{border-radius:50%}.bottom-nav>.nav-add .icon{fill:currentColor;stroke:none;width:24px;height:24px}.wordmark .brand-logo{filter:drop-shadow(0 3px 6px #263e3410);flex-shrink:0;width:28px;height:28px;display:block}:root{--app-safe-top:max(24px,env(safe-area-inset-top,0px),var(--safe-area-inset-top,0px));--app-safe-bottom:max(env(safe-area-inset-bottom,0px),var(--safe-area-inset-bottom,0px));--app-safe-left:max(env(safe-area-inset-left,0px),var(--safe-area-inset-left,0px));--app-safe-right:max(env(safe-area-inset-right,0px),var(--safe-area-inset-right,0px))}.app-header{padding-top:max(48px,calc(var(--app-safe-top) + 16px));height:auto;min-height:calc(max(48px,calc(var(--app-safe-top) + 16px)) + 34px)}dialog.bottom-sheet{max-height:calc(100dvh - 86px - var(--app-safe-bottom) - var(--app-safe-top) - 16px);scroll-padding-top:16px;scroll-padding-bottom:20px}@media (orientation:landscape){.app-shell{padding-left:var(--app-safe-left);padding-right:var(--app-safe-right)}dialog.bottom-sheet{width:min(480px,calc(100% - var(--app-safe-left) - var(--app-safe-right)))}}.month-period{padding:0 0 16px}.month-period>span{font-size:calc(17px * var(--fs,1));color:var(--accent-text);font-weight:500}.inline-month-picker{background:#f7f9f3;border:1px solid #e1e9d9;border-radius:15px;margin-bottom:17px;padding:15px}.month-year-heading{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.month-year-heading strong{font-size:calc(17px * var(--fs,1));font-weight:500}.month-year-heading>button{width:30px;height:30px;font-size:calc(22px * var(--fs,1));color:#90a081;background:#fff;border:1px solid #e2e9d9;border-radius:9px;place-items:center;display:grid}.month-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;display:grid}.month-options>button{font-size:calc(14px * var(--fs,1));color:#8d9d80;border:1px solid #0000;border-radius:10px;min-height:43px;padding:12px 4px}@media (hover:hover){.month-options>button:hover{background:var(--accent-soft);color:var(--accent-text)}}.month-options>button[aria-pressed=true]{background:var(--ledger-selected);color:#fff;border-color:var(--ledger-selected)}.month-today{font-size:calc(13px * var(--fs,1));margin:20px auto 2px;display:block}.monthly-trend-panel{margin:0 0 17px;padding:20px 17px}.monthly-trend-panel .section-heading h2{font-size:calc(17px * var(--fs,1))}.monthly-trend-year{font-size:calc(12px * var(--fs,1));color:#98a68e}.monthly-trend-detail{align-items:baseline;gap:9px;margin-top:19px;display:flex}.monthly-trend-detail strong{font-size:calc(24px * var(--fs,1));letter-spacing:.2px;font-weight:600}.monthly-trend-detail>span{font-size:calc(11px * var(--fs,1));color:#99a68e}.monthly-trend-chart{min-width:0;margin-top:17px}.monthly-trend-chart svg{width:100%;height:auto;display:block;overflow:visible}.monthly-grid-line{stroke:#e9eee2;stroke-width:1px;stroke-dasharray:3 4}.monthly-axis-label{fill:#9ca990;font-size:calc(11px * var(--fs,1));font-family:inherit}.monthly-area{fill:var(--accent);opacity:.08}.monthly-line{fill:none;stroke:var(--ledger-selected);stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round}.monthly-point{cursor:pointer;outline:none}.monthly-hit{fill:#0000}.monthly-dot{fill:#fcfdf9;stroke:var(--ledger-selected);stroke-width:1.8px}.monthly-point.is-selected .monthly-dot{fill:var(--ledger-selected)}.monthly-point.is-selected .monthly-axis-label{fill:var(--accent-text);font-weight:700}.monthly-point:focus-visible .monthly-dot{stroke-width:3.5px}@media (hover:hover){.monthly-point:hover .monthly-dot{stroke-width:3.5px}}.monthly-trend-caption{font-size:calc(11px * var(--fs,1));color:#a0ac95;text-align:center;margin:10px 0 0;line-height:1.8}.amount-mode-field{border:0;min-width:0;margin:0 0 20px;padding:0}.amount-mode-field legend{font-size:calc(13px * var(--fs,1));margin-bottom:9px;padding:0}.amount-mode-options{background:#edf2e8;border-radius:11px;grid-template-columns:1fr 1fr;gap:4px;padding:4px;display:grid}.amount-mode-options label{cursor:pointer;position:relative}.amount-mode-options input{opacity:0;width:1px;height:1px;position:absolute}.amount-mode-options span{text-align:center;font-size:calc(13px * var(--fs,1));color:#94a388;border-radius:8px;padding:10px 5px;display:block}.amount-mode-options input:checked+span{background:var(--ledger-selected);color:#fff}.amount-mode-options input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}.expense-items-panel{background:var(--accent-faint);border:1px solid #e1e9d9;border-radius:14px;margin-bottom:22px;padding:16px 13px}.expense-items-panel h3{font-size:calc(14px * var(--fs,1));margin:0;font-weight:500}.expense-items-panel .section-heading .muted{font-size:calc(11px * var(--fs,1))}.expense-line-item{border-top:1px solid #e3eadb;margin-top:14px;padding:16px 0 13px}.expense-line-item label{font-size:calc(12px * var(--fs,1));color:#8d9e80;flex-direction:column;gap:7px;margin:0;display:flex}.expense-line-item input{color:#47603f;width:100%;min-width:0;font-size:calc(14px * var(--fs,1));background:#fff;border:1px solid #dfe7d6;border-radius:9px;padding:11px 9px}.line-item-numbers{grid-template-columns:1fr 1.4fr;gap:10px;margin-top:12px;display:grid}.line-item-footer{font-size:calc(12px * var(--fs,1));color:#99a88d;justify-content:space-between;align-items:center;gap:10px;margin-top:13px;display:flex}.line-item-footer strong{font-size:calc(13px * var(--fs,1));color:var(--accent-text);margin-left:4px;font-weight:500}.remove-line-item{font-size:calc(11px * var(--fs,1));color:#af8270;padding:3px}.add-expense-item{width:100%;color:var(--accent-text);font-size:calc(13px * var(--fs,1));border:1px dashed #b8c8ac;border-radius:10px;justify-content:center;align-items:center;gap:7px;padding:12px 8px;display:flex}.add-expense-item .icon{width:15px;height:15px}.items-total-row,.expense-details-total{font-size:calc(13px * var(--fs,1));border-top:1px solid #e0e8d6;justify-content:space-between;align-items:center;gap:10px;margin-top:18px;padding-top:16px;display:flex}.items-total-row strong{font-size:calc(18px * var(--fs,1));color:var(--accent-text);font-weight:600}#expenseForm [name=amount]:read-only{background:var(--accent-faint);color:var(--accent-text)}.expense-view-link{text-align:left;cursor:pointer;width:100%;padding:0}@media (hover:hover){.expense-view-link:hover strong{color:var(--accent-text)}}.expense-item-count{font-size:calc(11px * var(--fs,1));color:#95a58a;margin-top:4px;font-weight:400;display:block}.recent-expense-link{text-align:left;width:100%}@media (hover:hover){.recent-expense-link:hover{background:var(--accent-faint)}}.saved-item-row{border-bottom:1px solid #e8eee0;justify-content:space-between;align-items:center;gap:12px;padding:17px 0;display:flex}.saved-item-row>div{min-width:0}.saved-item-row strong{font-size:calc(14px * var(--fs,1));overflow-wrap:anywhere;font-weight:500}.saved-item-row small{font-size:calc(12px * var(--fs,1));color:#97a58c;margin-top:7px;display:block}.saved-item-row>b{font-size:calc(14px * var(--fs,1));white-space:nowrap;font-weight:500}.expense-details-total{font-size:calc(14px * var(--fs,1));border:0}.expense-details-total strong{font-size:calc(24px * var(--fs,1));color:var(--accent-text);font-weight:600}.stats-month-navigation{justify-content:space-between;align-items:center;gap:14px;min-height:46px;margin:12px 0 27px;display:flex}.stats-month-navigation>button{color:#91a184;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:44px;padding:8px;display:flex}@media (hover:hover){.stats-month-navigation>button:hover{background:var(--accent-faint)}}.stats-month-navigation>button svg{width:20px;height:20px}.stats-month-navigation #statsMonth{width:auto;min-width:0;font-size:calc(20px * var(--fs,1));letter-spacing:.5px;color:var(--accent-text);flex:1;margin:0;padding:8px 0;font-weight:500}.stats-page .charts-grid .monthly-trend-panel{margin:0}.expense-review-fields{border:0;min-width:0;margin:0;padding:0}.expense-review-fields>label{font-size:calc(13px * var(--fs,1));flex-direction:column;gap:8px;margin-bottom:18px;display:flex}.expense-date-field{font-size:calc(13px * var(--fs,1));flex-direction:column;gap:8px;min-width:0;margin-bottom:18px;display:flex}#expenseDateTrigger{color:#47603f;width:100%;min-height:44px;font-size:calc(14px * var(--fs,1));text-align:left;background:#fff;border:1px solid #e0e8d9;border-radius:10px;justify-content:space-between;align-items:center;gap:7px;padding:12px 9px;display:flex}#expenseDateTrigger svg{flex-shrink:0;width:17px;height:17px}.inline-date-calendar{background:#f7f9f3;border:1px solid #e0e8d8;border-radius:14px;margin-bottom:20px;padding:15px}.date-calendar-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.date-calendar-heading>button{min-width:32px;height:32px;font-size:calc(23px * var(--fs,1));color:#8fa17e}.date-calendar-heading #expenseDateMonthLabel{font-size:calc(16px * var(--fs,1));color:var(--accent-text);font-weight:500}.date-weekdays,.date-calendar-days{text-align:center;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.date-weekdays{font-size:calc(11px * var(--fs,1));color:#9eaa92;margin-bottom:8px}.date-calendar-days button{min-height:32px;font-size:calc(13px * var(--fs,1));color:#788f6a;border-radius:8px;padding:7px 0}@media (hover:hover){.date-calendar-days button:hover{background:var(--accent-soft);color:var(--accent-text)}}.date-calendar-days button[aria-pressed=true]{background:var(--ledger-selected);color:#fff}.date-calendar-days .adjacent-month{color:#bdc8b3}.date-calendar-days.show-months{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.date-calendar-days.show-months button{padding:12px 0}.date-today{font-size:calc(12px * var(--fs,1));margin:15px auto 0;display:block}.scan-status.is-scanning{color:var(--accent-text)}.scan-status.is-scanning:before{content:"";vertical-align:-1px;border:1px solid;border-right-color:#0000;border-radius:50%;width:10px;height:10px;margin-right:7px;animation:.8s linear infinite scan-spin;display:inline-block}@keyframes scan-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.scan-status.is-scanning:before{animation:none}}.theme-book .color-swatches{grid-template-columns:repeat(8,minmax(0,1fr));justify-items:center;gap:6px;display:grid}.theme-book .color-swatch,.theme-book .custom-color-swatch{aspect-ratio:1;width:min(29px,100%);height:auto}.theme-book .custom-color-swatch>span{aspect-ratio:1;width:75%;height:auto}.color-swatch[data-color=\#ffe642],.color-swatch[data-new-book-color=\#ffe642]{color:#17251e}.theme-book .custom-color-swatch{aspect-ratio:1;border:0;border-radius:50%;padding:0;display:block;position:relative}.theme-book .custom-color-swatch>span{aspect-ratio:1;border-radius:50%;justify-content:center;align-items:center;width:72%;height:72%;margin:0;padding:0;line-height:0;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.theme-book .custom-color-swatch>span .icon{flex-shrink:0;width:75%;height:75%;display:block}.date-calendar-days:not(.show-months)>button{aspect-ratio:1;border-radius:50%;justify-self:center;place-items:center;width:min(32px,100%);height:auto;min-height:0;padding:0;line-height:1;display:grid}.icon.icon-four-star{fill:currentColor;stroke:none}#emptyAdd .icon{width:13px;height:13px}#emptyAdd{gap:5px}.color-swatch>span{justify-content:center;align-items:center;width:100%;height:100%;line-height:0;display:flex}.color-swatch .color-check{flex-shrink:0;width:62%;height:62%;display:block}.expense-line-item{margin-top:12px;padding:12px 0 10px}.line-item-fields{grid-template-columns:minmax(0,1.7fr) 10px minmax(0,.75fr) minmax(0,1fr);align-items:start;gap:7px;display:grid}.line-item-fields>label{min-width:0;font-size:calc(12px * var(--fs,1));gap:6px}.line-item-fields>label>span{white-space:nowrap;min-height:14px;line-height:14px;display:block}.line-item-name small{font-size:calc(11px * var(--fs,1));color:#a4af99;margin-left:2px;font-weight:400}.line-item-fields input{font-size:calc(14px * var(--fs,1));min-height:36px;padding:9px 7px}.line-item-times{line-height:16px;font-size:calc(16px * var(--fs,1));color:#a4b196;text-align:center;margin-top:29px}.expense-line-item .line-item-footer{margin-top:9px}.line-item-fields .field-warning{font-size:calc(11px * var(--fs,1));line-height:1.7}@media (width<=350px){.line-item-fields{grid-template-columns:minmax(0,1.65fr) 9px minmax(0,.75fr) minmax(0,1fr);gap:5px}.line-item-name small{font-size:calc(11px * var(--fs,1));margin-left:0}.line-item-fields input{padding:8px 5px}}.line-item-fields{grid-template-columns:minmax(0,1.55fr) 10px minmax(75px,1fr) minmax(0,1fr)}.quantity-stepper{background:#fff;border:1px solid #dfe7d6;border-radius:9px;align-items:center;min-width:0;min-height:36px;display:flex;position:relative}.quantity-stepper:focus-within{outline-offset:1px;outline:2px solid #9ebda6}.quantity-stepper input{text-align:center;background:0 0;border:0;border-radius:0;outline:0;flex:1;width:100%;min-width:0;min-height:34px;padding:8px 0}.quantity-stepper .quantity-step{width:23px;font-size:calc(18px * var(--fs,1));color:var(--accent-text);border-radius:8px;flex:0 0 23px;align-self:stretch;place-items:center;padding:0;line-height:1;display:grid}@media (hover:hover){.quantity-step:hover{background:var(--accent-faint)}}.quantity-stepper:has(input.field-invalid){border-color:#ce6666;outline-color:#d68181}.quantity-stepper .field-warning{margin-top:4px;position:absolute;top:100%;left:0}.line-item-fields>label:has(.quantity-stepper input.field-invalid){padding-bottom:30px}@media (width<=350px){.line-item-fields{grid-template-columns:minmax(0,1.4fr) 8px minmax(69px,1fr) minmax(0,.95fr);gap:4px}.quantity-stepper .quantity-step{flex-basis:21px;width:21px}}.expense-name-heading{flex-wrap:wrap;align-items:baseline;gap:5px 9px;display:flex}.expense-name-heading small{font-size:calc(11px * var(--fs,1));color:#a0ad95;font-weight:400;line-height:1.8}.stats-summary .stat-card:first-child.is-current-month{background:var(--ledger-selected);color:#fff}.stats-summary .stat-card:first-child.is-current-month .card-label{color:#ffffffd9}.stats-summary .stat-card:first-child.is-current-month .muted{color:#ffffffa6}.add-book-button{aspect-ratio:1;border-radius:50%}.record-category-picker{flex-shrink:0;width:106px;position:relative}.record-category-picker>button{color:#819575;width:100%;min-height:38px;font-size:calc(12px * var(--fs,1));background:#fff;border:1px solid #e1e9dc;border-radius:10px;justify-content:space-between;align-items:center;gap:7px;padding:10px;display:flex}.record-category-picker>button svg{flex-shrink:0;width:13px;height:13px;transition:transform .15s}.record-category-picker>button[aria-expanded=true]{border-color:var(--accent);color:var(--accent-text)}.record-category-picker>button[aria-expanded=true] svg{transform:rotate(180deg)}.record-category-options{z-index:8;background:#fcfdf9;border:1px solid #e0e8d8;border-radius:13px;width:160px;padding:6px;position:absolute;top:calc(100% + 7px);right:0;box-shadow:0 9px 27px #263e3417}.record-category-options>button{text-align:left;width:100%;font-size:calc(13px * var(--fs,1));color:#8d9e80;border-radius:8px;align-items:center;gap:8px;min-height:37px;padding:11px 9px;display:flex}.record-category-options>button>i{border-radius:2px;flex-shrink:0;width:7px;height:7px}.filter-check{opacity:0;font-size:calc(14px * var(--fs,1));margin-left:auto}.record-category-options>button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent-text)}.record-category-options>button[aria-pressed=true] .filter-check{opacity:1}@media (hover:hover){.record-category-options>button:hover{background:var(--accent-faint)}}.records-category-tabs{overscroll-behavior-x:contain;scrollbar-width:none;align-items:center;gap:8px;margin:-2px 0 22px;padding:3px 1px 6px;display:flex;overflow-x:auto}.records-category-tabs::-webkit-scrollbar{display:none}.records-category-tabs>button{white-space:nowrap;color:#91a084;font-size:calc(12px * var(--fs,1));background:#fff;border:1px solid #e1e9d9;border-radius:22px;flex-shrink:0;padding:9px 14px;line-height:1.5}@media (hover:hover){.records-category-tabs>button:hover{background:var(--accent-faint);color:var(--accent-text)}}.records-category-tabs>button[aria-pressed=true]{background:var(--ledger-selected);border-color:var(--ledger-selected);color:#fff}.records-category-tabs>button:focus-visible{outline-offset:1px}.search-box input:focus,.search-box input:focus-visible{box-shadow:none;outline:none}.records-category-tabs{min-width:0;max-width:100%;padding-left:8px;padding-right:8px;scroll-padding-inline:8px;position:relative}.records-category-tabs:after{content:"";flex:0 0 1px}.bottom-nav>button>span{display:none}.bottom-nav>.nav-add{transform:none}.bottom-nav>button:not(.nav-add) .icon{width:21px;height:21px}.account-categories{border-top:1px solid #e5ecde;margin-top:24px;padding-top:21px}.account-categories h3{font-size:calc(14px * var(--fs,1));margin:0 0 13px;font-weight:600}.category-manage-list{grid-template-columns:1fr;gap:9px;margin:21px 0 27px;display:grid}.category-manage-row{text-align:left;background:#f5f8ef;border:1px solid #e1e9d8;border-radius:13px;align-items:center;gap:12px;width:100%;min-height:55px;padding:11px 13px;display:flex}@media (hover:hover){.category-manage-row:hover{background:var(--accent-faint)}}.category-manage-row[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft)}.category-manage-dot{border-radius:50%;flex-shrink:0;width:25px;height:25px}.category-manage-row strong{min-width:0;font-size:calc(14px * var(--fs,1));overflow-wrap:anywhere;flex:1;font-weight:500}.category-edit-action{min-width:57px;min-height:32px;color:var(--accent-text);font-size:calc(12px * var(--fs,1));white-space:nowrap;background:#ffffffb3;border-radius:9px;justify-content:center;align-items:center;gap:9px;padding:7px 10px;display:flex}.category-edit-action>span{font-size:calc(19px * var(--fs,1));line-height:1}#categoryForm{border-top:1px solid #e1e9d8;padding-top:20px!important}#categoryForm>.section-heading{margin-bottom:18px}#categoryForm h3{font-size:calc(17px * var(--fs,1));margin:0;font-weight:600}.category-editor-label{color:#8fa181;font-size:calc(12px * var(--fs,1))!important;margin-bottom:9px!important}.category-editor-row{align-items:center;gap:12px;margin-bottom:18px;display:flex}.category-editor-row .category-color-trigger{cursor:pointer;border:3px solid #fff;border-radius:50%;flex-shrink:0;width:35px;min-width:35px;height:35px;padding:0;display:block;box-shadow:0 0 0 1px #dce6d2}.category-color-trigger[aria-expanded=true]{box-shadow:0 0 0 2px #a3b795}@media (hover:hover){.category-editor-row .category-color-trigger:hover{box-shadow:0 0 0 2px #a3b795}}.category-editor-row input{color:#47603f;min-width:0;font-size:calc(14px * var(--fs,1));background:#fff;border:1px solid #dfe7d6;border-radius:10px;flex:1;padding:12px 10px}.category-color-panel{background:#f4f7ee;border:1px solid #dfe8d7;border-radius:13px;margin:4px 0 19px;padding:15px}.category-color-presets{grid-template-columns:repeat(8,minmax(0,1fr));place-items:center;gap:9px;padding:5px 1px;display:grid}.category-color-presets .color-swatch{aspect-ratio:1;width:min(27px,100%);height:auto}.category-color-presets [data-category-color=\#ffe642]{color:#17251e}.category-custom-color{aspect-ratio:1;color:#3b5644;background:conic-gradient(#d8a49b,#d6c48b,#99b49d,#91a9c4,#b29bc3,#d8a49b);border-radius:50%;place-items:center;width:min(27px,100%);height:auto;padding:0;display:grid}.category-custom-color .icon{width:15px;height:15px}.category-custom-color[aria-expanded=true]{outline:2px solid var(--accent);outline-offset:3px}.category-custom-controls{border-top:1px solid #e0e8d7;margin-top:18px;padding-top:17px}.category-custom-controls>label:first-child{font-size:calc(12px * var(--fs,1));flex-direction:column;gap:8px;display:flex}.category-custom-controls input[type=text]{color:#47603f;width:100%;font-size:calc(14px * var(--fs,1));background:#fff;border:1px solid #dfe7d6;border-radius:9px;padding:10px}.category-custom-controls>.secondary{width:100%;margin-top:10px}#categoryManageError{font-size:calc(12px * var(--fs,1));color:#b87159;line-height:1.9}#categoryForm #saveCategory{margin-top:8px}.manage-category-inline{width:100%;color:var(--accent-text);font-size:calc(12px * var(--fs,1));border-top:1px solid #e3ebdb;border-radius:0;justify-content:center;align-items:center;gap:7px;padding:13px 10px;display:flex}.manage-category-inline .icon{width:13px;height:13px}.filter-check-svg{width:14px;height:14px;display:block}.record-category-options{scrollbar-width:none;max-height:45dvh;overflow-y:auto}.record-category-options::-webkit-scrollbar{display:none}.account-carrier{border-top:1px solid #e5ecde;margin-top:24px;padding-top:21px}.account-carrier h3{font-size:calc(14px * var(--fs,1));margin:0 0 13px;font-weight:600}.carrier-connection{background:#f6f6e9;border:1px solid #e5e8d1;border-radius:15px;align-items:flex-start;gap:12px;margin-bottom:25px;padding:17px;display:flex}.carrier-connection-icon{color:#8d986b;background:#fff9;border-radius:11px;flex-shrink:0;place-items:center;width:34px;height:34px;display:grid}.carrier-connection-icon .icon{width:20px;height:20px}.carrier-connection strong{font-size:calc(14px * var(--fs,1));font-weight:500}.carrier-connection p{font-size:calc(12px * var(--fs,1));color:#96a082;margin:8px 0 0;line-height:1.9}.carrier-section-heading{margin-bottom:20px}.carrier-section-heading h3,.carrier-sync-section h3{font-size:calc(17px * var(--fs,1));margin:0;font-weight:600}.carrier-saved-state{font-size:calc(11px * var(--fs,1));color:#8fa07c}#carrierSettingsForm input:disabled{cursor:default;color:#aab49f;background:#f2f5ed}.carrier-field-note{font-size:calc(11px * var(--fs,1));color:#9aa68c;line-height:1.9}.carrier-target-heading{justify-content:space-between;align-items:center;gap:10px;margin:22px 0 12px;display:flex}.carrier-target-heading strong{font-size:calc(13px * var(--fs,1));font-weight:500}.carrier-target-heading>span{font-size:calc(11px * var(--fs,1));color:#9aa98b}.carrier-book-options{scrollbar-width:none;gap:8px;max-height:230px;padding:2px;display:grid;overflow-y:auto}.carrier-book-options::-webkit-scrollbar{display:none}.carrier-book-options>button{text-align:left;color:#8b9d7c;background:#f9fbf6;border:1px solid #e1e9d9;border-radius:12px;align-items:center;gap:9px;width:100%;min-height:47px;padding:12px;display:flex}.carrier-book-options>button>.icon{width:18px;height:18px}.carrier-book-options>button>span{font-size:calc(13px * var(--fs,1));overflow-wrap:anywhere;flex:1;min-width:0}.carrier-book-options>button>small{font-size:calc(11px * var(--fs,1));flex-shrink:0}.carrier-book-options>button>.filter-check-svg{opacity:0;flex-shrink:0}.carrier-book-options>button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-text)}.carrier-book-options>button[aria-pressed=true]>.filter-check-svg{opacity:1}.carrier-sharing-note{font-size:calc(11px * var(--fs,1));color:#95a386;margin:13px 2px 20px;line-height:1.9}.carrier-local-note{font-size:calc(11px * var(--fs,1));color:#9ca88f;margin:12px 0 0;line-height:1.9}.carrier-sync-section{border-top:1px solid #e4eadc;margin-top:26px;padding-top:23px}.carrier-pending-badge{font-size:calc(11px * var(--fs,1));color:#9ba68a;background:#eff2e7;border-radius:5px;padding:4px 7px}.carrier-sync-row{font-size:calc(12px * var(--fs,1));color:#9ba78d;justify-content:space-between;margin:21px 0 15px;display:flex}.carrier-sync-row strong{font-size:calc(12px * var(--fs,1));font-weight:400}.carrier-sync-button:disabled{cursor:not-allowed;opacity:.45}.carrier-import-empty{text-align:center;color:#a1b08f;background:#f6f8f1;border:1px dashed #dce5d2;border-radius:14px;flex-direction:column;align-items:center;margin-top:19px;padding:24px 17px;display:flex}.carrier-import-empty>.icon{width:26px;height:26px;margin-bottom:13px}.carrier-import-empty strong{font-size:calc(13px * var(--fs,1));color:#8fa17e;font-weight:500}.carrier-import-empty p{font-size:calc(11px * var(--fs,1));color:#9daa8f;margin:9px 0 0;line-height:2}.receipt-preview{text-align:center;background:#f0f4ea;border-radius:12px;margin-top:12px;padding:8px}.receipt-preview-frame{vertical-align:top;border-radius:8px;max-width:100%;display:inline-block;position:relative;overflow:hidden}.receipt-preview-frame #photoPreview{object-fit:fill;background:0 0;border-radius:0;width:auto;max-width:100%;height:auto;max-height:320px;margin:0;display:block}.receipt-preview.is-expanded .receipt-preview-frame #photoPreview{max-height:none}.receipt-zoom{font-size:calc(12px * var(--fs,1));margin:8px auto 0;display:block}.receipt-overlay{pointer-events:none;position:absolute;inset:0}.receipt-crop-box{border:2px solid #4f8a62;border-radius:4px;position:absolute;box-shadow:0 0 0 999px #17251e40}.receipt-item-band{background:#ffc95a38;border:2px solid #d9902f;border-radius:3px;position:absolute}.receipt-item-band span{color:#fff;font-size:calc(11px * var(--fs,1));background:#d9902f;border-radius:0 0 4px;padding:0 5px;font-weight:600;line-height:15px;position:absolute;top:0;left:0}.ai-scan-actions{gap:10px;margin-top:14px;display:flex}.ai-scan-actions>button{flex:1}.scan-status.is-error{color:#b0715b}.ai-review{border:1px solid var(--line);background:#fff;border-radius:15px;margin:0 0 22px;padding:16px}.ai-review .section-heading h3{font-size:calc(17px * var(--fs,1));margin:0;font-weight:600}.ai-review .section-heading .muted{font-size:calc(11px * var(--fs,1))}.ai-review>.muted{margin:10px 0 0}.ai-review-meta{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0 0;display:grid}.ai-review-meta>div{background:var(--accent-faint);border-radius:10px;min-width:0;padding:9px 10px}.ai-review-meta dt{font-size:calc(11px * var(--fs,1));color:#92a398}.ai-review-meta dd{font-size:calc(13px * var(--fs,1));overflow-wrap:anywhere;margin:4px 0 0;font-weight:500}.ai-review-meta em{color:#b0715b;font-style:normal}.ai-warnings{color:#9a6233;font-size:calc(12px * var(--fs,1));background:#fbf1e6;border-radius:10px;margin:12px 0 0;padding:10px 12px;line-height:1.8;list-style:none}.ai-warnings li:before{content:"⚠ "}.ai-items{margin:12px 0 0;padding:0;list-style:none}.ai-items>li{border-bottom:1px solid #e8eee0;padding:2px 0 8px}.ai-items>li.is-selected{background:var(--accent-faint);border-radius:10px;margin:0 -8px;padding:2px 8px 10px}.ai-item{text-align:left;align-items:center;gap:10px;width:100%;padding:8px 0;display:flex}.ai-item-index{color:#66805b;width:20px;height:20px;font-size:calc(11px * var(--fs,1));background:#edf3e7;border-radius:50%;flex-shrink:0;place-items:center;font-weight:600;display:grid}.ai-items>li.is-selected .ai-item-index{color:#fff;background:#d9902f}.ai-item-main{flex:1;min-width:0}.ai-item-main strong{font-size:calc(14px * var(--fs,1));overflow-wrap:anywhere;font-weight:500;display:block}.ai-item-main small{font-size:calc(11px * var(--fs,1));color:#97a58c;margin-top:4px;display:block}.ai-item>b{font-size:calc(14px * var(--fs,1));white-space:nowrap;font-weight:500}.ai-item>b.is-discount{color:#b0715b}.ai-item-note{font-size:calc(11px * var(--fs,1));color:#8c9d80;margin:0 0 4px 30px;line-height:1.7}.ai-item-note.is-warn{color:#b0715b}.ai-item-note.is-warn:before{content:"⚠ "}.ai-item-snippet{margin:6px 0 0 30px}.ai-item-snippet canvas{border:1px solid #e0e8d6;border-radius:6px;max-width:100%;height:auto;display:block}.ai-total-row{font-size:calc(12px * var(--fs,1));background:#f4f7ef;border-radius:10px;justify-content:space-between;gap:10px;margin-top:14px;padding:11px 12px;display:flex}.ai-total-row span:last-child{text-align:right}.ai-total-row strong{font-size:calc(17px * var(--fs,1));margin-top:3px;font-weight:600;display:block}.ai-total-row.is-match{color:#3f6b4c;background:#e8f2e4}.ai-total-row.is-match span:last-child strong:after{content:" ✓"}.ai-total-row.is-mismatch{color:#a5644e;background:#fbebe4}.ai-review-actions{gap:10px;margin-top:14px;display:flex}.ai-review-actions>button{flex:1}#aiSettingsForm .secondary.save-button{margin-top:10px}.expense-line-item label.line-item-category{flex-direction:row;align-items:center;gap:10px;margin-top:10px}.line-item-category>span{flex-shrink:0}.line-item-category select{color:#47603f;min-width:0;font-size:calc(14px * var(--fs,1));background:#fff;border:1px solid #dfe7d6;border-radius:9px;flex:1;padding:9px}.subcategory-breakdown{margin-top:6px}.subcategory-group{border-bottom:1px solid var(--line);padding:12px 0}.subcategory-group:last-child{border-bottom:0}.subcategory-heading{font-size:calc(13px * var(--fs,1));align-items:center;gap:7px;display:flex}.subcategory-heading i{border-radius:2px;flex-shrink:0;width:7px;height:7px}.subcategory-heading strong{font-weight:600}.subcategory-heading span{margin-left:auto;font-weight:600}.subcategory-row{font-size:calc(12px * var(--fs,1));color:#7d8f74;grid-template-columns:minmax(0,7em) 1fr auto;align-items:center;gap:9px;margin:9px 0 0 14px;display:grid}.subcategory-row>span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.subcategory-bar{background:#eef2ea;border-radius:3px;height:5px;overflow:hidden}.subcategory-bar i{border-radius:3px;height:100%;display:block}.subcategory-row b{color:#47603f;white-space:nowrap;font-weight:500}.ai-review-meta dd small{font-size:calc(11px * var(--fs,1));color:#92a398;overflow-wrap:anywhere;margin-top:3px;font-weight:400;display:block}.records-subcategory-tabs{scrollbar-width:none;gap:7px;margin:-12px 0 20px;padding:0 8px 4px;display:flex;overflow-x:auto}.records-subcategory-tabs::-webkit-scrollbar{display:none}.records-subcategory-tabs>button{color:#7f8f74;font-size:calc(12px * var(--fs,1));white-space:nowrap;background:#fbfcf9;border:1px solid #e6ece0;border-radius:12px;flex-direction:column;flex-shrink:0;align-items:flex-start;gap:2px;padding:7px 12px;line-height:1.4;display:flex}.records-subcategory-tabs small{font-size:calc(11px * var(--fs,1));color:#a1ad96}.records-subcategory-tabs>button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-text)}.records-subcategory-tabs>button[aria-pressed=true] small{color:var(--accent-text)}.records-summary{background:var(--accent-faint);font-size:calc(12px * var(--fs,1));color:#7f8f74;border-radius:10px;justify-content:space-between;align-items:baseline;gap:10px;margin:12px 0 0;padding:10px 12px;display:flex}.records-summary strong{font-size:calc(17px * var(--fs,1));color:var(--accent-text);font-weight:600}.amount-whole{font-size:calc(11px * var(--fs,1));color:#a1ad96;margin-top:3px;font-weight:400;display:block}.table-wrap td.record-lines{grid-column:1/-1;padding:10px 0 0 45px}.record-lines ul{background:#f6f8f2;border-radius:9px;margin:0;padding:8px 10px;list-style:none}.record-lines li{font-size:calc(12px * var(--fs,1));color:#5d7253;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:4px 0;display:grid}.record-lines li>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.record-lines small{font-size:calc(11px * var(--fs,1));color:#9aa88f;white-space:nowrap}.record-lines b{white-space:nowrap;font-weight:500}.record-lines-more button{font-size:calc(11px * var(--fs,1));color:var(--accent-text);padding:2px 0}.ledger-title-row{justify-content:space-between}.add-book-inline{color:var(--accent-text);font-size:calc(12px * var(--fs,1));background:var(--accent-faint);border:1px dashed #b9c8ae;border-radius:18px;flex-shrink:0;align-items:center;gap:4px;padding:7px 12px;display:inline-flex}@media (hover:hover){.add-book-inline:hover{background:var(--accent-soft)}}.add-book-inline .icon{width:13px;height:13px}.ledger-switch-row[hidden]+.page .welcome{margin-top:14px}.invoice-quick{background:#e8ecf1}.invoice-source{font-size:calc(12px * var(--fs,1));margin:0 0 4px}.invoice-toolbar{justify-content:space-between;align-items:center;gap:10px;margin:0 0 12px;display:flex}.invoice-toolbar .secondary{font-size:calc(13px * var(--fs,1));align-items:center;gap:6px;padding:9px 12px;display:inline-flex}.invoice-toolbar .icon{width:15px;height:15px}.invoice-list{gap:10px;margin-bottom:14px;display:grid}.invoice-group{border:1px solid var(--line);background:#fff;border-radius:14px;padding:12px}.invoice-group.is-off{opacity:.55}.invoice-group.is-off ul{display:none}.invoice-head{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.invoice-head input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent-hover)}.invoice-store{min-width:0}.invoice-store input{width:100%;font-size:calc(16px * var(--fs,1));color:#263e34;background:0 0;border:1px solid #0000;border-radius:7px;margin-left:-6px;padding:4px 6px;font-weight:600}.invoice-store input:focus{background:#fff;border-color:#dfe7d6}@media (hover:hover){.invoice-store input:hover{background:#fff;border-color:#dfe7d6}}.invoice-store small{font-size:calc(11px * var(--fs,1));color:#97a58c;text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.invoice-head>b{font-size:calc(16px * var(--fs,1));white-space:nowrap;font-weight:600}.invoice-duplicate{color:#9a6233;font-size:calc(12px * var(--fs,1));background:#fbf1e6;border-radius:8px;margin:8px 0 0;padding:7px 10px}.invoice-duplicate:before{content:"⚠ "}.invoice-group ul{border-top:1px solid #eef2ea;margin:10px 0 0;padding:0;list-style:none}.invoice-group li{font-size:calc(13px * var(--fs,1));border-bottom:1px solid #f2f5ee;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 10px;padding:8px 0;display:grid}.invoice-group li>span{overflow-wrap:anywhere;color:#47603f}.invoice-group li>b{white-space:nowrap;font-weight:500}.invoice-group li select{width:100%;font-size:calc(13px * var(--fs,1));color:#5d7253;background:#fafbf8;border:1px solid #dfe7d6;border-radius:8px;grid-column:1/-1;padding:6px 8px}.invoice-group>.muted{margin:8px 0 0}.records-period{margin:-6px 0 14px}.records-period-modes{scrollbar-width:none;gap:6px;padding:2px 1px 6px;display:flex;overflow-x:auto}.records-period-modes::-webkit-scrollbar{display:none}.records-period-modes>button{color:#7f8f74;font-size:calc(12px * var(--fs,1));white-space:nowrap;background:#fff;border:1px solid #e1e9d9;border-radius:16px;flex-shrink:0;padding:7px 12px}.records-period-modes>button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-text);font-weight:600}.records-period-inputs{gap:10px;margin-top:6px;display:flex}.records-period-inputs label{font-size:calc(11px * var(--fs,1));color:#8d9e80;flex-direction:column;flex:1;gap:5px;display:flex}.records-period-inputs input{color:#47603f;width:100%;min-width:0;font-size:calc(14px * var(--fs,1));background:#fff;border:1px solid #dfe7d6;border-radius:10px;padding:9px 10px}.card-details-hint{font-size:calc(12px * var(--fs,1));color:var(--accent-ink);background:rgb(var(--card-ring-rgb) / .12);border-radius:14px;padding:5px 10px;font-weight:600}.trend-controls{align-items:center;gap:8px;display:flex}.segmented{background:#eef2ea;border-radius:10px;padding:2px;display:inline-flex}.segmented button{font-size:calc(12px * var(--fs,1));color:#7f8f74;border-radius:8px;padding:5px 10px}.segmented button[aria-pressed=true]{color:var(--accent-text);background:#fff;font-weight:600;box-shadow:0 1px 3px #263e3415}.trend-year{font-size:calc(13px * var(--fs,1));align-items:center;gap:2px;font-weight:600;display:flex}.trend-year button{width:24px;height:24px;font-size:calc(17px * var(--fs,1));color:#7f8f74;border-radius:50%}@media (hover:hover){.trend-year button:hover{background:#eef2ea}}.monthly-year-label{font-size:calc(11px * var(--fs,1));opacity:.75}.compare-pickers{grid-template-columns:1fr auto 1fr;align-items:end;gap:8px;margin:14px 0;display:grid}.compare-pickers label{font-size:calc(11px * var(--fs,1));color:#8d9e80;flex-direction:column;gap:5px;display:flex}.compare-pickers select{color:#47603f;width:100%;font-size:calc(14px * var(--fs,1));background:#fff;border:1px solid #dfe7d6;border-radius:9px;padding:8px}.compare-vs{font-size:calc(12px * var(--fs,1));color:#9aa88f;padding-bottom:9px}.compare-totals{grid-template-columns:1fr 1fr;gap:8px;display:grid}.compare-totals>div{background:var(--accent-faint);border-radius:10px;padding:10px 12px}.compare-totals>div+div{background:#f2f4ef}.compare-totals small{font-size:calc(11px * var(--fs,1));color:#8d9e80;display:block}.compare-totals strong{font-size:calc(17px * var(--fs,1));margin-top:3px;display:block}.compare-totals span{font-size:calc(11px * var(--fs,1));color:#9aa88f}.compare-change{font-size:calc(13px * var(--fs,1));color:#6d7f63;margin:10px 0 6px;font-weight:600}.compare-change.is-up,.compare-row b.is-up{color:#b0715b}.compare-change.is-down,.compare-row b.is-down{color:#4f8a62}.compare-row{border-top:1px solid var(--line);padding:9px 0}.compare-row-head{font-size:calc(13px * var(--fs,1));justify-content:space-between;align-items:center;margin-bottom:5px;display:flex}.compare-row-head i{border-radius:2px;width:7px;height:7px;margin-right:6px;display:inline-block}.compare-row-head b{font-weight:600;font-size:calc(12px * var(--fs,1))}.compare-bar{font-size:calc(11px * var(--fs,1));color:#7d8f74;grid-template-columns:1fr 72px;align-items:center;gap:8px;margin-top:3px;display:grid}.compare-bar:before{content:"";background:#f0f3ec;border-radius:3px;grid-area:1/1;height:6px}.compare-bar i{border-radius:3px;grid-area:1/1;min-width:2px;height:6px}.compare-bar.is-b i{background:#c9d2c2}.compare-bar span{text-align:right;white-space:nowrap}.compare-legend{align-items:center;gap:4px;margin:8px 0 0;display:flex}.compare-legend i{background:var(--accent);border-radius:3px;width:12px;height:5px;display:inline-block}.compare-legend i.is-b{background:#c9d2c2}.theme-book-heading .delete-book-button{color:#b0715b;font-size:calc(11px * var(--fs,1));margin-left:auto}dialog.bottom-sheet,dialog.add-choice-sheet{transition:transform .18s ease-out}dialog.is-dragging{transition:none!important}.invoice-group li.has-warning>span,.invoice-group li.has-warning>b{color:#b0715b}.invoice-line-warning{font-size:calc(11px * var(--fs,1));color:#b0715b;grid-column:1/-1}.invoice-line-warning:before{content:"⚠ "}.invoice-group.is-invalid{background:#fdf8f5;border-color:#f0d9cf}.invoice-summary{color:#2f6b3f;font-size:calc(13px * var(--fs,1));background:#eaf4ec;border-radius:8px;margin:0 0 10px;padding:8px 10px}.invoice-summary.is-off{color:#9a6233;background:#fbf1e6}.invoice-missing{color:#9a3333;font-size:calc(13px * var(--fs,1));background:#fbeaea;border-radius:8px;margin:0 0 10px;padding:8px 10px}.invoice-missing p{margin:0 0 4px}.invoice-missing ul{margin:0;padding-left:16px}.invoice-missing li{word-break:break-all}.note-field{font-size:calc(13px * var(--fs,1));flex-direction:column;gap:8px;margin:4px 0 18px;display:flex}.note-field textarea,.invoice-note textarea{box-sizing:border-box;width:100%;min-width:0;font:inherit;font-size:calc(16px * var(--fs,1));color:#47603f;resize:vertical;background:#fff;border:1px solid #e0e8d9;border-radius:10px;padding:10px}.note-field textarea:focus,.invoice-note textarea:focus{outline-offset:1px;outline:2px solid #9ebda6}.record-note{font-size:calc(11px * var(--fs,1));color:#8d9d83;text-overflow:ellipsis;white-space:nowrap;max-width:100%;margin-top:3px;font-weight:400;display:block;overflow:hidden}.expense-details-note{color:#5f7356;font-size:calc(13px * var(--fs,1));white-space:pre-wrap;word-break:break-word;background:#f6f8f2;border-radius:9px;margin:0 0 12px;padding:9px 11px;line-height:1.5}.expense-details-note:before{content:"備註　";color:#95a58a}.invoice-adjust-target{font-size:calc(11px * var(--fs,1));color:#8d9d83}.invoice-note{font-size:calc(12px * var(--fs,1));color:#8d9d83;flex-direction:column;gap:6px;margin-top:10px;display:flex}.invoice-note textarea{font-size:calc(13px * var(--fs,1));padding:8px}.category-default-badge{color:#7d9374;font-size:calc(11px * var(--fs,1));vertical-align:middle;background:#e7eedf;border-radius:6px;margin-left:7px;padding:2px 6px;font-weight:400}.category-name-hint{font-size:calc(11px * var(--fs,1));color:#8d9d83;margin:-10px 0 14px}#categoryNameInput[readonly]{color:#7d8f74;background:#f2f5ee}.category-color-preview{background:#fbfcf8;border:1px dashed #dce6d2;border-radius:12px;align-items:center;gap:10px;margin:0 0 16px;padding:10px 12px;display:flex}.category-color-preview>small{font-size:calc(11px * var(--fs,1));color:#95a58a}.category-preview-chip{min-width:0;max-width:40%;font-size:calc(12px * var(--fs,1));color:#5f7356;background:#fff;border:1px solid #e7eedf;border-radius:999px;align-items:center;gap:6px;padding:5px 9px;display:inline-flex}.category-preview-chip i{border-radius:50%;flex-shrink:0;width:9px;height:9px}.category-preview-chip span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.category-preview-bar{background:#eef2ea;border-radius:999px;flex:1;min-width:40px;height:9px;overflow:hidden}.category-preview-bar i{border-radius:inherit;width:68%;height:100%;display:block}.category-delete-button{color:#b0715b;font-size:calc(13px * var(--fs,1));margin:14px auto 0;display:block}.category-move-options{border:0;gap:8px;min-width:0;margin:16px 0 0;padding:0;display:grid}.category-move-options legend{font-size:calc(13px * var(--fs,1));margin-bottom:8px;padding:0}.category-move-option{font-size:calc(13px * var(--fs,1));background:#f8faf4;border:1px solid #e1e9d8;border-radius:12px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;padding:11px 12px;display:grid}.category-move-option input{accent-color:var(--accent-hover);margin-top:2px}.category-move-option span{gap:6px;min-width:0;display:grid}.category-move-option small{font-size:calc(11px * var(--fs,1));color:#8d9d83}.category-move-option select{width:100%;min-width:0;font-size:calc(14px * var(--fs,1));color:#47603f;background:#fff;border:1px solid #e0e8d9;border-radius:9px;padding:9px 8px}.category-move-option:has(input:disabled){opacity:.6}.category-move-review ul{border-top:1px solid #eef2ea;max-height:42vh;margin:6px 0 0;padding:0;list-style:none;overflow:auto}.category-move-review li{font-size:calc(13px * var(--fs,1));border-bottom:1px solid #f2f5ee;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 10px;padding:8px 0;display:grid}.category-move-review li small{font-size:calc(11px * var(--fs,1));color:#95a58a;grid-column:1/-1}.category-move-review li select{width:100%;min-width:0;font-size:calc(13px * var(--fs,1));color:#47603f;background:#fff;border:1px solid #e0e8d9;border-radius:9px;grid-column:1/-1;padding:8px}.account-diagnostics{border-top:1px solid #e5ecde;margin-top:24px;padding-top:21px}.account-diagnostics h3{font-size:calc(14px * var(--fs,1));margin:0 0 10px;font-weight:600}.diagnostics-info{font-size:calc(13px * var(--fs,1));color:#5f7356;margin:0 0 12px;line-height:1.6}.diagnostics-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.diagnostics-actions button{min-height:42px;font-size:calc(13px * var(--fs,1))}.diagnostics-note{font-size:calc(11px * var(--fs,1));margin:10px 0 0;line-height:1.6}.bars{touch-action:pan-y;-webkit-user-select:none;user-select:none}.bar-slot{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:4px 4px 0 0;margin:0;padding:0}.bar-slot .bar{transition:opacity .15s;display:block}.bars.has-selection .bar-slot .bar{opacity:.5}.bars.has-selection .bar-slot.is-selected .bar{opacity:1}.bar-slot.is-selected{background:color-mix(in srgb,var(--accent) 10%,transparent);box-shadow:inset 0 -2px 0 var(--accent)}.bar-slot:focus-visible{outline-offset:1px;outline:2px solid #8eaf98}.daily-selection{height:22px;font-size:calc(13px * var(--fs,1));color:#5f7356;white-space:nowrap;font-variant-numeric:tabular-nums;align-items:baseline;gap:10px;margin:0 0 4px 41px;display:flex;overflow:hidden}.daily-selection strong{font-weight:600}.daily-selection b{font-size:calc(17px * var(--fs,1));color:var(--accent-text);font-weight:600}.daily-selection span{font-size:calc(12px * var(--fs,1));color:#98a48e}.daily-list{--daily-row:58px;height:calc(var(--daily-row)*3);overscroll-behavior:contain;scrollbar-width:none;margin-top:8px;position:relative;overflow-y:auto}.daily-list::-webkit-scrollbar{display:none}.daily-list .recent-item{box-sizing:border-box;width:100%;height:var(--daily-row);text-align:left;font-variant-numeric:tabular-nums;background:0 0;border-top:0;border-left:0;border-right:0;padding:0}.daily-list.is-updated>*{animation:.18s ease-out dailyFade}@keyframes dailyFade{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}.daily-more{text-align:center;font-size:calc(11px * var(--fs,1));color:#8d9d83;background:linear-gradient(to bottom,transparent,var(--panel,#fff) 55%);pointer-events:none;margin:0;padding:14px 0 4px;transition:opacity .15s;position:sticky;bottom:0}.daily-list.at-end .daily-more{opacity:0}.daily-empty{height:100%;font-size:calc(12px * var(--fs,1));text-align:center;place-items:center;margin:0;display:grid}.table-wrap td:first-child{min-width:0;overflow:hidden}.merchant strong{flex:auto;min-width:0}.app-shell{overflow-x:clip}body:before{content:"";height:max(env(safe-area-inset-top,0px),var(--safe-area-inset-top,0px));z-index:30;pointer-events:none;background:#f9fbf7;position:fixed;top:0;left:0;right:0}.legend-row,.home-category .legend-row{box-sizing:border-box;text-align:left;border-radius:10px;grid-template-columns:6px minmax(0,1fr) auto auto;align-items:center;column-gap:6px;width:calc(100% + 16px);margin:0 -8px;padding:7px 8px;transition:background .12s,opacity .12s;display:grid}.legend-row>span,.home-category .legend-row>span{text-overflow:ellipsis;min-width:0;overflow:hidden}.legend-row>strong,.home-category .legend-row>strong{text-align:right;margin-left:0}.legend-row>small,.home-category .legend-row>small{text-align:right}.legend-row.chosen{background:var(--accent-soft)}.legend-row.chosen>span{color:var(--accent-text);font-weight:600}.legend-row:active{background:var(--accent-faint)}@media (hover:hover){.legend-row:hover:not(.chosen){background:var(--accent-faint)}}.legend.has-selection .legend-row:not(.chosen){opacity:.5}.recent-expense-link{isolation:isolate;background:0 0;position:relative}.recent-expense-link:before{content:"";z-index:-1;background:0 0;border-radius:12px;transition:background .12s;position:absolute;inset:5px -10px}.recent-expense-link:active:before{background:var(--accent-soft)}@media (hover:hover){.recent-expense-link:hover{background:0 0}.recent-expense-link:hover:before{background:var(--accent-faint)}}.daily-list{margin-left:-10px;margin-right:-10px;padding:0 10px}.subcategory-more{background:var(--accent-faint);width:100%;color:var(--accent-text);font-size:calc(13px * var(--fs,1));border:0;border-radius:12px;justify-content:center;align-items:center;gap:6px;margin-top:14px;padding:12px;font-weight:600;display:flex}.subcategory-more:active{background:var(--accent-soft)}@media (hover:hover){.subcategory-more:hover{background:var(--accent-soft)}}@media (width<=379px){.stats-page .category-body{flex-direction:column;align-items:stretch;gap:18px}.stats-page .category-body>.donut{align-self:center}.stats-page .legend{width:100%}}@property --reveal{syntax:"<angle>";inherits:false;initial-value:360deg}.nav-indicator{left:0;bottom:calc(16px + var(--app-safe-bottom));background:var(--accent-text);opacity:0;pointer-events:none;border-radius:50%;width:5px;height:5px;position:absolute}.nav-indicator.is-visible{opacity:1}dialog.bottom-sheet.is-closing{pointer-events:none;display:block}@media (prefers-reduced-motion:no-preference){::view-transition{pointer-events:none}.bottom-nav{view-transition-name:bottom-nav}::view-transition-group(bottom-nav){animation:none}::view-transition-old(bottom-nav){display:none}::view-transition-new(bottom-nav){animation:none}::view-transition-old(root){animation:.25s cubic-bezier(.4,0,.2,1) both page-out-left}::view-transition-new(root){animation:.25s cubic-bezier(.4,0,.2,1) both page-in-right}html[data-page-dir=back]::view-transition-old(root){animation-name:page-out-right}html[data-page-dir=back]::view-transition-new(root){animation-name:page-in-left}@keyframes page-out-left{to{opacity:0;transform:translate(-28%)}}@keyframes page-in-right{0%{opacity:0;transform:translate(28%)}}@keyframes page-out-right{to{opacity:0;transform:translate(28%)}}@keyframes page-in-left{0%{opacity:0;transform:translate(-28%)}}.nav-indicator.is-ready{transition:transform .32s cubic-bezier(.3,1.35,.5,1),opacity .2s}.bottom-nav>button{transition:color .2s}.bottom-nav>button.active:not(.nav-add) .icon{animation:.32s cubic-bezier(.3,1.5,.5,1) nav-pop}@keyframes nav-pop{0%{transform:scale(1)}45%{transform:scale(1.18)translateY(-2px)}to{transform:scale(1)}}dialog.bottom-sheet.is-closing{animation:.2s ease-in both sheet-fall}@keyframes sheet-fall{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(28px)}}button{transition:scale .12s ease-out}.is-pressed{scale:.97}.bottom-nav>button.is-pressed{scale:.9}.legend-row{transition:background .12s,opacity .12s,scale .12s ease-out}.donut{position:relative}.donut>div{z-index:1;position:relative}.page.is-entering .donut:before{content:"";background:conic-gradient(transparent var(--reveal),#fff 0);border-radius:50%;animation:.7s cubic-bezier(.3,.7,.3,1) backwards donut-reveal;position:absolute;inset:-1px}@keyframes donut-reveal{0%{--reveal:0deg}to{--reveal:360deg}}.page.is-entering .donut>div{animation:.45s ease-out .15s backwards fade-up}.page.is-entering .bar{transform-origin:bottom;animation:bar-grow .5s calc(var(--i,0)*12ms) cubic-bezier(.2,.8,.2,1) backwards}@keyframes bar-grow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.page.is-entering .subcategory-bar i{transform-origin:0;animation:.55s cubic-bezier(.2,.8,.2,1) .1s backwards bar-grow-x}@keyframes bar-grow-x{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.page.is-entering :is(#recentList .recent-item,#expenseRows tr,#dailyList .recent-item,.legend-row){animation:.35s ease-out backwards fade-up}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.page.is-entering :is(#recentList .recent-item,#expenseRows tr,#dailyList .recent-item,.legend-row):nth-child(2){animation-delay:30ms}.page.is-entering :is(#recentList .recent-item,#expenseRows tr,#dailyList .recent-item,.legend-row):nth-child(3){animation-delay:60ms}.page.is-entering :is(#recentList .recent-item,#expenseRows tr,#dailyList .recent-item,.legend-row):nth-child(4){animation-delay:90ms}.page.is-entering :is(#recentList .recent-item,#expenseRows tr,#dailyList .recent-item,.legend-row):nth-child(5){animation-delay:.12s}.page.is-entering :is(#recentList .recent-item,#expenseRows tr,#dailyList .recent-item,.legend-row):nth-child(6){animation-delay:.15s}.page.is-entering :is(#recentList .recent-item,#expenseRows tr,#dailyList .recent-item,.legend-row):nth-child(7){animation-delay:.18s}.page.is-entering :is(#recentList .recent-item,#expenseRows tr,#dailyList .recent-item,.legend-row):nth-child(8){animation-delay:.21s}.page.is-entering :is(#recentList .recent-item,#expenseRows tr,#dailyList .recent-item,.legend-row):nth-child(9){animation-delay:.24s}.page.is-entering :is(#recentList .recent-item,#expenseRows tr,#dailyList .recent-item,.legend-row):nth-child(n+10){animation-delay:.27s}}.compare-pick{font-size:calc(11px * var(--fs,1));color:#8d9e80;flex-direction:column;gap:5px;min-width:0;display:flex}.compare-pick-button{color:#47603f;width:100%;min-height:36px;font-size:calc(14px * var(--fs,1));text-align:left;background:#fff;border:1px solid #dfe7d6;border-radius:9px;justify-content:space-between;align-items:center;gap:6px;padding:8px 10px;display:flex}.compare-pick-value{text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;overflow:hidden}.compare-pick-icon{color:#a3b196;flex:none;width:14px;height:14px}.month-options>button.has-data{position:relative}.month-options>button.has-data:after{content:"";background:var(--ledger-selected);border-radius:50%;width:4px;height:4px;margin-left:-2px;position:absolute;bottom:6px;left:50%}.month-options>button.has-data[aria-pressed=true]:after{background:#fff}.compare-picker-hint{font-size:calc(12px * var(--fs,1));color:#8d9d80;justify-content:center;align-items:center;gap:6px;margin:16px 0 0;display:flex}.compare-picker-hint i{background:var(--ledger-selected);border-radius:50%;width:4px;height:4px}.is-ios dialog .close-button:focus{outline:none}.share-toggle{cursor:pointer;background:#f7f9f3;border:1px solid #e1e9d9;border-radius:14px;align-items:flex-start;gap:12px;margin:16px 0 4px;padding:14px;display:flex}.share-toggle input{width:20px;height:20px;accent-color:var(--ledger-selected);flex:none;margin:1px 0 0}.share-toggle span{flex-direction:column;gap:4px;min-width:0;display:flex}.share-toggle strong{font-size:calc(16px * var(--fs,1));color:#31513e;font-weight:500}.share-toggle small{font-size:calc(12px * var(--fs,1));color:#8d9e80;line-height:1.6}.join-book-link{font-size:calc(14px * var(--fs,1));margin:16px auto 2px;display:block}.invite-code-input{letter-spacing:.18em;text-transform:uppercase;font-variant-numeric:tabular-nums}.join-hint{font-size:calc(12px * var(--fs,1));line-height:1.7}#joinBookError,#inviteError{font-size:calc(12px * var(--fs,1));color:#ad7158}.invite-code-box{background:#f7f9f3;border:1px solid #e1e9d9;border-radius:16px;flex-direction:column;align-items:center;gap:8px;margin:14px 0;padding:22px 12px;display:flex}#inviteCode{font-size:calc(33px * var(--fs,1));letter-spacing:.12em;font-variant-numeric:tabular-nums;color:#31513e;font-weight:600}#inviteCode.is-expired{color:#b9c3b2;text-decoration:line-through}#inviteExpires{font-size:calc(12px * var(--fs,1));color:#8d9e80}.invite-actions{grid-template-columns:1fr auto;gap:10px;display:grid}.invite-actions .secondary{width:auto;margin:0;padding:13px 18px}.invite-steps{font-size:calc(13px * var(--fs,1));color:#6f8167;margin:18px 0 6px;padding-left:20px;line-height:1.9}.invite-regenerate{font-size:calc(13px * var(--fs,1));margin:8px auto 0;display:block}.shared-book{background:#f7f9f3;border:1px solid #e6ede0;border-radius:12px;margin:10px 0 6px;padding:12px}.shared-status,.shared-members{font-size:calc(12px * var(--fs,1));color:#6f8167;overflow-wrap:anywhere;margin:0 0 5px;line-height:1.6}.shared-status.is-error,.shared-line.is-error{color:#ad7158}.shared-actions{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.shared-actions .secondary{width:auto;font-size:calc(13px * var(--fs,1));margin:0;padding:8px 12px}.shared-line{font-size:calc(12px * var(--fs,1));color:#8d9e80;margin-top:6px}:root{--fs:1}.font-size-options{grid-template-columns:repeat(4,minmax(0,1fr));width:100%;display:grid}.font-size-options button{padding:9px 4px;line-height:1.2}.font-size-hint{font-size:calc(12px * var(--fs,1));margin:8px 0 0}@media (width<=480px){.home-category .category-body,.stats-page .category-body{flex-direction:column;align-items:stretch;gap:18px}.home-category .category-body>.donut,.stats-page .category-body>.donut{align-self:center}.home-category .legend,.stats-page .legend{width:100%}}.home-category .donut,.stats-page .donut{width:calc(150px * var(--fs,1));height:calc(150px * var(--fs,1))}.home-category .donut>div,.stats-page .donut>div{width:calc(118px * var(--fs,1));height:calc(118px * var(--fs,1));gap:4px}.donut strong{white-space:nowrap}.monthly-axis-label{font-size:calc(11px * min(var(--fs,1),1))}.monthly-year-label{font-size:calc(10px * min(var(--fs,1),1))}
