:root{--c-bg:#fff8ef;--c-surface:#fff;--c-surface-2:#fff1e0;--c-ink:#2b2118;--c-ink-soft:#5f4f42;--c-line:#f0dcc6;--c-primary:#c2410c;--c-primary-ink:#fff;--c-primary-soft:#ffe4d2;--c-success:#2f7d4f;--c-success-soft:#dcf3e3;--c-warning:#8a5a00;--c-warning-soft:#fff0c2;--c-info:#2858b8;--c-info-soft:#e1eaff;--c-danger:#b42318;--c-danger-soft:#fde4e1;--c-slot-breakfast:#fff1c2;--c-slot-lunchbox:#fde4ef;--c-slot-lunch:#ffe1d4;--c-slot-snack:#dff4e0;--c-slot-dinner:#e3e8ff;--c-tosia:#ffd6e7;--c-maks:#d3ecff;--font-sans:"Nunito", ui-rounded, "SF Pro Rounded", "Segoe UI Variable Text", "Segoe UI", system-ui, sans-serif;--fs-xs:.8125rem;--fs-sm:.9375rem;--fs-md:1.0625rem;--fs-lg:1.25rem;--fs-xl:1.625rem;--fs-2xl:2.125rem;--fw-regular:500;--fw-bold:750;--fw-black:850;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--r-sm:10px;--r-md:16px;--r-lg:24px;--r-pill:999px;--shadow-1:0 1px 2px #5c341214, 0 2px 8px #5c34120f;--shadow-2:0 6px 24px #5c341224;--touch:44px;--touch-lg:56px;--focus-ring:0 0 0 3px #fff, 0 0 0 6px #2858b8;--ease-bounce:cubic-bezier(.34, 1.56, .64, 1)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--c-bg);color:var(--c-ink);font-family:var(--font-sans);font-size:var(--fs-md);font-weight:var(--fw-regular);margin:0;line-height:1.45}h1,h2,p{margin:0}h1{font-size:var(--fs-xl);font-weight:var(--fw-black);line-height:1.15}h2{font-size:var(--fs-lg);font-weight:var(--fw-bold)}a{color:inherit}button,input,select{font:inherit;color:inherit}:focus-visible{box-shadow:var(--focus-ring);border-radius:var(--r-sm);outline:none}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.muted{color:var(--c-ink-soft)}.small{font-size:var(--fs-sm)}.stack{gap:var(--sp-4);grid-template-columns:minmax(0,1fr);display:grid}.row{align-items:center;gap:var(--sp-2);display:flex}.row.wrap{flex-wrap:wrap}.center{min-height:100dvh;padding:var(--sp-6);place-items:center;display:grid}.splash{font-size:4rem;animation:1.2s ease-in-out infinite pulse}.eyebrow{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.08em;font-weight:var(--fw-bold);color:var(--c-primary)}.btn{justify-content:center;align-items:center;gap:var(--sp-2);min-height:var(--touch);padding:0 var(--sp-5);border-radius:var(--r-pill);font-weight:var(--fw-bold);cursor:pointer;transition:transform .15s var(--ease-bounce), background .15s;border:2px solid #0000;text-decoration:none;display:inline-flex}.btn:active:not(:disabled){transform:scale(.96)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--c-primary);color:var(--c-primary-ink)}.btn-primary:hover:not(:disabled){background:#a3360a}.btn-soft{background:var(--c-primary-soft);color:#8a2e07}.btn-ghost{border-color:var(--c-line);color:var(--c-ink);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--c-surface-2)}.btn-google{background:var(--c-surface);color:#1f1f1f;border-color:#dadce0;width:100%}.btn-sm{min-height:var(--touch);padding:0 var(--sp-3);font-size:var(--fs-sm)}.btn-lg{min-height:var(--touch-lg);font-size:var(--fs-lg)}.btn-xl{min-height:64px;font-size:var(--fs-lg);width:100%}.icon-btn{min-width:var(--touch);min-height:var(--touch);border-radius:var(--r-pill);cursor:pointer;font-size:var(--fs-lg);background:0 0;border:none}.icon-btn:hover{background:#0000000f}.card{background:var(--c-surface);border-radius:var(--r-lg);box-shadow:var(--shadow-1);padding:var(--sp-4);border:1px solid var(--c-line)}.pill{align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-pill);font-size:var(--fs-sm);font-weight:var(--fw-bold);white-space:nowrap;display:inline-flex}.pill-neutral{color:var(--c-ink);background:#efe7dd}.pill-warning{background:var(--c-warning-soft);color:var(--c-warning)}.pill-success{background:var(--c-success-soft);color:var(--c-success)}.pill-info{background:var(--c-info-soft);color:var(--c-info)}.tag{padding:2px var(--sp-2);border-radius:var(--r-pill);border:1px solid var(--c-line);font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--c-ink-soft);background:#ffffffbf;display:inline-block}.tag-kids{background:var(--c-success-soft);color:var(--c-success);border-color:#0000}.tag-draft{background:var(--c-warning-soft);color:var(--c-warning);border-color:#0000}.tag-protein{background:var(--c-info-soft);color:var(--c-info);border-color:#0000}.protein{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--c-info)}.banner{justify-content:space-between;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);font-weight:var(--fw-bold);display:flex}.banner-danger{background:var(--c-danger-soft);color:var(--c-danger)}.banner-info{background:var(--c-info-soft);color:var(--c-info)}.banner-success{background:var(--c-success-soft);color:var(--c-success)}.banner-warning{background:var(--c-warning-soft);color:var(--c-warning)}.avatar{background:var(--c-surface-2);border-radius:50%;flex:none;place-items:center;display:inline-grid}.avatar-sm{width:28px;height:28px;font-size:16px}.avatar-md{width:48px;height:48px;font-size:28px}.avatar-lg{width:96px;height:96px;font-size:60px}.avatar-xl{width:120px;height:120px;font-size:76px}.avatar-tosia{background:var(--c-tosia)}.avatar-maks{background:var(--c-maks)}.avatar-marcin{background:var(--c-info-soft)}.avatar-ania{background:var(--c-warning-soft)}.app{min-height:100dvh;padding-bottom:calc(80px + env(safe-area-inset-bottom))}.topbar{z-index:20;justify-content:space-between;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-4);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--c-line);background:#fff8efeb;display:flex;position:sticky;top:0}.brand{align-items:center;gap:var(--sp-2);min-height:var(--touch);font-weight:var(--fw-black);font-size:var(--fs-lg);text-decoration:none;display:flex}.brand-text{display:none}.topbar-right{align-items:center;gap:var(--sp-2);display:flex}.week-select{min-height:var(--touch);border-radius:var(--r-pill);border:1px solid var(--c-line);padding:0 var(--sp-3);background:var(--c-surface)}.user-btn{align-items:center;gap:var(--sp-2);min-height:var(--touch);padding:0 var(--sp-2);border:1px solid var(--c-line);border-radius:var(--r-pill);background:var(--c-surface);cursor:pointer;font-weight:var(--fw-bold);display:flex}.user-name{display:none}.demo-ribbon{background:var(--c-warning-soft);color:var(--c-warning);text-align:center;font-size:var(--fs-xs);font-weight:var(--fw-bold);padding:var(--sp-1) var(--sp-3)}.tabbar{z-index:20;background:var(--c-surface);border-top:1px solid var(--c-line);padding:var(--sp-1) var(--sp-1) calc(var(--sp-1) + env(safe-area-inset-bottom));justify-content:space-around;display:flex;position:fixed;inset:auto 0 0;box-shadow:0 -4px 20px #5c341214}.tab{border-radius:var(--r-md);min-width:0;min-height:60px;font-size:min(var(--fs-xs), 2.8vw);font-weight:var(--fw-bold);color:var(--c-ink-soft);flex-direction:column;flex:1;justify-content:center;align-items:center;text-decoration:none;display:flex;position:relative}.tab-label{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.tab-emoji{transition:transform .2s var(--ease-bounce);font-size:24px;line-height:1.1}.tab.is-active{color:var(--c-primary);background:var(--c-primary-soft)}.tab.is-active .tab-emoji{transform:scale(1.15)}.content{max-width:1200px;padding:var(--sp-4);margin:0 auto}.login{max-width:520px;padding:var(--sp-8) var(--sp-4);gap:var(--sp-6);grid-template-columns:minmax(0,1fr);margin:0 auto;display:grid}.login-hero{text-align:center;gap:var(--sp-2);grid-template-columns:minmax(0,1fr);display:grid}.login-logo{font-size:64px}.login-hero h1{font-size:var(--fs-2xl)}.login-hero p{font-size:var(--fs-lg);color:var(--c-ink-soft)}.login-parents{gap:var(--sp-3);grid-template-columns:minmax(0,1fr);display:grid}.demo-logins{gap:var(--sp-2);grid-template-columns:minmax(0,1fr);display:grid}.demo-logins .btn{flex:1}.pin-card{gap:var(--sp-3);text-align:center;justify-items:center;display:grid}.pin-dots{gap:var(--sp-3);display:flex}.pin-dots span{border:2px solid var(--c-primary);border-radius:50%;width:18px;height:18px}.pin-dots .is-filled{background:var(--c-primary)}.pin-dots.is-error span{border-color:var(--c-danger)}.pin-dots.is-error{animation:.4s shake}@keyframes shake{25%{transform:translate(-8px)}75%{transform:translate(8px)}}.pin-pad{gap:var(--sp-3);grid-template-columns:repeat(3,72px);display:grid}.pin-key{border:2px solid var(--c-line);background:var(--c-surface);width:72px;height:72px;font-size:var(--fs-xl);font-weight:var(--fw-bold);cursor:pointer;border-radius:50%}.pin-key:active:not(:disabled){background:var(--c-primary-soft)}.pin-key-action{color:var(--c-ink-soft);background:0 0;border-color:#0000}.profiles{max-width:880px;padding:var(--sp-8) var(--sp-4);gap:var(--sp-6);justify-items:center;margin:0 auto;display:grid}.profiles-head{text-align:center;gap:var(--sp-2);grid-template-columns:minmax(0,1fr);display:grid}.profiles-head h1{font-size:var(--fs-2xl)}.profile-grid{gap:var(--sp-4);grid-template-columns:repeat(2,1fr);width:100%;margin:0;padding:0;list-style:none;display:grid}.profile-tile{justify-items:center;gap:var(--sp-2);width:100%;padding:var(--sp-6) var(--sp-3);border-radius:var(--r-lg);background:var(--c-surface);box-shadow:var(--shadow-1);cursor:pointer;transition:transform .2s var(--ease-bounce);border:3px solid #0000;display:grid}.profile-tile:hover:not(:disabled),.profile-tile:focus-visible{transform:translateY(-4px)}.profile-tile.is-active{border-color:var(--c-primary)}.profile-name{font-size:var(--fs-xl);font-weight:var(--fw-black)}.profiles-actions{justify-content:center;gap:var(--sp-3);flex-wrap:wrap;display:flex}.hero-card{gap:var(--sp-3);background:linear-gradient(135deg, #fff 0%, var(--c-surface-2) 100%);grid-template-columns:minmax(0,1fr);display:grid}.hero-title{font-size:var(--fs-xl)}.tone-success{background:linear-gradient(135deg, #fff 0%, var(--c-success-soft) 100%)}.tone-info{background:linear-gradient(135deg, #fff 0%, var(--c-info-soft) 100%)}.kid-hint{font-size:var(--fs-lg);font-weight:var(--fw-bold)}.day-strip{gap:var(--sp-1);grid-template-columns:repeat(7,minmax(44px,1fr));display:grid}.day-chip{border-radius:var(--r-md);background:var(--c-surface);border:1px solid var(--c-line);min-height:56px;transition:transform .15s var(--ease-bounce);align-content:center;justify-items:center;text-decoration:none;display:grid}.day-chip:hover{transform:translateY(-2px)}.day-chip-name{font-weight:var(--fw-black)}.day-chip-date{font-size:var(--fs-xs);color:var(--c-ink-soft)}.day-chip.is-active{background:var(--c-primary);border-color:var(--c-primary);color:var(--c-primary-ink)}.day-chip.is-active .day-chip-date{color:var(--c-primary-ink)}.week-grid{gap:var(--sp-3);grid-template-columns:minmax(0,1fr);display:grid}.day-card{align-content:start;gap:var(--sp-3);transition:transform .15s var(--ease-bounce), box-shadow .15s;grid-template-columns:minmax(0,1fr);display:grid;position:relative}.day-card:hover{box-shadow:var(--shadow-2);transform:translateY(-2px)}.day-card-head{justify-content:space-between;align-items:baseline;display:flex}.day-card-link{color:inherit;text-decoration:none}.day-card-link:after{content:"";border-radius:var(--r-lg);position:absolute;inset:0}.day-card:has(.day-card-link:focus-visible){outline:3px solid var(--c-primary);outline-offset:2px}.recipe-chip{z-index:1;justify-content:center;align-items:center;gap:var(--sp-1);min-width:var(--touch);min-height:var(--touch);padding:0 var(--sp-3);border-radius:var(--r-pill);background:var(--c-primary-soft);color:#8a2e07;font-size:var(--fs-sm);font-weight:var(--fw-bold);flex:none;text-decoration:none;display:inline-flex;position:relative}.recipe-name-link{z-index:1;color:inherit;text-underline-offset:3px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;position:relative}.library-text .btn{justify-self:start}.day-card-list{gap:var(--sp-2);grid-template-columns:minmax(0,1fr);margin:0;padding:0;list-style:none;display:grid}.slot-row{align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);display:flex}.slot-row-emoji{flex:none;font-size:28px}.meal-photo{object-fit:cover;border-radius:var(--r-md);background:#f4ebdf;flex:none;display:block}.slot-row-emoji.meal-photo{border-radius:var(--r-sm);width:44px;height:44px}.slot-row-text{flex:1;grid-template-columns:minmax(0,1fr);min-width:0;display:grid}.slot-row-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;font-weight:var(--fw-bold);color:var(--c-ink-soft)}.slot-row-meal{font-weight:var(--fw-bold)}.for-whom{font-size:var(--fs-xs);color:var(--c-ink-soft)}.slot-row.is-skipped{background:repeating-linear-gradient(-45deg,#faf3ea,#faf3ea 8px,#f4ebdf 8px 16px)}.slot-row.is-skipped .slot-row-meal{color:var(--c-ink-soft);font-style:italic}.slot-breakfast{background:var(--c-slot-breakfast)}.slot-lunchbox{background:var(--c-slot-lunchbox)}.slot-lunch{background:var(--c-slot-lunch)}.slot-snack{background:var(--c-slot-snack)}.slot-dinner{background:var(--c-slot-dinner)}.day-head{align-items:baseline;gap:var(--sp-3);flex-wrap:wrap;display:flex}.slot-card{gap:var(--sp-3);border:none;grid-template-columns:minmax(0,1fr);display:grid}.slot-card-head{justify-content:space-between;align-items:baseline;display:flex}.tile-grid{gap:var(--sp-3);grid-template-columns:minmax(0,1fr);display:grid}.meal-tile{align-items:stretch;gap:var(--sp-2);flex-wrap:wrap;display:flex}.meal-tile .macro-details{flex-basis:100%}.tile-actions{align-self:center;gap:var(--sp-2);flex-direction:column;flex:none;display:flex}.tile-actions .btn{width:var(--touch-lg);padding:0}.tile-actions .btn-label{display:none}.meal-tile-main{column-gap:var(--sp-3);row-gap:var(--sp-1);text-align:left;min-width:0;min-height:84px;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);cursor:pointer;transition:transform .2s var(--ease-bounce), border-color .15s, background .15s;background:#ffffffd9;border:3px solid #0000;flex:1 1 0;grid-template-columns:auto 1fr;grid-template-areas:"emoji name""emoji meta""emoji macro""emoji extra""emoji changed";align-items:center;display:grid;position:relative}.meal-tile-main:hover:not(:disabled){transform:translateY(-2px)}.meal-tile-main:disabled{cursor:default}.meal-tile.is-selected .meal-tile-main{border-color:var(--c-success);background:var(--c-surface);box-shadow:var(--shadow-2);animation:pop .35s var(--ease-bounce)}.meal-tile:not(.is-selected) .meal-tile-main{opacity:.88}.meal-tile-emoji{grid-area:emoji;font-size:44px;line-height:1}.meal-tile-emoji.meal-photo{width:72px;height:72px}.meal-tile-name{overflow-wrap:break-word;min-width:0;font-weight:var(--fw-bold);font-size:var(--fs-md);grid-area:name}.meal-tile-meta{gap:var(--sp-1);flex-wrap:wrap;grid-area:meta;display:flex}.meal-tile-main .protein{grid-area:extra}.meal-tile-main .macro-short{grid-area:macro}.macro-short{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--c-ink-soft);font-variant-numeric:tabular-nums}.macro-details{font-size:var(--fs-xs);color:var(--c-ink-soft)}.macro-details summary{min-height:var(--touch);padding:0 var(--sp-2);align-items:center;gap:var(--sp-1);font-weight:var(--fw-bold);cursor:pointer;list-style:none;display:flex}.macro-details summary::-webkit-details-marker{display:none}.macro-details summary:before{content:"▸";transition:transform .15s}.macro-details[open] summary:before{transform:rotate(90deg)}.macro-details>:not(summary){margin:var(--sp-1) var(--sp-2) var(--sp-2)}.macro-table{border-collapse:collapse;width:100%;font-size:var(--fs-xs);font-variant-numeric:tabular-nums}.macro-table th,.macro-table td{padding:var(--sp-1) var(--sp-2);border-bottom:1px solid var(--c-line)}.macro-table th{text-align:left}.macro-table td,.macro-table thead th:not(:first-child){text-align:right;white-space:nowrap}.macro-table abbr{text-decoration:none}.day-macros{gap:var(--sp-2);grid-template-columns:minmax(0,1fr);display:grid}.day-macros h2{font-size:var(--fs-md)}.changed-inline{align-items:center;gap:var(--sp-1);font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--c-ink-soft);grid-area:changed;display:inline-flex}.tile-check{background:var(--c-success);color:#fff;width:32px;height:32px;font-weight:var(--fw-black);box-shadow:var(--shadow-1);border-radius:50%;place-items:center;display:grid;position:absolute;top:-10px;right:-10px}.meal-tile .btn-ghost{background:#fff9;justify-self:start}.role-child .meal-tile-main{border-radius:var(--r-lg);min-height:112px}.role-child .meal-tile-emoji{font-size:64px}.role-child .meal-tile-emoji.meal-photo{width:88px;height:88px}.slot-actions{justify-content:flex-end;display:flex}.slot-actions .btn-ghost{background:#fff9}.optional-slot{gap:var(--sp-3);grid-template-columns:minmax(0,1fr);display:grid}.optional-meal{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);background:#ffffffd9;display:flex}.optional-slot.is-off .optional-meal{opacity:.7}.optional-slot .row{flex-wrap:wrap}.switch{align-items:center;gap:var(--sp-3);min-height:var(--touch);padding:var(--sp-1) var(--sp-4) var(--sp-1) var(--sp-1);border-radius:var(--r-pill);border:2px solid var(--c-line);background:var(--c-surface);font-weight:var(--fw-bold);cursor:pointer;display:inline-flex}.switch-knob{border-radius:var(--r-pill);background:#d6cabd;width:52px;height:32px;transition:background .2s;position:relative}.switch-knob:after{content:"";width:26px;height:26px;box-shadow:var(--shadow-1);transition:transform .25s var(--ease-bounce);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px}.switch.is-on .switch-knob{background:var(--c-success)}.switch.is-on .switch-knob:after{transform:translate(20px)}.sheet-backdrop{z-index:50;background:#2b211873;justify-content:center;align-items:flex-end;animation:.2s fade;display:flex;position:fixed;inset:0}.sheet{background:var(--c-bg);border-radius:var(--r-lg) var(--r-lg) 0 0;width:100%;max-width:640px;max-height:85dvh;padding:var(--sp-4) var(--sp-4) calc(var(--sp-6) + env(safe-area-inset-bottom));animation:slide-up .3s var(--ease-bounce);overflow:auto}.sheet-head{margin-bottom:var(--sp-3);justify-content:space-between;align-items:center;display:flex}.swap-grid{gap:var(--sp-3);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));display:grid}.swap-tile{justify-items:center;gap:var(--sp-2);text-align:center;padding:var(--sp-4) var(--sp-3);border-radius:var(--r-md);border:2px solid var(--c-line);background:var(--c-surface);cursor:pointer;min-height:140px;transition:transform .2s var(--ease-bounce);display:grid}.swap-tile:hover{border-color:var(--c-primary);transform:translateY(-3px)}.swap-tile .meal-tile-emoji{font-size:48px}.swap-tile>*{grid-area:auto}.swap-tile .meal-tile-emoji.meal-photo{aspect-ratio:4/3;width:100%;height:auto}.celebrate{z-index:60;pointer-events:none;place-items:center;display:grid;position:fixed;inset:0}.celebrate-card{justify-items:center;gap:var(--sp-2);padding:var(--sp-6) var(--sp-8);background:var(--c-surface);border-radius:var(--r-lg);box-shadow:var(--shadow-2);font-size:var(--fs-xl);font-weight:var(--fw-black);animation:celebrate 1.3s var(--ease-bounce) forwards;display:grid}.celebrate-emoji{font-size:72px;animation:.6s ease-in-out 2 wiggle}.confetti{font-size:32px;animation:1.1s ease-out forwards confetti;position:absolute;top:50%;left:50%}.confetti-0{--dx:-140px;--dy:-160px}.confetti-1{--dx:140px;--dy:-170px}.confetti-2{--dx:-170px;--dy:40px}.confetti-3{--dx:170px;--dy:60px}.confetti-4{--dx:-40px;--dy:180px}.confetti-5{--dx:60px;--dy:-220px}.filters{gap:var(--sp-3);grid-template-columns:minmax(0,1fr);display:grid}.search{min-height:var(--touch);padding:0 var(--sp-4);border-radius:var(--r-pill);border:2px solid var(--c-line);background:var(--c-surface)}.chips{gap:var(--sp-2);padding-bottom:var(--sp-1);display:flex;overflow-x:auto}.chip{min-height:var(--touch);padding:0 var(--sp-4);border-radius:var(--r-pill);border:2px solid var(--c-line);background:var(--c-surface);font-weight:var(--fw-bold);cursor:pointer;flex:none}.chip.is-active{background:var(--c-ink);border-color:var(--c-ink);color:#fff}.library-grid{gap:var(--sp-3);grid-template-columns:minmax(0,1fr);display:grid}.library-card{gap:var(--sp-3);border:none;align-items:flex-start;display:flex}.library-emoji{font-size:44px;line-height:1}.library-emoji.meal-photo{width:72px;height:72px}.photo-credit{font-size:var(--fs-xs);color:var(--c-ink-soft);justify-self:start}.library-text{gap:var(--sp-2);grid-template-columns:minmax(0,1fr);display:grid}.library-text h2{font-size:var(--fs-md)}.stepper{gap:var(--sp-1);grid-template-columns:repeat(4,1fr);margin:0;padding:0;list-style:none;display:grid;position:relative}.step{justify-items:center;gap:var(--sp-1);text-align:center;font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--c-ink-soft);display:grid}.step-dot{background:var(--c-surface);border:2px solid var(--c-line);border-radius:50%;place-items:center;width:44px;height:44px;font-size:20px;display:grid}.step.is-done .step-dot{background:var(--c-success);border-color:var(--c-success);color:#fff}.step.is-current .step-dot{border-color:var(--c-primary);box-shadow:0 0 0 4px var(--c-primary-soft)}.step.is-current{color:var(--c-ink)}.approval-cards{gap:var(--sp-3);grid-template-columns:1fr 1fr;display:grid}.approval-card{align-items:center;gap:var(--sp-3);display:flex}.approval-card.is-done{border-color:var(--c-success);background:var(--c-success-soft)}.approval-name{font-weight:var(--fw-black);font-size:var(--fs-lg)}.ok-text{color:var(--c-success);font-weight:var(--fw-bold)}.approval-action{gap:var(--sp-3);grid-template-columns:minmax(0,1fr);display:grid}.stats{gap:var(--sp-2);margin-top:var(--sp-3);grid-template-columns:repeat(3,1fr);display:grid}.stat{text-align:center;padding:var(--sp-3) var(--sp-1);background:var(--c-surface-2);border-radius:var(--r-md);justify-items:center;display:grid}.stat-value{font-size:var(--fs-xl);font-weight:var(--fw-black)}.stat-label{font-size:var(--fs-xs);color:var(--c-ink-soft)}.change-list{margin:var(--sp-3) 0 0;gap:var(--sp-2);grid-template-columns:minmax(0,1fr);padding:0;list-style:none;display:grid}.change-list li{align-items:center;gap:var(--sp-2);padding:var(--sp-2) 0;border-bottom:1px dashed var(--c-line);flex-wrap:wrap;display:flex}.change-who{font-weight:var(--fw-black)}.change-what a{font-weight:var(--fw-bold);color:var(--c-primary)}.tag-dislike{background:var(--c-danger-soft);color:var(--c-danger);border-color:#0000}.report-badges{gap:var(--sp-1);flex-wrap:wrap;display:inline-flex}.slot-row-text .report-badges{margin-top:var(--sp-1)}.report-badge{padding:1px var(--sp-2) 1px 1px;border-radius:var(--r-pill);border:2px solid #0000;align-items:center;gap:2px;font-size:16px;line-height:1;display:inline-flex}.report-badge .avatar-sm{width:24px;height:24px;font-size:14px}.report-badge.tone-warning,.report-btn.tone-warning.is-on{background:var(--c-warning-soft)}.report-badge.tone-danger,.report-btn.tone-danger.is-on{background:var(--c-danger-soft)}.report-badge.tone-love,.report-btn.tone-love.is-on{background:#fde4ec}.report-badge.is-new{border-color:var(--c-warning)}.report-bar{gap:var(--sp-1);grid-template-columns:minmax(0,1fr);display:grid}.meal-tile .report-bar{flex-basis:100%}.report-buttons{gap:var(--sp-1);grid-template-columns:repeat(3,1fr);display:grid}.report-btn{min-height:var(--touch-lg);padding:var(--sp-1);border-radius:var(--r-md);border:2px solid var(--c-line);font-size:var(--fs-xs);font-weight:var(--fw-bold);cursor:pointer;transition:transform .15s var(--ease-bounce);background:#ffffffb3;flex-direction:column;justify-content:center;align-items:center;line-height:1.2;display:flex}.report-btn>span{font-size:22px}.report-btn:active:not(:disabled){transform:scale(.94)}.report-btn.is-on{border-color:currentColor}.report-btn.tone-warning.is-on{color:var(--c-warning)}.report-btn.tone-danger.is-on{color:var(--c-danger)}.report-btn.tone-love.is-on{color:#b0124f}.report-btn:disabled{cursor:default;opacity:.7}.report-form{gap:var(--sp-4);grid-template-columns:minmax(0,1fr);display:grid}.report-form label{gap:var(--sp-1);font-weight:var(--fw-bold);grid-template-columns:minmax(0,1fr);display:grid}.report-form textarea{font:inherit;padding:var(--sp-3);border-radius:var(--r-md);border:2px solid var(--c-line);resize:vertical}.report-meal{align-items:center;gap:var(--sp-3);display:flex}.report-link{font-weight:var(--fw-bold);color:var(--c-warning);justify-self:start}.tab-count{border-radius:var(--r-pill);background:var(--c-danger);color:#fff;min-width:20px;height:20px;font-size:12px;font-weight:var(--fw-black);place-items:center;padding:0 5px;display:grid;position:absolute;top:2px;right:calc(50% - 26px)}.report-list{margin:var(--sp-3) 0 0;gap:var(--sp-3);grid-template-columns:minmax(0,1fr);padding:0;list-style:none;display:grid}.report-card{gap:var(--sp-3);border-left:6px solid var(--c-line);grid-template-columns:minmax(0,1fr);display:grid}.report-card.tone-warning{border-left-color:var(--c-warning)}.report-card.tone-danger{border-left-color:var(--c-danger)}.report-card.tone-love{border-left-color:#e0457b}.report-head{align-items:center;gap:var(--sp-3);display:flex}.report-title{flex:1;min-width:0}.report-comment{padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);background:var(--c-surface-2);font-style:italic}.report-where{gap:var(--sp-2);grid-template-columns:minmax(0,1fr);margin:0;padding:0;list-style:none;display:grid}.report-where li{gap:var(--sp-1);grid-template-columns:minmax(0,1fr);display:grid}.report-where a{font-weight:var(--fw-bold);color:var(--c-primary)}.shop-compare{gap:var(--sp-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.shop-card{gap:var(--sp-1);text-align:left;cursor:pointer;border:3px solid var(--c-line);min-width:0;font:inherit;grid-template-columns:minmax(0,1fr);display:grid}.shop-card.is-active{border-color:var(--c-primary);box-shadow:var(--shadow-2)}.shop-name{font-weight:var(--fw-bold)}.shop-total{font-size:var(--fs-xl);font-weight:var(--fw-black)}.shop-breakdown{gap:0 var(--sp-2);color:var(--c-ink-soft);grid-template-columns:auto 1fr;margin:0;display:grid}.shop-breakdown dd{text-align:right;white-space:nowrap;margin:0}.badge-cheaper{padding:2px var(--sp-2);border-radius:var(--r-pill);background:var(--c-success);color:#fff;font-size:var(--fs-xs);font-weight:var(--fw-bold);justify-self:start}.shop-group{gap:var(--sp-2);grid-template-columns:minmax(0,1fr);display:grid}.shop-list{margin:0;padding:0;list-style:none}.shop-line{border-bottom:1px solid var(--c-line);padding-bottom:var(--sp-2);scroll-margin:72px 0 calc(96px + env(safe-area-inset-bottom))}.shop-line:last-child{border-bottom:none;padding-bottom:0}.shop-line.is-locked{background:var(--c-warning-soft);border-radius:var(--r-md);padding-inline:var(--sp-2)}.shop-row{align-items:center;gap:var(--sp-3);min-height:52px;padding:var(--sp-1) 0;cursor:pointer;display:flex}.badge-pantry{margin-left:var(--sp-2);padding:1px var(--sp-2);border-radius:var(--r-pill);background:var(--c-info-soft);color:var(--c-info);font-size:var(--fs-xs);font-weight:var(--fw-bold);white-space:nowrap}.strategy-switch{gap:var(--sp-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.strategy-btn{gap:var(--sp-1);min-width:0;padding:var(--sp-3);text-align:left;cursor:pointer;border:3px solid var(--c-line);font:inherit;grid-template-columns:minmax(0,1fr);align-content:start;display:grid}.strategy-btn.is-active{border-color:var(--c-primary);background:var(--c-primary-soft);box-shadow:var(--shadow-2)}.strategy-btn:disabled{cursor:progress}.strategy-name{font-weight:var(--fw-black)}.strategy-hint{font-size:var(--fs-xs)}.strategy-total{font-size:var(--fs-xs);color:var(--c-ink-soft);grid-template-columns:minmax(0,1fr);display:grid}.strategy-total strong{font-size:var(--fs-sm);color:var(--c-ink);white-space:nowrap}.shop-line-extra{gap:var(--sp-2);padding-left:calc(24px + var(--sp-3));padding-bottom:var(--sp-1);grid-template-columns:minmax(0,1fr);display:grid}.shop-line-controls{align-items:center;gap:var(--sp-2);display:flex}.strategy-seg{gap:var(--sp-1);flex:1;display:flex}.seg-btn,.lock-btn{min-height:var(--touch);border-radius:var(--r-pill);border:2px solid var(--c-line);background:var(--c-surface);font:inherit;font-size:var(--fs-xs);font-weight:var(--fw-bold);cursor:pointer}.seg-btn{min-width:0;padding:0 var(--sp-1);white-space:nowrap;flex:1}.seg-btn.is-active{background:var(--c-ink);border-color:var(--c-ink);color:#fff}.lock-btn{width:var(--touch);flex:none;font-size:20px}.lock-btn.is-on{border-color:var(--c-warning);background:var(--c-warning-soft)}.shop-offers{gap:var(--sp-1);font-size:var(--fs-xs);grid-template-columns:minmax(0,1fr);margin:0;padding:0;list-style:none;display:grid}.shop-offers li.is-active-shop,.shop-offer-shop{font-weight:var(--fw-bold)}.shop-offer a{color:var(--c-primary);overflow-wrap:anywhere}.shop-row input{width:24px;height:24px;accent-color:var(--c-success);flex:none}.shop-product{flex:1;grid-template-columns:minmax(0,1fr);min-width:0;display:grid}.shop-product-name{font-weight:var(--fw-bold)}.shop-price{font-weight:var(--fw-bold);white-space:nowrap}@media (width<=639px){.strategy-btn{padding:var(--sp-2)}.strategy-name{font-size:var(--fs-sm)}.strategy-total strong{font-size:var(--fs-xs)}.shop-card{padding:var(--sp-3)}.shop-total{font-size:var(--fs-lg)}.shop-line-extra{padding-left:0}.seg-btn{padding:var(--sp-1);flex-direction:column;justify-content:center;align-items:center;line-height:1.15;display:flex}.macro-table th,.macro-table td{padding-inline:var(--sp-1)}.shop-breakdown{gap:0 var(--sp-1);grid-template-columns:minmax(0,1fr) auto}.shop-breakdown dd{white-space:normal}.tabbar{padding-inline:2px}.tab{font-size:9px}.tab-label{text-overflow:clip;overflow:visible}}.is-home .shop-product-name,.is-home .shop-price{color:var(--c-ink-soft);text-decoration:line-through}@keyframes pop{0%{transform:scale(.94)}60%{transform:scale(1.03)}to{transform:scale(1)}}@keyframes pulse{50%{transform:scale(1.1)}}@keyframes fade{0%{opacity:0}}@keyframes slide-up{0%{transform:translateY(40%)}}@keyframes celebrate{0%{opacity:0;transform:scale(.4)}20%{opacity:1;transform:scale(1.08)}80%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@keyframes wiggle{25%{transform:rotate(-12deg)}75%{transform:rotate(12deg)}}@keyframes confetti{0%{opacity:1;transform:translate(-50%,-50%)scale(.4)}to{transform:translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) scale(1.2) rotate(40deg);opacity:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}@media (width>=640px){.brand-text,.user-name{display:inline}.tile-grid{grid-template-columns:repeat(3,1fr)}.meal-tile{flex-direction:column}.tile-actions{flex-flow:wrap;align-self:start}.tile-actions .btn{width:auto;padding:0 var(--sp-3)}.tile-actions .btn-label{display:inline}.meal-tile .macro-details,.meal-tile .report-bar{flex-basis:auto}.report-list{grid-template-columns:repeat(2,1fr);align-items:start}.meal-tile-main{flex:none;grid-template-columns:1fr;grid-template-areas:"emoji""name""meta""macro""extra""changed";align-content:start;justify-items:start;min-height:200px}.library-emoji.meal-photo{width:96px;height:96px}.meal-tile-main .meal-tile-emoji.meal-photo{aspect-ratio:16/10;justify-self:stretch;width:100%;height:auto}.role-child .meal-tile-main{min-height:240px}.role-child .meal-tile-name{font-size:var(--fs-lg)}.week-grid,.library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-grid{grid-template-columns:repeat(4,1fr)}}@media (width>=900px){.app{padding-bottom:var(--sp-8)}.tabbar{top:61px;justify-content:center;gap:var(--sp-2);border-top:none;border-bottom:1px solid var(--c-line);box-shadow:none;background:var(--c-bg);padding:var(--sp-2);position:sticky;inset:auto}.tab{gap:var(--sp-2);min-height:var(--touch);padding:0 var(--sp-5);font-size:var(--fs-md);border-radius:var(--r-pill);flex-direction:row;flex:none}.tab-emoji{font-size:20px}.tab-count{position:static}.content{padding:var(--sp-6)}.hero-card{grid-template-columns:1fr auto;align-items:center}.week-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.week-grid .recipe-chip{padding:0}.week-grid .recipe-chip .btn-label{display:none}.library-grid{grid-template-columns:repeat(3,1fr)}.day-strip{max-width:720px}.sheet-backdrop{align-items:center}.sheet{border-radius:var(--r-lg)}}.back-link{align-items:center;gap:var(--sp-2);min-height:var(--touch);font-weight:var(--fw-bold);color:var(--c-ink-soft);justify-self:start;display:inline-flex}.recipe-head{gap:var(--sp-4);grid-template-columns:minmax(0,1fr);display:grid}.recipe-photo{font-size:64px;line-height:1}.recipe-photo.meal-photo{aspect-ratio:16/10;border-radius:var(--r-md);width:100%;height:auto}.recipe-title{gap:var(--sp-3);grid-template-columns:minmax(0,1fr);align-content:start;display:grid}.recipe-title .tag{justify-self:start}.recipe-inspiration{font-size:var(--fs-xs);color:var(--c-ink-soft);justify-self:start}.recipe-times{gap:var(--sp-2) var(--sp-4);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.recipe-ingredients,.recipe-steps,.recipe-kids ul{margin:var(--sp-3) 0 0;padding-left:var(--sp-6);gap:var(--sp-2);font-size:var(--fs-md);grid-template-columns:minmax(0,1fr);display:grid}.recipe-steps li::marker{font-weight:var(--fw-bold)}.recipe-kids{background:var(--c-success-soft)}@media (width>=640px){.recipe-head{grid-template-columns:minmax(240px,1fr) 2fr;align-items:start}}.cooking{z-index:70;background:var(--c-bg);outline:none;flex-direction:column;display:flex;position:fixed;inset:0}.cooking-head,.cooking-nav{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--c-surface);flex:none;display:flex}.cooking-head{border-bottom:1px solid var(--c-line);justify-content:space-between}.cooking-head h2{font-size:var(--fs-lg)}.cooking-body{align-content:start;gap:var(--sp-4);padding:var(--sp-4);flex:1;grid-template-columns:minmax(0,1fr);display:grid;overflow-y:auto}.cooking-step{gap:var(--sp-3);padding:var(--sp-5);border-radius:var(--r-lg);background:var(--c-surface);box-shadow:var(--shadow-1);grid-template-columns:minmax(0,1fr);display:grid}.cooking-progress{font-weight:var(--fw-bold);color:var(--c-primary)}.cooking-text{font-size:var(--fs-xl);line-height:1.4}.cooking-ingredients ul{margin:var(--sp-2) 0 0;gap:var(--sp-1);grid-template-columns:minmax(0,1fr);padding:0;list-style:none;display:grid}.cooking-check{align-items:center;gap:var(--sp-3);min-height:var(--touch);font-size:var(--fs-md);cursor:pointer;display:flex}.cooking-check input{width:24px;height:24px;accent-color:var(--c-success);flex:none}.cooking-check.is-checked span{color:var(--c-ink-soft);text-decoration:line-through}.cooking-nav{border-top:1px solid var(--c-line);flex-wrap:wrap}.cooking-nav .btn-xl{flex:1;width:auto}.cooking-note{flex-basis:100%}@media (width>=900px){.cooking-body{padding:var(--sp-6);grid-template-columns:2fr 1fr;align-items:start}.cooking-text{font-size:var(--fs-2xl)}}@media print{.topbar,.tabbar,.demo-ribbon,.banner,.no-print,.cooking{display:none!important}body,.app,.content{background:#fff;padding:0}.recipe .card{box-shadow:none;border:1px solid #ccc}.recipe .card :is(h1,h2){break-after:avoid}.recipe-ingredients li,.recipe-steps li,.recipe-kids li{break-inside:avoid}.recipe-head{grid-template-columns:1fr}.recipe-photo.meal-photo{max-width:320px}.recipe-kids{background:#fff}}.site-footer nav{justify-content:center;gap:0 var(--sp-5);flex-wrap:wrap;display:flex}.site-footer a{min-height:var(--touch);color:var(--c-ink-soft);font-size:var(--fs-sm);align-items:center;text-decoration:underline;display:inline-flex}@media (hover:hover) and (pointer:fine){.site-footer a:hover{color:var(--c-primary)}}.app-footer{padding:var(--sp-4) var(--sp-4) 0}.login-legal a{text-decoration:underline}:is(.landing,.legal-page){--space-section:clamp(var(--sp-10), 1.84rem + 2.7vw, 4rem);overflow-wrap:break-word;text-wrap:pretty}:is(.landing,.legal-page) :is(h1,h2,h3){text-wrap:balance}:is(.landing,.legal-page) :focus-visible{outline:3px solid var(--c-info);outline-offset:3px;box-shadow:none}:is(.landing,.legal-page) .btn:focus-visible{border-radius:var(--r-pill)}.landing-faq-item summary:focus-visible{outline-offset:-3px}.landing{min-height:100dvh;overflow-x:clip}.landing :is(h3,ul,ol){margin:0}.landing :is(ul,ol){padding:0;list-style:none}.landing h3{font-size:var(--fs-md);font-weight:var(--fw-bold)}.landing-top,.landing-hero,.landing-section-inner,.landing-footer-inner{max-width:1120px;padding-left:var(--sp-4);padding-right:var(--sp-4);margin:0 auto}.landing-top{justify-content:space-between;align-items:center;gap:var(--sp-3);padding-top:var(--sp-2);padding-bottom:var(--sp-2);display:flex}.landing-top .brand-text{display:inline}.landing-hero{gap:var(--sp-8);padding-top:var(--sp-6);padding-bottom:var(--space-section);grid-template-columns:minmax(0,1fr);display:grid}.landing-hero-text{gap:var(--sp-4);grid-template-columns:minmax(0,1fr);align-content:center;display:grid}.landing-hero h1{font-size:clamp(2.25rem,1.59rem + 2.7vw,3.75rem);line-height:1.05}.landing-lead{font-size:var(--fs-lg);color:var(--c-ink-soft);max-width:34em}.landing-cta{gap:var(--sp-3);grid-template-columns:minmax(0,1fr);display:grid}.landing-cta .btn-google{width:100%}.landing-cta .demo-logins{padding:var(--sp-3);border:1px dashed var(--c-line);border-radius:var(--r-md);background:var(--c-surface)}.landing-hero-shots,.landing-split-shots{justify-content:center;align-items:flex-start;gap:var(--sp-3);display:flex}.landing-shot{border-radius:var(--r-lg);border:1px solid var(--c-line);background:var(--c-surface);min-width:0;max-width:280px;height:auto;box-shadow:var(--shadow-2);flex:1 1 0}.landing-shot-2{margin-top:var(--sp-8)}.landing-section{padding:var(--space-section) 0}:is(.landing-hero,.landing-section:not(.is-alt))+.landing-section:not(.is-alt){padding-top:calc(var(--space-section) / 2)}.landing-section.is-alt{background:var(--c-surface-2);border-top:1px solid var(--c-line);border-bottom:1px solid var(--c-line)}.landing-section h2,.landing-final h2{font-size:clamp(1.625rem,1.3rem + 1.2vw,2.125rem);font-weight:var(--fw-black);line-height:1.15}.landing-section-intro{margin-top:var(--sp-2);font-size:var(--fs-lg)}.landing-section h2+:not(.landing-section-intro),.landing-section .landing-section-intro+*{margin-top:var(--sp-6)}.landing-steps,.landing-features{gap:var(--sp-4);grid-template-columns:minmax(0,1fr);display:grid}.landing-step,.landing-feature{gap:var(--sp-2);padding:var(--sp-5);grid-template-columns:minmax(0,1fr);align-content:start;display:grid}.landing-step-n{background:var(--c-primary);width:36px;height:36px;color:var(--c-primary-ink);font-weight:var(--fw-black);border-radius:50%;place-items:center;display:grid}.landing-feature-emoji{font-size:32px;line-height:1.1}.landing-split{gap:clamp(var(--sp-8), 1.84rem + 2.7vw, 4rem);grid-template-columns:minmax(0,1fr);display:grid}.landing-split-text{gap:var(--sp-4);font-size:var(--fs-md);grid-template-columns:minmax(0,1fr);align-content:start;display:grid}.landing-checks{gap:var(--sp-2);display:grid}.landing-checks li{padding-left:var(--sp-8);position:relative}.landing-checks li:before{content:"✓";background:var(--c-success-soft);width:24px;height:24px;color:var(--c-success);font-weight:var(--fw-black);font-size:var(--fs-sm);border-radius:50%;place-items:center;display:grid;position:absolute;top:0;left:0}.landing-strategies{gap:var(--sp-3);display:grid}.landing-strategies .card{gap:var(--sp-1);padding:var(--sp-4);display:grid}.landing-faq{gap:var(--sp-3);grid-template-columns:minmax(0,1fr);max-width:760px;display:grid}.landing-faq-item{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-md);padding:0 var(--sp-4)}.landing-faq-item summary{min-height:var(--touch-lg);font-weight:var(--fw-bold);cursor:pointer;align-items:center;list-style-position:outside;display:flex}.landing-faq-item[open] summary{color:var(--c-primary)}.landing-faq-item p{padding-bottom:var(--sp-4)}.landing-faq-item a,.landing-footer a{text-decoration:underline}.landing-footer p a{min-height:var(--touch);align-items:center;display:inline-flex}.landing-final{justify-items:center;gap:var(--sp-4);text-align:center;padding:var(--space-section) var(--sp-4);grid-template-columns:minmax(0,1fr);display:grid}.landing-final .landing-lead{text-wrap:balance}.landing-cta-center{width:100%;max-width:360px}.landing-footer{border-top:1px solid var(--c-line);padding:var(--sp-6) 0}.landing-footer-inner{text-align:center;justify-items:center;gap:var(--sp-1);grid-template-columns:minmax(0,1fr);display:grid}@media (width<=639px){.landing-feature{column-gap:var(--sp-4);row-gap:var(--sp-1);padding:var(--sp-4);grid-template-columns:auto minmax(0,1fr)}.landing-feature-emoji{grid-row:1/span 2;font-size:28px}}@media (width>=640px){.landing-cta{grid-template-columns:repeat(2,auto);justify-content:start;align-items:center}.landing-cta .btn-google{width:auto;min-width:260px}.landing-steps{grid-template-columns:repeat(3,minmax(0,1fr))}.landing-features{grid-template-columns:repeat(2,minmax(0,1fr))}.landing-cta-center{grid-template-columns:minmax(0,1fr)}}@media (width>=900px){.landing-hero{gap:var(--sp-10);padding-top:var(--sp-10);grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}.landing-features{grid-template-columns:repeat(4,minmax(0,1fr))}.landing-split{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}.landing-split.is-reverse .landing-split-shots{order:-1}}.legal-page{--legal-width:calc(68ch + 2 * var(--sp-4));min-height:100dvh}.legal-top{justify-content:space-between;align-items:center;gap:var(--sp-2) var(--sp-4);max-width:var(--legal-width);padding:var(--sp-2) var(--sp-4);flex-wrap:wrap;margin:0 auto;display:flex}.legal-back{align-items:center;gap:var(--sp-1);min-height:var(--touch);font-weight:var(--fw-bold);color:var(--c-primary);display:inline-flex}.legal{max-width:var(--legal-width);padding:var(--sp-4) var(--sp-4) var(--sp-8);margin:0 auto;line-height:1.6}.legal h1{font-size:clamp(1.75rem, 1.3rem + 1.2vw, var(--fs-2xl));margin-bottom:var(--sp-2)}.legal section{margin-top:var(--sp-8)}.legal section>*{margin:0}.legal section>*+*{margin-top:var(--sp-3)}.legal section>h2{scroll-margin-top:var(--sp-4)}.legal section>h2+*{margin-top:var(--sp-2)}.legal ul{padding-left:var(--sp-6)}.legal li+li{margin-top:var(--sp-1)}.legal-lead{font-size:var(--fs-lg);color:var(--c-ink-soft);margin-bottom:var(--sp-3)}.legal-draft{padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);background:var(--c-warning-soft);color:var(--c-warning);font-weight:var(--fw-bold);margin-bottom:var(--sp-4)}.legal-draft p,.legal-draft ul{margin:0}.legal-draft-sub{font-weight:var(--fw-regular);margin-top:var(--sp-2)!important}.legal-draft ul{padding-left:var(--sp-5);font-weight:var(--fw-regular);overflow-wrap:anywhere}.legal .legal-draft{line-height:1.45}.legal-placeholder{background:var(--c-warning-soft);color:var(--c-warning);overflow-wrap:anywhere;border-radius:4px;padding:0 4px}.legal-toc{margin:var(--sp-4) 0;padding:0 var(--sp-4);background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-md)}.legal-toc summary{min-height:var(--touch);font-weight:var(--fw-bold);cursor:pointer;align-items:center;display:flex}.legal-toc ol{padding-left:var(--sp-6);gap:0;margin:0;display:grid}.legal-toc a{min-height:var(--touch);color:var(--c-primary);align-items:center;display:inline-flex}.legal-other{margin-top:var(--sp-8)}.legal a{color:var(--c-primary)}@media (width>=640px){.legal-toc ol{column-gap:var(--sp-6);grid-template-columns:repeat(2,minmax(0,1fr))}}@media print{.landing-top,.landing-final,.app-footer,.legal-top,.legal-toc{display:none}}.form{gap:var(--sp-4);grid-template-columns:minmax(0,1fr);display:grid}h3{font-size:var(--fs-md);font-weight:var(--fw-bold);margin:0}.field{gap:var(--sp-1);grid-template-columns:minmax(0,1fr);display:grid}.field-label{font-weight:var(--fw-bold);font-size:var(--fs-sm)}.field-hint{font-size:var(--fs-xs);color:var(--c-ink-soft)}.field-hint:empty{display:none}.field-error{color:var(--c-danger);font-weight:var(--fw-bold);font-size:var(--fs-sm)}.input{width:100%;min-height:var(--touch);padding:var(--sp-2) var(--sp-3);border:2px solid var(--c-line);border-radius:var(--r-md);background:var(--c-surface);font-size:16px}textarea.input{resize:vertical;line-height:1.4}.input:focus{border-color:var(--c-primary)}.input[readonly]{background:var(--c-surface-2)}.btn-danger{background:var(--c-danger);color:#fff}.btn-danger:hover:not(:disabled){background:#8f1c12}.link-btn{min-height:var(--touch);padding:0 var(--sp-1);color:var(--c-primary);font-weight:var(--fw-bold);cursor:pointer;background:0 0;border:none;justify-self:start;text-decoration:underline}.or-line{align-items:center;gap:var(--sp-3);color:var(--c-ink-soft);font-size:var(--fs-sm);display:flex}.or-line:before,.or-line:after{content:"";background:var(--c-line);flex:1;height:1px}.auth-switch{text-align:center}.auth-switch .link-btn{min-height:32px}.segmented{border-radius:var(--r-pill);background:var(--c-surface-2);border:1px solid var(--c-line);padding:3px;display:flex}.segment{border-radius:var(--r-pill);min-height:40px;font-weight:var(--fw-bold);cursor:pointer;background:0 0;border:none;flex:1}.segment.is-active{background:var(--c-ink);color:#fff}.emoji-grid{gap:var(--sp-2);grid-template-columns:repeat(6,minmax(0,1fr));display:grid}.emoji-btn{aspect-ratio:1;border:2px solid var(--c-line);border-radius:var(--r-md);background:var(--c-surface);cursor:pointer;min-height:44px;font-size:26px;line-height:1}.emoji-btn.is-active{border-color:var(--c-primary);background:var(--c-primary-soft);box-shadow:0 0 0 2px var(--c-primary)}.share-link{gap:var(--sp-2);display:grid}.invite-item{gap:var(--sp-2);padding:var(--sp-3);border:1px dashed var(--c-line);border-radius:var(--r-md);background:var(--c-surface-2);display:grid}.invite-email{font-weight:var(--fw-bold);overflow-wrap:anywhere}.member-list{gap:var(--sp-2);margin:0;padding:0;list-style:none;display:grid}.member-row{align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border:1px solid var(--c-line);border-radius:var(--r-md);background:var(--c-surface);display:flex}.member-main{flex:1;min-width:0;display:grid}.member-main>*{overflow-wrap:anywhere}.inline-form{gap:var(--sp-4);padding:var(--sp-4);border:1px solid var(--c-line);border-radius:var(--r-md);background:var(--c-bg);margin:0;display:grid}.inline-form legend{padding:0 var(--sp-2);font-weight:var(--fw-bold)}.method-list{gap:var(--sp-1);color:var(--c-ink-soft);margin:0;padding:0;list-style:none;display:grid}.method-list .is-on{color:var(--c-success);font-weight:var(--fw-bold)}.settings{max-width:640px;margin:0 auto}.settings-card{gap:var(--sp-4);grid-template-columns:minmax(0,1fr);display:grid}.settings-card .btn{justify-self:start}.wizard{max-width:560px;padding:var(--sp-6) var(--sp-4) var(--sp-8);gap:var(--sp-4);grid-template-columns:minmax(0,1fr);margin:0 auto;display:grid}.wizard-head{justify-items:center;gap:var(--sp-2);display:grid}.wizard-dots{gap:var(--sp-2);margin:0;padding:0;list-style:none;display:flex}.wizard-dots li{border-radius:var(--r-pill);background:var(--c-line);width:28px;height:6px}.wizard-dots .is-done{background:var(--c-success)}.wizard-dots .is-current{background:var(--c-primary)}.wizard-card{gap:var(--sp-4);grid-template-columns:minmax(0,1fr);margin:0;display:grid}.wizard-card h1{font-size:var(--fs-xl)}.wizard-lead{color:var(--c-ink-soft)}.wizard-actions{gap:var(--sp-2);flex-wrap:wrap;justify-content:flex-end;display:flex}.wizard-actions .btn-primary{flex:1;min-width:140px}.wizard-logout{justify-self:center}.empty-state{justify-items:center;gap:var(--sp-3);padding:var(--sp-8) var(--sp-4);text-align:center;display:grid}.empty-state .empty-emoji{font-size:64px}.empty-state p{max-width:36ch;color:var(--c-ink-soft)}.switch{text-align:left}.pin-submit{width:100%}.icon-link{min-width:var(--touch);min-height:var(--touch);border:1px solid var(--c-line);border-radius:var(--r-pill);background:var(--c-surface);place-items:center;text-decoration:none;display:inline-grid}@media (width<=639px){.tab-wide{display:none}}
