:root{--ff-ink:#17241f;--ff-muted:#62716a;--ff-surface:#fffefa;--ff-surface-muted:#f0f3ed;--ff-canvas:#f5f7f2;--ff-primary:#176b52;--ff-primary-dark:#0f4e3d;--ff-primary-soft:#dceee6;--ff-accent:#e17851;--ff-accent-soft:#fae7de;--ff-border:#dbe3dc;--ff-focus:#61b693;--ff-shadow-sm:0 1px 2px #17241f0f, 0 4px 16px #17241f0d;--ff-shadow-lg:0 18px 50px #17241f24;--ff-space-1:.25rem;--ff-space-2:.5rem;--ff-space-3:.75rem;--ff-space-4:1rem;--ff-radius:.75rem;--ff-radius-lg:1.25rem}.admin-route{color:#182b26;font-synthesis:none;text-rendering:optimizelegibility;font-smooth:always;--admin-ink:#182b26;--admin-muted:#76847d;--admin-line:#e5ebe6;--admin-green:#237660;--admin-dark:#102b25;--admin-bg:#f5f7f4;--admin-card:#fff;--admin-shadow:0 8px 30px #1b382d0a;background:#f5f7f4;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400}.admin-route *{box-sizing:border-box}.admin-route{min-width:360px;min-height:100vh;margin:0}.admin-route button,.admin-route input,.admin-route select{font:inherit}.admin-route button{cursor:pointer}.admin-route button:disabled{cursor:wait;opacity:.6}.admin-route a{color:inherit}.admin-route .admin-shell{min-height:calc(100vh - 10rem);display:flex}.admin-route .admin-sidebar{background:var(--admin-dark);color:#e7f1ea;flex-direction:column;flex:0 0 220px;width:220px;min-height:calc(100vh - 10rem);padding:25px 15px 14px;display:flex;position:static}.admin-route .admin-brand{color:#fff;align-items:center;gap:11px;padding:0 10px 26px;font-size:14px;font-weight:750;text-decoration:none;display:flex}.admin-route .admin-brand small{color:#8fb4a6;letter-spacing:.15em;margin-top:4px;font-size:9px;display:block}.admin-route .admin-mark{color:#793e26;background:#f5c27d;border-radius:15px;place-items:center;width:48px;height:48px;font-family:Georgia,serif;font-size:27px;font-weight:700;display:grid;box-shadow:0 6px 16px #0000001f}.admin-route .small-mark{border-radius:12px;width:37px;height:37px;font-size:21px}.admin-route .workspace-label{color:#759488;letter-spacing:.16em;padding:15px 12px 9px;font-size:9px;font-weight:800}.admin-route .admin-sidebar nav{gap:4px;display:grid}.admin-route .admin-sidebar nav button{color:#b5c9c0;text-align:left;background:0 0;border:0;border-radius:9px;align-items:center;gap:12px;min-height:42px;padding:0 12px;font-size:12px;font-weight:600;transition:background .15s,color .15s;display:flex}.admin-route .admin-sidebar nav button:hover{color:#fff;background:#ffffff12}.admin-route .admin-sidebar nav button.selected{color:#fff;background:#1d493d;box-shadow:inset 3px 0 #76c8a3}.admin-route .nav-icon{color:#8daf9f;place-items:center;width:17px;font-size:16px;display:inline-grid}.admin-route .selected .nav-icon{color:#a4dfbe}.admin-route .nav-count{color:#fff;background:#8e5042;border-radius:20px;margin-left:auto;padding:2px 7px;font-size:10px;font-style:normal}.admin-route .sidebar-bottom{margin-top:auto}.admin-route .sidebar-bottom>a{color:#9eb5aa;margin:0 10px 19px;font-size:11px;text-decoration:none;display:block}.admin-route .sidebar-bottom>a:hover{color:#fff}.admin-route .sidebar-user{border-top:1px solid #ffffff1a;align-items:center;gap:9px;padding:12px 8px 1px;display:flex}.admin-route .sidebar-user>span{color:#245c48;background:#d7eadf;border-radius:50%;flex:none;place-items:center;width:30px;height:30px;font-size:10px;font-weight:800;display:grid}.admin-route .sidebar-user div{flex:1;min-width:0}.admin-route .sidebar-user strong,.admin-route .sidebar-user small{display:block}.admin-route .sidebar-user strong{color:#e6f0eb;font-size:10px}.admin-route .sidebar-user small{color:#789488;margin-top:3px;font-size:9px}.admin-route .sidebar-user button{color:#87a497;background:0 0;border:0}.admin-route .admin-main{flex:1;min-width:0;min-height:auto;margin-left:0}.admin-route .admin-topbar{z-index:4;border-bottom:1px solid var(--admin-line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;justify-content:space-between;align-items:center;gap:20px;min-height:65px;padding:0 34px;display:flex;position:sticky;top:0}.admin-route .breadcrumbs{color:#a1ada5;align-items:center;gap:10px;font-size:11px;display:flex}.admin-route .breadcrumbs b{color:#d2dbd5;font-weight:400}.admin-route .breadcrumbs strong{color:#344a41;font-weight:700}.admin-route .top-actions{align-items:center;gap:17px;display:flex}.admin-route .period-picker{color:var(--admin-muted);align-items:center;gap:8px;font-size:10px;display:flex}.admin-route .period-picker select{border:1px solid var(--admin-line);min-height:32px;color:var(--admin-ink);background:#fff;border-radius:7px;padding:0 26px 0 9px;font-size:10px}.admin-route .refresh-button{border:1px solid var(--admin-line);color:#41534a;background:#fff;border-radius:7px;align-items:center;gap:6px;min-height:33px;padding:0 10px;font-size:10px;font-weight:650;display:flex}.admin-route .refresh-button:hover{background:#f6faf7;border-color:#aacabb}.admin-route .refresh-button>span{color:var(--admin-green);font-size:16px}.admin-route .spin{animation:1s linear infinite spin}.admin-route .live-indicator{color:#6b8277;align-items:center;gap:6px;font-size:10px;display:flex}.admin-route .live-indicator i{background:#4eb181;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 3px #e3f3e9}.admin-route .admin-content{width:min(100%,1440px);margin:0 auto;padding:31px 34px 24px}.admin-route .page-heading{justify-content:space-between;align-items:end;gap:20px;margin-bottom:25px;display:flex}.admin-route .eyebrow{color:#719084;letter-spacing:.15em;margin:0 0 8px;font-size:9px;font-weight:800}.admin-route .page-heading h1{color:#18352b;letter-spacing:-.03em;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(26px,2.3vw,34px);font-weight:500}.admin-route .page-heading p:not(.eyebrow){color:#78877f;margin:8px 0 0;font-size:11px}.admin-route .sync-label{color:#95a29a;white-space:nowrap;font-size:9px}.admin-route .kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:15px;display:grid}.admin-route .kpi-card{border:1px solid var(--admin-line);background:var(--admin-card);min-width:0;box-shadow:var(--admin-shadow);border-radius:11px;padding:16px 17px 15px}.admin-route .kpi-top{color:#7f8e85;justify-content:space-between;align-items:center;gap:10px;font-size:10px;font-weight:650;display:flex}.admin-route .kpi-top i{color:#42876c;background:#edf6f0;border-radius:7px;place-items:center;width:25px;height:25px;font-size:14px;font-style:normal;font-weight:800;display:grid}.admin-route .kpi-card>strong{color:#193a2e;letter-spacing:-.045em;text-overflow:ellipsis;white-space:nowrap;margin-top:11px;font-size:clamp(21px,2vw,27px);font-weight:680;display:block;overflow:hidden}.admin-route .kpi-card>small{color:#97a29b;text-overflow:ellipsis;white-space:nowrap;margin-top:5px;font-size:9px;display:block;overflow:hidden}.admin-route .kpi-card.warning .kpi-top i{color:#b66b2e;background:#fff0e2}.admin-route .chart-grid{grid-template-columns:1.35fr 1fr;gap:14px;margin-bottom:14px;display:grid}.admin-route .content-grid{grid-template-columns:1.2fr .8fr;gap:14px;margin-bottom:14px;display:grid}.admin-route .panel{border:1px solid var(--admin-line);min-width:0;box-shadow:var(--admin-shadow);background:#fff;border-radius:11px;padding:17px}.admin-route .panel-heading{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:15px;display:flex}.admin-route .panel-heading h2{color:#253d33;margin:0;font-size:12px;font-weight:750}.admin-route .panel-heading p{color:#95a198;margin:5px 0 0;font-size:9px;line-height:1.5}.admin-route .chart-panel{min-height:208px}.admin-route .chart-key{color:#829087;white-space:nowrap;align-items:center;gap:5px;font-size:9px;display:inline-flex}.admin-route .chart-key i,.admin-route .chart-legend i{border-radius:2px;width:7px;height:7px}.admin-route .bar-chart{border-bottom:1px solid #edf1ed;align-items:stretch;gap:5px;height:111px;padding-top:4px;display:flex}.admin-route .bar-column{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:5px;min-width:0;display:flex}.admin-route .bar-stack{justify-content:center;align-items:flex-end;gap:2px;width:min(100%,15px);height:88px;display:flex}.admin-route .bar-stack i{opacity:.9;border-radius:3px 3px 0 0;width:100%;min-height:0;display:block}.admin-route .bar-stack .secondary-bar{opacity:.75;background:#e4a16d}.admin-route .bar-column>span{color:#9ba79f;white-space:nowrap;min-height:12px;font-size:8px}.admin-route .chart-legend{color:#819087;gap:12px;margin-top:9px;font-size:9px;display:flex}.admin-route .chart-legend>span{align-items:center;gap:5px;display:inline-flex}.admin-route .secondary-swatch{background:#e4a16d}.admin-route .chart-empty{color:#9ba79f;text-align:center;place-items:center;height:115px;font-size:10px;display:grid}.admin-route .text-button{color:#38836a;background:0 0;border:0;flex:none;font-size:9px;font-weight:700}.admin-route .text-button:hover{color:#164d3a;text-decoration:underline}.admin-route .ai-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 17px;display:grid}.admin-route .ai-summary>div{min-width:0}.admin-route .ai-summary span{color:#95a198;font-size:9px;display:block}.admin-route .ai-summary strong{color:#244236;text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:14px;font-weight:700;display:block;overflow:hidden}.admin-route .ai-summary strong small{color:#8fa094;font-size:9px;font-weight:500}.admin-route .model-caption{color:#9aa69f;text-overflow:ellipsis;white-space:nowrap;border-top:1px solid #eef1ee;margin:14px 0 0;padding-top:10px;font-size:9px;overflow:hidden}.admin-route .table-wrap{width:100%;overflow:auto}.admin-route table{border-collapse:collapse;text-align:left;white-space:nowrap;width:100%}.admin-route th{color:#9aa69f;letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid #edf1ed;padding:9px;font-size:8px;font-weight:750}.admin-route td{color:#5b6c62;border-bottom:1px solid #f0f3f0;padding:11px 9px;font-size:9px}.admin-route tbody tr:last-child td{border-bottom:0}.admin-route td strong{color:#31483c;font-size:9px;font-weight:700;display:block}.admin-route td small{color:#9ca8a0;margin-top:4px;font-size:8px;display:block}.admin-route td code{color:#566d60;font-family:SFMono-Regular,Consolas,monospace;font-size:8px}.admin-route .danger-text{color:#b55345!important}.admin-route .empty-cell{color:#98a49b;text-align:center;height:70px}.admin-route .household-status{color:#47745c;text-transform:capitalize;background:#eff6f1;border-radius:999px;padding:4px 7px;font-size:8px;font-weight:750;display:inline-flex}.admin-route .household-status-disabled{color:#a4473a;background:#fff0ed}.admin-route .household-disable-button{color:#a54c3d;background:#fff7f5;border:1px solid #f0d7d2;border-radius:5px;padding:5px 8px;font-size:8px;font-weight:700}.admin-route .household-disable-button:hover{background:#fff0ed}.admin-route .user-invite-box{background:#f8faf8;border:1px solid #e5ebe6;border-radius:7px;grid-template-columns:minmax(260px,.8fr) minmax(240px,1.2fr);align-items:end;gap:5px 20px;margin-bottom:14px;padding:12px;display:grid}.admin-route .user-invite-form>label{color:#40594b;margin-bottom:5px;font-size:9px;font-weight:700;display:block}.admin-route .user-invite-form>div{gap:6px;display:flex}.admin-route .user-invite-form input{color:#40574b;background:#fff;border:1px solid #dfe7e0;border-radius:5px;width:100%;min-width:0;height:31px;padding:0 8px;font-size:10px}.admin-route .user-invite-form button{color:#fff;background:#237660;border:1px solid #237660;border-radius:5px;flex:none;padding:0 11px;font-size:9px;font-weight:700}.admin-route .user-invite-box>p{color:#839087;margin:0;font-size:9px;line-height:1.5}.admin-route .user-invite-error{color:#a4473a;grid-column:1/-1;font-size:9px}.admin-route .household-detail-row>td{white-space:normal;padding:0 9px 12px}.admin-route .household-members-panel{border:1px solid var(--admin-line);background:#f8faf8;border-radius:7px;padding:12px}.admin-route .household-members-panel>strong{margin-bottom:8px}.admin-route .household-members-panel ul{gap:6px;margin:0;padding:0;list-style:none;display:grid}.admin-route .household-members-panel li{color:#697a70;background:#fff;border-radius:5px;grid-template-columns:minmax(170px,1fr) 65px 75px;align-items:center;gap:10px;padding:7px 9px;font-size:9px;display:grid}.admin-route .household-members-panel li b{color:#31483c;font-weight:700}.admin-route .household-members-panel li small{margin-top:2px}.admin-route .household-members-panel>p{color:var(--admin-muted);margin:0;font-size:9px}.admin-route .ai-detail-panel{margin-bottom:14px}.admin-route .actor-panel{margin-top:14px}.admin-route .actor-filters{flex:none;gap:8px;display:flex}.admin-route .actor-filters label{color:#91a097;gap:3px;font-size:8px;display:grid}.admin-route .actor-filters select{color:#53675b;background:#fff;border:1px solid #e5ebe6;border-radius:5px;max-width:145px;height:27px;padding:0 22px 0 7px;font-size:8px}.admin-route .ai-pill{color:#40856a;letter-spacing:.08em;background:#f2faf5;border:1px solid #d8ebe0;border-radius:20px;flex:none;padding:5px 8px;font-size:8px;font-weight:800}.admin-route .ai-detail-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.admin-route .ai-detail-grid .kpi-card{box-shadow:none}.admin-route .cost-note{color:#78877f;background:#f5f8f5;border-radius:7px;margin:15px 0 0;padding:11px 12px;font-size:9px;line-height:1.6}.admin-route .budget-panel{margin-bottom:14px}.admin-route .budget-month{color:#8a9890;flex:none;font-size:9px}.admin-route .budget-scope-heading{color:#4c6758;border-top:1px solid #edf1ed;align-items:center;gap:9px;margin:12px 0 0;padding:10px 9px 7px;font-size:9px;font-weight:750;display:flex}.admin-route .budget-scope-heading small{color:#a0aaa3;font-size:8px;font-weight:450}.admin-route .user-budget-heading{margin-top:17px}.admin-route .budget-editor{align-items:center;gap:4px;width:122px;display:flex}.admin-route .budget-editor>span{color:#829087;font-size:9px}.admin-route .budget-editor input{color:#40574b;border:1px solid #e6ece7;border-radius:5px;width:59px;height:26px;padding:0 3px;font-size:9px}.admin-route .budget-editor input::-webkit-inner-spin-button{appearance:none}.admin-route .budget-editor button{color:#388065;background:#f5faf6;border:1px solid #d8e8de;border-radius:5px;height:25px;padding:0 6px;font-size:8px;font-weight:700}.admin-route .budget-cell{color:#73857a;align-items:center;gap:7px;min-width:75px;font-size:8px;display:flex}.admin-route .budget-cell>i{background:#eaf0eb;border-radius:8px;width:55px;height:4px;overflow:hidden}.admin-route .budget-cell>i b{border-radius:inherit;background:#64aa82;height:100%;display:block}.admin-route .budget-cell>i b.near-limit{background:#d88a4b}.admin-route .error-total{color:#aa594d;flex:none;font-size:9px}.admin-route .status-code{color:#b55145;background:#fff0ed;border-radius:5px;place-items:center;min-width:32px;height:21px;font-size:9px;font-weight:800;display:inline-grid}.admin-route .recent-error-list{display:grid}.admin-route .recent-error{border-bottom:1px solid #eff2ef;align-items:flex-start;gap:9px;padding:10px 0;display:flex}.admin-route .recent-error:last-child{border-bottom:0}.admin-route .recent-error>div{flex:1;min-width:0}.admin-route .recent-error strong,.admin-route .recent-error code,.admin-route .recent-error small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.admin-route .recent-error strong{color:#79584e;font-size:9px}.admin-route .recent-error code{color:#708178;margin-top:4px;font-size:8px}.admin-route .recent-error small{color:#a0aaa4;margin-top:4px;font-size:8px}.admin-route .recent-error time{color:#9aa69f;white-space:nowrap;font-size:8px}.admin-route .quiet-state{color:#799084;align-content:center;justify-items:center;gap:6px;min-height:165px;display:grid}.admin-route .quiet-state>span{color:#368467;background:#edf7f0;border-radius:50%;place-items:center;width:29px;height:29px;font-weight:800;display:grid}.admin-route .quiet-state strong{color:#516b5d;font-size:10px}.admin-route .quiet-state small{color:#a0aaa4;font-size:8px}.admin-route .note-list{color:#75867c;gap:11px;margin:0;padding-left:15px;font-size:9px;line-height:1.5;display:grid}.admin-route .note-list li::marker{color:#71aa8c}.admin-route .admin-footer{color:#a1aba4;border-top:1px solid #e7ece7;justify-content:space-between;gap:12px;margin-top:20px;padding:12px 2px 0;font-size:8px;display:flex}.admin-route .error-callout,.admin-route .success-callout{color:#955247;background:#fff8f6;border:1px solid #f0d7d2;border-radius:8px;margin:0 0 14px;padding:11px 13px;font-size:10px;position:relative}.admin-route .error-callout button{float:right;color:#a54e41;background:0 0;border:0;font-size:9px;font-weight:700}.admin-route .success-callout{color:#408065;background:#f2faf4;border-color:#d7e9dc}.admin-route .loading-panel{border:1px solid var(--admin-line);color:#839289;background:#fff;border-radius:11px;justify-content:center;align-items:center;gap:10px;min-height:180px;font-size:10px;display:flex}.admin-route .loader{border:2px solid #dbe9df;border-top-color:#368568;border-radius:50%;width:17px;height:17px;animation:.8s linear infinite spin}.admin-route .admin-login{flex-direction:column;justify-content:center;width:min(92vw,440px);min-height:100vh;margin:0 auto;padding:48px 28px;display:flex}.admin-route .admin-login .admin-mark{margin-bottom:29px}.admin-route .admin-login h1{color:#17362b;letter-spacing:-.03em;margin:0;font-family:Georgia,serif;font-size:35px;font-weight:500}.admin-route .admin-login>p:not(.eyebrow){color:#76867d;margin:11px 0 22px;font-size:12px;line-height:1.7}.admin-route .primary-button{color:#fff;background:#1d725b;border:0;border-radius:7px;justify-content:space-between;align-items:center;min-height:43px;padding:0 14px;font-size:11px;font-weight:700;display:flex}.admin-route .primary-button:hover{background:#155e4a}.admin-route .back-link{color:#75877d;width:-moz-fit-content;width:fit-content;margin-top:22px;font-size:10px;text-decoration:none}.admin-route .sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:1100px){.admin-route .kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-route .admin-content,.admin-route .admin-topbar{padding-inline:24px}.admin-route .ai-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:780px){.admin-route{min-width:320px}.admin-route .admin-sidebar{flex:initial;width:auto;min-height:auto;padding:12px;position:static}.admin-route .admin-brand{padding:0 7px 10px}.admin-route .workspace-label,.admin-route .sidebar-bottom,.admin-route .nav-icon{display:none!important}.admin-route .admin-sidebar nav{gap:5px;padding:0 0 1px;display:flex;overflow-x:auto}.admin-route .admin-sidebar nav button{flex:none;min-height:34px;padding-inline:10px;font-size:10px}.admin-route .admin-sidebar nav button.selected{box-shadow:inset 0 -2px #76c8a3}.admin-route .admin-main{margin-left:0}.admin-route .admin-shell{flex-direction:column;min-height:auto}.admin-route .admin-topbar{min-height:52px;padding-inline:14px}.admin-route .top-actions{gap:8px}.admin-route .period-picker>span,.admin-route .live-indicator{display:none}.admin-route .refresh-button{min-height:31px}.admin-route .admin-content{padding:21px 14px 17px}.admin-route .page-heading{align-items:flex-start}.admin-route .sync-label{display:none}.admin-route .chart-grid,.admin-route .content-grid{grid-template-columns:1fr}.admin-route .chart-panel{min-height:190px}.admin-route .admin-footer{flex-direction:column}.admin-route .budget-panel{padding:13px}.admin-route .panel-heading:has(.actor-filters){flex-direction:column}.admin-route .actor-filters{width:100%}.admin-route .actor-filters label{flex:1;min-width:0}.admin-route .actor-filters select{width:100%;max-width:none}.admin-route .user-invite-box{grid-template-columns:minmax(0,1fr)}}@media (max-width:480px){.admin-route .kpi-grid{gap:8px}.admin-route .kpi-card{padding:12px}.admin-route .kpi-card>strong{font-size:20px}.admin-route .kpi-card>small{font-size:8px}.admin-route .panel{padding:13px}.admin-route .breadcrumbs{font-size:9px}.admin-route .period-picker select{max-width:98px}.admin-route .refresh-button{padding-inline:7px;font-size:9px}}@media (prefers-reduced-motion:reduce){.admin-route *,.admin-route :before,.admin-route :after{scroll-behavior:auto!important;animation-duration:.01ms!important}}*{box-sizing:border-box}html{background:var(--ff-canvas);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;min-width:20rem}body{min-height:100vh;color:var(--ff-ink);background:radial-gradient(circle at 8% 2%, #dceee6bf, transparent 24rem), radial-gradient(circle at 94% 14%, #fae7de8c, transparent 22rem), var(--ff-canvas);-webkit-font-smoothing:antialiased;margin:0;font:1rem/1.6 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:var(--ff-primary);text-underline-offset:.18em}h1,h2,h3{color:var(--ff-ink);letter-spacing:-.025em;text-wrap:balance;margin-block:0 .65em;font-weight:750;line-height:1.15}h1{font-size:clamp(2rem,4vw,3.15rem)}h2{margin-top:1.5em;font-size:clamp(1.25rem,2.2vw,1.65rem)}h3{font-size:1.05rem}p{margin-block:.6rem 1rem}.app-header{z-index:5;background:linear-gradient(105deg, #ffffff12, transparent 40%), var(--ff-primary-dark);color:#fff;border-bottom:1px solid #ffffff1f;justify-content:space-between;align-items:center;gap:1.5rem;min-height:5.25rem;padding:.85rem max(1rem,50vw - 38rem);display:flex;position:relative;box-shadow:0 8px 30px #0f4e3d1f}.brand{color:#fff;align-items:center;gap:.8rem;text-decoration:none;display:inline-flex}.brand:hover .brand-mark{transform:rotate(-4deg)scale(1.04)}.brand-mark{background:linear-gradient(145deg, #f6ad78, var(--ff-accent));border:1px solid #ffffff73;border-radius:.9rem .9rem .9rem .35rem;place-items:center;width:2.8rem;height:2.8rem;font-family:Georgia,serif;font-size:1.65rem;font-weight:700;line-height:1;transition:transform .16s;display:grid;box-shadow:0 7px 18px #0000002e}.brand-copy{font-family:Georgia,Times New Roman,serif;font-size:1.42rem;font-weight:700;line-height:1.05;display:grid}.brand-copy small{color:#ffffffb3;letter-spacing:.08em;text-transform:uppercase;margin-top:.28rem;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.7rem;font-weight:550}.beta-badge{color:#fff3d9;letter-spacing:.08em;text-transform:uppercase;background:#ffffff21;border:1px solid #ffffff5c;border-radius:999px;align-self:flex-start;margin-top:.1rem;padding:.16rem .5rem;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.66rem;font-weight:800;line-height:1.35}.header-tagline{color:#ffffffd1;letter-spacing:.02em;align-items:center;gap:.55rem;font-size:.88rem;font-weight:650;display:inline-flex}.header-tagline>span{background:#9fe1bd;border-radius:999px;width:.5rem;height:.5rem;box-shadow:0 0 0 .24rem #9fe1bd26}main{width:min(76rem,100% - 2rem);margin:clamp(1rem,3vw,2.5rem) auto}.app-main{padding-bottom:3rem}.app-nav{z-index:10;width:-moz-fit-content;width:fit-content;max-width:100%;box-shadow:var(--ff-shadow-sm);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffefae0;border:1px solid #dbe3dcd9;border-radius:999px;flex-wrap:wrap;gap:.3rem;margin:0 auto 1.25rem;padding:.38rem;display:flex;position:sticky;top:.75rem}.app-nav button{min-height:2.35rem;color:var(--ff-muted);box-shadow:none;background:0 0;border:0;border-radius:999px;padding:.42rem .86rem;font-size:.88rem;font-weight:700}.app-nav button:hover{background:var(--ff-surface-muted);color:var(--ff-primary-dark);transform:none}.app-nav button[aria-current=page]{background:var(--ff-primary);color:#fff;box-shadow:0 5px 14px #176b5238}.app-nav button:last-child{color:#a1442d}.household-context{background:var(--ff-primary-soft);width:-moz-fit-content;width:fit-content;color:var(--ff-primary-dark);border-radius:999px;margin:0 0 1rem;padding:.35rem .72rem;font-size:.85rem}button,input,textarea,select{font:inherit}button,.button-link{border:1px solid var(--ff-primary);border-radius:var(--ff-radius);background:var(--ff-primary);color:#fff;cursor:pointer;justify-content:center;align-items:center;min-height:2.75rem;margin:.25rem .35rem .25rem 0;padding:.58rem 1rem;font-weight:700;line-height:1.25;text-decoration:none;transition:transform .14s,box-shadow .14s,background .14s;display:inline-flex;box-shadow:0 5px 14px #176b5224}button:hover,.button-link:hover{background:var(--ff-primary-dark);transform:translateY(-1px);box-shadow:0 8px 20px #176b5233}button:active,.button-link:active{transform:translateY(0)}button:disabled{opacity:.52;cursor:not-allowed;transform:none}label{max-width:38rem;color:var(--ff-ink);gap:.38rem;margin-block:.85rem;font-size:.92rem;font-weight:700;display:grid}input,textarea,select{border:1px solid var(--ff-border);border-radius:var(--ff-radius);width:100%;min-height:2.85rem;color:inherit;background:#fff;outline:0;padding:.68rem .78rem;font-weight:450;transition:border-color .14s,box-shadow .14s}textarea{resize:vertical;min-height:7rem}input:hover,textarea:hover,select:hover{border-color:#aebdb3}input:focus,textarea:focus,select:focus{border-color:var(--ff-primary);box-shadow:0 0 0 .22rem #61b69333}input[type=checkbox],input[type=radio]{width:1.1rem;min-height:1.1rem;accent-color:var(--ff-primary)}.app-main>section,.auth-page,dialog{border-radius:var(--ff-radius-lg);box-shadow:var(--ff-shadow-sm);background:#fffefaf0;border:1px solid #dbe3dceb}.app-main>section{box-sizing:border-box;width:100%;max-width:none;margin-inline:auto;padding:clamp(1.25rem,3.5vw,2.5rem)}section>h1:first-child,.auth-page>h1:first-child{max-width:18ch}section>h1:first-child:after,.auth-page>h1:first-child:after{background:var(--ff-accent);content:"";border-radius:999px;width:3.25rem;height:.28rem;margin-top:.7rem;display:block}form{border:1px solid var(--ff-border);background:var(--ff-surface-muted);border-radius:1rem;max-width:48rem;margin:1.25rem auto;padding:clamp(1rem,2.5vw,1.5rem)}fieldset{border:1px solid var(--ff-border);background:#ffffffb8;border-radius:1rem;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:.55rem;margin:1rem 0;padding:1rem;display:grid}.recipe-suggestions-form{width:100%;max-width:none;box-shadow:none;background:0 0;border:0;padding:0}.recipe-category-filter{box-sizing:border-box;width:100%}.category-filter-clear{grid-column:1/-1;justify-self:start;min-height:2.3rem;margin:0;padding:.4rem .7rem;font-size:.82rem}legend{color:var(--ff-primary-dark);padding-inline:.4rem;font-weight:750}.guidance-option{cursor:pointer;background:#fff9;border:1px solid #0000;border-radius:.75rem;grid-template-columns:1.2rem 1fr;align-items:start;gap:.65rem;min-width:0;max-width:none;margin:0;padding:.68rem;transition:border-color .14s,background .14s;display:grid}.guidance-option:hover{border-color:var(--ff-border);background:#fff}.guidance-option input{margin-top:.2rem}.guidance-option span,.guidance-option small{display:block}.guidance-option small,.instruction{color:var(--ff-muted);font-weight:450}.day-picker{grid-template-columns:repeat(7,minmax(5.5rem,1fr));gap:.65rem;padding:1rem;overflow-x:auto}.day-option{border:1px solid var(--ff-border);min-width:5.5rem;min-height:4.6rem;color:var(--ff-muted);text-align:center;background:#fff;border-radius:.9rem;grid-template-columns:1fr;align-content:center;justify-items:center;padding:.65rem .4rem;transition:border-color .14s,background .14s,color .14s,transform .14s;display:grid;position:relative}.day-option:hover{border-color:var(--ff-primary);color:var(--ff-primary-dark);transform:translateY(-1px)}.day-option:has(input:checked){border-color:var(--ff-primary);background:var(--ff-primary);color:#fff;box-shadow:0 7px 16px #176b522e}.day-option input{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.day-option input:focus-visible+span{outline:3px solid var(--ff-focus);outline-offset:4px}.day-option span{font-weight:750}.checkbox-option{flex-direction:row;align-items:flex-start;gap:.65rem;max-width:none;display:flex}.checkbox-option input[type=checkbox]{flex:0 0 1.1rem;margin:.25rem 0 0}.checkbox-option span{flex:1}.members-heading{justify-content:space-between;align-items:start;gap:1rem;margin-top:2rem;display:flex}.household-setup{max-width:64rem!important}.household-setup>form,.household-setup>.members-heading,.household-setup>.member-list,.household-setup>.member-actions{width:min(100%,58rem);max-width:58rem;margin-inline:auto}.household-details-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem 1rem;max-width:none;display:grid}.household-details-form>label:first-of-type{grid-column:1/-1}.household-details-form label{margin:0}.household-details-form button{width:-moz-fit-content;width:fit-content;margin:0}.members-title-row{align-items:center;gap:.7rem;display:flex}.members-title-row h2{margin-bottom:0}.members-heading h2{margin-top:0;margin-bottom:.15rem}.member-count{background:var(--ff-primary-soft);color:var(--ff-primary-dark);border-radius:999px;flex:none;padding:.32rem .65rem;font-size:.78rem;font-weight:750}.member-list{gap:.55rem;max-width:48rem;margin:1rem 0 1.25rem;padding:0;list-style:none;display:grid}.member-row{border:1px solid var(--ff-border);background:#fff;border-radius:.9rem;align-items:center;gap:.8rem;min-height:4rem;margin:0;padding:.65rem .8rem;display:flex}.member-avatar{background:var(--ff-accent-soft);color:#9d442a;border-radius:.75rem;flex:none;place-items:center;width:2.4rem;height:2.4rem;font-family:Georgia,serif;font-size:1.1rem;font-weight:700;display:grid}.member-details{flex:1;min-width:0;display:grid}.member-details small{color:var(--ff-muted);font-size:.78rem}.member-status,.member-owner-label{text-transform:capitalize;border-radius:999px;padding:.25rem .55rem;font-size:.72rem;font-weight:750}.member-status-active{background:var(--ff-primary-soft);color:var(--ff-primary-dark)}.member-status-invited{color:#886020;background:#fff1cf}.member-status-revoked{color:#963f2d;background:#f9dfd9}.member-owner-label{border:1px solid var(--ff-border);color:var(--ff-muted)}.member-actions{background:var(--ff-surface-muted);grid-template-columns:minmax(12rem,1fr) minmax(12rem,1fr) auto;align-items:end;gap:.8rem;max-width:48rem;margin-top:1rem;display:grid}.member-actions>div{grid-column:1/-1}.member-actions h3{margin:0}.member-actions .instruction{margin-bottom:0}.member-actions label{margin:0}.member-actions button{margin-bottom:0}.cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));gap:1rem;margin-top:1.4rem;padding:0;list-style:none;display:grid}.cards>li,.card{border:1px solid var(--ff-border);background:#fff;border-radius:1rem;margin:0;padding:1.25rem;transition:transform .16s,box-shadow .16s,border-color .16s;position:relative;overflow:hidden;box-shadow:0 7px 24px #17241f0f}.cards>li:before,.card:before{background:linear-gradient(var(--ff-accent), #f4bc78);content:"";width:.24rem;position:absolute;inset:0 auto 0 0}.cards>li:hover,.card:hover{border-color:#bdcdc3;transform:translateY(-2px);box-shadow:0 14px 32px #17241f1a}.cards>li>:first-child,.card>:first-child{margin-top:0}.cards>li>:last-child,.card>:last-child{margin-bottom:0}.recipe-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1.5rem;display:grid}.recipe-library-toolbar{flex-wrap:wrap;align-items:end;gap:.75rem;margin-block:1rem;display:flex}.recipe-search-control{flex:20rem;min-width:min(100%,18rem);max-width:34rem;margin:0}.recipe-library-actions{flex-wrap:wrap;gap:.25rem;display:flex}.recipe-library-actions button{margin-bottom:0}.weekly-plan-progress{background:linear-gradient(105deg,#f0f8f2,#fffdf8);border:1px solid #c8ded1;border-radius:.9rem;grid-template-columns:minmax(11rem,auto) minmax(8rem,1fr) auto;align-items:center;gap:1rem;margin-block:.5rem 1.25rem;padding:.85rem 1rem;display:grid}.weekly-plan-progress-copy,.weekly-plan-progress-remaining{gap:.12rem;display:grid}.weekly-plan-progress-copy>span{color:var(--ff-muted);letter-spacing:.05em;text-transform:uppercase;font-size:.75rem;font-weight:700}.weekly-plan-progress-copy strong,.weekly-plan-progress-remaining strong{color:var(--ff-primary-dark);font-size:.95rem}.weekly-plan-progress progress{width:100%;height:.72rem;accent-color:var(--ff-primary)}.weekly-plan-progress-remaining{text-align:right;justify-items:end}.weekly-plan-progress-remaining small{color:var(--ff-muted);font-size:.72rem}.recipe-generation-panel{border:1px solid var(--ff-border);border-radius:var(--ff-radius);background:var(--ff-surface-muted);margin-block:1rem;padding:.85rem 1rem}.recipe-generation-panel summary{color:var(--ff-primary-dark);cursor:pointer;font-weight:750}.recipe-generation-panel>p{max-width:48rem;color:var(--ff-muted);margin-block:.6rem;font-size:.92rem}.recipe-generation-panel form{margin:0}.recipe-generation-panel .recipe-category-filter{margin-block:.75rem}.recipe-grid .card{min-height:12rem}.recipe-grid .card h2{margin-bottom:.75rem;font-size:clamp(1.05rem,1.55vw,1.3rem);line-height:1.22}.recipe-card-heading{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.75rem;display:flex}.recipe-card-heading h2{flex:1;min-width:0;margin:0;font-size:clamp(1.05rem,1.55vw,1.3rem);line-height:1.22}.recipe-card-icon-actions{flex:none;gap:.4rem;display:flex}.cards .recipe-card-heading h2{font-size:1.2rem}.recipe-favourite-toggle,.recipe-quick-add-toggle{border:1px solid var(--ff-border);width:2.5rem;min-width:2.5rem;height:2.5rem;min-height:2.5rem;box-shadow:none;background:#fff;border-radius:50%;flex:none;place-items:center;margin:-.2rem -.2rem 0 0;padding:0;line-height:1;display:grid}.recipe-favourite-toggle{color:#ad4f49;font-size:1.55rem}.recipe-quick-add-toggle{color:var(--ff-primary);font-size:1.4rem;font-weight:800}.recipe-quick-add-added{color:var(--ff-primary-dark);background:#edf7f1;border-color:#bcd8ca}.recipe-favourite-toggle[aria-pressed=true]{color:#b63532;background:#fff2ef;border-color:#f2d2ce}.recipe-favourite-toggle:hover:not(:disabled){box-shadow:none;background:#fff2ef;border-color:#d7968d;transform:scale(1.06)}.recipe-quick-add-toggle:hover:not(:disabled){box-shadow:none;background:#edf7f1;border-color:#8ebaa1;transform:scale(1.06)}.recipe-grid .card p{font-size:.9rem;line-height:1.5}.recipe-card-select{min-height:auto;box-shadow:none;color:var(--ff-ink);font-size:inherit;text-align:left;background:0 0;border:0;margin:0;padding:0;display:inline}.recipe-card-select:hover{box-shadow:none;color:var(--ff-primary);background:0 0;text-decoration:underline;transform:none}.status{border:1px solid #bcd8ca;border-left:.3rem solid var(--ff-primary);border-radius:.25rem var(--ff-radius) var(--ff-radius) .25rem;max-width:52rem;color:var(--ff-primary-dark);box-shadow:var(--ff-shadow-sm);background:#edf7f1;padding:.85rem 1rem}.candidate-plan-options{flex-wrap:wrap;align-items:end;gap:.6rem;display:flex}.candidate-plan-options label,.plan-history-control{min-width:9rem;margin-block:.4rem}.app-main>section>ol{counter-reset:meal-slot;gap:.8rem;padding:0;list-style:none;display:grid}.app-main>section>ol>li{border:1px solid var(--ff-border);counter-increment:meal-slot;background:#fff;border-radius:1rem;margin:0;padding:1rem 1rem 1rem 3.5rem;position:relative}.app-main>section>ol>li:before{background:var(--ff-primary-soft);width:1.85rem;height:1.85rem;color:var(--ff-primary-dark);content:counter(meal-slot);border-radius:.6rem;place-items:center;font-size:.78rem;font-weight:800;display:grid;position:absolute;top:.85rem;left:.9rem}.plan-week-grid{grid-template-columns:repeat(7,minmax(9rem,1fr));grid-auto-rows:1fr;align-items:stretch;gap:.75rem;padding-bottom:.35rem;overflow-x:auto}.app-main>section>ol.plan-week-grid>li{box-sizing:border-box;flex-direction:column;gap:.65rem;min-width:9rem;min-height:15rem;padding:.75rem;display:flex}.app-main>section>ol.plan-week-grid>li:before{display:none}.plan-day-toggle{border-bottom:1px solid var(--ff-border);max-width:none;color:var(--ff-primary-dark);align-items:center;gap:.5rem;margin:0;padding-bottom:.55rem;font-size:.86rem;display:flex}.plan-day-toggle input{flex:0 0 1.1rem}.plan-day-card-unselected{background:var(--ff-surface-muted)!important;border-style:dashed!important}.plan-day-card-drop-target{box-shadow:0 0 0 .2rem #176b5229;border-color:var(--ff-primary)!important}.plan-day-state{color:var(--ff-muted);font-size:.86rem}.plan-meal-name{min-height:4.2rem;font-size:.88rem;line-height:1.4}.plan-recipe-link{width:100%;min-height:4.2rem;box-shadow:none;color:var(--ff-ink);cursor:grab;font:inherit;text-align:left;background:0 0;border:0;border-radius:0;margin:0;padding:0;font-size:.88rem;font-weight:750;line-height:1.4;display:block}.plan-recipe-link:hover{box-shadow:none;color:var(--ff-primary);background:0 0;text-decoration:underline;transform:none}.plan-recipe-link:active{cursor:grabbing}.plan-week-grid .meal-portions-control{width:100%;color:var(--ff-muted);gap:.25rem;margin:auto 0 0;font-size:.78rem;font-weight:700;display:grid}.plan-week-grid .meal-portions-control input{width:100%;min-height:2.35rem;padding:.4rem .55rem}.plan-week-grid .meal-portions-control small{color:var(--ff-muted);font-size:.68rem;font-weight:450}.plan-week-grid details,.plan-week-grid button{width:100%}.plan-week-grid button,.plan-week-grid select{margin-inline:0}.plan-week-grid>li>button:not(.plan-recipe-link){min-height:2.35rem;margin-block:0;padding:.42rem .55rem;font-size:.78rem}.plan-mobile-move-button,.plan-mobile-move-target,.plan-move-cancel{display:none}.plan-actions{flex-wrap:wrap;justify-content:center;gap:.55rem;margin-top:1rem;display:flex}.plan-actions button{margin:0}details{border-radius:var(--ff-radius);background:var(--ff-surface-muted);margin-block:.65rem;padding:.65rem .8rem}summary{cursor:pointer;color:var(--ff-primary-dark);font-weight:700}.shopping-list-items{padding:0;list-style:none}.shopping-list-items>li{border:1px solid var(--ff-border);border-radius:var(--ff-radius);background:#fff;margin-block:.55rem;padding:.6rem .75rem}.shopping-item{margin:0}.shopping-quantity{color:var(--ff-muted);margin-left:1.75rem;font-size:.88rem;display:block}.recipe-image{object-fit:cover;border-radius:1rem;width:min(100%,38rem);max-height:25rem;margin:1.25rem 0;display:block;box-shadow:0 12px 30px #17241f1f}.servings-control{gap:.35rem;width:-moz-fit-content;width:fit-content;min-width:11rem;margin-block:1rem}.servings-input{color:var(--ff-muted);align-items:center;gap:.55rem;font-size:.88rem;font-weight:550;display:inline-flex}.servings-input input{text-align:center;width:4.8rem;min-height:2.45rem}dialog,.recipe-edit-form,.recipe-detail-dialog{z-index:20;width:min(44rem,100% - 2rem);max-width:none;max-height:90vh;box-shadow:var(--ff-shadow-lg);margin:0;padding:clamp(1.25rem,3vw,2rem);position:fixed;top:5vh;left:50%;overflow:auto;transform:translate(-50%)}.recipe-detail-dialog{width:min(52rem,100% - 2rem)}dialog main{width:100%;margin:0}dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0a1c158c}.dialog-actions{border-top:1px solid var(--ff-border);flex-wrap:wrap;align-items:end;gap:.45rem;margin-top:1.25rem;padding-top:1rem;display:flex}.recipe-detail-dialog .dialog-actions label{min-width:9rem;margin:0;font-size:.78rem}.recipe-detail-dialog .dialog-actions input,.recipe-detail-dialog .dialog-actions select{min-height:2.35rem;padding:.45rem .58rem;font-size:.88rem}.recipe-detail-dialog .dialog-actions button{min-height:2.35rem;margin:0;padding:.42rem .72rem;font-size:.84rem;box-shadow:0 3px 9px #176b521f}.auth-page{max-width:58rem;min-height:28rem;padding:clamp(2rem,7vw,5rem);position:relative;overflow:hidden}.auth-page:after{border:4rem solid var(--ff-accent-soft);content:"";opacity:.65;pointer-events:none;border-radius:50%;width:20rem;height:20rem;position:absolute;bottom:-7rem;right:-5rem}.auth-page>*{z-index:1;position:relative}.auth-page h1{max-width:16ch;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.4rem,6vw,4.6rem)}.auth-page>p:not(.status){max-width:37rem;color:var(--ff-muted);font-size:1.1rem}ul{padding-left:1.25rem}li{margin-block:.65rem}.skip-link{position:absolute;left:-9999px}.skip-link:focus{z-index:100;border-radius:var(--ff-radius);color:#000;background:#fff;padding:.6rem .8rem;position:fixed;top:1rem;left:1rem}:focus-visible{outline:3px solid var(--ff-focus);outline-offset:3px}@media (max-width:52rem){.weekly-plan-progress{grid-template-columns:minmax(0,1fr) auto;gap:.4rem .75rem}.weekly-plan-progress progress{grid-area:2/1/auto/-1}.weekly-plan-progress-remaining{grid-area:1/2}.app-nav{border-radius:1rem;width:100%;position:static}.app-nav button{flex:auto}.plan-mobile-move-button,.plan-mobile-move-target{width:100%;min-height:2.35rem;margin:0;padding:.42rem .55rem;font-size:.8rem;display:inline-flex}.plan-mobile-move-button{border-color:var(--ff-border);color:var(--ff-primary-dark);box-shadow:none;background:#fff}.plan-mobile-move-button[aria-pressed=true],.plan-mobile-move-target{border-color:var(--ff-primary);background:var(--ff-primary);color:#fff}.plan-move-cancel{min-height:2rem;margin:.25rem .35rem;padding:.25rem .6rem;font-size:.8rem;display:inline-flex}}@media (max-width:40rem){.app-header{min-height:4.6rem}.header-tagline,.brand-copy small{display:none}main{width:min(100% - 1rem,76rem);margin-block:.75rem}.app-main>section{padding:1.1rem}.app-nav{gap:.2rem;padding:.3rem}.app-nav button{min-width:5rem;padding-inline:.58rem;font-size:.82rem}fieldset,.household-details-form{grid-template-columns:1fr}.household-details-form>label:first-of-type{grid-column:auto}.day-picker{grid-template-columns:repeat(7,minmax(5.5rem,1fr))}.cards,.recipe-grid,.member-actions{grid-template-columns:1fr}.member-actions>div{grid-column:auto}.member-actions button{width:100%}.member-owner-label{display:none}dialog,.recipe-edit-form,.recipe-detail-dialog{width:calc(100% - 1rem);max-height:calc(100vh - 1rem);padding:1rem;top:.5rem}.auth-page{min-height:calc(100vh - 6rem);padding:2rem 1.25rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
