@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,600;9..144,700&display=swap";:root{font-family:DM Sans,system-ui,sans-serif;color:#21332d;background:#f5f3ed;font-synthesis:none;--ink: #183c30;--green: #23634d;--cream: #f5f3ed;--paper: #fffdfa;--line: #deddd5;--gold: #f1bd4e;--muted: #6f7d77;--danger: #b94d45}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}h1,h2,h3,p{margin-top:0}h1,h2{font-family:Fraunces,Georgia,serif;color:var(--ink)}h1{font-size:clamp(2.25rem,4vw,3.8rem);line-height:1;margin-bottom:.7rem}h2{font-size:1.5rem}.muted{color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;font-weight:700;color:#8a6a29;margin-bottom:.75rem}.brand-mark{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--gold);color:var(--ink);font-family:Fraunces;font-weight:700}.wordmark{display:flex;align-items:center;gap:.7rem;font-family:Fraunces;font-size:1.5rem;font-weight:700}.splash{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:1rem}.splash .brand-mark{width:58px;height:58px;font-size:1.5rem;animation:pulse 1.5s infinite}.splash p{color:var(--muted)}@keyframes pulse{50%{transform:scale(1.06)}}.auth-shell{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr}.auth-story{padding:3rem clamp(2rem,6vw,7rem);background:var(--ink);color:#e9eee9;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.auth-story:after{content:"";position:absolute;width:520px;height:520px;border:1px solid #ffffff17;border-radius:50%;right:-200px;bottom:-220px;box-shadow:0 0 0 70px #ffffff08,0 0 0 140px #ffffff05}.auth-story .wordmark{color:#fff}.story-copy{position:relative;z-index:1}.story-copy h1{color:#fff;font-size:clamp(3rem,6vw,6rem);line-height:.96;letter-spacing:-.04em}.story-copy h1 em{color:var(--gold);font-style:italic}.story-copy>p:last-child{max-width:520px;font-size:1.15rem;color:#c3d0ca;line-height:1.6}.story-note{display:flex;gap:1rem;align-items:center;z-index:1}.story-note>span{border:1px solid #ffffff44;border-radius:50%;width:44px;height:44px;display:grid;place-items:center;font-size:.75rem}.story-note p{margin:0;color:#b5c4bd}.story-note strong{color:#fff}.auth-panel{background:var(--cream);display:grid;place-items:center;padding:2rem}.auth-card{width:min(440px,100%)}.auth-card h2{font-size:2.2rem;margin-bottom:.5rem}.auth-card form{display:grid;gap:1rem;margin-top:2rem}label{display:grid;gap:.5rem;font-size:.82rem;font-weight:600;color:#42534c}input,select{width:100%;border:1px solid var(--line);background:var(--paper);border-radius:12px;padding:.85rem 1rem;color:var(--ink);outline:none}input:focus,select:focus{border-color:var(--green);box-shadow:0 0 0 3px #23634d18}.input-icon{position:relative}.input-icon>svg{position:absolute;left:1rem;top:.85rem;width:18px;color:#8b9792}.input-icon input{padding-left:2.8rem;padding-right:2.8rem}.input-icon .icon-button{position:absolute;right:.4rem;top:.35rem}.icon-button{border:0;background:transparent;color:#66766f;width:40px;height:40px;display:grid;place-items:center;border-radius:10px}.icon-button:hover{background:#00000008}.icon-button svg{width:18px}.text-button{border:0;background:none;color:var(--green);font-weight:700}.align-right{justify-self:end}.primary-button,.secondary-button{border:0;border-radius:12px;padding:.85rem 1.1rem;font-weight:700;display:flex;align-items:center;justify-content:center;gap:.5rem}.primary-button{background:var(--ink);color:#fff}.primary-button:hover{background:#0f2e24}.secondary-button{background:#ebece7;color:var(--ink)}.primary-button.compact{padding:.75rem 1rem}.primary-button svg,.secondary-button svg{width:18px}.switch-mode{text-align:center;color:var(--muted);margin-top:1.5rem}.switch-mode button{border:0;background:none;color:var(--green);font-weight:700}.form-message,.setup-warning{padding:.8rem 1rem;border-radius:10px;background:#fff0e5;color:#8d402e;font-size:.85rem}.setup-warning{display:flex;align-items:flex-start;gap:.6rem}.mobile-wordmark{display:none}.app-shell{min-height:100vh;display:grid;grid-template-columns:252px 1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:252px;background:var(--ink);color:#d9e3de;padding:1.5rem 1rem;display:flex;flex-direction:column;z-index:30}.sidebar .wordmark{padding:.2rem .65rem 1.5rem;color:#fff}.household-switch{border:1px solid #ffffff20;background:#ffffff0a;border-radius:14px;padding:.8rem;display:flex;justify-content:space-between;align-items:center;margin-bottom:1.2rem}.household-switch>div{display:flex;align-items:center;gap:.7rem}.household-switch svg{width:18px}.household-switch span{display:grid}.household-switch small{color:#8da69b;font-size:.65rem;text-transform:uppercase;letter-spacing:.1em}.household-switch strong{font-size:.9rem}.sidebar nav{display:grid;gap:.25rem}.sidebar nav button{border:0;background:transparent;color:#b8cbc2;padding:.75rem;border-radius:10px;display:flex;align-items:center;gap:.8rem;text-align:left}.sidebar nav button:hover,.sidebar nav button.active{background:#ffffff12;color:#fff}.sidebar nav button.active{box-shadow:inset 3px 0 var(--gold)}.sidebar nav svg{width:19px}.sidebar nav b{margin-left:auto;background:var(--gold);color:var(--ink);border-radius:999px;padding:.1rem .45rem;font-size:.72rem}.sidebar-foot{margin-top:auto;border-top:1px solid #ffffff14;padding-top:1rem}.user-chip{display:flex;align-items:center;gap:.65rem}.avatar{width:38px;height:38px;border-radius:12px;background:#dce6df;color:var(--ink);display:grid;place-items:center;font-weight:700;font-size:.8rem;flex:0 0 auto}.user-chip span{display:grid;min-width:0}.user-chip strong,.user-chip small{overflow:hidden;text-overflow:ellipsis}.user-chip small{color:#8da69b;font-size:.65rem}.user-chip .icon-button{margin-left:auto;color:#a9beb4}.main{grid-column:2;min-width:0}.topbar{height:68px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:flex-end;padding:0 clamp(1rem,4vw,3.5rem);gap:1rem;background:#f5f3ede8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0;z-index:20}.status{display:flex;align-items:center;gap:.4rem;font-size:.75rem;font-weight:700}.status svg{width:16px}.status.online{color:#2a7a56}.status.offline{color:#a05a2c}.sync-button{border:0;background:transparent;color:var(--muted);display:flex;gap:.4rem;align-items:center;font-size:.75rem}.sync-button svg{width:15px}.menu-button,.mobile-close{display:none}.content{padding:clamp(1.5rem,4vw,3.5rem);max-width:1460px;margin:auto}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:2rem;gap:1rem}.page-heading h1{margin-bottom:.35rem}.page-heading p:last-child{margin-bottom:0}.offline-banner,.error-banner{padding:.75rem 2rem;display:flex;justify-content:center;align-items:center;gap:.6rem;font-size:.85rem}.offline-banner{background:#fff2cf;color:#765a1c}.error-banner{background:#ffe6e1;color:#963e37}.error-banner button{border:0;background:none;color:inherit;text-decoration:underline}.location-tabs{display:flex;gap:.5rem;overflow:auto;padding-bottom:.5rem;margin-bottom:1rem}.location-tabs button{border:1px solid var(--line);background:#fff6;border-radius:999px;padding:.55rem .85rem;white-space:nowrap;display:flex;align-items:center;gap:.45rem;color:#5c6b65}.location-tabs button.active{background:var(--ink);color:#fff;border-color:var(--ink)}.location-tabs button>span:not(.location-dot){background:#00000012;border-radius:99px;padding:.05rem .35rem}.location-dot{width:24px;height:24px;border-radius:8px;display:grid;place-items:center;font-size:.75rem}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.3rem}.toolbar>p{color:var(--muted);font-size:.75rem;margin:0}.search{position:relative;width:min(420px,100%)}.search svg{position:absolute;width:18px;left:1rem;top:.75rem;color:#84918c}.search input{padding:.7rem 1rem .7rem 2.8rem;background:#fff9}.stock-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.stock-card{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:1rem;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.8rem;position:relative;transition:.2s}.stock-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px #183c300d}.product-symbol{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;font-family:Fraunces;font-size:1.2rem;color:var(--ink);overflow:hidden;background:#e4ebe6}.product-symbol img{width:100%;height:100%;display:block;object-fit:cover}.product-symbol.large{width:72px;height:72px;border-radius:18px}.product-symbol.mini{width:40px;height:40px;border-radius:12px}.product-symbol.shopping-image{width:38px;height:38px;border-radius:11px}.stock-info h3{margin:0 0 .25rem;font-size:1rem;text-transform:capitalize}.stock-info p{margin:0;color:var(--muted);font-size:.75rem}.quantity{text-align:right;display:grid}.quantity strong{font-family:Fraunces;font-size:1.3rem}.quantity span{font-size:.7rem;color:var(--muted)}.card-actions{grid-column:1/-1;border-top:1px solid #ecece7;padding-top:.7rem;display:flex;justify-content:flex-end;gap:.3rem}.card-actions button,.stepper button{border:0;background:#f0f1ed;border-radius:9px;width:34px;height:30px;display:grid;place-items:center;color:var(--ink)}.card-actions svg,.stepper svg{width:15px}.empty-state{min-height:320px;border:1px dashed #cdd1ca;border-radius:20px;display:grid;place-content:center;justify-items:center;text-align:center;padding:2rem;color:var(--muted)}.empty-state>svg{width:44px;height:44px;color:#9ba69f;margin-bottom:1rem}.empty-state h2{margin-bottom:.4rem}.empty-state.generous{min-height:500px}.modal-backdrop{position:fixed;inset:0;background:#13251fb0;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;padding:1rem;z-index:100}.modal{width:min(580px,100%);max-height:92vh;overflow:auto;background:var(--cream);border-radius:22px;box-shadow:0 24px 80px #0004}.modal>header{padding:1.5rem 1.5rem 1rem;display:flex;justify-content:space-between}.modal h2{margin:0}.modal .eyebrow{margin-bottom:.3rem}.form-grid{padding:1rem 1.5rem 1.5rem;display:grid;grid-template-columns:1fr 1fr;gap:1rem}.span-2{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:.7rem;margin-top:.5rem}.shopping-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:1.5rem;align-items:start}.shopping-groups{display:grid;gap:1rem}.shopping-group{background:var(--paper);border:1px solid var(--line);border-radius:18px;overflow:hidden}.shopping-group>header{padding:1rem 1.2rem;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.shopping-group>header>div{display:flex;align-items:center;gap:.7rem}.shopping-group h2{font-family:inherit;font-size:.9rem;margin:0}.shopping-group>header>span{color:var(--muted);font-size:.75rem}.shopping-row{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto auto auto;align-items:center;gap:.9rem;padding:.9rem 1.2rem;border-bottom:1px solid #ecece7}.image-editor{border:1px solid var(--line);background:#fff9;border-radius:16px;padding:1rem;display:grid;gap:1rem}.image-editor>div,.selected-product{display:flex;align-items:center;gap:.9rem}.image-editor strong,.image-editor small,.selected-product span,.selected-product small{display:block}.image-editor small,.selected-product small,.product-suggestions small{color:var(--muted);margin-top:.2rem}.image-actions{display:flex;flex-wrap:wrap}.file-button{cursor:pointer}.file-button input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.product-search{width:100%}.product-suggestions{display:grid;max-height:290px;overflow:auto;border:1px solid var(--line);border-radius:14px;background:#fff}.product-suggestions button{border:0;border-bottom:1px solid var(--line);background:#fff;padding:.75rem;display:flex;align-items:center;gap:.75rem;text-align:left}.product-suggestions button:last-child{border:0}.product-suggestions button:hover{background:#f1f5f1}.product-suggestions span{display:grid}.create-product{color:var(--green)}.create-product svg{width:20px}.selected-product{border:1px solid #cddfd4;background:#edf5ef;border-radius:14px;padding:.8rem}@media(min-width:901px){.location-tabs{flex-wrap:wrap;overflow:visible}}.shopping-row:last-child{border:0}.shopping-row h3{margin:0;text-transform:capitalize;font-size:.95rem}.shopping-row p{margin:.15rem 0 0;font-size:.75rem;color:var(--muted)}.round-check{width:30px;height:30px;border-radius:50%;border:1px solid #b9c0ba;background:transparent;color:transparent}.round-check:hover{background:#dceadf;color:var(--green)}.round-check svg{width:16px}.stepper{display:flex;align-items:center;gap:.5rem}.stepper span{min-width:24px;text-align:center;font-size:.8rem}.danger{color:var(--danger)}.purchase-card{background:var(--ink);color:#dbe6e1;border-radius:20px;padding:1.5rem;position:sticky;top:90px}.purchase-card h2{color:#fff;font-size:1.8rem;margin:.2rem 0 .5rem}.purchase-card>p:not(.eyebrow){font-size:.85rem;color:#aec1b8;line-height:1.5}.purchase-icon{width:46px;height:46px;border-radius:14px;background:var(--gold);color:var(--ink);display:grid;place-items:center;margin-bottom:1.2rem}.summary-line{display:flex;justify-content:space-between;padding:.7rem 0;border-top:1px solid #ffffff18;font-size:.85rem}.purchase-card .primary-button{width:100%;background:var(--gold);color:var(--ink);margin-top:1rem}.purchase-card small{display:block;text-align:center;color:#8fa89c;margin-top:.8rem}.confirmation{padding:0 1.5rem 1.5rem}.confirm-symbol{width:54px;height:54px;border-radius:50%;background:#dceddf;color:var(--green);display:grid;place-items:center;margin-bottom:1rem}.confirmation>p{color:var(--muted);line-height:1.6}.timeline{background:var(--paper);border:1px solid var(--line);border-radius:18px;overflow:hidden}.timeline article{display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:center;padding:1rem 1.2rem;border-bottom:1px solid #ecece7}.timeline article:last-child{border:0}.timeline-icon{width:38px;height:38px;border-radius:12px;background:#e1eee6;color:#327156;display:grid;place-items:center}.timeline-icon svg{width:18px}.timeline-icon.stock_consume,.timeline-icon.shopping_remove{background:#f7e4df;color:#a84e44}.timeline p{margin:0;font-size:.88rem}.timeline span,.timeline time{font-size:.72rem;color:var(--muted)}.members-card{background:var(--paper);border:1px solid var(--line);border-radius:18px;overflow:hidden}.members-card>header{padding:1.2rem;border-bottom:1px solid var(--line)}.members-card>header>div{display:flex;gap:.8rem}.members-card>header svg{color:var(--green)}.members-card h2,.members-card h3{font-family:inherit;margin:0;font-size:1rem}.members-card p{margin:.2rem 0 0;color:var(--muted);font-size:.75rem}.members-card article{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:1rem;padding:1rem 1.2rem;border-bottom:1px solid #ecece7}.members-card article:last-child{border:0}.members-card h3 small{font-weight:400;color:var(--muted)}.role{display:flex;align-items:center;gap:.35rem;border-radius:999px;padding:.35rem .6rem;font-size:.7rem;background:#edf0ec}.role.owner{background:#fff0c9;color:#775a16}.role svg{width:14px}.security-note{display:flex;gap:1rem;background:#e5ede8;border-radius:16px;padding:1.2rem;margin-top:1rem}.security-note>svg{color:var(--green)}.security-note h3{margin:0;font-size:.9rem}.security-note p{margin:.25rem 0 0;color:var(--muted);font-size:.78rem}.invite-box{padding:0 1.5rem 1.5rem;display:grid;gap:1.2rem}.invite-box>p{color:var(--muted);font-size:.85rem}.copy-field{display:grid;grid-template-columns:auto 1fr auto;align-items:center;border:1px solid var(--line);border-radius:12px;background:#fff;padding-left:.8rem}.copy-field input{border:0;background:transparent}.copy-field svg{width:17px}.copy-field button{border:0;background:transparent;padding:.7rem}.invite-code{display:flex;justify-content:space-between;align-items:center;background:#fff;border:1px dashed #aeb7b0;border-radius:12px;padding:.8rem 1rem}.invite-code strong{font-size:1.25rem;letter-spacing:.12em}.onboarding{min-height:100vh;background:var(--ink);color:#fff;padding:3rem;display:grid;place-items:center}.onboarding>.wordmark{position:absolute;top:2rem;left:3rem}.onboarding section{width:min(720px,100%)}.onboarding h1{color:#fff}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.choice-grid button{background:#ffffff0d;border:1px solid #ffffff22;border-radius:20px;padding:1.5rem;color:#fff;text-align:left;display:grid;gap:.8rem}.choice-grid button:hover{background:#ffffff16;border-color:var(--gold)}.choice-grid svg{color:var(--gold)}.choice-grid strong{font-size:1.1rem}.choice-grid span{color:#aabcb4;font-size:.85rem;line-height:1.5}.onboarding-form{background:#fff;color:var(--ink);border-radius:20px;padding:1.5rem}.drawer-shade{display:none}@media(max-width:900px){.auth-shell{grid-template-columns:1fr}.auth-story{display:none}.auth-panel{min-height:100vh;padding-top:7rem}.mobile-wordmark{display:flex;position:absolute;top:1.5rem;left:1.5rem}.app-shell{display:block}.sidebar{transform:translate(-102%);transition:.25s;width:min(300px,86vw);box-shadow:20px 0 50px #0003}.sidebar.open{transform:none}.main{grid-column:auto}.menu-button,.mobile-close{display:grid}.mobile-close{color:#b8cbc2}.sidebar-top{display:flex;justify-content:space-between;align-items:flex-start}.drawer-shade{display:block;position:fixed;inset:0;background:#0006;z-index:25}.topbar{justify-content:space-between}.shopping-layout{grid-template-columns:1fr}.purchase-card{position:static}.choice-grid{grid-template-columns:1fr}}@media(max-width:600px){.content{padding:1.25rem}.page-heading{align-items:flex-start;flex-direction:column}.page-heading .primary-button{width:100%}.topbar{padding:0 1rem}.sync-button span{display:none}.location-tabs{margin-right:-1.25rem;scrollbar-width:none;scroll-snap-type:x proximity}.location-tabs::-webkit-scrollbar{display:none}.location-tabs button{scroll-snap-align:start}.stock-grid,.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.shopping-row{grid-template-columns:auto auto 1fr auto}.stepper{grid-column:3/-1;justify-content:flex-end}.timeline article{grid-template-columns:auto 1fr}.timeline time{grid-column:2}.members-card article{grid-template-columns:auto 1fr auto}.members-card .role{grid-column:2}.onboarding{padding:1.25rem}.onboarding>.wordmark{top:1.25rem;left:1.25rem}.invite-code{align-items:stretch;flex-direction:column;gap:.7rem}.auth-panel{padding:1.25rem}.auth-card h2{font-size:1.8rem}}
