:root{--bg: #f5efe4;--bg-accent: #e5dbc8;--panel: rgba(255, 252, 247, .9);--panel-strong: #fffaf1;--line: rgba(84, 58, 32, .14);--text: #2d241b;--muted: #75614c;--accent: #bd6d2a;--accent-deep: #8f4d16;--accent-soft: rgba(189, 109, 42, .12);--positive: #276749;--danger: #a43e35;--info: #24567c;--shadow: 0 24px 60px rgba(77, 53, 32, .12);--radius: 24px;--section-accent: var(--accent);--section-accent-deep: var(--accent-deep);--section-accent-soft: var(--accent-soft);--section-tint: rgba(189, 109, 42, .05)}.section-ledger{--section-accent: #bd6d2a;--section-accent-deep: #8f4d16;--section-accent-soft: rgba(189, 109, 42, .14);--section-tint: rgba(189, 109, 42, .05)}.section-shopping{--section-accent: #4a8a4a;--section-accent-deep: #2f6a2f;--section-accent-soft: rgba(74, 138, 74, .14);--section-tint: rgba(74, 138, 74, .05)}.section-sales{--section-accent: #2d6a8e;--section-accent-deep: #1d4f6d;--section-accent-soft: rgba(45, 106, 142, .14);--section-tint: rgba(45, 106, 142, .05)}.section-chef{--section-accent: #8e4a8a;--section-accent-deep: #67306d;--section-accent-soft: rgba(142, 74, 138, .14);--section-tint: rgba(142, 74, 138, .05)}*{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:Manrope,sans-serif;color:var(--text);background:radial-gradient(circle at top left,rgba(255,255,255,.8),transparent 30%),radial-gradient(circle at bottom right,rgba(189,109,42,.14),transparent 20%),linear-gradient(160deg,var(--bg) 0%,#efe2d1 52%,var(--bg-accent) 100%)}button,input,select{font:inherit}code{padding:.2rem .35rem;background:#543a2014;border-radius:8px}.page-shell{max-width:1380px;margin:0 auto;padding:32px 20px 56px}.hero{display:grid;grid-template-columns:minmax(0,2.1fr) minmax(280px,1fr);gap:24px;align-items:stretch;margin-bottom:26px}.hero h1{margin:0 0 14px;font-size:clamp(2.4rem,6vw,4.8rem);line-height:.97;letter-spacing:-.06em;max-width:13ch}.eyebrow,.section-kicker{margin:0 0 8px;text-transform:uppercase;letter-spacing:.16em;font-size:.75rem;font-weight:800;color:var(--accent-deep)}.hero-copy,.hero-card p,.summary-note,.activity-meta,th,td,label,input::placeholder,.loading,.banner{color:var(--muted)}.hero-card,.panel{background:var(--panel);border:1px solid rgba(255,255,255,.58);border-radius:var(--radius);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:22px}.hero-card{display:flex;flex-direction:column;justify-content:center}.hero-card h2,.panel h2{margin:0 0 8px;font-size:1.3rem}.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:20px}.single-column{display:grid;gap:20px}.summary-panel,.ledger-panel,.history-panel,.settings-panel,.tabs-panel,.highlight-panel{grid-column:1 / -1}.grid>.panel:not(.summary-panel):not(.ledger-panel):not(.history-panel):not(.settings-panel){grid-column:span 4}.panel-heading{display:flex;justify-content:space-between;align-items:start;gap:18px;margin-bottom:18px}.stack-form,.two-up,.summary-cards,.activity-list,.household-meta,.invite-form,.settings-grid{display:grid;gap:14px}.two-up,.household-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-cards{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.settings-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));align-items:start}.settings-form{padding:18px;border-radius:20px;background:linear-gradient(180deg,#fffaf1e6,#fff6ebbd);border:1px solid rgba(84,58,32,.08)}label{display:grid;gap:8px;font-weight:600}.checkbox-row{display:flex;align-items:center;gap:10px;padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:var(--panel-strong)}.checkbox-row input{width:auto;margin:0}input,select,button{border-radius:16px}input,select{width:100%;border:1px solid var(--line);background:var(--panel-strong);color:var(--text);padding:14px 16px}input:focus,select:focus,button:focus{outline:2px solid rgba(189,109,42,.3);outline-offset:2px}button{border:0;padding:14px 18px;font-weight:800;cursor:pointer;transition:transform .14s ease,box-shadow .14s ease,background .14s ease;background:linear-gradient(135deg,var(--accent) 0%,#cf8748 100%);color:#fff9f4;box-shadow:0 14px 26px #bd6d2a3d}button:hover{transform:translateY(-1px)}.secondary-button,.ghost-button{background:var(--panel-strong);color:var(--text);box-shadow:none;border:1px solid var(--line)}.ghost-button{color:var(--danger)}.action-row{display:flex;flex-wrap:wrap;justify-content:end;gap:10px}.start-row{justify-content:start}.banner{margin-bottom:18px;padding:14px 18px;border-radius:18px;border:1px solid var(--line);background:#fffaf1b8}.banner-error{color:var(--danger);background:#a43e3514;border-color:#a43e3533}.banner-info{color:var(--info);background:#24567c14;border-color:#24567c33}.summary-card,.meta-card,.activity-card{padding:18px;border-radius:20px;background:linear-gradient(180deg,#fffaf1e6,#fff6ebbd);border:1px solid rgba(84,58,32,.08)}.emphasis-card{border-color:#bd6d2a42;box-shadow:inset 0 0 0 1px #bd6d2a24}.subtle-copy,.sync-note,.field-note{margin:0;color:var(--muted)}.field-note{display:flex;align-items:end;padding:14px 16px;border:1px dashed var(--line);border-radius:16px;background:#fffaf1ad}.cell-stack{display:grid;gap:8px}.month-section{border:1px solid rgba(84,58,32,.08);border-radius:20px;background:#fffaf1b8;margin-bottom:14px;overflow:hidden}.month-summary{list-style:none;cursor:pointer;padding:18px;background:linear-gradient(180deg,#fffaf1e6,#fff6ebc7)}.month-summary::-webkit-details-marker{display:none}.month-title{margin:0 0 6px;font-size:1rem;font-weight:800}.month-meta{margin:0;color:var(--muted)}.month-section .table-wrap,.month-section .activity-list{padding:0 18px 18px}.inline-button{justify-self:start}.invite-form{margin-top:16px;grid-template-columns:minmax(0,1fr) auto;align-items:end}.summary-label,.meta-label{margin:0 0 8px;font-size:.85rem;text-transform:uppercase;letter-spacing:.12em;font-weight:800}.summary-value,.meta-value{margin:0;font-size:clamp(1.5rem,4vw,2.4rem);letter-spacing:-.05em}.segmented{display:flex;gap:10px;flex-wrap:wrap}.segment{display:inline-flex;align-items:center;gap:8px;padding:12px 14px;border-radius:16px;background:var(--panel-strong);border:1px solid var(--line);cursor:pointer}.segment.active{border-color:#bd6d2a66;box-shadow:inset 0 0 0 1px #bd6d2a2e}.segment input{width:auto;margin:0}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:760px}th,td{text-align:left;padding:14px 10px;border-bottom:1px solid var(--line)}th{font-size:.8rem;text-transform:uppercase;letter-spacing:.12em}.status-chip{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;font-size:.84rem;font-weight:700}.status-chip.settled{color:var(--positive);background:#2767491f}.status-chip.outstanding{color:var(--danger);background:#a43e351f}.status-chip.pending{color:var(--info);background:#24567c1f}.activity-title{margin:0;font-size:1rem}.activity-empty,.table-empty,.loading{padding:18px;border-radius:18px;background:#fffaf1ad;border:1px dashed var(--line)}@media(max-width:1100px){.hero,.grid>.panel:not(.summary-panel):not(.ledger-panel):not(.history-panel):not(.settings-panel){grid-column:1 / -1}.hero{grid-template-columns:1fr}}@media(max-width:700px){.page-shell{padding:20px 14px 36px}.two-up,.household-meta,.invite-form{grid-template-columns:1fr}.panel-heading{flex-direction:column}.action-row{justify-content:start}}.hero-compact{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;padding:14px 18px;border-radius:20px;background:var(--panel);border:1px solid rgba(255,255,255,.58);border-left:4px solid var(--section-accent);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky;top:0;z-index:30}.hero-compact-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;background:var(--section-accent-soft);color:var(--section-accent-deep);flex-shrink:0}.hero-compact-icon svg{width:22px;height:22px}.hero-compact .eyebrow{color:var(--section-accent-deep)}.hero-compact-text{flex:1 1 auto;min-width:0}.hero-compact-main{display:flex;align-items:center;gap:12px;flex:1 1 auto;min-width:0}.hero-compact-text .eyebrow{margin:0 0 2px;font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hero-compact-text h1{margin:0;font-size:clamp(1.3rem,4vw,1.8rem);letter-spacing:-.04em;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hero-compact-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.sync-pill{font-size:.75rem;font-weight:700;padding:4px 10px;border-radius:999px;background:#24567c1f;color:var(--info)}.compact-action{width:44px;height:44px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:14px;font-size:1.2rem;color:var(--text)}.compact-action svg{width:20px;height:20px;transition:transform .2s ease}.compact-action.is-spinning svg{animation:refresh-spin .9s linear infinite}@keyframes refresh-spin{to{transform:rotate(360deg)}}.tabs-panel{padding:8px;position:sticky;top:86px;z-index:25;background:var(--panel)}.tab-bar{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:2px}.tab-bar::-webkit-scrollbar{display:none}.tab-button{flex:1 1 0;min-width:0;display:inline-flex;align-items:center;justify-content:center;gap:6px;background:transparent;color:var(--muted);border:0;padding:10px 12px;border-radius:14px;box-shadow:none;font-size:.92rem;font-weight:700;position:relative;min-height:44px;white-space:nowrap;text-align:center;transition:background .14s ease,color .14s ease}.tab-button:hover{transform:none;background:#bd6d2a0f}.tab-button.is-active{background:linear-gradient(135deg,var(--section-accent) 0%,var(--section-accent-deep) 100%);color:#fff9f4;box-shadow:0 8px 18px var(--section-accent-soft)}.tab-button.is-active .tab-count{background:#ffffff47;color:#fff9f4}.tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;font-size:.75rem;font-weight:800;background:#543a201a;color:var(--text)}.tab-button.has-badge:before{content:"";position:absolute;top:6px;right:6px;width:8px;height:8px;border-radius:50%;background:var(--danger);box-shadow:0 0 0 2px var(--panel)}.tab-button.is-active.has-badge:before{box-shadow:0 0 0 2px var(--accent)}.highlight-panel{border-color:#bd6d2a52;background:linear-gradient(180deg,#fff0dcf2,#fffaf1d9);box-shadow:0 18px 40px #bd6d2a2e}.highlight-panel .section-kicker{color:var(--accent-deep)}.compact-summary{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}.compact-summary .summary-card{padding:12px 14px}.compact-summary .summary-value{font-size:clamp(1.2rem,3.5vw,1.8rem)}.compact-summary .summary-label{font-size:.72rem}.compact-summary .summary-note{font-size:.78rem}.bottom-nav{display:none}.page-shell.logged-in{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}@media(max-width:900px){.bottom-nav{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:4px;position:fixed;bottom:0;left:0;right:0;padding:8px 8px calc(8px + env(safe-area-inset-bottom,0px));background:#fffcf7f5;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-top:1px solid var(--line);box-shadow:0 -10px 30px #4d35201f;z-index:50}.bottom-nav-button{background:transparent;color:var(--muted);box-shadow:none;padding:8px 6px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:14px;min-height:56px;font-weight:700;transition:background .14s ease,color .14s ease}.bottom-nav-button:hover{transform:none}.bottom-nav-button.is-active{color:var(--section-accent-deep);background:var(--section-accent-soft)}.bottom-nav-button{position:relative}.bottom-nav-badge{position:absolute;top:6px;right:22%;width:10px;height:10px;border-radius:50%;background:var(--danger);box-shadow:0 0 0 2px #fffcf7f5}.bottom-nav-icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;line-height:1}.bottom-nav-icon svg{width:24px;height:24px}.bottom-nav-label{font-size:.72rem;letter-spacing:.02em}}@media(max-width:700px){input,select,textarea,button{font-size:16px}button,.secondary-button,.ghost-button{min-height:44px}.panel{padding:16px}.summary-card,.meta-card,.activity-card{padding:14px}.action-row{width:100%}.action-row .secondary-button,.action-row .ghost-button,.action-row button:not(.inline-button){flex:1 1 auto}.hero-compact{padding:12px 14px}.hero-compact-text h1{font-size:1.2rem}.tabs-panel{top:76px;padding:6px;border-radius:16px}.tab-button{padding:10px 12px;font-size:.86rem}.compact-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.grid{gap:14px}input,select,textarea{padding:12px 14px}}button,.tab-button,.bottom-nav-button{-webkit-tap-highlight-color:var(--section-accent-soft)}.link-button{background:transparent;border:0;padding:0;margin:0;color:var(--accent-deep);font:inherit;font-weight:700;text-decoration:underline;text-underline-offset:3px;cursor:pointer;box-shadow:none;display:inline;min-height:auto}.link-button:hover{transform:none;color:var(--accent)}.auth-helper{font-size:.88rem;line-height:1.5}.auth-links{display:flex;flex-wrap:wrap;gap:6px 20px;justify-content:space-between;margin:2px 0 4px;font-size:.88rem}.hero-intro{display:flex;flex-direction:column;justify-content:center}.hero-soon{margin:16px 0 0;font-size:.92rem;font-weight:700;color:var(--accent-deep);letter-spacing:.01em}.loop-card{gap:4px}.loop-steps{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:14px}.loop-step{display:flex;align-items:flex-start;gap:14px}.loop-num{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:.95rem;color:#fff9f4;background:var(--accent);box-shadow:0 4px 12px #8f4d1647}.loop-body{display:flex;flex-direction:column;gap:2px}.loop-tag{font-weight:800;font-size:.78rem;text-transform:uppercase;letter-spacing:.14em;color:var(--accent-deep)}.loop-text{color:var(--muted);font-size:.95rem;line-height:1.45}.loop-foot{margin:16px 0 0;padding-top:14px;border-top:1px solid rgba(143,77,22,.16);font-size:.9rem;font-style:italic;color:var(--muted)}@media(max-width:720px){.loop-num{width:26px;height:26px;font-size:.85rem}.auth-links{flex-direction:column;gap:8px}}.billing-panel{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.billing-copy p:not(.section-kicker){margin:4px 0 0;color:var(--muted);font-size:.95rem;line-height:1.45;max-width:60ch}.billing-copy strong{color:var(--accent-deep)}.billing-panel-locked{border-color:#bd6d2a80;background:linear-gradient(180deg,rgba(189,109,42,.1),var(--panel))}.upgrade-btn{flex:none;background:var(--accent);color:#fff9f4;font-weight:800;border:0;padding:12px 22px;border-radius:14px;cursor:pointer;box-shadow:0 6px 16px #8f4d164d;white-space:nowrap}.upgrade-btn:disabled{opacity:.6;cursor:default}.settings-billing{margin-top:4px;padding-top:16px;border-top:1px solid rgba(143,77,22,.16);display:flex;flex-direction:column;align-items:flex-start;gap:6px}.settings-billing .upgrade-btn,.settings-billing .secondary-button{margin-top:8px}.fab{position:fixed;right:18px;bottom:calc(96px + env(safe-area-inset-bottom,0px));z-index:40;width:56px;height:56px;padding:0;border-radius:18px;background:linear-gradient(135deg,var(--section-accent) 0%,var(--section-accent-deep) 100%);color:#fff9f4;box-shadow:0 14px 30px #0000002e;display:inline-flex;align-items:center;justify-content:center;font-size:1.6rem;font-weight:800;line-height:1}.fab svg{width:24px;height:24px}.fab:hover{transform:translateY(-2px);box-shadow:0 18px 36px #00000038}.fab{position:fixed;overflow:hidden;isolation:isolate}.fab svg{position:relative;z-index:2}.fab-progress{position:absolute;inset:0;background:#ffffff40;transform:scaleY(0);transform-origin:bottom;transition:transform .1s ease-out;pointer-events:none;z-index:1}.fab.is-long-pressing .fab-progress{transform:scaleY(1);transition:transform 5s linear}.fab.is-submit{background:linear-gradient(135deg,#2f6a44,#1d4f30)}.fab.is-submit svg{stroke-width:3}.toast-stack{position:fixed;right:18px;bottom:calc(160px + env(safe-area-inset-bottom,0px));z-index:80;display:flex;flex-direction:column;gap:8px;align-items:flex-end;max-width:calc(100vw - 36px);pointer-events:none}.toast{pointer-events:auto;display:inline-flex;align-items:center;gap:10px;max-width:320px;padding:12px 16px;border-radius:14px;background:#2d241bf0;color:#fff9f4;border:0;box-shadow:0 14px 30px #00000040;font-weight:600;font-size:.92rem;line-height:1.35;text-align:left;cursor:pointer;min-height:auto;animation:toast-in .2s ease-out}.toast:hover{transform:none}.toast.toast-info{background:linear-gradient(135deg,#2a4d6b,#38678c)}.toast.toast-error{background:linear-gradient(135deg,#8a342c,#b14b3f)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(min-width:901px){.toast-stack{bottom:96px;right:24px}}@media(min-width:901px){.fab{bottom:24px;right:24px}}.tab-button.is-active.has-badge:before{box-shadow:0 0 0 2px var(--section-accent)}.highlight-panel{border-color:var(--section-accent-soft)}.section-kicker,.summary-card .summary-value{color:var(--section-accent-deep)}.page-shell.section-shopping,.page-shell.section-sales,.page-shell.section-ledger{background:linear-gradient(180deg,var(--section-tint),transparent 240px);background-attachment:local;margin:0 auto}.empty-positive{display:flex;flex-direction:column;align-items:center;text-align:center;padding:28px 18px;gap:8px;border-radius:18px;background:#27674914;border:1px solid rgba(39,103,73,.16);color:var(--positive)}.empty-positive .empty-icon{font-size:1.6rem;width:44px;height:44px;border-radius:50%;background:#27674929;display:inline-flex;align-items:center;justify-content:center}.empty-positive p{margin:0;font-weight:700}.pending-group{border:1px solid rgba(189,109,42,.18);border-radius:18px;padding:14px;margin-bottom:14px;background:#fffaf199}.pending-group:last-child{margin-bottom:0}.pending-group-header{padding-bottom:12px;margin-bottom:12px;border-bottom:1px dashed var(--line)}.pending-group-header .activity-title{margin:0 0 4px;font-weight:800}.pending-group-header .activity-meta{margin:0 0 8px}.pending-group-items{gap:10px}.activity-card.editing{border-color:var(--section-accent);box-shadow:0 0 0 1px var(--section-accent-soft)}.activity-card.editing .stack-form{gap:10px}.pay-mark{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:999px;font-size:.78rem;font-weight:800;border:1px solid var(--line);background:var(--panel-strong);box-shadow:none;min-height:auto;transition:background .14s ease,border-color .14s ease,color .14s ease;cursor:pointer;flex-shrink:0}button.pay-mark:hover{transform:none;filter:brightness(1.05)}.pay-mark.is-shared{color:var(--positive);background:#2767491a;border-color:#27674947}.pay-mark.is-solo{color:var(--danger);background:#a43e351a;border-color:#a43e3547}.pay-mark-initial{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:#fff9;font-size:.7rem;letter-spacing:0;color:var(--text)}.pay-mark.is-shared .pay-mark-initial{background:#2767492e;color:var(--positive)}.pay-mark.is-solo .pay-mark-initial{background:#a43e352e;color:var(--danger)}.pay-mark-status{font-size:.85rem;line-height:1}.quick-add-row{display:flex;gap:8px;margin-bottom:14px;align-items:center}.quick-add-row input{flex:1 1 auto;min-width:0}.quick-add-row.is-active input{border-color:var(--section-accent);box-shadow:0 0 0 3px var(--section-accent-soft);animation:quick-add-flash .22s ease-out}@keyframes quick-add-flash{0%{transform:translateY(-4px);opacity:0}to{transform:translateY(0);opacity:1}}.quick-add-button{flex:0 0 auto;width:48px;height:48px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:14px}.quick-add-button svg{width:22px;height:22px}.quick-add-cancel{flex:0 0 auto;width:40px;height:40px;padding:0;border-radius:12px;background:var(--panel-strong);color:var(--muted);border:1px solid var(--line);box-shadow:none;font-size:1.4rem;line-height:1}.quick-add-cancel:hover{transform:none;color:var(--danger);border-color:#a43e3566}.shopping-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.shopping-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:#fffaf18c;transition:background .14s ease}.shopping-row+.shopping-row{border-top:1px solid var(--line);border-top-left-radius:6px;border-top-right-radius:6px}.shopping-row:hover{background:#fffaf1d9}.shopping-row-main{flex:1 1 auto;display:flex;align-items:center;gap:10px;background:transparent;border:0;padding:0;text-align:left;color:var(--text);font:inherit;box-shadow:none;min-width:0;min-height:auto}.shopping-row-main:hover{transform:none}.row-bullet{flex:0 0 auto;font-size:1.4rem;line-height:1;color:var(--section-accent);font-weight:800}.row-text{flex:1 1 auto;display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;min-width:0}.row-title{font-weight:700;font-size:1rem;color:var(--text)}.row-quantity{color:var(--muted);font-size:.9rem;font-weight:500}.row-note{width:100%;font-size:.78rem;color:var(--muted);font-style:italic}.shopping-row .pay-mark{flex-shrink:0;margin-left:auto}.complete-shop-trigger{width:100%;margin-top:14px;background:linear-gradient(135deg,var(--section-accent) 0%,var(--section-accent-deep) 100%);color:#fff9f4;font-size:1rem;padding:16px;border-radius:14px}.shop-lines{display:flex;flex-direction:column;gap:6px}.shop-line{display:flex;align-items:center;gap:10px;padding:10px 8px;border-radius:12px;background:#fffaf199}.shop-line.is-solo{background:#a43e350f}.shop-line-text{flex:1 1 auto;min-width:0;display:flex;flex-wrap:wrap;gap:6px;align-items:baseline}.shop-line-text input{width:100%;padding:8px 10px}.shop-line-title{font-weight:700;font-size:.95rem}.shop-line-qty{color:var(--muted);font-size:.85rem}.shop-line-tag{display:inline-flex;width:100%;font-size:.72rem;font-weight:700;color:var(--danger);text-transform:uppercase;letter-spacing:.06em}.shop-line-price{flex:0 0 auto;display:flex;align-items:center;gap:4px;background:var(--panel-strong);border:1px solid var(--line);border-radius:12px;padding:4px 10px;width:110px}.shop-line-price .currency-symbol{color:var(--muted);font-weight:700;font-size:.9rem}.shop-line-price input{border:0;padding:6px 0;background:transparent;width:100%;font-size:.95rem}.shop-line-price input:focus{outline:none}.shop-extra-remove{flex:0 0 auto;width:36px;height:36px;padding:0;font-size:1.2rem;border-radius:12px}.receipt-total-label{display:flex;align-items:center;gap:8px;background:var(--panel-strong);border:1px solid var(--section-accent);border-radius:16px;padding:10px 16px;font-size:1.5rem;font-weight:800;color:var(--section-accent-deep)}.receipt-total-label input{flex:1 1 auto;border:0;padding:6px 0;background:transparent;font-size:1.5rem;font-weight:800;color:var(--section-accent-deep)}.receipt-total-label input:focus{outline:none}.shop-breakdown{margin-top:16px;padding:14px;border-radius:16px;background:#fffaf199;border:1px solid var(--line);display:flex;flex-direction:column;gap:10px}.shop-breakdown-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.shop-breakdown-final{padding-top:10px;border-top:1px solid var(--line);font-size:1.1rem;color:var(--section-accent-deep)}.complete-shop-confirm{width:100%;margin-top:16px;font-size:1rem;padding:16px;border-radius:14px}.complete-shop-confirm[disabled]{background:var(--panel-strong);color:var(--muted);box-shadow:none;cursor:not-allowed}.shop-pills{display:flex;flex-direction:column;gap:10px}.shop-pill{border:1px solid var(--line);border-radius:16px;background:var(--panel-strong);overflow:hidden;transition:border-color .14s ease,box-shadow .14s ease}.shop-pill.is-expanded{border-color:var(--section-accent);box-shadow:0 0 0 1px var(--section-accent-soft)}.shop-pill-summary{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:transparent;border:0;text-align:left;font:inherit;color:inherit;box-shadow:none;min-height:auto}.shop-pill-summary:hover{transform:none;background:#bd6d2a0a}.shop-pill-info{flex:1 1 auto;min-width:0}.shop-pill-title{margin:0 0 2px;font-weight:800;font-size:1rem}.shop-pill-meta{margin:0;color:var(--muted);font-size:.78rem}.shop-pill-total{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;line-height:1}.shop-pill-total-value{font-size:1.1rem;font-weight:800;color:var(--section-accent-deep)}.shop-pill-total-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-top:2px}.shop-pill-items{list-style:none;margin:0;padding:0 16px 14px;display:flex;flex-direction:column;gap:4px;border-top:1px dashed var(--line)}.shop-pill-item{display:flex;align-items:baseline;gap:8px;padding:6px 0;border-bottom:1px solid rgba(84,58,32,.06);font-size:.9rem}.shop-pill-item:last-child{border-bottom:0}.shop-pill-item-text{flex:1 1 auto;display:inline-flex;flex-wrap:wrap;gap:6px;align-items:baseline}.shop-pill-item-title{font-weight:700}.shop-pill-item-qty{color:var(--muted);font-size:.82rem}.shop-pill-item-tag{font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--danger);padding:1px 6px;border-radius:999px;background:#a43e351f}.shop-pill-item-price{flex:0 0 auto;font-weight:700;color:var(--section-accent-deep)}.chef-suggest-btn{width:100%;margin-top:14px;padding:16px;border-radius:14px;background:linear-gradient(135deg,var(--section-accent) 0%,var(--section-accent-deep) 100%);color:#fff9f4;font-size:1rem;font-weight:800}.chef-suggest-btn[disabled]{background:var(--panel-strong);color:var(--muted);box-shadow:none;cursor:not-allowed}.chef-suggestions{display:flex;flex-direction:column;gap:12px}.chef-suggestion{border:1px solid var(--line);border-radius:16px;padding:16px;background:var(--panel-strong);display:flex;flex-direction:column;gap:10px}.chef-suggestion-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.chef-suggestion-head h3{margin:0;font-size:1.1rem;letter-spacing:-.01em}.chef-suggestion-meta{font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:700}.chef-ingredient-group{display:flex;flex-direction:column;gap:4px}.chef-ingredient-label{margin:0;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:var(--muted)}.chef-ingredient-list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:2px;font-size:.92rem}.chef-ingredient-list.have li{color:var(--positive)}.chef-ingredient-list.missing li{color:var(--danger)}.chef-instructions{margin:0;font-size:.92rem;line-height:1.45;color:var(--text)}.fab.fab-chat{background:linear-gradient(135deg,#8e4a8a,#67306d)}.chef-chat-overlay{position:fixed;top:var(--vv-offset-top, 0);left:0;right:0;z-index:70;background:linear-gradient(180deg,#faf6ee,#f1e8d8);display:grid;grid-template-rows:auto 1fr auto;height:var(--vv-height, 100vh);height:var(--vv-height, 100dvh)}.chef-chat-header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px 14px calc(16px + env(safe-area-inset-left,0px));background:var(--panel);border-bottom:1px solid var(--line);border-left:4px solid #8e4a8a}.chef-chat-header-text{flex:1 1 auto;min-width:0}.chef-chat-eyebrow{margin:0 0 2px;text-transform:uppercase;letter-spacing:.16em;font-size:.7rem;font-weight:800;color:#67306d}.chef-chat-header h2{margin:0;font-size:1.2rem;letter-spacing:-.02em}.chef-chat-header-actions{display:flex;gap:6px;flex-shrink:0}.chef-chat-messages{overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;-webkit-overflow-scrolling:touch}.chef-chat-empty{margin:auto;text-align:center;padding:30px 20px;color:var(--muted)}.chef-chat-empty p{margin:0 0 8px}.chef-chat-empty p:first-child{font-size:1.1rem;color:var(--text);font-weight:700}.chef-chat-allergy-note{margin-top:12px;font-size:.85rem;color:var(--positive)}.chef-chat-gate{margin:auto;max-width:480px;padding:22px 18px;border-radius:18px;background:#8e4a8a14;border:1px solid rgba(142,74,138,.28);display:flex;flex-direction:column;gap:12px;text-align:left}.chef-chat-gate-title{margin:0;font-weight:800;color:#67306d;font-size:1rem}.chef-chat-gate-copy{margin:0;font-size:.92rem;line-height:1.45;color:var(--text)}.chef-chat-gate-form{display:flex;gap:8px;flex-wrap:wrap}.chef-chat-gate-form input{flex:1 1 200px;min-width:0}.chef-chat-gate-form button{flex:0 0 auto}.chef-chat-gate-skip{background:transparent;border:1px dashed rgba(142,74,138,.4);color:#67306d;box-shadow:none;padding:10px 14px;font-weight:700;font-size:.88rem}.chef-chat-gate-skip:hover{transform:none;background:#8e4a8a0f}.chef-chat-bubble{max-width:85%;padding:12px 14px;border-radius:18px;line-height:1.45;font-size:.95rem;word-wrap:break-word}.chef-chat-bubble-user{align-self:flex-end;background:linear-gradient(135deg,#8e4a8a,#67306d);color:#fff9f4;border-bottom-right-radius:6px}.chef-chat-bubble-user .chef-chat-text{margin:0;color:#fff9f4}.chef-chat-bubble-user a{color:#fff9f4;text-decoration:underline}.chef-chat-bubble-assistant{align-self:flex-start;background:var(--panel-strong);border:1px solid var(--line);color:var(--text);border-bottom-left-radius:6px}.chef-chat-text{margin:0}.chef-chat-typing{display:inline-flex;gap:4px;padding:14px 16px;align-items:center}.chef-chat-typing span{width:6px;height:6px;border-radius:50%;background:#8e4a8a;animation:chef-chat-typing 1.2s ease-in-out infinite}.chef-chat-typing span:nth-child(2){animation-delay:.15s}.chef-chat-typing span:nth-child(3){animation-delay:.3s}@keyframes chef-chat-typing{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.chef-chat-recipe{margin-top:10px;padding:12px 14px;border-radius:14px;background:#8e4a8a14;border:1px solid rgba(142,74,138,.24);display:flex;flex-direction:column;gap:8px;color:var(--text)}.chef-chat-recipe-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.chef-chat-recipe-head h3{margin:0;font-size:1rem;letter-spacing:-.01em}.chef-chat-recipe-meta{font-size:.75rem;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em}.chef-chat-recipe-ingredients{margin:0;padding-left:18px;font-size:.88rem;display:flex;flex-direction:column;gap:2px}.chef-chat-recipe-instructions{margin:0;font-size:.88rem;line-height:1.45}.chef-chat-recipe-source{margin:0;font-size:.78rem}.chef-chat-recipe-source a{color:#67306d;font-weight:700}.chef-chat-input-bar{display:flex;gap:8px;padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px));background:var(--panel);border-top:1px solid var(--line)}.chef-chat-input-bar input{flex:1 1 auto;min-width:0;border-radius:18px;padding:12px 16px;font-size:16px}.chef-chat-send{flex:0 0 auto;width:44px;height:44px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:14px;background:linear-gradient(135deg,#8e4a8a,#67306d);color:#fff9f4}.chef-chat-send svg{width:22px;height:22px}.chef-chat-send[disabled]{background:var(--panel-strong);color:var(--muted);box-shadow:none;cursor:not-allowed}.meal-list{display:flex;flex-direction:column;gap:10px}.meal-card{border:1px solid var(--line);border-radius:16px;background:var(--panel-strong);overflow:hidden;transition:border-color .14s ease}.meal-card.is-expanded{border-color:var(--section-accent);box-shadow:0 0 0 1px var(--section-accent-soft)}.meal-card-summary{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:transparent;border:0;text-align:left;font:inherit;color:inherit;box-shadow:none;min-height:auto}.meal-card-summary:hover{transform:none;background:#8e4a8a0a}.meal-card-info{flex:1 1 auto;min-width:0}.meal-card-name{margin:0 0 2px;font-weight:800;font-size:1rem}.meal-card-meta{margin:0;color:var(--muted);font-size:.78rem}.meal-card-stock{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;line-height:1}.meal-card-stock-value{font-size:1.05rem;font-weight:800;color:var(--section-accent-deep)}.meal-card-stock-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-top:2px}.meal-card-body{padding:12px 16px 14px;border-top:1px dashed var(--line);display:flex;flex-direction:column;gap:10px}.meal-section-label{margin:0;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.meal-ingredients{margin:0;padding-left:14px;display:flex;flex-direction:column;gap:3px;font-size:.92rem;list-style:none}.meal-ingredients .ingredient-have{color:var(--positive);font-weight:600}.meal-ingredients .ingredient-missing{color:var(--muted)}.meal-instructions{margin:0;font-size:.92rem;line-height:1.45;white-space:pre-wrap}.meal-source{margin:0;font-size:.78rem}.meal-source a{color:var(--section-accent-deep);font-weight:700}.row-meal-tag{width:100%;font-size:.72rem;color:var(--section-accent-deep);font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin-top:2px}.row-meal-tags{width:100%;display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.row-meal-dot{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;background:#8e4a8a1f;color:#67306d;font-size:.7rem;font-weight:700;letter-spacing:.02em;border:1px solid rgba(142,74,138,.2)}.recipe-qty{display:inline-block;margin-left:4px;padding:1px 6px;border-radius:6px;background:#0000000f;font-size:.82rem;font-weight:700;color:var(--muted)}.prefs-summary{display:flex;flex-direction:column;gap:14px}.prefs-row{display:flex;flex-direction:column;gap:4px;padding:10px 14px;border-radius:14px;background:#8e4a8a0d;border:1px solid rgba(142,74,138,.16)}.prefs-label{font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#67306d}.prefs-value{font-size:.95rem;font-weight:600;color:var(--text);display:flex;flex-wrap:wrap;gap:6px;align-items:center}.prefs-fallback{font-style:italic;font-weight:500;color:var(--muted)}.prefs-pill{display:inline-flex;padding:3px 10px;border-radius:999px;background:#8e4a8a1f;color:#67306d;font-size:.82rem;font-weight:700;border:1px solid rgba(142,74,138,.22)}.prefs-row-full .prefs-value{white-space:pre-wrap;font-weight:500;display:block}.panel-heading.is-inline{flex-direction:row!important;align-items:center}.panel-heading.is-inline>div:first-child{flex:1 1 auto;min-width:0}.compact-edit-button{flex:0 0 auto;padding:8px 14px;font-size:.85rem;min-height:auto}@media(max-width:480px){.shopping-row{padding:10px 8px}.row-title{font-size:.95rem}}.quantity-presets{display:flex;flex-wrap:wrap;gap:6px;margin-top:-4px}.preset-pill{background:var(--panel-strong);color:var(--text);border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-weight:700;font-size:.85rem;box-shadow:none;min-height:auto}.preset-pill:hover{transform:none;background:var(--section-accent-soft);border-color:var(--section-accent);color:var(--section-accent-deep)}.stock-list{display:flex;flex-direction:column;gap:10px}.stock-card{border:1px solid var(--line);border-radius:16px;background:var(--panel-strong);overflow:hidden;transition:border-color .14s ease,box-shadow .14s ease}.stock-card.is-expanded{border-color:var(--section-accent);box-shadow:0 0 0 1px var(--section-accent-soft)}.stock-card-row{display:flex;align-items:stretch;gap:0}.stock-card-summary{flex:1 1 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:transparent;border:0;text-align:left;font:inherit;color:inherit;box-shadow:none;min-height:auto;min-width:0}.stock-card-summary:hover{transform:none;background:#bd6d2a0a}.stock-card-info{flex:1 1 auto;min-width:0}.stock-card-name{margin:0 0 2px;font-weight:800;font-size:1rem}.stock-card-meta{margin:0;color:var(--muted);font-size:.78rem}.stock-card-projection{margin:4px 0 0;color:var(--section-accent-deep);font-size:.78rem;font-weight:700}.stock-card-stock{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;line-height:1}.stock-card-stock-value{font-size:1.6rem;font-weight:800;letter-spacing:-.02em;color:var(--section-accent-deep)}.stock-card-stock.is-low .stock-card-stock-value{color:var(--danger)}.stock-card-stock-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-top:2px}.stock-card-quick{display:flex;flex-direction:column;gap:2px;padding:8px;border-left:1px solid var(--line);background:#f5efe466}.quick-stock-btn{background:transparent;border:0;color:var(--text);padding:6px 10px;border-radius:10px;font-weight:800;font-size:.85rem;box-shadow:none;min-height:32px;min-width:44px;white-space:nowrap}.quick-stock-btn:hover{transform:none;background:var(--section-accent-soft)}.quick-stock-btn.positive{color:var(--positive)}.quick-stock-btn.negative{color:var(--danger)}.stock-card-details{padding:14px 16px 16px;border-top:1px dashed var(--line);background:#f5efe44d}body{padding-bottom:env(safe-area-inset-bottom,0)}.nav-brand{display:none}@media(min-width:1024px){.page-shell.logged-in{display:block;max-width:none;margin:0;padding:28px 40px 56px 312px}.page-shell.logged-in>.hero-compact,.page-shell.logged-in>.banner,.page-shell.logged-in>main{width:100%;max-width:1000px;margin-left:auto;margin-right:auto}.page-shell.logged-in>.bottom-nav{display:flex;flex-direction:column;gap:6px;position:fixed;top:0;left:0;bottom:0;width:256px;z-index:40;overflow-y:auto;background:var(--panel);border-right:1px solid var(--line);box-shadow:4px 0 24px #4d35200f;padding:24px 16px}.page-shell.logged-in .nav-brand{display:block;padding:6px 14px 14px;margin-bottom:6px;border-bottom:1px solid var(--line);font-weight:800;font-size:1.05rem;letter-spacing:-.01em;color:var(--accent-deep)}.page-shell.logged-in .nav-brand small{display:block;margin-top:2px;font-weight:600;font-size:.78rem;color:var(--muted)}.page-shell.logged-in .bottom-nav-button{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:12px;width:100%;padding:11px 14px;border-radius:14px;background:transparent;color:var(--muted);font-weight:700;font-size:.95rem;box-shadow:none;min-height:0;position:relative;transition:background .14s ease,color .14s ease}.page-shell.logged-in .bottom-nav-button:hover{background:var(--section-accent-soft);color:var(--section-accent-deep);transform:none}.page-shell.logged-in .bottom-nav-button.is-active{background:var(--section-accent-soft);color:var(--section-accent-deep)}.page-shell.logged-in .bottom-nav-icon,.page-shell.logged-in .bottom-nav-icon svg{width:22px;height:22px}.page-shell.logged-in .bottom-nav-icon{display:inline-flex;align-items:center;justify-content:center;flex:none}.page-shell.logged-in .bottom-nav-label{font-size:.95rem;letter-spacing:0}.page-shell.logged-in .bottom-nav-badge{position:absolute;top:50%;right:12px;transform:translateY(-50%);width:8px;height:8px;border-radius:50%;background:var(--danger)}.page-shell.logged-in main.grid{grid-template-columns:minmax(0,1fr);gap:20px}.page-shell.logged-in .tabs-panel{top:16px}.page-shell.logged-in .panel{padding:22px 24px}.page-shell.logged-in table th,.page-shell.logged-in table td{padding:9px 14px;font-size:.92rem}}
