:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--font-display:"Fraunces", "Iowan Old Style", serif;--font-body:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--h1:clamp(2.0239rem, 28.1006px + 1.3382vw, 2.6127rem);--h2:clamp(1.7599rem, 25.1238px + .9485vw, 2.1773rem);--h3:clamp(1.5304rem, 22.4205px + .6455vw, 1.8144rem);--h4:clamp(1.3308rem, 19.9742px + .4119vw, 1.512rem);--h5:clamp(1.1572rem, 17.7673px + .2337vw, 1.26rem);--h6:clamp(1.0062rem, 15.7818px + .0994vw, 1.05rem);--body:.875rem;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-headline:700;--font-weight-title:var(--font-weight-medium);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-7:1.75rem;--space-8:2rem;--space-10:2.5rem;--space-11:2.75rem;--color-bg:#f1eee6;--color-surface:#faf8f3;--color-surface-raised:#fff;--color-border:#1c1b1914;--color-text:#1c1b19;--color-text-muted:#8c8579;--color-text-faint:#b3ada0;--color-accent:#4f8f6b;--color-accent-strong:#3a6b50;--color-accent-bg:#dceae3;--color-highlight-bg:#dceaef;--color-highlight-strong:#3f7385;--color-status-open:#b8b2a6;--color-status-swap:#e3b341;--color-status-missing:#d1604a;--color-status-ready:#4f8f6b;--color-status-leftover:#a8927b;--color-tag-mint-bg:#dcefe3;--color-tag-mint-text:#2f6b4f;--color-tag-amber-bg:#fce8c9;--color-tag-amber-text:#8a6a1f;--color-tag-danger-bg:#f7deda;--color-tag-danger-text:#b23b2e;--radius-lg:24px;--radius-md:16px;--radius-pill:999px;--shadow-card:0 1px 2px #1c1b190a, 0 12px 28px #1c1b190f;font-family:var(--font-body);background:var(--color-bg);color:var(--color-text)}*{box-sizing:border-box}body,html,#root{width:100%;min-height:100%;margin:0}body{background:var(--color-bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.app-shell{padding:var(--space-5);justify-content:center;align-items:center;width:100%;display:flex}@media (width>=640px){.app-shell{padding:var(--space-8)}}.landing-logo{margin-bottom:var(--space-4);display:block}.eyebrow{margin:0 0 var(--space-2);font-size:.75rem;font-weight:var(--font-weight-semibold);letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted)}.card{width:100%;min-width:320px;max-width:540px;padding:var(--space-7);border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-card)}@media (width>=640px){.card{padding:var(--space-11)}}h1,h2,h3,h4,h5,h6{margin:0 0 var(--space-3);font-family:var(--font-display);letter-spacing:-.01em;line-height:1.1}h1,h2,h3{font-weight:var(--font-weight-headline)}h4,h5,h6{font-weight:var(--font-weight-title)}h1{font-size:var(--h1)}h2{font-size:var(--h2)}h3{font-size:var(--h3)}h4{font-size:var(--h4)}h5{font-size:var(--h5)}h6{font-size:var(--h6)}p{font-size:var(--body);margin:var(--space-3) 0;color:var(--color-text-muted);line-height:1.6}.error{color:var(--color-status-missing)}.success{color:var(--color-accent-strong)}a{color:var(--color-accent-strong);font-weight:var(--font-weight-medium);text-decoration:none}a:hover{text-decoration:underline}form{gap:var(--space-1);margin-top:var(--space-6);flex-direction:column;display:flex}label{font-size:.8rem;font-weight:var(--font-weight-medium);color:var(--color-text-muted);margin-top:var(--space-3)}input,select{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface-raised);color:var(--color-text);font-family:var(--font-body);padding:.7rem .85rem;font-size:1rem}select{cursor:pointer}input::placeholder{color:var(--color-text-faint)}input:focus,select:focus{outline:2px solid var(--color-accent);outline-offset:1px}.actions{gap:var(--space-3);margin-top:var(--space-7);display:flex}.button{text-align:center;padding:var(--space-3) var(--space-6);border-radius:var(--radius-pill);background:var(--color-text);color:var(--color-surface);font-family:var(--font-body);font-weight:var(--font-weight-semibold);cursor:pointer;margin-top:var(--space-5);border:none;justify-content:center;align-items:center;font-size:.95rem;text-decoration:none;transition:opacity .15s;display:inline-flex}.button:hover{opacity:.85;text-decoration:none}.button:disabled{opacity:.5;cursor:not-allowed}.button-secondary{color:var(--color-text);border:1px solid var(--color-border);background:0 0}.button-outline{color:var(--color-text);border:1px solid var(--color-text);background:0 0}.button-secondary-filled{background:var(--color-border);color:var(--color-text);border:none}.button-text{color:var(--color-accent-strong);padding:var(--space-2) var(--space-3);background:0 0;border:none}.button-text:hover{opacity:1;text-decoration:underline}.chip{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);background:var(--color-surface-raised);border:1px solid var(--color-border);color:var(--color-text);font-size:.85rem;display:inline-flex}.status-dot{background:var(--color-status-open);border-radius:50%;width:8px;height:8px;display:inline-block}.status-dot.ready{background:var(--color-status-ready)}.status-dot.swap{background:var(--color-status-swap)}.status-dot.missing{background:var(--color-status-missing)}.status-dot.leftover{background:var(--color-status-leftover)}.cell-highlight{background:var(--color-highlight-bg);color:var(--color-highlight-strong)}.tag{padding:.3rem var(--space-3);border-radius:var(--radius-pill);font-size:.8rem;font-weight:var(--font-weight-medium);align-items:center;display:inline-flex}.tag-mint{background:var(--color-tag-mint-bg);color:var(--color-tag-mint-text)}.tag-amber{background:var(--color-tag-amber-bg);color:var(--color-tag-amber-text)}.tag-danger{background:var(--color-tag-danger-bg);color:var(--color-tag-danger-text)}.app-layout{background:var(--color-bg);align-items:stretch;width:100%;min-height:100vh;display:flex}.sidebar{width:220px;height:100vh;padding:var(--space-7) var(--space-5);border-right:1px solid var(--color-border);align-self:flex-start;gap:var(--space-6);flex-direction:column;flex-shrink:0;display:none;position:sticky;top:0}.sidebar-brand{align-items:center;gap:var(--space-2);font-family:var(--font-display);font-size:1.5rem;font-weight:var(--font-weight-semibold);margin:0;display:flex}.sidebar-nav{gap:var(--space-1);flex-direction:column;display:flex}.sidebar .nav-link{justify-content:flex-start;gap:var(--space-3);padding:.6rem var(--space-3);flex-direction:row;font-size:.9rem}.sidebar .nav-link:hover{background:var(--color-surface)}.sidebar-settings{margin-top:auto}.sidebar-account-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.app-content{flex-direction:column;flex:1;min-width:0;display:flex}.app-topbar{padding:var(--space-5) var(--space-5) 0;justify-content:space-between;align-items:center;display:flex}.topbar-brand{align-items:center;gap:var(--space-2);font-family:var(--font-display);font-size:1.35rem;font-weight:var(--font-weight-semibold);display:flex}.icon-button{background:var(--color-surface-raised);width:40px;height:40px;color:var(--color-text);box-shadow:var(--shadow-card);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;transition:opacity .15s;display:inline-flex}.icon-button:hover{opacity:.85}.icon-button:disabled{opacity:.5;cursor:not-allowed}.avatar{object-fit:cover;border-radius:50%;flex-shrink:0}.avatar-fallback{background:var(--color-accent-bg);color:var(--color-accent-strong);font-weight:var(--font-weight-semibold);font-family:var(--font-body);justify-content:center;align-items:center;display:inline-flex}.app-main{width:100%;padding:var(--space-5);flex:1;padding-bottom:5.5rem}.page{max-width:880px;margin:0 auto}.page-subtitle{margin-top:calc(-1 * var(--space-1))}.bottom-nav{background:var(--color-surface-raised);border-top:1px solid var(--color-border);padding:var(--space-2) var(--space-1);justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav .nav-link{gap:var(--space-1);padding:.35rem var(--space-2);flex-direction:column;font-size:.7rem}.nav-link{border-radius:var(--radius-md);color:var(--color-text-muted);font-weight:var(--font-weight-medium);align-items:center;text-decoration:none;display:flex}.nav-link:hover{text-decoration:none}.nav-link.active{color:var(--color-accent-strong);background:var(--color-accent-bg)}@media (width>=768px){.sidebar{display:flex}.app-topbar,.bottom-nav{display:none}.app-main{padding:var(--space-10);padding-bottom:var(--space-10)}}.section-title{margin:var(--space-8) 0 var(--space-4)}.section-description{margin:0 0 var(--space-4)}.tab-nav{gap:var(--space-2);margin-top:var(--space-6);border-bottom:1px solid var(--color-border);padding-bottom:var(--space-3);display:flex}.tab-link{padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);color:var(--color-text-muted);font-weight:var(--font-weight-medium);font-size:.9rem;text-decoration:none}.tab-link:hover{background:var(--color-surface);text-decoration:none}.tab-link.active{color:var(--color-accent-strong);background:var(--color-accent-bg)}.stat-grid{gap:var(--space-4);margin-top:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.stat-card{min-width:0;max-width:none}.stat-value{margin:var(--space-1) 0;font-family:var(--font-display);font-size:2rem;font-weight:var(--font-weight-semibold);color:var(--color-text)}.day-strip{gap:var(--space-3);padding-bottom:var(--space-2);margin-top:var(--space-6);display:flex;overflow-x:auto}.day-card{border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);flex:none;min-width:92px;padding:.85rem}.day-card.cell-highlight{background:var(--color-highlight-bg);border-color:#0000}.day-card-top{color:var(--color-text-muted);justify-content:space-between;align-items:center;font-size:.8rem;display:flex}.day-card-date{font-family:var(--font-display);font-size:1.4rem;font-weight:var(--font-weight-semibold);color:var(--color-text);margin:.4rem 0 0}.day-card-status{margin:.2rem 0 0;font-size:.8rem}.recipe-card{margin-top:var(--space-4);min-width:0;max-width:none}.recipe-card-head{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.recipe-card-head h3{color:var(--color-text);margin:0}.tag-row{gap:var(--space-2);margin-top:var(--space-3);display:flex}.list-card{margin-top:var(--space-6);min-width:0;max-width:none;padding:var(--space-2) var(--space-7)}.settings-card{margin-top:var(--space-6);min-width:0;max-width:none}.settings-card .section-title{margin-top:0}.avatar-upload-row{align-items:center;gap:var(--space-5);margin-top:var(--space-4);display:flex}.avatar-upload-row .button{margin-top:0}.avatar-input{opacity:0;width:1px;height:1px;position:absolute;overflow:hidden}.modal-backdrop{padding:var(--space-5);z-index:100;background:#1c1b1973;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card{flex-direction:column;align-items:center;max-width:360px;display:flex}.crop-viewport{background:var(--color-bg);touch-action:none;cursor:grab;margin-top:var(--space-4);border-radius:50%;position:relative;overflow:hidden}.crop-viewport:active{cursor:grabbing}.crop-image{-webkit-user-select:none;user-select:none;max-width:none;position:absolute;top:0;left:0}.crop-zoom{width:100%;margin-top:var(--space-5)}.household-members{margin:var(--space-4) 0 0;gap:var(--space-3);flex-direction:column;padding:0;list-style:none;display:flex}.household-member{align-items:center;gap:var(--space-3);display:flex}.household-member-name{color:var(--color-text);font-weight:var(--font-weight-medium);margin:0}.household-member-email{margin:0;font-size:.85rem}.invite-link-row{gap:var(--space-3);margin-top:var(--space-5);display:flex}.invite-link-input{flex:1;min-width:0}.invite-link-row .button{margin-top:0}.household-rename-form{align-items:center;gap:var(--space-3);margin-top:var(--space-1);flex-direction:row;display:flex}.household-rename-form .button{margin-top:0}.household-name-input{flex:1;min-width:0}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.5}}.skeleton{background:var(--color-border);border-radius:var(--radius-md);flex-shrink:0;animation:1.5s ease-in-out infinite skeleton-pulse}.household-skeleton{gap:var(--space-5);margin-top:var(--space-4);flex-direction:column;display:flex}.household-skeleton .household-rename-form{margin-top:0}.list-row{padding:var(--space-4) 0;border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.list-row:last-child{border-bottom:none}.inventory-row{gap:var(--space-3);flex-wrap:wrap}.inventory-row-controls{align-items:center;gap:var(--space-3);display:flex}.inventory-row-controls .button{margin-top:0}.inventory-count-input{width:4.5rem}.add-item-form{margin-top:var(--space-6);gap:var(--space-2);flex-direction:column;min-width:0;max-width:none;display:flex}.add-item-form .button{margin-top:var(--space-3);align-self:flex-start}.checkbox-row{align-items:center;gap:var(--space-2);margin-top:var(--space-2);display:flex}.checkbox-row input{width:auto}.planner-row{gap:var(--space-3)}.planner-row-controls{align-items:flex-end;gap:var(--space-1);flex-direction:column;display:flex}.planner-row-controls select{min-width:180px}.calendar-providers-card{margin-top:var(--space-4);min-width:0;max-width:none}.calendar-providers-head{justify-content:space-between;align-items:center;display:flex}.calendar-providers-head h3{margin:0}.value-grid{gap:var(--space-5);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.value-item-icon{border-radius:var(--radius-md);background:var(--color-accent-bg);width:40px;height:40px;color:var(--color-accent-strong);margin-bottom:var(--space-3);justify-content:center;align-items:center;display:inline-flex}.value-item h4{margin:0 0 var(--space-2)}.value-item p{margin:0}.zone-grid{gap:var(--space-5);margin-top:var(--space-6);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}.zone-card{min-width:0;max-width:none}.zone-card-head{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.zone-card-head h3{text-transform:capitalize;margin:0}.zone-progress-track{border-radius:var(--radius-pill);background:var(--color-border);width:100%;height:8px;margin:var(--space-3) 0;overflow:hidden}.zone-progress-fill{background:var(--color-accent);border-radius:var(--radius-pill);height:100%}.zone-card .button{margin-top:var(--space-3)}.ingredient-row{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.ingredient-row .checkbox-row,.ingredient-row .button{margin-top:0}.list-row-meta{color:var(--color-text-muted)}
