@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-sans-latin-ext-400-normal-BtiwyxMk.woff2) format("woff2"),url(/assets/dm-sans-latin-ext-400-normal-BjWJ59Pq.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-sans-latin-400-normal-CW0RaeGs.woff2) format("woff2"),url(/assets/dm-sans-latin-400-normal-BwCSEQnW.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-sans-latin-ext-500-normal-BJfUCQsA.woff2) format("woff2"),url(/assets/dm-sans-latin-ext-500-normal-DR84L5F-.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-sans-latin-500-normal-B9HHJjqV.woff2) format("woff2"),url(/assets/dm-sans-latin-500-normal-Dr3UlScf.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dm-sans-latin-ext-600-normal-4vooXBpG.woff2) format("woff2"),url(/assets/dm-sans-latin-ext-600-normal-DRtaDpgU.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dm-sans-latin-600-normal-Aqo67rzb.woff2) format("woff2"),url(/assets/dm-sans-latin-600-normal-BmdmIIQ2.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/dm-sans-latin-ext-700-normal-CJIcxD6K.woff2) format("woff2"),url(/assets/dm-sans-latin-ext-700-normal-BLI3TTWz.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/dm-sans-latin-700-normal-DvUfVpUG.woff2) format("woff2"),url(/assets/dm-sans-latin-700-normal-CUSSCpQX.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Newsreader;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/newsreader-vietnamese-600-normal-CaH84vfx.woff2) format("woff2"),url(/assets/newsreader-vietnamese-600-normal-CVAR0otO.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/newsreader-latin-ext-600-normal-BXv5iMHi.woff2) format("woff2"),url(/assets/newsreader-latin-ext-600-normal-BrbfzHZ5.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/newsreader-latin-600-normal-30OJ_TG_.woff2) format("woff2"),url(/assets/newsreader-latin-600-normal-DUnT2r2g.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink: #31342e;--muted: #6c6a60;--line: #ded2c1;--control: #968a79;--paper: #fbf3e7;--paper-dark: #f1e3d1;--card: #fffaf2;--primary: #477166;--primary-dark: #31594f;--primary-soft: #dfeae2;--success: #3f624a;--success-soft: #e1eadb;--attention: #b95739;--attention-ink: #873824;--attention-soft: #f7ddd2;--warning: #d79a28;--warning-ink: #72500d;--warning-soft: #f5e2ad;--saffron: #d79a28;--saffron-soft: #f5e2ad;--blue-ink: #3d6e82;--blue-soft: #dbeaf0;--danger: #bd5146;--danger-soft: #f7e3e0;--shadow: 0 18px 48px rgba(85, 61, 38, .17)}*{box-sizing:border-box}html{background:var(--paper)}body{margin:0;min-width:0;background:var(--paper);color:var(--ink);font:15px/1.5 DM Sans,sans-serif;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{touch-action:manipulation}.ui-button,.ui-icon-button{border-radius:12px;font-weight:600;text-decoration:none;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.ui-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent}.ui-button-sm{min-height:36px;padding:0 12px;font-size:12px}.ui-button-md{min-height:44px;padding:0 16px;font-size:14px}.ui-button-icon,.ui-icon-button{width:44px;min-width:44px;height:44px;flex:0 0 44px;padding:0}.ui-button-primary{border-color:var(--primary);background:var(--primary);color:#fff}.ui-button-primary:hover{border-color:var(--primary-dark);background:var(--primary-dark)}.ui-button-secondary{border-color:var(--control);background:var(--card);color:var(--ink)}.ui-button-secondary:hover{border-color:var(--primary);background:var(--primary-soft)}.ui-button-ghost{background:transparent;color:var(--muted)}.ui-button-ghost:hover,.ui-icon-button:hover{background:var(--paper-dark);color:var(--ink)}.ui-button-danger{border-color:var(--danger);background:var(--danger);color:#fff}.ui-button-danger:hover{border-color:var(--danger-dark, #8c352e);background:var(--danger-dark, #8c352e)}.ui-button:disabled{border-color:var(--line);background:var(--paper-dark);color:var(--muted);cursor:not-allowed}.ui-icon-button{display:grid;place-items:center;border:1px solid transparent;background:transparent;color:var(--muted)}.ui-field{display:block;min-width:0;text-align:left}.ui-field-label{display:block;color:var(--ink);font-size:12px;font-weight:600}.ui-field-hint{margin-left:4px;color:var(--muted);font-weight:400}.ui-badge{display:inline-flex;border-radius:6px;padding:4px 8px;font-size:10px;font-weight:700;letter-spacing:.05em;line-height:1.2;text-transform:uppercase}.ui-badge-success{background:var(--success-soft);color:var(--success)}.ui-badge-warning{background:var(--warning-soft);color:var(--warning-ink)}.ui-badge-info{background:var(--primary-soft);color:var(--primary-dark)}.ui-badge-neutral{background:var(--paper-dark);color:var(--muted)}a{color:inherit;text-decoration:none}.hidden{display:none!important}.w-full{width:100%}.mt-2{margin-top:8px}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.app-shell{display:grid;grid-template-columns:236px minmax(0,1fr);min-height:100vh}.fatal-screen{display:grid;min-height:100dvh;place-items:center;align-content:center;gap:10px;padding:24px;text-align:center}.fatal-screen h1,.fatal-screen p{margin:0}.fatal-screen h1{font-size:24px}.fatal-screen p{max-width:420px;color:var(--muted)}.fatal-screen button{margin-top:10px}.sidebar{position:sticky;top:0;z-index:20;display:flex;height:100vh;flex-direction:column;overflow:hidden;border-right:1px solid #d9c5ac;background:#f0dfca;padding:20px 14px 16px}.brand{display:flex;align-items:center;gap:10px;padding:0 8px 20px;font:600 23px/1 Newsreader,serif;letter-spacing:-.02em}.brand-mark{display:grid;width:30px;height:30px;place-items:center;border-radius:10px;background:var(--attention);color:#fff}.sidebar nav{display:grid;gap:2px}.nav-item,.category-item,.profile{min-height:40px;border:0;border-radius:10px;background:transparent;color:#4f5c64;cursor:pointer}.nav-item{display:flex;width:100%;align-items:center;gap:10px;padding:8px 10px;text-align:left}.nav-item span,.category-item span{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-item small,.category-item small{min-width:22px;border-radius:5px;background:#202b3312;padding:2px 5px;color:var(--muted);font-size:10px;text-align:center}.nav-item:hover,.category-row:hover,.profile:hover{background:#fffcf78c}.nav-item.active,.category-item.active{background:#fff6e8;color:var(--primary-dark);box-shadow:inset 3px 0 0 var(--attention);font-weight:700}.section-label{display:flex;align-items:center;justify-content:space-between;margin:24px 8px 8px;color:#6e746f;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.section-label button,.section-label a{display:grid;width:44px;height:44px;place-items:center;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer}.section-label button:hover,.section-label a:hover{background:#fffcf7a6;color:var(--ink)}.category-list{display:grid;min-height:0;gap:2px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.category-row{display:grid;min-height:44px;grid-template-columns:minmax(0,1fr) 44px;align-items:center;border-radius:7px}.category-row:has(.category-item.active){background:var(--primary-soft)}.category-item{display:flex;width:100%;min-width:0;align-items:center;gap:9px;padding:7px 10px;text-align:left}.category-toggle{display:grid;width:44px;height:44px;place-items:center;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer}.category-toggle svg{transition:transform .15s ease}.category-toggle.expanded svg{transform:rotate(180deg)}.category-children{position:relative}.category-children:before{position:absolute;top:2px;bottom:2px;left:18px;width:1px;background:#cbc5b9;content:""}.profile{display:flex;width:100%;flex:0 0 auto;align-items:center;gap:9px;margin-top:12px;border-top:1px solid #d2ccbf;border-radius:0;padding:14px 6px 0;text-align:left}.avatar{display:grid;width:34px;height:34px;flex:0 0 auto;place-items:center;border-radius:8px;background:var(--primary-soft);color:var(--primary-dark)}.profile>div:nth-child(2){min-width:0;flex:1}.profile strong,.profile span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile strong{font-size:12px}.profile span{margin-top:2px;color:var(--muted);font-size:10px}.category-manager-entry{border-top-color:color-mix(in srgb,var(--attention) 30%,var(--line))}.category-manager-entry .category-avatar{background:var(--attention-soft);color:var(--attention-ink)}.category-manager-entry+.profile{margin-top:4px;border-top:0;padding-top:8px}.install-entry .avatar{background:var(--attention-soft);color:var(--attention-ink)}.install-entry+.profile{margin-top:4px;border-top:0;padding-top:8px}.mobile-close,.menu-button,.nav-backdrop,.mobile-brand,.mobile-bottom-nav{display:none}main{min-width:0}.topbar{position:sticky;top:0;z-index:10;display:flex;height:64px;align-items:center;gap:8px;border-bottom:1px solid var(--line);background:#fbf3e7f0;padding:0 40px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.search{display:flex;max-width:420px;min-width:0;flex:1;align-items:center;gap:10px;color:var(--muted)}.search input{width:100%;min-width:0;margin:0;border:0;background:transparent;color:var(--ink);outline:0}.search input::placeholder{color:#7b858c}kbd{border:1px solid var(--line);border-radius:5px;background:var(--paper-dark);padding:3px 6px;color:var(--muted);font:10px/1 DM Sans,sans-serif}.icon-button{position:relative;margin-left:auto}.icon-button span{position:absolute;top:9px;right:9px;width:6px;height:6px;border:1px solid var(--paper);border-radius:50%;background:var(--attention)}.topbar-add{margin-left:0}.topbar-scan{margin-left:4px}.content{width:min(100%,1120px);margin:0 auto;padding:42px 44px 72px}.welcome-block{position:relative}.eyebrow{margin-bottom:6px;color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.12em}.page-title{display:flex;min-height:58px;align-items:flex-start;justify-content:space-between}.page-title h1{margin:0 0 5px;font:600 38px/1.05 Newsreader,serif;letter-spacing:-.035em;line-height:1.1}.page-title p{margin:0;color:var(--muted)}.page-title p strong{color:var(--ink);font-variant-numeric:tabular-nums}.quick-actions{position:absolute;right:0;bottom:2px;display:none;gap:8px}.at-a-glance{display:grid;grid-template-columns:minmax(240px,1.2fr) minmax(150px,.65fr);align-items:stretch;margin:28px 0 12px;border:1px solid #d9cbb8;border-left:4px solid var(--attention);overflow:hidden;border-radius:10px;background:var(--card);box-shadow:0 3px #5d462b0d}.next-due-card,.glance-note{min-width:0}.next-due-card{display:flex;align-items:center;gap:13px;padding:18px 20px;background:transparent}.glance-icon{display:grid;width:42px;height:42px;flex:0 0 auto;place-items:center;border-radius:10px;background:var(--primary-soft);color:var(--primary-dark)}.next-due-card .glance-icon{display:grid}.glance-icon svg{display:block}.next-due-card span,.next-due-card strong,.next-due-card small{display:block}.next-due-card>div>span{color:var(--muted);font-size:12px}.next-due-card strong{margin-top:1px;font-size:19px}.next-due-card small{margin-top:1px;color:var(--muted);font-size:12px}.glance-note{display:grid;align-content:center;justify-items:center;border-left:1px solid #d9cbb8;background:var(--paper-dark);color:var(--ink);padding:18px 20px;text-align:center}.glance-note strong{color:var(--attention-ink);font-size:23px;line-height:1}.glance-note span{margin-top:5px;color:var(--muted);font-size:12px}.cost-overview{margin:14px 0 0;color:var(--muted)}.cost-overview summary{width:fit-content;min-height:44px;padding:12px 2px;color:var(--primary-dark);cursor:pointer;font-size:12px;font-weight:700}.cost-overview>div{display:flex;gap:24px;border-top:1px solid var(--line);padding:14px 0 2px}.cost-overview>div span{display:grid;gap:2px;font-size:11px}.cost-overview>div strong{color:var(--ink);font-size:15px;font-variant-numeric:tabular-nums}.section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.section-head h2{margin:0;font:600 24px/1.15 Newsreader,serif;letter-spacing:-.02em}.section-head>div span{margin-left:8px;color:var(--muted);font-size:12px}.sort-label{color:var(--muted);font-size:11px}.task-list,.task-skeletons{display:grid;gap:10px}.task-skeleton{display:grid;min-height:82px;grid-template-columns:44px minmax(0,1fr) 120px;align-items:center;gap:14px;border:1px solid var(--line);border-radius:14px;background:var(--card);padding:12px 14px}.task-skeleton>span,.task-skeleton i,.task-skeleton b{display:block;border-radius:8px;background:linear-gradient(90deg,var(--paper-dark),#f8f2e9,var(--paper-dark));background-size:200% 100%;animation:skeleton-shimmer 1.4s ease-in-out infinite}.task-skeleton>span{width:44px;height:44px;border-radius:12px}.task-skeleton>div{display:grid;gap:8px}.task-skeleton i:first-child{width:min(240px,70%);height:14px}.task-skeleton i:last-child{width:min(320px,90%);height:10px}.task-skeleton b{width:100%;height:36px}.task{display:grid;min-height:82px;grid-template-columns:44px minmax(220px,1fr) minmax(210px,auto) auto;align-items:center;gap:14px;border:1px solid var(--line);overflow:hidden;border-left:4px solid var(--task-accent, var(--primary));border-radius:10px;background:var(--card);padding:12px 14px;transition:border-color .15s ease,transform .15s ease;content-visibility:auto;contain-intrinsic-size:82px}.task:hover{border-color:#c9b69d;border-left-color:var(--task-accent, var(--primary));transform:translateY(-1px)}.task.done .task-info,.task.done .task-meta{opacity:.68}.task.done .task-info strong{text-decoration:line-through}.task-icon{display:grid;width:44px;height:44px;place-items:center;border-radius:9px;background:color-mix(in srgb,var(--task-accent, var(--primary)) 16%,white);color:var(--task-accent, var(--primary-dark))}.task-info{min-width:0;border:0;background:transparent;padding:10px 0;text-align:left;cursor:pointer}.task-info strong,.task-info>span{display:block}.task-title-line{display:flex!important;align-items:center;gap:8px}.task-title-line>strong{min-width:0;flex:0 1 auto;overflow:hidden;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.task-title-line .status-label{flex:0 0 auto}.task-info>span:not(.task-title-line){overflow:hidden;margin-top:3px;color:var(--muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.task-info .task-lifecycle{display:flex;align-items:center;gap:4px;margin-top:4px;color:var(--success)}.task-info .task-lifecycle.urgent,.task-info .task-lifecycle.assumed{color:var(--attention-ink)}.task-meta{display:grid;grid-template-columns:minmax(82px,.8fr) minmax(112px,1fr);align-items:center;gap:18px}.task-date span,.task-date small,.task-amount strong,.task-amount span{display:block}.task-date span{font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}.task-date span.urgent{color:var(--attention-ink)}.task-date small{margin-top:2px;color:var(--muted);font-size:11px}.task-amount{text-align:left}.task-amount strong{font-size:14px;font-variant-numeric:tabular-nums}.task-amount span{margin-top:2px;color:var(--success);font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.task-amount span.estimated{color:var(--warning-ink)}.status-label{display:inline-flex;align-items:center;border-radius:4px;padding:4px 7px;font-size:10px;font-weight:700;letter-spacing:.01em}.status-label.planned{background:var(--blue-soft);color:var(--blue-ink)}.status-label.due,.status-label.assumed{background:var(--warning-soft);color:var(--warning-ink)}.status-label.overdue{background:var(--danger-soft);color:#8c352e}.status-label.complete{background:var(--success-soft);color:var(--success)}.task-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px}.pay-button{white-space:nowrap}.calendar-action{color:var(--muted)}.empty{border:1px dashed #d7c9b8;border-radius:18px;background:#fffdf999;padding:36px 20px;color:var(--muted);text-align:center}.empty-icon{display:grid;width:54px;height:54px;place-items:center;margin:0 auto;border-radius:18px;background:var(--success-soft)}.empty-icon svg{color:var(--success)}.empty h3{margin:10px 0 3px;color:var(--ink);font-size:18px}.empty p{margin:0}.empty-actions{display:flex;max-width:390px;justify-content:center;gap:8px;margin:20px auto 0}.first-run-steps{display:grid;max-width:390px;gap:7px;margin:18px auto 0;padding:0;counter-reset:first-run;list-style:none;text-align:left}.first-run-steps li{display:flex;min-height:36px;align-items:center;gap:9px;color:var(--ink);font-size:12px;counter-increment:first-run}.first-run-steps li:before{display:grid;width:26px;height:26px;flex:0 0 auto;place-items:center;border-radius:50%;background:var(--primary-soft);color:var(--primary-dark);content:counter(first-run);font-size:11px;font-weight:700}.error-empty>svg{color:var(--danger)}.insight{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:14px;margin-top:24px;border:1px solid var(--line);border-color:#d7bc75;border-left:5px solid var(--saffron);border-radius:10px;background:#fbefc9;padding:16px 18px}.insight-icon{display:grid;width:36px;height:36px;place-items:center;border-radius:8px;background:var(--saffron);color:#3f310f}.ai-label{color:var(--attention-ink);font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.insight h3{margin:2px 0;font-size:15px}.insight p{margin:0;color:var(--muted);font-size:10px}.insight button,.text-button{display:inline-flex;min-height:44px;align-items:center;border:0;background:transparent;color:var(--primary-dark);cursor:pointer;font-size:11px;font-weight:700;text-decoration:underline;text-underline-offset:3px}.toast{position:fixed;right:24px;bottom:24px;z-index:60;display:flex;align-items:center;gap:9px;border-radius:8px;background:var(--primary-dark);box-shadow:var(--shadow);color:#fff;padding:12px 16px;animation:toast-in .18s ease-out}.modal-backdrop{position:fixed;inset:0;z-index:50;display:grid;place-items:center;overflow-y:auto;background:#202b3380;padding:20px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade-in .15s ease-out}.modal-shell{display:grid;width:min(520px,100%);max-height:min(92vh,820px);grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;border:1px solid rgba(255,255,255,.55);border-radius:16px;background:var(--card);box-shadow:var(--shadow);animation:modal-in .18s ease-out}.modal-shell:focus{outline:3px solid color-mix(in srgb,var(--primary) 45%,transparent);outline-offset:3px}.modal-shell-lg{width:min(672px,100%)}.modal-shell .modal-body{min-height:0}.modal-header{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:start;gap:16px;border-bottom:1px solid var(--line);padding:20px 20px 16px 24px}.modal-header h2{margin:0;font-size:23px;font-weight:700;letter-spacing:-.025em;line-height:1.2}.modal-header p{max-width:560px;margin:6px 0 0;color:var(--muted);font-size:12px;line-height:1.55}.modal-body{max-height:calc(min(92vh,820px) - 92px);overflow-y:auto;padding:20px 24px 24px}.modal-footer{border-top:1px solid var(--line);background:var(--card);padding:14px 24px 18px}.form{display:grid;min-width:0;gap:16px}.scan-review-badges{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.form>*,.two-cols>*,.advanced-options>*,.lifecycle-panel>*,.modal-body>*{min-width:0}.form-actions{display:flex;justify-content:flex-end;margin-top:2px}.category-manager-list{display:grid;gap:7px}.category-manager-row{display:grid;width:100%;min-width:0;min-height:58px;grid-template-columns:38px minmax(0,1fr) 28px;align-items:center;gap:10px;border:1px solid var(--line);border-radius:13px;background:var(--paper);padding:9px 10px 9px calc(11px + var(--category-depth, 0) * 14px);color:var(--ink);cursor:pointer;text-align:left}.category-manager-row:hover{border-color:color-mix(in srgb,var(--primary) 45%,var(--line));background:var(--primary-soft)}.category-manager-row>span:nth-child(2){display:grid;min-width:0;gap:2px}.category-manager-row strong,.category-manager-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.category-manager-row strong{font-size:14px}.category-manager-row small{color:var(--muted);font-size:11px}.category-manager-row>svg{color:var(--muted)}.category-manager-icon{display:grid;width:38px;height:38px;place-items:center;border-radius:10px;background:var(--primary-soft)}.category-manager-primary{width:100%}.category-editor{display:grid;gap:17px}.category-editor-back{display:inline-flex;min-height:44px;align-items:center;justify-self:start;gap:8px;border:0;border-radius:10px;background:transparent;padding:8px 10px;color:var(--primary-dark);cursor:pointer;font-weight:700}.category-editor-back:hover{background:var(--primary-soft)}.category-move-note{display:grid;grid-template-columns:28px minmax(0,1fr);align-items:start;gap:9px;border-radius:13px;background:var(--primary-soft);padding:13px;color:var(--forest)}.category-move-note p{margin:0;font-size:12px;line-height:1.5}.category-hidden-move,.category-sample-lock{display:grid;min-width:0;gap:10px;border:1px solid color-mix(in srgb,var(--warning-ink) 24%,var(--line));border-radius:13px;background:var(--warning-soft);padding:13px}.category-hidden-move>div,.category-sample-lock>div{display:grid;gap:3px}.category-hidden-move strong,.category-sample-lock strong{font-size:14px}.category-hidden-move small,.category-sample-lock small{color:var(--muted);font-size:12px;line-height:1.45}.category-hidden-move select,.category-hidden-move button,.category-sample-lock a{width:100%}.category-danger-zone{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:2px;border-top:1px solid var(--line);padding-top:18px}.category-danger-zone>div{display:grid;min-width:0;gap:3px}.category-danger-zone strong{font-size:14px}.category-danger-zone small{color:var(--muted);font-size:12px;line-height:1.4}.task-submit{min-width:190px}.two-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;text-align:left}input,select,textarea{width:100%;max-width:100%;min-width:0;min-height:44px;margin-top:6px;border:1px solid var(--control);border-radius:11px;background:#fff;padding:9px 11px;color:var(--ink)}select{text-overflow:ellipsis}input:disabled,select:disabled{border-color:var(--line);background:var(--paper-dark);color:var(--muted);cursor:not-allowed}input:focus,select:focus{border-color:var(--primary)}.scan-sources{display:grid;grid-template-columns:1fr 1fr;gap:12px}.scan-file-button,.scan-source-card{display:flex;min-height:132px;width:100%;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:1px solid var(--control);border-radius:8px;padding:16px;cursor:pointer}.scan-file-button{order:-1;border-color:var(--primary);background:var(--primary-soft);color:var(--ink)}.scan-source-card{background:var(--paper);color:var(--ink)}.scan-file-button:hover,.scan-source-card:hover{border-color:var(--primary);background:#dceaf1}.scan-source-icon{display:grid;width:40px;height:40px;place-items:center;margin-bottom:3px;border-radius:8px;background:var(--card);color:var(--primary-dark)}.scan-file-button small,.scan-source-card small{color:var(--muted);font-size:11px;font-weight:400}.scan-success{display:grid;width:44px;height:44px;place-items:center;border-radius:8px;background:var(--primary-soft);color:var(--primary-dark)}.processing p{color:var(--muted);font-size:12px}.processing{padding:32px 8px;text-align:center}.processing h3{margin:14px 0 4px;font-size:19px}.scan-loader{display:grid;width:58px;height:58px;place-items:center;margin:auto;border-radius:10px;background:var(--primary-soft);color:var(--primary-dark);animation:pulse 1.5s infinite}.progress{max-width:310px;height:5px;overflow:hidden;margin:18px auto;border-radius:3px;background:var(--paper-dark)}.progress span{display:block;height:100%;background:var(--primary);transition:width .3s ease}.field-note,.error-message,.warning-message{margin:0;border-radius:7px;padding:10px 12px;font-size:12px;line-height:1.5}.field-note{border-left:3px solid var(--primary);background:var(--primary-soft);color:var(--muted);text-align:left}.error-message{background:var(--danger-soft);color:#8c352e}.field-error{display:block;margin-top:6px;color:#8c352e;font-size:12px}.field-stack{min-width:0}.warning-message{background:var(--warning-soft);color:var(--warning-ink)}.payment-review{display:grid;grid-template-columns:1fr 1fr;gap:1px;overflow:hidden;margin-top:14px;border:1px solid var(--line);border-radius:8px;background:var(--line)}.payment-review span{background:var(--card);padding:11px 12px;color:var(--muted);font-size:12px;text-align:left}.payment-review strong{display:block;overflow-wrap:anywhere;margin-top:3px;color:var(--ink);font-size:14px;font-variant-numeric:tabular-nums;line-height:1.4}.reminder-check{display:flex;min-height:44px;align-items:flex-start;gap:9px;margin:0;cursor:pointer;font-size:12px;text-align:left}.reminder-check input{width:auto;min-height:auto;margin:2px 0 0}.lifecycle-panel,.auto-payment-check{border:1px solid var(--line);border-radius:12px;background:var(--paper);padding:14px}.lifecycle-panel{display:grid;gap:14px}.lifecycle-panel>div:first-child,.auto-payment-check{display:flex;align-items:flex-start;gap:9px}.lifecycle-panel>div:first-child>span{min-width:0;flex:1}.lifecycle-panel>div:first-child>span,.auto-payment-check>span{display:grid;gap:3px}.lifecycle-panel strong,.auto-payment-check strong{font-size:11px}.lifecycle-panel small,.auto-payment-check small{color:var(--muted);font-size:10px;font-weight:400;line-height:1.45}.auto-payment-check{border-color:#dfc9b0;background:#fbf1e5}.optional-toggle{width:100%;justify-content:flex-start;color:var(--primary-dark)}.optional-remove{display:inline-flex;min-height:44px;align-items:center;border:0;background:transparent;padding:8px 4px;color:var(--primary-dark);cursor:pointer;font-size:10px;font-weight:700}.more-options-toggle{display:flex;width:100%;min-height:48px;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:12px;background:var(--paper);padding:0 14px;color:var(--primary-dark);cursor:pointer;font-size:13px;font-weight:700}.more-options-toggle svg{transition:transform .15s ease}.more-options-toggle[aria-expanded=true] svg{transform:rotate(180deg)}.advanced-options{display:grid;gap:16px;border:1px solid var(--line);border-radius:14px;background:var(--paper);padding:18px}.advanced-options[hidden]{display:none}.estimate-suggestion{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;border:1px solid color-mix(in srgb,var(--accent) 34%,var(--line));border-radius:14px;background:color-mix(in srgb,var(--accent-soft) 62%,var(--card));padding:11px 12px;color:var(--primary-dark)}.estimate-suggestion span{display:grid;gap:2px}.estimate-suggestion small{color:var(--muted);font-size:11px}.estimate-suggestion strong{color:var(--ink);font-size:15px}.qr-preview{display:grid;width:190px;height:190px;place-items:center;margin:18px auto;border:1px solid var(--line);border-radius:8px;background:#fff;padding:9px;color:var(--muted);font-size:11px}.qr-preview img{display:block;width:100%;height:100%;object-fit:contain}.payment-handoff-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.payment-handoff-note{margin:9px 4px 0;text-align:center}.privacy-note{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:8px;background:var(--paper);padding:10px 12px;color:var(--muted)}.privacy-note p{margin:0;font-size:10px;line-height:1.45;text-align:left}.bank-instructions{text-align:center}.bank-instructions .scan-success{margin:0 auto;background:var(--success-soft);color:var(--success)}.bank-instructions h3,.data-actions h3{margin:10px 0 4px;font-size:19px}.bank-instructions>p,.data-actions>p{margin:0 0 8px;color:var(--muted);font-size:11px;line-height:1.55}.bank-instructions ol{margin:18px 0;padding:0;list-style:none;counter-reset:steps;text-align:left}.bank-instructions li{position:relative;min-height:42px;border-bottom:1px solid var(--line);padding:10px 0 10px 40px;counter-increment:steps}.bank-instructions li:before{position:absolute;top:7px;left:2px;display:grid;width:26px;height:26px;place-items:center;border-radius:7px;background:var(--primary-soft);color:var(--primary-dark);content:counter(steps);font-size:11px;font-weight:700}.reminder-permission{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:8px;background:var(--paper);padding:14px}.reminder-permission>div{min-width:0;flex:1}.reminder-permission strong,.reminder-permission span{display:block}.reminder-permission span{margin-top:2px;color:var(--muted);font-size:10px}.reminder-list{margin:18px 0;border-top:1px solid var(--line)}.reminder-list>div{display:flex;min-height:58px;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding:9px 0}.reminder-list>div>span:first-child{min-width:0;flex:1}.reminder-list strong,.reminder-list small{display:block}.reminder-list small{margin-top:2px;color:var(--muted);font-size:10px}.reminder-actions{display:flex;flex:0 0 auto;gap:4px}.deadlines-page{display:grid;gap:22px}.deadlines-heading{display:flex;align-items:end;justify-content:space-between;gap:24px}.deadlines-heading h1{margin:0 0 5px;font:600 40px/1.05 Newsreader,serif;letter-spacing:-.035em}.deadlines-heading p{margin:0;color:var(--muted)}.deadline-count{display:grid;min-width:146px;border-bottom:4px solid var(--saffron);padding:5px 2px 10px;color:var(--muted);font-size:11px;text-align:right}.deadline-count strong{color:var(--ink);font:600 30px/1 Newsreader,serif}.notification-strip{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:13px;border:1px solid #b8c8bb;border-radius:10px;background:var(--success-soft);padding:14px 16px}.notification-icon{display:grid;width:42px;height:42px;place-items:center;border-radius:50%;background:var(--primary);color:#fff}.notification-strip>div{min-width:0}.notification-strip strong,.notification-strip span{display:block}.notification-strip>div>span{margin-top:2px;color:var(--muted);font-size:11px}.push-privacy-note{margin:-7px 2px 0;color:var(--muted);font-size:12px;line-height:1.5}.deadline-group{overflow:hidden;border:1px solid var(--line);border-top:5px solid var(--primary);border-radius:10px;background:var(--card)}.deadline-group.coral{border-top-color:var(--attention)}.deadline-group.sage{border-top-color:var(--primary)}.deadline-group>header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:13px 16px 11px}.deadline-group.coral>header{background:var(--attention-soft)}.deadline-group.sage>header{background:var(--primary-soft)}.deadline-group h2{margin:0;font:600 21px/1.15 Newsreader,serif}.deadline-group>header>span{display:grid;min-width:27px;height:27px;place-items:center;border-radius:50%;background:#ffffffb3;font-size:11px;font-weight:700}.deadline-row{display:grid;grid-template-columns:54px minmax(0,1fr) auto;align-items:center;gap:15px;min-width:0;border-bottom:1px solid var(--line);padding:13px 16px}.deadline-row:last-child{border-bottom:0}.deadline-row time{display:grid;height:54px;place-items:center;align-content:center;border:1px solid #d6c19f;border-radius:8px;background:#fff2d5;color:var(--attention-ink)}.deadline-row time strong{font:600 22px/1 Newsreader,serif}.deadline-row time span{margin-top:2px;font-size:9px;font-weight:700;text-transform:uppercase}.deadline-info{display:block;min-width:0;border:0;background:transparent;padding:8px 0;color:var(--ink);text-align:left}.deadline-info strong,.deadline-info span,.deadline-info small{display:block;overflow-wrap:anywhere}.deadline-info>strong{font-size:14px}.deadline-info>span{margin-top:2px;color:var(--muted);font-size:11px}.deadline-info small{margin-top:4px;color:var(--primary-dark);font-size:10px;font-weight:600}.deadline-info .arrival-note{color:var(--attention-ink)}.deadline-actions{display:flex;min-width:0;gap:4px}.calendar-footnote{margin:-8px 2px 0;color:var(--muted);font-size:10px}.data-actions{display:grid;gap:10px;text-align:center}.data-actions>svg{margin:auto;color:var(--primary)}.sample-data-note{display:grid;gap:7px;border:1px solid color-mix(in srgb,var(--attention) 38%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--attention-soft) 68%,var(--card));padding:12px;text-align:left}.sample-data-note strong{color:var(--ink);font-size:12px}.sample-data-note span{color:var(--muted);font-size:11px;line-height:1.45}.sample-data-note button{width:100%}.storage-status{display:grid;gap:4px;border:1px solid var(--line);border-radius:8px;background:var(--paper);padding:12px;text-align:left}.storage-status strong{font-size:11px}.storage-status span,.storage-status small{color:var(--muted);font-size:10px;line-height:1.45}.detail-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:20px}.receipt-image{width:100%;max-height:410px;border:1px solid var(--line);border-radius:8px;background:var(--paper);object-fit:contain}.no-document{display:grid;min-height:230px;place-items:center;align-content:center;gap:8px;border:1px dashed var(--control);border-radius:8px;color:var(--muted);font-size:11px}.detail-badges{display:flex;flex-wrap:wrap;gap:6px}.detail-data dl{display:grid;grid-template-columns:100px 1fr;gap:8px 10px;margin:16px 0}.detail-data dt{color:var(--muted);font-size:10px}.detail-data dd{margin:0;overflow-wrap:anywhere;font-size:11px;font-weight:600}.detail-data>button{margin-top:9px}.detail-data details{border-top:1px solid var(--line);padding-top:10px}.detail-data summary{cursor:pointer;font-size:11px;font-weight:600}.detail-data pre{max-height:150px;overflow:auto;color:var(--muted);font:10px/1.45 monospace;white-space:pre-wrap}.history{margin-top:22px;border-top:1px solid var(--line);padding-top:14px}.history h3{margin:0 0 7px;font-size:16px}.history>div{display:flex;justify-content:space-between;gap:12px;padding:6px 0;color:var(--muted);font-size:10px}.detail-actions{display:grid;grid-template-columns:repeat(2,minmax(110px,.62fr)) minmax(150px,1fr);gap:9px}.detail-actions button,.detail-actions a{min-height:48px}.edit-scope{display:grid;gap:9px;margin:0;border:0;padding:0}.edit-scope legend{margin-bottom:7px;color:var(--ink);font-size:13px;font-weight:700}.edit-scope label{display:flex;min-width:0;min-height:58px;align-items:center;gap:11px;border:1px solid var(--line);border-radius:13px;background:var(--paper);padding:10px 13px}.edit-scope label:has(input:checked){border-color:color-mix(in srgb,var(--primary) 58%,var(--line));background:var(--primary-soft)}.edit-scope input{width:19px;height:19px;flex:0 0 auto;accent-color:var(--primary)}.edit-scope span,.remove-obligation>div{display:grid;min-width:0;gap:2px}.edit-scope strong,.remove-obligation strong{font-size:14px}.edit-scope small,.remove-obligation small{color:var(--muted);font-size:12px}.remove-obligation{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:4px;border-top:1px solid var(--line);padding-top:18px}.danger-button{color:#a8442f}.previous-estimate{display:flex;min-height:58px;align-items:center;justify-content:space-between;gap:16px;border:1px solid var(--line);border-radius:12px;background:var(--paper);padding:12px 14px}.previous-estimate span{color:var(--muted);font-size:12px}.previous-estimate strong{font-variant-numeric:tabular-nums}.amount-difference{margin:-6px 0 0;color:var(--attention-ink);font-size:12px}.sheet-form-actions{display:flex}.install-guide{display:grid;grid-template-columns:58px minmax(0,1fr);gap:18px 16px;padding:4px 0}.install-guide-mark{position:relative;display:grid;width:58px;height:64px;place-items:center;border:1px solid color-mix(in srgb,var(--attention) 38%,var(--line));border-radius:15px;background:var(--attention-soft);color:var(--attention-ink)}.install-guide-mark span{position:absolute;right:-5px;bottom:-5px;display:grid;width:24px;height:24px;place-items:center;border:3px solid var(--card);border-radius:8px;background:var(--primary);color:#fff}.install-guide h3{margin:3px 0 4px;font-size:18px}.install-guide p{margin:0;color:var(--muted);font-size:13px;line-height:1.45}.install-guide ol{display:grid;grid-column:1 / -1;gap:10px;margin:0;padding:15px 16px 15px 37px;border:1px solid var(--line);border-radius:14px;background:var(--paper);font-size:14px}.install-guide li{padding-left:3px}.install-guide li svg{display:inline;vertical-align:-3px}.install-guide .install-guide-note{grid-column:1 / -1;border-left:3px solid var(--primary);padding:2px 0 2px 12px;color:var(--ink-soft)}@keyframes fade-in{0%{opacity:0}}@keyframes modal-in{0%{opacity:0;transform:translateY(8px)}}@keyframes sheet-in{0%{transform:translateY(100%)}to{transform:translateY(var(--sheet-drag, 0))}}@keyframes sheet-out{to{transform:translateY(100%)}}@keyframes backdrop-out{to{opacity:0}}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}@keyframes pulse{50%{opacity:.72;transform:scale(.97)}}@keyframes skeleton-shimmer{to{background-position:-200% 0}}@media(max-width:1000px){.app-shell{grid-template-columns:220px minmax(0,1fr)}.content{padding-inline:28px}.quick-actions{position:static;margin-top:18px}.at-a-glance{grid-template-columns:1fr .65fr}.task{grid-template-columns:44px minmax(180px,1fr) auto}.task-skeleton{min-height:112px;grid-template-columns:40px minmax(0,1fr)}.task-skeleton b{grid-column:1 / -1;height:44px}.task-meta{grid-column:2}.task-actions{grid-column:3;grid-row:1 / span 2;flex-wrap:wrap;max-width:180px}}@media(max-width:900px),(max-width:1024px)and (max-height:600px){.app-shell{grid-template-columns:minmax(0,1fr)}.sidebar{position:fixed;top:var(--app-top, 0px);bottom:auto;width:280px;max-width:calc(100vw - 44px);height:var(--app-height, 100dvh);padding-top:calc(20px + env(safe-area-inset-top));padding-bottom:calc(16px + env(safe-area-inset-bottom));padding-left:calc(14px + env(safe-area-inset-left));transform:translate(-102%);visibility:hidden;box-shadow:var(--shadow);pointer-events:none;transition:transform .2s ease,visibility 0s linear .2s}.sidebar.open{transform:none;visibility:visible;pointer-events:auto;transition-delay:0s}.mobile-close{position:absolute;top:calc(10px + env(safe-area-inset-top));right:calc(10px + env(safe-area-inset-right));z-index:2;display:grid}.nav-backdrop{position:fixed;inset:0;z-index:15;display:block;border:0;background:#202b3375}.menu-button{display:none}.mobile-brand{display:flex;align-items:center;gap:8px;color:var(--ink);font:600 21px/1 Newsreader,serif}.mobile-brand .brand-mark{width:30px;height:30px}.topbar{height:calc(64px + env(safe-area-inset-top));padding:env(safe-area-inset-top) calc(20px + env(safe-area-inset-right)) 0 calc(20px + env(safe-area-inset-left))}.topbar .search{margin-left:auto}.topbar .search kbd,.topbar .icon-button,.topbar-scan,.topbar-add,.quick-actions{display:none}.content{padding:30px calc(24px + env(safe-area-inset-right)) calc(104px + env(safe-area-inset-bottom)) calc(24px + env(safe-area-inset-left))}.mobile-bottom-nav{position:fixed;right:0;bottom:0;left:0;z-index:14;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--line);background:#fffdf9f7;padding:6px calc(4px + env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) calc(4px + env(safe-area-inset-left));-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.mobile-bottom-nav button,.mobile-bottom-nav a{position:relative;display:grid;min-width:0;min-height:56px;place-items:center;align-content:center;gap:3px;border:0;border-radius:10px;background:transparent;color:var(--muted);cursor:pointer;font-size:10px;font-weight:600}.mobile-bottom-nav button.active,.mobile-bottom-nav a.active{background:var(--primary-soft);color:var(--primary-dark)}.mobile-bottom-nav button.active:after,.mobile-bottom-nav a.active:after{position:absolute;right:24%;bottom:3px;left:24%;height:3px;border-radius:2px;background:var(--primary);content:""}.mobile-bottom-nav .mobile-primary-action{color:var(--attention-ink)}.mobile-bottom-nav .mobile-primary-action.active{background:var(--attention-soft)}.mobile-bottom-nav .mobile-primary-action.active:after{background:var(--attention)}.mobile-action-icon{display:grid;width:46px;height:46px;place-items:center;margin-top:-17px;border:4px solid var(--card);border-radius:10px;background:var(--attention);box-shadow:0 7px 18px #64382538;color:#fff}.mobile-primary-action>span:last-child{margin-top:-4px}.mobile-bottom-nav small{position:absolute;top:2px;left:calc(50% + 7px);display:grid;min-width:17px;height:17px;place-items:center;border:2px solid var(--card);border-radius:9px;background:var(--attention);color:#fff;font-size:9px}.insight{grid-template-columns:38px minmax(0,1fr)}.insight button{grid-column:2;justify-self:start;padding:8px 0}.nav-item,.category-item,.profile,.task-actions button,.ui-button-sm{min-height:44px}}@media(max-width:600px){.topbar{height:calc(62px + env(safe-area-inset-top));gap:4px;padding:env(safe-area-inset-top) calc(12px + env(safe-area-inset-right)) 0 calc(16px + env(safe-area-inset-left))}.topbar .search{width:44px;max-width:44px;height:44px;justify-content:center}.topbar .search{position:relative}.topbar .search input{position:absolute;inset:0;z-index:2;display:block;height:44px;border:0;border-radius:12px;background:transparent;padding:0;opacity:0;cursor:pointer}.topbar .search:focus-within,.topbar .search.has-query{position:absolute;right:calc(12px + env(safe-area-inset-right));left:calc(12px + env(safe-area-inset-left));z-index:3;width:auto;max-width:none;justify-content:flex-start;border:1px solid var(--line);border-radius:12px;background:var(--card);padding-left:12px}.topbar .search:focus-within input,.topbar .search.has-query input{position:static;width:100%;padding:0 10px 0 4px;opacity:1;cursor:text}.topbar .icon-button{display:none;margin-left:0}.search kbd{display:none}.content{padding:24px calc(14px + env(safe-area-inset-right)) calc(100px + env(safe-area-inset-bottom)) calc(14px + env(safe-area-inset-left))}.deadlines-page{gap:16px}.deadlines-heading{align-items:start;gap:12px}.deadlines-heading h1{font-size:29px}.deadlines-heading p{max-width:235px;font-size:12px}.deadline-count{min-width:72px;padding-top:1px}.deadline-count strong{font-size:25px}.notification-strip{grid-template-columns:38px minmax(0,1fr);padding:12px}.notification-icon{width:38px;height:38px}.notification-strip button{grid-column:1 / -1;width:100%}.deadline-group h2{font-size:19px}.deadline-row{grid-template-columns:48px minmax(0,1fr);gap:8px 12px;padding:11px 12px}.deadline-row time{width:48px;height:48px}.deadline-actions{display:grid;grid-column:2;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));width:100%}.deadline-actions button{min-width:0;width:100%}.eyebrow{margin-bottom:4px}.page-title{min-height:52px}.page-title h1{font-size:27px}.page-title p{max-width:32rem;font-size:13px}.quick-actions{display:none}.at-a-glance{grid-template-columns:minmax(0,1fr) 104px;margin:20px 0 8px;border-radius:10px}.next-due-card{gap:11px;padding:15px}.glance-icon{width:40px;height:40px}.next-due-card>div>span{font-size:11px}.next-due-card strong{font-size:17px}.next-due-card small{font-size:11px}.glance-note{border-left:1px solid #d9cbb8;padding:12px}.glance-note strong{font-size:20px}.glance-note span{max-width:72px;font-size:10px;line-height:1.25}.cost-overview{margin-top:12px}.section-head{align-items:flex-end}.section-head h2{font-size:18px}.section-head>div span{display:block;margin:2px 0 0}.sort-label{display:none}.task-list{gap:10px}.empty{padding:28px 16px}.empty-actions{flex-direction:column}.empty-actions button{width:100%}.task{min-height:0;grid-template-columns:40px minmax(0,1fr);grid-template-rows:auto auto auto;gap:6px 10px;border-radius:16px;padding:12px}.task:hover{transform:none}.task-icon{width:40px;height:40px;grid-column:1;grid-row:1}.task-info{grid-column:2;grid-row:1;min-height:44px;padding:0}.task-title-line{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:7px}.task-title-line>strong{overflow:visible;font-size:14px;line-height:1.3;white-space:normal}.task-info>span:not(.task-title-line){overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.task-meta{grid-column:1 / -1;grid-row:2;grid-template-columns:1fr 1fr;gap:10px;border-top:1px solid var(--line);padding-top:8px}.task-date span,.task-amount strong{font-size:13px}.task-date small,.task-amount span{font-size:10px}.task-actions{display:grid;grid-column:1 / -1;grid-row:3;grid-template-columns:minmax(0,1fr) 44px;max-width:none;width:100%}.task-actions:has(.pay-button):has(.received-button),.task-actions:has(.pay-button):has(.complete-button){grid-template-columns:minmax(62px,.7fr) minmax(0,1.25fr) 44px}.task-actions .pay-button,.task-actions .received-button,.task-actions .complete-button{width:100%;min-width:0;min-height:44px;padding-inline:10px}.task-actions .calendar-action{width:44px;height:44px;min-width:44px;max-width:44px;overflow:hidden}.insight{margin-top:20px;border-radius:16px;padding:14px}.modal-backdrop{top:var(--app-top, 0px);bottom:auto;display:block;width:100vw;height:var(--app-height, 100dvh);padding:0}.modal-shell,.modal-shell-lg{width:100%;max-width:none;min-height:var(--app-height, 100dvh);max-height:var(--app-height, 100dvh);border:0;border-radius:0;animation:none}.modal-header{position:sticky;top:0;z-index:2;align-items:center;background:var(--card);padding:calc(16px + env(safe-area-inset-top)) calc(12px + env(safe-area-inset-right)) 14px calc(20px + env(safe-area-inset-left))}.modal-header h2{font-size:21px}.modal-body{max-height:none;scroll-padding-bottom:76px;padding:18px calc(20px + env(safe-area-inset-right)) 28px calc(20px + env(safe-area-inset-left))}.task-submit{width:100%}.modal-footer{padding:12px calc(20px + env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) calc(20px + env(safe-area-inset-left))}.two-cols,.payment-handoff-actions{grid-template-columns:1fr}.advanced-options{gap:14px;padding:14px}.scan-sources{grid-template-columns:1fr}.scan-file-button{order:0;min-height:104px;border-color:var(--control);background:var(--card)}.scan-camera{order:-1;min-height:132px;border-color:var(--primary);background:var(--primary-soft)}.payment-review{grid-template-columns:1fr}.reminder-permission{align-items:flex-start;flex-wrap:wrap}.reminder-permission button{width:100%}.reminder-list>div{align-items:flex-start;flex-direction:column}.reminder-actions{width:100%}.reminder-actions button{flex:1}.detail-grid{grid-template-columns:1fr}.receipt-image{max-height:300px}.toast{right:16px;bottom:calc(84px + env(safe-area-inset-bottom));left:16px}}@media(max-width:900px),(max-width:1024px)and (max-height:600px){.modal-backdrop.mobile-sheet-backdrop{inset:0;display:flex;width:auto;height:auto;align-items:flex-end;overflow:hidden;overscroll-behavior:none;padding:0;animation:none;-webkit-backdrop-filter:none;backdrop-filter:none;opacity:0;transition:opacity .22s ease-out;will-change:opacity}.modal-shell.mobile-sheet,.modal-shell-lg.mobile-sheet{width:100%;max-width:none;min-height:0;max-height:min(88dvh,760px);border-width:1px 0 0;border-radius:24px 24px 0 0;animation:none;transform:translateY(100%);transition:transform .32s cubic-bezier(.22,.82,.28,1);will-change:transform}.has-visual-keyboard .modal-backdrop.mobile-sheet-backdrop{padding-bottom:var(--keyboard-offset, 0px)}.has-visual-keyboard .modal-shell.mobile-sheet,.has-visual-keyboard .modal-shell-lg.mobile-sheet{max-height:min(88dvh,760px,var(--app-height, 100dvh))}.modal-backdrop.mobile-sheet-backdrop.is-entered{opacity:var(--sheet-fade, 1)}.modal-shell.mobile-sheet.is-entered,.modal-shell-lg.mobile-sheet.is-entered{transform:translateY(var(--sheet-drag, 0px))}.modal-backdrop.mobile-sheet-backdrop.is-closing{opacity:0;transition-duration:.2s;transition-timing-function:ease-in;pointer-events:none}.modal-shell.mobile-sheet.is-closing,.modal-shell-lg.mobile-sheet.is-closing{transform:translateY(100%);transition-duration:.22s;transition-timing-function:cubic-bezier(.4,0,1,1)}.modal-backdrop.mobile-sheet-backdrop.is-dragging,.modal-shell.mobile-sheet.is-dragging,.modal-shell-lg.mobile-sheet.is-dragging{transition:none}.modal-shell.mobile-sheet.is-snapping,.modal-shell-lg.mobile-sheet.is-snapping{transition:transform .2s cubic-bezier(.2,.8,.2,1)}.modal-shell.mobile-sheet.has-modal-footer,.modal-shell-lg.mobile-sheet.has-modal-footer{grid-template-rows:auto minmax(0,1fr) auto}.mobile-sheet .modal-header{position:relative;z-index:3;border-radius:24px 24px 0 0;background:var(--card);padding:25px calc(14px + env(safe-area-inset-right)) 14px calc(20px + env(safe-area-inset-left));touch-action:none}.mobile-sheet .modal-header:before{position:absolute;top:8px;left:50%;width:42px;height:4px;border-radius:2px;background:var(--control);content:"";opacity:.55;transform:translate(-50%)}.mobile-sheet .modal-body{max-height:calc(min(86dvh,760px) - 84px);overflow-y:hidden;overscroll-behavior:contain;padding:18px calc(20px + env(safe-area-inset-right)) 20px calc(20px + env(safe-area-inset-left))}.mobile-sheet.has-scrollable-body .modal-body{overflow-y:auto;-webkit-overflow-scrolling:touch}.mobile-sheet.has-modal-footer .modal-body{max-height:none}.mobile-sheet .detail-grid{grid-template-columns:1fr}.mobile-sheet .no-document{min-height:112px}.mobile-sheet .receipt-image{max-height:230px}.mobile-sheet .modal-footer{background:#fffdf9fa;padding:12px calc(20px + env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) calc(20px + env(safe-area-inset-left))}.mobile-sheet .detail-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.mobile-sheet .detail-actions button,.mobile-sheet .detail-actions a{min-width:0;padding-inline:8px}.mobile-sheet .detail-primary{min-width:0}.mobile-sheet .bill-arrival-form{min-height:0}}@media(max-width:360px){.quick-actions button{font-size:12px}.task-actions:has(.pay-button):has(.received-button) button,.task-actions:has(.pay-button):has(.complete-button) button{padding-inline:6px;font-size:10px}}@media(max-width:600px)and (max-height:650px){.content{padding-top:12px}.eyebrow,.page-title p,.glance-note{display:none}.page-title{min-height:34px}.page-title h1{font-size:24px}.at-a-glance{grid-template-columns:1fr;margin-top:8px}.next-due-card{padding-block:10px}.section-head{margin-bottom:8px}}@media(min-width:601px)and (max-width:1024px)and (max-height:600px){.content{padding:18px 24px 96px}.eyebrow,.page-title p{display:none}.page-title{min-height:40px}.at-a-glance{margin:10px 0}.task-actions button{min-height:44px}.modal-backdrop:not(.mobile-sheet-backdrop){top:var(--app-top, 0px);bottom:auto;display:block;width:100vw;height:var(--app-height, 100dvh);padding:0}.modal-shell:not(.mobile-sheet),.modal-shell-lg:not(.mobile-sheet){width:100%;max-width:none;min-height:var(--app-height, 100dvh);max-height:var(--app-height, 100dvh);border:0;border-radius:0;animation:none}.modal-shell:not(.mobile-sheet) .modal-header{padding:calc(16px + env(safe-area-inset-top)) calc(20px + env(safe-area-inset-right)) 14px calc(24px + env(safe-area-inset-left))}.modal-shell:not(.mobile-sheet) .modal-body{max-height:none;padding-right:calc(24px + env(safe-area-inset-right));padding-left:calc(24px + env(safe-area-inset-left))}.modal-shell:not(.mobile-sheet) .modal-footer{padding:14px calc(24px + env(safe-area-inset-right)) calc(14px + env(safe-area-inset-bottom)) calc(24px + env(safe-area-inset-left))}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
