:root{--bg: #FFFFFF;--surface: #FFFFFF;--surface-muted: #FFFFFF;--ink: #342F31;--ink-soft: #746B6F;--border: #D8C9C9;--pink: #EF8EAC;--pink-soft: #F8D5E0;--berry: #C94E69;--brand-red: #D83B43;--danger: #B92F3A;--danger-soft: #F8DEE0;--blue: #78AFC7;--blue-soft: #DDEEF4;--sage: #9EB678;--sage-soft: #E7EFD9;--yellow: #EBC75F;--yellow-soft: #FAEFC5;--lavender: #A991C7;--lavender-soft: #ECE4F5;--avatar-choice-peach: #F3A37F;--avatar-choice-mint: #8FC9B5;--avatar-choice-lilac: #B49BD8;--avatar-choice-butter: #F0D36D;--action-primary: var(--pink);--action-active: var(--berry);--task-complete: var(--sage);--task-progress: var(--pink);--task-streak: var(--brand-red);--task-stars: var(--yellow);--task-pending: var(--blue);--task-freeze: var(--lavender);--shopping-accent: var(--blue);--paper: var(--bg);--paper-light: var(--surface);--paper-deep: var(--surface-muted);--accent: var(--action-primary);--teal: var(--action-primary);--cobalt: var(--blue);--tomato: var(--danger);--ink-60: var(--ink-soft);--ink-40: rgba(52, 47, 49, .44);--ink-25: rgba(52, 47, 49, .25);--ink-12: rgba(52, 47, 49, .12);--teal-12: var(--pink-soft);--tomato-12: var(--danger-soft);--on-accent: #ffffff;--font-display: "Oswald", "Arial Narrow", "Helvetica Neue", sans-serif;--font-ui: "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;--radius-small: 8px;--radius-control: 12px;--radius-card: 16px;--radius-large: 22px;--radius-pill: 999px;--border-default: 2px;--border-subtle: 1px;--shadow-hard: 3px 3px 0 var(--ink);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--catalog-max: 1160px;--recipe-max: 820px;--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--bottom-nav-h: 62px;--dur-fast: .12s;--dur-base: .18s;--ease: cubic-bezier(.2, 0, 0, 1);--z-nav: 40;--z-sheet: 60;--z-toast: 80}:root{--avatar-katya: #EF8EAC;--avatar-irochka: #78AFC7;--avatar-timofey: #EBC75F;--avatar-olivia: #A991C7}@media (prefers-reduced-motion: reduce){:root{--dur-fast: 0ms;--dur-base: 0ms}}@font-face{font-family:Oswald;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/oswald-700.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Oswald;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/oswald-700-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+2074,U+20AC,U+2122,U+2212,U+2215}@font-face{font-family:Oswald;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/oswald-600.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Oswald;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/oswald-600-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+2074,U+20AC,U+2122,U+2212,U+2215}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/manrope-400.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/manrope-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+2074,U+20AC,U+2122,U+2212,U+2215}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/manrope-500.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/manrope-500-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+2074,U+20AC,U+2122,U+2212,U+2215}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/manrope-600.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/manrope-600-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+2074,U+20AC,U+2122,U+2212,U+2215}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}html,body,#root{height:100%}body{background-color:var(--bg);color:var(--ink);font-family:var(--font-ui);font-size:16px;line-height:1.5;font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overscroll-behavior-y:none}body:before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background-image:url(/backgrounds/grid-hearts.png);background-position:center;background-repeat:no-repeat;background-size:cover}#root{position:relative;z-index:1;isolation:isolate}img,picture,svg,canvas{display:block;max-width:100%}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:none;border:none;padding:0}a{color:var(--action-active);text-decoration-thickness:1.5px;text-underline-offset:2px}ul,ol{list-style:none;padding:0}h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;line-height:1.02;letter-spacing:.005em}:focus-visible{outline:3px solid var(--action-active);outline-offset:2px;border-radius:var(--radius-small)}:focus:not(:focus-visible){outline:none}::selection{background:var(--pink-soft);color:var(--ink)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.t-display{font-family:var(--font-display);font-weight:700;font-size:clamp(40px,12vw,52px);line-height:.95;letter-spacing:.02em}.t-title{font-family:var(--font-display);font-weight:700;font-size:clamp(28px,8vw,34px);line-height:1.02}.t-section{font-family:var(--font-display);font-weight:600;font-size:clamp(20px,5.5vw,24px);line-height:1.05;text-transform:uppercase;letter-spacing:.01em}.t-body{font-size:16px;line-height:1.5}.t-meta{font-weight:500;font-size:13px;color:var(--ink-60)}.app-shell{min-height:100dvh;display:flex;flex-direction:column;padding-top:var(--safe-top);padding-left:var(--safe-left);padding-right:var(--safe-right)}.app-main{flex:1;width:100%;max-width:var(--catalog-max);margin-inline:auto;padding:var(--space-4) var(--space-4) calc(var(--bottom-nav-h) + var(--safe-bottom) + var(--space-6))}.app-main--narrow{max-width:var(--recipe-max)}.container{width:100%;max-width:var(--catalog-max);margin-inline:auto;padding-inline:var(--space-4)}.stack{display:flex;flex-direction:column}.stack-2>*+*{margin-top:var(--space-2)}.stack-3>*+*{margin-top:var(--space-3)}.stack-4>*+*{margin-top:var(--space-4)}.stack-6>*+*{margin-top:var(--space-6)}.row{display:flex;align-items:center;gap:var(--space-2)}.row-between{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.toast-region{position:fixed;left:50%;transform:translate(-50%);bottom:calc(var(--bottom-nav-h) + var(--safe-bottom) + var(--space-3));z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--space-2);width:min(92vw,460px);pointer-events:none}.toast{pointer-events:auto;border:var(--border-default) solid var(--ink);border-radius:var(--radius-control);padding:12px 16px;font-size:15px;font-weight:500;background:var(--ink);color:var(--on-accent);box-shadow:var(--shadow-hard);animation:toast-in var(--dur-base) var(--ease)}.toast--error{background:var(--tomato)}.toast--success{background:var(--teal)}@keyframes toast-in{0%{transform:translateY(8px);opacity:0}}@media (prefers-reduced-motion: reduce){.toast{animation:none}}.mascot{display:block}.mascot__pupil{animation:mascot-blink 4.2s ease-in-out infinite;transform-box:fill-box;transform-origin:center}@keyframes mascot-blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.15)}}.mascot__spark{animation:mascot-spark 1.6s ease-in-out infinite;transform-box:fill-box;transform-origin:center}@keyframes mascot-spark{0%,to{transform:scale(.85) rotate(-4deg);opacity:.85}50%{transform:scale(1.05) rotate(6deg);opacity:1}}@media (prefers-reduced-motion: reduce){.mascot__pupil,.mascot__spark{animation:none}}.logo{display:inline-flex;align-items:center;flex:0 0 auto}.logo--sm{width:96px}.logo--md{width:148px}.logo--lg{width:clamp(220px,64vw,320px)}.logo__image{display:block;width:100%;height:auto}.loading-screen{min-height:100dvh;display:grid;place-items:center;padding:var(--space-6)}.loading-screen__block{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);text-align:center}.loading-screen__msg{font-size:15px;color:var(--ink-60)}.loading-screen__bar{width:120px;height:6px;border:2px solid var(--ink);border-radius:3px;overflow:hidden}.loading-screen__bar span{display:block;height:100%;width:40%;background:var(--teal);animation:loading-slide 1s ease-in-out infinite}@keyframes loading-slide{0%{transform:translate(-110%)}to{transform:translate(320%)}}@media (prefers-reduced-motion: reduce){.loading-screen__bar span{animation:none;width:100%}}.bottomnav{position:fixed;left:0;right:0;bottom:0;z-index:var(--z-nav);background:var(--surface);border-top:var(--border-subtle) solid var(--border);padding-bottom:var(--safe-bottom)}.bottomnav__list{display:flex;width:100%;max-width:560px;margin-inline:auto}.bottomnav__list>li{display:contents}.bottomnav__item{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:var(--bottom-nav-h);padding:8px 4px;color:var(--ink-soft);text-decoration:none;-webkit-tap-highlight-color:transparent}.bottomnav__item.is-active{color:var(--action-active)}.bottomnav__item.is-active .bottomnav__label{font-weight:700}.bottomnav__label{font-size:12px;font-weight:500;letter-spacing:.01em}.bottomnav__badge{position:absolute;margin-left:28px;margin-top:-26px;min-width:17px;padding:1px 4px;border-radius:99px;background:var(--berry);color:#fff;font-size:10px;font-weight:700}.bottomnav__item:focus-visible{outline-offset:-3px}.sheet{position:fixed;inset:0;z-index:var(--z-sheet);display:flex;align-items:flex-end;justify-content:center;background:#1715126b;animation:sheet-fade var(--dur-base) var(--ease)}.sheet__panel{width:100%;max-width:560px;max-height:92dvh;overflow-y:auto;background:var(--paper);border:var(--border-default) solid var(--ink);border-bottom:none;border-radius:var(--radius-large) var(--radius-large) 0 0;padding:var(--space-2) var(--space-5) calc(var(--space-6) + var(--safe-bottom));animation:sheet-rise var(--dur-base) var(--ease)}.sheet__grip{width:44px;height:4px;border-radius:2px;background:var(--ink-25);margin:var(--space-2) auto var(--space-3)}.sheet__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3)}.sheet__title{font-family:var(--font-display);font-weight:700;font-size:26px}.sheet__close{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--radius-control);color:var(--ink)}.sheet__close:active{background:var(--ink-12)}@keyframes sheet-fade{0%{opacity:0}}@keyframes sheet-rise{0%{transform:translateY(16px)}}@media (prefers-reduced-motion: reduce){.sheet,.sheet__panel{animation:none}}.btn{--btn-bg: var(--action-primary);--btn-fg: var(--ink);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:48px;min-width:48px;padding:10px 20px;border:var(--border-default) solid var(--ink);border-radius:var(--radius-control);background:var(--btn-bg);color:var(--btn-fg);font-family:var(--font-ui);font-weight:600;font-size:16px;line-height:1.1;text-align:center;box-shadow:none;transition:transform var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease),background-color var(--dur-fast) var(--ease);touch-action:manipulation;-webkit-tap-highlight-color:transparent}.btn--sm{min-height:40px;padding:6px 14px;font-size:14px}.btn--lg{min-height:56px;padding:14px 24px;font-size:18px}.btn--full{width:100%}.btn:active:not(:disabled){transform:translateY(1px);box-shadow:none}.btn--secondary{--btn-bg: transparent;--btn-fg: var(--ink);box-shadow:none}.btn--secondary:active:not(:disabled){transform:translate(1px,1px);box-shadow:none;background:var(--ink-12)}.btn--ghost{--btn-bg: transparent;--btn-fg: var(--ink);border-color:transparent;box-shadow:none}.btn--ghost:active:not(:disabled){background:var(--ink-12);transform:none}.btn--danger{--btn-bg: var(--danger);--btn-fg: var(--on-accent)}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.btn__label{display:inline-block}.btn__icon{display:inline-flex}.btn__spinner{width:18px;height:18px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:btn-spin .7s linear infinite}@keyframes btn-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.btn__spinner{animation:none}}.pin-sheet{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-3)}.pin-sheet__icon{align-self:center;display:grid;place-items:center;width:56px;height:56px;border-radius:var(--radius-pill);border:var(--border-default) solid var(--ink);color:var(--teal)}.pin-sheet__hint{text-align:center;font-size:15px;color:var(--ink-60)}.pin-sheet__input{width:100%;min-height:56px;text-align:center;letter-spacing:.5em;font-size:24px;padding:12px;background:var(--paper-light);border:var(--border-default) solid var(--ink);border-radius:var(--radius-control);-webkit-text-security:disc}.pin-sheet__input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 2px var(--teal-12)}.pin-sheet__error{text-align:center;color:var(--tomato);font-weight:500;font-size:14px}.pin-sheet__actions{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3);margin-top:var(--space-2)}.start-screen{min-height:100dvh;display:grid;place-items:center;overflow:hidden;background:#d679a5}.start-poster{position:relative;width:min(100vw,100dvh);aspect-ratio:1;max-height:100dvh}.start-poster__image{width:100%;height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none}.start-poster__actions{position:absolute;z-index:1;top:85.5%;left:10%;width:80%;display:flex;flex-direction:row;gap:clamp(6px,1vw,10px)}.start-poster__button{flex:1 1 0;min-width:0;min-height:clamp(36px,4.8dvh,48px);padding:6px clamp(6px,1vw,12px);border:2px solid #342e2e;border-radius:clamp(10px,1.5vw,15px);background:#d679a5;color:#fff;font-family:var(--font-ui);font-size:clamp(9px,1.9vw,13px);font-weight:650;letter-spacing:.015em;text-transform:lowercase;line-height:1.15;box-shadow:none;transition:background-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}.start-poster__button:hover,.start-poster__button:focus-visible{background:#e08ab2;color:#fff}.start-poster__button:active{background:#e94754;color:#fff7e8;transform:translateY(1px)}.start-poster__button--primary{background:#d679a5}.start-poster__status,.start-poster__error{position:absolute;left:50%;bottom:3.5%;transform:translate(-50%);width:min(76%,320px);padding:8px 12px;border-radius:var(--radius-control);background:#fff7e8e0;color:#342e2e;text-align:center;font-size:13px;font-weight:650}.start-poster__error button{margin-top:5px;color:#b71925;font-weight:750;text-decoration:underline;text-underline-offset:2px}@media (min-width: 760px){.start-poster__button{font-size:14px}}.family-onboarding{min-height:100dvh;display:grid;place-items:center;padding:24px;background:var(--pink-soft)}.family-onboarding__card{width:min(100%,460px);padding:32px 24px;border:3px solid var(--ink);border-radius:28px;background:var(--surface);box-shadow:8px 8px 0 var(--ink)}.family-onboarding__eyebrow{margin:0 0 8px;color:var(--tomato);font-weight:800;letter-spacing:.08em;text-transform:uppercase}.family-onboarding h1,.family-onboarding h2{margin:0;font-family:var(--font-display)}.family-onboarding h1{font-size:clamp(30px,8vw,44px)}.family-onboarding h2{font-size:28px}.family-onboarding__lead{color:var(--ink-60);font-size:17px;line-height:1.45}.family-onboarding__choices,.family-onboarding__form{display:grid;gap:14px;margin-top:24px}.family-onboarding__choice,.family-onboarding__submit,.family-onboarding__back{min-height:54px;border:2px solid var(--ink);border-radius:16px;padding:12px 16px;font:inherit;font-weight:700;cursor:pointer}.family-onboarding__choice{background:var(--surface)}.family-onboarding__choice--primary,.family-onboarding__submit{background:var(--pink)}.family-onboarding__form label{display:grid;gap:6px;font-weight:700}.family-onboarding__form input{min-height:48px;box-sizing:border-box;border:2px solid var(--ink);border-radius:12px;padding:10px 12px;background:var(--surface);font:inherit}.family-onboarding__form fieldset{border:0;padding:0;margin:0}.family-onboarding__form legend{font-weight:700;margin-bottom:8px}.family-onboarding__colors{display:flex;gap:12px}.family-onboarding__color{width:42px;height:42px;border:2px solid var(--ink);border-radius:50%;cursor:pointer}.family-onboarding__color.is-selected{outline:3px solid var(--ink);outline-offset:3px}.family-onboarding__color--peach{background:#f4b183}.family-onboarding__color--mint{background:#a8d9c5}.family-onboarding__color--lilac{background:#c7b6e8}.family-onboarding__color--butter{background:#f7dc85}.family-onboarding__error{margin:0;color:var(--tomato);font-weight:700}.family-onboarding__back{background:transparent;border:0;text-decoration:underline}.avatar{position:relative;display:inline-grid;place-items:center;border-radius:var(--radius-pill);border:var(--border-default) solid var(--ink);overflow:hidden;flex:0 0 auto;color:var(--ink);user-select:none}.avatar__initials{font-family:var(--font-display);font-weight:700;line-height:1;letter-spacing:.02em}.avatar__img{width:100%;height:100%;object-fit:cover}.avatar--active{box-shadow:0 0 0 3px var(--surface),0 0 0 5px var(--action-active)}.avatar--frame-dashed{border-style:dashed;border-width:3px}.avatar--frame-double{border-style:double;border-width:5px}.profile-select{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:calc(var(--safe-top) + var(--space-6)) var(--space-5) calc(var(--safe-bottom) + var(--space-6))}.profile-select__inner{width:100%;max-width:440px}.profile-select__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.profile-select__card{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-5) var(--space-3);background:var(--paper-light);border:var(--border-default) solid var(--ink);border-radius:var(--radius-card);transition:transform var(--dur-fast) var(--ease)}.profile-select__card:active{transform:translateY(2px)}.profile-select__name{font-family:var(--font-display);font-weight:600;font-size:20px}.profile-select__protected{margin-top:calc(var(--space-2) * -1);color:var(--ink-60);font-size:12px;font-weight:600}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-3);padding:var(--space-8) var(--space-4)}.empty-state__illustration{display:block;width:96px;height:96px;object-fit:contain}.empty-state__title{font-family:var(--font-display);font-weight:600;font-size:22px}.empty-state__desc{font-size:15px;color:var(--ink-60);max-width:34ch}.empty-state__action{margin-top:var(--space-2)}.searchbar{display:flex;align-items:center;gap:var(--space-2);width:100%;min-height:52px;padding:0 var(--space-4);background:var(--paper-light);border:var(--border-default) solid var(--ink);border-radius:var(--radius-large)}.searchbar__icon{color:var(--ink-60);flex:0 0 auto}.searchbar__input{flex:1;min-width:0;border:none;background:transparent;font-size:16px;padding:12px 0}.searchbar__input:focus{outline:none}.searchbar--link{cursor:text;text-align:left}.searchbar__placeholder{color:var(--ink-40);font-size:16px}.searchbar:focus-within{border-color:var(--teal);box-shadow:0 0 0 2px var(--teal-12)}.fav-btn{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--radius-control);color:var(--ink);transition:transform var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.fav-btn:active{transform:scale(.9)}.fav-btn.is-active{color:var(--tomato)}.food-ph{width:100%;height:100%;min-height:72px;display:grid;place-items:center;color:var(--on-accent)}.food-ph--teal{background:var(--teal)}.food-ph--cobalt{background:var(--cobalt)}.food-ph--tomato{background:var(--tomato)}.recipe-card{display:grid;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:var(--space-3);padding:10px 8px 10px 10px;border:var(--border-subtle) solid var(--border);border-radius:var(--radius-card);background:var(--paper-light);text-decoration:none;color:inherit;min-height:94px;transition:transform var(--dur-fast) var(--ease)}.recipe-card:active{transform:translateY(1px)}.recipe-card__thumb{position:relative;width:72px;height:72px;border-radius:var(--radius-control);background:var(--paper-deep);overflow:hidden}.recipe-card__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.recipe-card__thumb .food-ph{background:var(--paper-deep);color:var(--blue)}.recipe-card__body{display:flex;flex-direction:column;justify-content:center;gap:4px;min-width:0}.recipe-card__title{font-family:var(--font-ui);font-weight:700;font-size:17px;line-height:1.25}.recipe-card__author{font-size:13px;color:var(--ink-60)}.recipe-card__meta{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:500;color:var(--ink-60)}.recipe-card__fav{display:flex;align-items:center}.catalog{display:flex;flex-direction:column;gap:var(--space-4);max-width:640px}.catalog__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.catalog__chips{display:flex;gap:var(--space-2);overflow-x:auto;padding-bottom:4px;margin-inline:calc(-1 * var(--space-4));padding-inline:var(--space-4);scrollbar-width:none}.catalog__chips::-webkit-scrollbar{display:none}.chip{flex:0 0 auto;display:inline-flex;align-items:center;gap:5px;min-height:40px;padding:8px 14px;border:var(--border-default) solid var(--ink);border-radius:var(--radius-large);background:var(--paper-light);font-size:14px;font-weight:600;white-space:nowrap}.chip.is-active{background:var(--teal);color:var(--on-accent)}.chip--fav.is-active{background:var(--tomato)}.chip:active{transform:translateY(1px)}.catalog__list{display:flex;flex-direction:column;gap:var(--space-3)}.check-row{display:flex;align-items:flex-start;gap:var(--space-3);min-height:44px;padding:var(--space-2) var(--space-1);cursor:pointer;-webkit-tap-highlight-color:transparent}.check-row.is-disabled{cursor:not-allowed;opacity:.5}.check-row__input{position:absolute;opacity:0;width:1px;height:1px}.check-row__box{flex:0 0 auto;width:28px;height:28px;margin-top:1px;display:grid;place-items:center;border:var(--border-default) solid var(--ink);border-radius:var(--radius-small);background:var(--paper-light);transition:background-color var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}.check-row__glyph{color:var(--on-accent);opacity:0;transform:scale(.6);transition:opacity var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}.check-row.is-checked .check-row__box{background:var(--task-complete)}.check-row.is-checked .check-row__glyph{color:var(--ink);opacity:1;transform:scale(1)}.check-row__input:focus-visible+.check-row__box{outline:3px solid var(--action-active);outline-offset:2px}.check-row__text{display:flex;flex-direction:column;gap:1px;padding-top:3px}.check-row__label{font-size:17px;line-height:1.35}.check-row.is-checked .check-row__label{text-decoration:line-through;text-decoration-thickness:2px;color:var(--ink-60)}.check-row__hint{font-size:13px;font-weight:500;color:var(--ink-60)}.photo-picker{display:flex;flex-direction:column;gap:var(--space-2)}.photo-picker__preview{position:relative;border:var(--border-default) solid var(--ink);border-radius:var(--radius-card);overflow:hidden;aspect-ratio:4 / 3;background:var(--paper-deep)}.photo-picker__preview img{width:100%;height:100%;object-fit:cover}.photo-picker__remove{position:absolute;top:8px;right:8px;display:grid;place-items:center;width:36px;height:36px;border-radius:var(--radius-pill);border:var(--border-default) solid var(--ink);background:var(--paper);color:var(--ink)}.photo-picker__error{font-size:13px;color:var(--tomato);line-height:1.4}.completion{display:flex;flex-direction:column;gap:var(--space-4)}.completion__question{font-size:16px;color:var(--ink-60);margin-top:-6px}.completion__people{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-2)}.completion__person{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%;padding:var(--space-2) 2px;border-radius:var(--radius-card);background:transparent}.completion__person.is-on{background:var(--teal-12)}.completion__avatar{position:relative}.completion__tick{position:absolute;right:-4px;bottom:-4px;display:grid;place-items:center;width:24px;height:24px;border-radius:var(--radius-pill);background:var(--teal);color:var(--on-accent);border:2px solid var(--paper)}.completion__name{font-size:13px;font-weight:600;text-align:center}.completion__duration{text-align:center;font-weight:600;font-size:15px;padding:10px;border:var(--border-subtle) solid var(--border);border-radius:var(--radius-control)}.completion--reward{align-items:center;text-align:center}.completion__reward-title{font-family:var(--font-display);font-weight:700;font-size:26px}.completion__badges{display:flex;flex-direction:column;gap:var(--space-2);width:100%}.completion__badge{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:12px 16px;border:var(--border-default) solid var(--ink);border-radius:var(--radius-control);background:var(--paper-light)}.completion__badge-name{font-family:var(--font-display);font-weight:600;font-size:17px}.completion__badge-who{font-size:13px;font-weight:600;color:var(--tomato)}.recipe{display:flex;flex-direction:column;gap:var(--space-3)}.recipe__topbar{display:flex;align-items:center;justify-content:space-between}.recipe__topbar-actions{display:flex;align-items:center;gap:var(--space-1)}.recipe__iconbtn{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--radius-control);color:var(--ink)}.recipe__iconbtn:active{background:var(--ink-12)}.recipe__cover{position:relative;width:100%;aspect-ratio:3 / 2;border:var(--border-default) solid var(--ink);border-radius:var(--radius-large);overflow:hidden;background:var(--paper-deep)}.recipe__cover-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.recipe__title{font-family:var(--font-display);font-weight:700;font-size:clamp(28px,8vw,34px);line-height:1.02;margin-top:var(--space-1)}.recipe__author{font-size:15px;color:var(--ink-60)}.recipe__infobar{display:flex;align-items:center;gap:var(--space-4);padding:10px 0}.recipe__info{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:14px}.recipe__info+.recipe__info{padding-left:var(--space-4);border-left:var(--border-subtle) solid var(--border)}.recipe__note{font-size:16px;line-height:1.55;padding:var(--space-3) var(--space-4);background:var(--paper-light);border:var(--border-subtle) solid var(--border);border-radius:var(--radius-card)}.recipe__offline{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-60)}.recipe__section{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-3)}.recipe__checklist,.recipe__steps{display:flex;flex-direction:column}.recipe__checklist>li+li,.recipe__step+.recipe__step{border-top:var(--border-subtle) solid var(--ink-12)}.recipe__step{display:grid;grid-template-columns:28px 1fr;align-items:start;gap:var(--space-2);padding-top:4px}.recipe__step-num{font-family:var(--font-display);font-weight:700;font-size:18px;color:var(--cobalt);padding-top:12px;text-align:center}.recipe__actions{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-5)}.recipe__actions-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.recipe__timer{display:flex;align-items:center;justify-content:center;gap:8px;min-height:56px;font-family:var(--font-display);font-weight:600;font-size:20px;color:var(--ink);border:var(--border-default) solid var(--ink);border-radius:var(--radius-control);background:var(--paper-deep)}.field{display:flex;flex-direction:column;gap:6px}.field__label{font-weight:600;font-size:14px}.field__req{color:var(--tomato)}.field__hint{font-size:13px;color:var(--ink-60)}.field__input{width:100%;min-height:48px;padding:12px 14px;background:var(--paper-light);border:var(--border-default) solid var(--ink);border-radius:var(--radius-control);font-size:16px;color:var(--ink)}.field__input::placeholder{color:var(--ink-40)}.field__input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 2px var(--teal-12)}.field__input.has-error{border-color:var(--tomato)}.field__textarea{min-height:88px;resize:vertical;line-height:1.5}.field__error{font-size:13px;font-weight:500;color:var(--tomato)}.panel{border:var(--border-default) solid var(--ink);border-radius:var(--radius-card);padding:var(--space-4);background:var(--paper-light)}.panel--teal{border-color:var(--action-primary);background:var(--surface);color:var(--ink)}.panel--cobalt{border-color:var(--blue);background:var(--surface);color:var(--ink)}.panel--tomato{border-color:var(--danger);background:var(--surface);color:var(--ink)}.form-screen{display:flex;flex-direction:column;gap:var(--space-5);padding-bottom:calc(var(--safe-bottom) + var(--space-8))}.form-screen__topbar{display:flex;align-items:center;gap:var(--space-2)}.form-screen__iconbtn{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--radius-control);color:var(--ink)}.form-screen__title{font-family:var(--font-display);font-weight:700;font-size:26px}.form-screen__quickpaste{display:flex;flex-direction:column;gap:var(--space-3)}.form-screen__quickpaste-label{font-weight:600;font-size:15px}.form-screen__quickpaste-input{background:var(--paper-light)}.form-screen__fields{display:flex;flex-direction:column;gap:var(--space-4)}.form-screen__more{border:var(--border-subtle) solid var(--border);border-radius:var(--radius-card);overflow:hidden}.form-screen__more-summary{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);min-height:52px;padding:0 var(--space-4);font-weight:600;font-size:15px;cursor:pointer;list-style:none}.form-screen__more-summary::-webkit-details-marker,.form-screen__more-summary::marker{display:none}.form-screen__more-chev{flex-shrink:0;transition:transform var(--dur-fast) var(--ease)}.form-screen__more[open] .form-screen__more-chev{transform:rotate(180deg)}.form-screen__more-body{display:flex;flex-direction:column;gap:var(--space-4);padding:0 var(--space-4) var(--space-4)}.form-screen__linktoggle{flex-shrink:0;min-height:36px;padding:0 4px;font-size:13px;font-weight:600;color:var(--cobalt)}.form-screen__two{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.form-screen__section,.form-screen__list{display:flex;flex-direction:column;gap:var(--space-3)}.ing-row{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-2);border:var(--border-subtle) solid var(--border);border-radius:var(--radius-card)}.ing-row__inputs{display:grid;grid-template-columns:1fr 84px 84px;gap:var(--space-2)}.ing-row__amt{min-width:0}.row-controls{display:flex;gap:var(--space-2);justify-content:flex-end}.row-controls__btn{display:grid;place-items:center;width:40px;height:40px;border:var(--border-subtle) solid var(--border);border-radius:var(--radius-control);color:var(--ink)}.row-controls__btn:disabled{opacity:.35}.row-controls__btn--danger{color:var(--tomato)}.step-row{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);border:var(--border-subtle) solid var(--border);border-radius:var(--radius-card)}.step-row__head{display:flex;align-items:center;justify-content:space-between}.step-row__num{font-family:var(--font-display);font-weight:700;font-size:20px;color:var(--cobalt)}.step-row__linked-label{display:block;font-size:13px;font-weight:600;color:var(--ink-60);margin-bottom:6px}.step-row__chips{display:flex;flex-wrap:wrap;gap:6px}.link-chip{min-height:36px;padding:6px 12px;border:var(--border-subtle) solid var(--border);border-radius:var(--radius-large);background:var(--paper-light);font-size:13px;font-weight:600}.link-chip.is-on{background:var(--cobalt);color:var(--on-accent);border-color:var(--ink)}.form-screen__error{color:var(--tomato);font-weight:500}.form-screen__actions{display:flex;flex-direction:column;gap:var(--space-3)}.archive{display:flex;flex-direction:column;gap:var(--space-4);max-width:640px}.archive__topbar{display:flex;align-items:center;gap:var(--space-2)}.archive__iconbtn{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--radius-control);color:var(--ink)}.archive__list{display:flex;flex-direction:column;gap:var(--space-3)}.archive__item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:var(--border-default) solid var(--ink);border-radius:var(--radius-card);background:var(--paper-light)}.archive__info{display:flex;flex-direction:column;gap:2px;min-width:0}.archive__name{font-family:var(--font-display);font-weight:600;font-size:18px}.archive__cat{font-size:13px;color:var(--ink-60)}.stepmode{display:flex;flex-direction:column;min-height:100dvh;padding-top:var(--safe-top);padding-left:var(--safe-left);padding-right:var(--safe-right)}.stepmode__head{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:var(--border-subtle) solid var(--ink-12)}.stepmode__iconbtn{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--radius-control);color:var(--ink);flex:0 0 auto}.stepmode__recipe{flex:1;min-width:0;font-family:var(--font-display);font-weight:600;font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stepmode__whole{display:inline-flex;align-items:center;gap:5px;min-height:44px;padding:0 10px;font-size:13px;font-weight:600;color:var(--cobalt);flex:0 0 auto}.stepmode__body{flex:1;display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-6) var(--space-5);max-width:640px;width:100%;margin-inline:auto}.stepmode__counter{font-family:var(--font-display);font-weight:600;font-size:16px;letter-spacing:.04em;text-transform:uppercase;color:var(--teal)}.stepmode__text{font-weight:600;font-size:clamp(24px,6.5vw,30px);line-height:1.3}.stepmode__linked{padding:var(--space-3) var(--space-4);border:var(--border-default) solid var(--ink);border-radius:var(--radius-card);background:var(--paper-light)}.stepmode__linked-label{display:block;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-60);margin-bottom:4px}.stepmode__linked ul{display:flex;flex-direction:column;gap:2px;font-size:16px}.stepmode__linked-amt{color:var(--ink-60)}.stepmode__check{margin-top:auto}.stepmode__foot{position:sticky;bottom:0;display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4) var(--space-5) calc(var(--space-4) + var(--safe-bottom));background:var(--paper);border-top:var(--border-subtle) solid var(--ink-12);max-width:640px;width:100%;margin-inline:auto}.stepmode__nav{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.stepmode__timer{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;font-family:var(--font-display);font-weight:600;font-size:20px;border:var(--border-default) solid var(--ink);border-radius:var(--radius-control);background:var(--paper-deep)}.profile-screen{display:flex;flex-direction:column;gap:var(--space-5);max-width:640px}.profile-screen__topbar{display:flex;align-items:center;gap:var(--space-3)}.profile-screen__switch{flex:0 0 auto}.profile-screen__id{flex:1;min-width:0}.profile-screen__name{font-family:var(--font-display);font-weight:700;font-size:28px}.profile-screen__switch-text{font-size:13px;color:var(--action-active);font-weight:600}.profile-screen__gear{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--radius-control);color:var(--ink)}.profile-screen__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.profile-screen__card{position:relative;padding:var(--space-3);border:var(--border-default) solid var(--ink);border-radius:var(--radius-card);background:var(--paper-light)}.profile-screen__card--grid{background-color:var(--lavender-soft);background-image:linear-gradient(rgba(52,47,49,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(52,47,49,.1) 1px,transparent 1px);background-size:16px 16px}.profile-screen__achievement{position:absolute;top:-12px;right:-8px;display:grid;place-items:center;width:42px;height:42px;border:var(--border-default) solid var(--ink);border-radius:var(--radius-pill);background:var(--yellow)}.profile-screen__tasks-link{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:var(--border-subtle) solid var(--border);border-radius:var(--radius-control);background:var(--surface);color:var(--ink);text-decoration:none}.profile-screen__tasks-link span:first-child{display:flex;flex-direction:column;gap:2px}.profile-screen__tasks-link strong{font-size:15px}.profile-screen__tasks-link small{color:var(--ink-soft);font-size:13px}.profile-screen__tasks-link>span:last-child{color:var(--action-active);font-size:13px;font-weight:700;white-space:nowrap}.stat-tile{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0;min-height:104px;padding:14px 6px 12px;border:var(--border-default) solid var(--ink);border-radius:var(--radius-card);background:var(--surface)}.stat-tile--tomato{background:var(--danger-soft);color:var(--task-streak)}.stat-tile__value{font-family:var(--font-display);font-weight:700;font-size:32px;line-height:1}.stat-tile__label{font-size:12px;font-weight:500;line-height:1.2;text-align:center;opacity:.85}.profile-screen__section{display:flex;flex-direction:column;gap:var(--space-3)}.profile-screen__badges{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.badge-tile{display:flex;align-items:center;gap:var(--space-2);padding:10px 12px;border:var(--border-subtle) solid var(--border);border-radius:var(--radius-control);opacity:.5}.badge-tile.is-earned{opacity:1;border:var(--border-default) solid var(--ink);background:var(--paper-light)}.badge-tile__dot{width:14px;height:14px;border-radius:var(--radius-pill);border:2px solid var(--ink-40);flex:0 0 auto}.badge-tile.is-earned .badge-tile__dot{background:var(--task-complete);border-color:var(--ink)}.badge-tile__label{font-size:13px;font-weight:600;line-height:1.2}.profile-screen__photos{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2)}.result-photo{position:relative;aspect-ratio:1;border:var(--border-default) solid var(--ink);border-radius:var(--radius-control);overflow:hidden;background:var(--paper-deep)}.result-photo__img{width:100%;height:100%;object-fit:cover}.result-photo__ph{width:100%;height:100%;background:var(--paper-deep)}.result-photo__del{position:absolute;top:6px;right:6px;display:grid;place-items:center;width:32px;height:32px;border-radius:var(--radius-pill);background:var(--paper);border:var(--border-subtle) solid var(--ink);color:var(--tomato)}.result-photo__confirm{position:absolute;inset:0;display:flex;flex-direction:column;gap:6px;align-items:center;justify-content:center;background:#171512b8}.result-photo__confirm button{min-width:80px;min-height:34px;padding:4px 12px;border-radius:var(--radius-control);font-weight:600;font-size:13px;border:var(--border-subtle) solid var(--paper);background:transparent;color:var(--paper)}.result-photo__confirm button:first-child{background:var(--tomato);border-color:var(--ink)}.profile-screen__history{display:flex;flex-direction:column}.history-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) 0}.history-row+.history-row{border-top:var(--border-subtle) solid var(--ink-12)}.history-row__main{display:flex;flex-direction:column;gap:2px;min-width:0}.history-row__title{font-family:var(--font-display);font-weight:600;font-size:17px}.history-row__date{font-size:13px;color:var(--ink-60)}.history-row__meta{display:flex;align-items:center;gap:var(--space-3);flex:0 0 auto}.history-row__people{display:flex}.history-row__people>*+*{margin-left:-8px}.history-row__time{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:600;color:var(--ink-60);white-space:nowrap}.profile-screen__favs{display:flex;flex-direction:column;gap:var(--space-3)}.shopping-screen{display:flex;flex-direction:column;gap:var(--space-5);max-width:760px}.shopping-screen__header,.shopping-card__heading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.shopping-screen__eyebrow{margin-bottom:3px;color:var(--ink-60);font-size:13px;font-weight:600}.shopping-screen__new-list{min-height:36px;min-width:0;padding:5px 10px;border-width:1px}.shopping-screen__tabs{display:flex;gap:var(--space-2);overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.shopping-screen__tabs::-webkit-scrollbar{display:none}.shopping-list-tab{display:flex;align-items:center;gap:var(--space-2);flex:0 0 auto;min-height:36px;padding:5px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface);font-size:13px;font-weight:600}.shopping-list-tab.is-active{border-color:var(--shopping-accent);background:var(--blue-soft);color:var(--shopping-accent)}.shopping-list-tab__count{display:grid;place-items:center;min-width:18px;height:18px;padding-inline:4px;border-radius:var(--radius-pill);background:var(--blue-soft);font-size:11px}.shopping-card{display:flex;flex-direction:column;gap:10px;padding:14px 14px 10px;border:1px solid var(--border);border-radius:20px;background:var(--surface)}.shopping-card__heading{align-items:center;gap:var(--space-2)}.shopping-card__title{flex:1;min-width:0}.shopping-card__title h2{font-size:20px;line-height:1.2;overflow-wrap:anywhere}.shopping-card__title p{margin-top:2px;color:var(--ink-60);font-size:12px}.shopping-card__delete{display:grid;place-items:center;width:36px;height:36px;color:var(--ink-60)}.shopping-add{display:grid;grid-template-columns:minmax(0,1fr) 96px 40px;align-items:end;gap:6px}.shopping-add__name-field{position:relative;min-width:0}.shopping-memory-suggestions{position:absolute;z-index:4;top:calc(100% + 2px);left:0;right:0;display:flex;flex-direction:column;gap:2px;padding:4px;border:1px solid var(--border);border-radius:10px;background:var(--surface);box-shadow:var(--shadow-sm)}.shopping-memory-suggestion{position:relative;display:flex;align-items:center;min-height:32px}.shopping-memory-suggestion__pick{flex:1;min-width:0;padding:5px 7px;text-align:left;overflow-wrap:anywhere}.shopping-memory-suggestion__menu{display:grid;place-items:center;width:30px;height:30px;color:var(--ink-60)}.shopping-memory-menu{position:absolute;z-index:5;top:calc(100% - 2px);right:0;display:flex;flex-direction:column;min-width:170px;padding:4px;border:1px solid var(--border);border-radius:10px;background:var(--surface);box-shadow:var(--shadow-sm)}.shopping-memory-menu button{display:flex;align-items:center;gap:7px;padding:8px;text-align:left;font-size:12px}.shopping-item-row{display:flex;align-items:center;gap:4px}.shopping-item-row .check-row{flex:1;min-width:0}.shopping-item-row__delete{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;color:var(--ink-60)}.shopping-access-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:38px;padding:8px 10px;border:1px solid var(--border);border-radius:10px;color:var(--ink);text-align:left;font-size:13px}.shopping-access-profiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.shopping-access-profile{display:flex;align-items:center;gap:6px;min-width:0;padding:6px;border:1px solid var(--border);border-radius:9px;text-align:left;font-size:12px}.shopping-access-profile.is-selected{border-color:var(--action-active);background:var(--pink-soft)}.shopping-access-profile__avatar{display:grid;place-items:center;width:24px;height:24px;flex:0 0 24px;border-radius:50%;background:var(--blue-soft);font-weight:700}.shopping-add .field{gap:4px}.shopping-add .field__label{font-size:12px}.shopping-add .field__input{min-height:40px;padding:8px 10px;border:1px solid var(--border);border-radius:10px}.shopping-add .field__input:focus{border-color:var(--action-active);box-shadow:0 0 0 2px var(--pink-soft)}.shopping-add__submit{min-width:40px;min-height:40px;padding:7px;border:1px solid var(--action-active)}.shopping-items{display:flex;flex-direction:column;gap:3px}.shopping-items .check-row{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:50px;padding:6px 10px;border-radius:11px;background:var(--blue-soft)}.shopping-items .check-row__box{width:24px;height:24px;margin-top:0;border:0;border-radius:50%;background:var(--lavender)}.shopping-items .check-row.is-checked .check-row__box{border-radius:50%;background:var(--task-complete)}.shopping-items .check-row.is-checked{background:var(--sage-soft)}.shopping-items .check-row__text{display:contents}.shopping-items .check-row__label{min-width:0;overflow-wrap:anywhere}.shopping-items .check-row.is-checked .check-row__label{color:var(--ink-soft);text-decoration-color:color-mix(in srgb,var(--ink-soft) 65%,transparent);text-decoration-thickness:1px}.shopping-items .check-row__hint{max-width:120px;justify-self:end;text-align:right;overflow-wrap:anywhere}.shopping-items .check-row.is-checked .check-row__hint{color:var(--ink-soft)}.shopping-purchased{display:flex;flex-direction:column;gap:4px;padding:8px;border-radius:12px;background:var(--sage-soft)}.shopping-purchased__heading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:0 4px}.shopping-purchased__heading h3{font-size:13px;line-height:1.2}.shopping-purchased__heading span{display:grid;place-items:center;min-width:18px;height:18px;padding-inline:4px;border-radius:var(--radius-pill);background:var(--surface);color:var(--ink-soft);font-size:11px;font-weight:700}.shopping-purchased .shopping-items .check-row.is-checked{background:transparent}.shopping-card__clear{align-self:flex-start;min-height:30px;min-width:0;padding:3px 6px;color:var(--ink-soft);font-size:13px}.shopping-card__empty{display:flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:92px;color:var(--ink-60)}.shopping-list-form{display:flex;flex-direction:column;gap:var(--space-4)}@media (max-width: 520px){.shopping-card{padding:12px 12px 9px}.shopping-add{grid-template-columns:minmax(0,1fr) 82px 38px}.shopping-add__submit{min-width:38px}}.profile-tasks{display:flex;flex-direction:column;gap:var(--space-3)}.profile-tasks__heading{display:flex;align-items:center;width:100%}.profile-tasks__title{display:grid;place-items:center;flex:1;width:min(100%,360px);min-width:0;min-height:108px;padding:22px 32px 19px;background:url(/decor/tasks/peachy.png) center / 124% 200% no-repeat;text-align:center}.profile-tasks__controls{display:flex;align-items:center;gap:var(--space-3)}.profile-tasks__controls .profile-tasks__date{flex:1}.profile-tasks__title h2,.profile-tasks__title p{width:100%;overflow-wrap:anywhere}.profile-tasks__title h2{max-width:190px;line-height:1.08}.profile-tasks__heading p,.profile-tasks__note,.profile-tasks__status{color:var(--ink-60);font-size:13px}.profile-tasks__empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 0 4px;color:var(--ink-60);text-align:center}.profile-tasks__empty img{width:82px;height:82px;object-fit:contain}.profile-tasks__success{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 0 10px;color:var(--ink);text-align:center}.profile-tasks__success img{width:104px;height:84px;object-fit:contain}.profile-tasks__success strong{font-size:17px}.profile-tasks__success span{color:var(--task-stars);font-size:13px;font-weight:700}.profile-tasks__group{display:flex;flex-direction:column;gap:6px}.profile-tasks__group h3{color:var(--ink-60);font-size:13px;font-weight:700}.profile-tasks__group--completed{margin-top:4px}.profile-tasks__date{display:flex;align-items:center;gap:var(--space-2);width:fit-content;min-height:42px;padding:7px 11px;border:var(--border-subtle) solid var(--border);border-radius:var(--radius-control);background:var(--paper-light)}.profile-tasks__date input{min-width:0;border:0;background:transparent;font-size:14px;font-weight:600}.task-progress{display:flex;flex-direction:column;gap:var(--space-2);min-height:124px;padding:var(--space-3) var(--space-4);border:var(--border-subtle) solid var(--border);border-radius:var(--radius-card);background:var(--paper-light);color:var(--ink);text-align:left;transition:border-color .22s var(--ease),background-color .22s var(--ease)}.task-progress--complete-pulse{animation:task-day-complete .6s var(--ease)}.task-progress__top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.task-progress__streak,.task-progress__balance{display:flex;align-items:center;gap:6px}.task-progress__streak svg,.task-progress__balance svg{align-self:center}.task-progress__streak{color:var(--task-streak)}.task-progress__balance{color:var(--task-stars)}.task-progress__streak-copy strong,.task-progress__balance strong{font-family:var(--font-display);font-size:22px;line-height:1.1}.task-progress__streak-copy{display:block}.task-progress__streak-copy>span{color:var(--task-streak);font-size:12px}.task-progress__streak-copy strong{display:inline-block}.task-progress__streak-copy strong.is-updating{animation:task-streak-update .36s var(--ease)}.task-progress__today{display:flex;flex-direction:column;gap:6px}.task-progress__count{font-size:13px}.task-progress__track{display:flex;height:7px;overflow:hidden;border-radius:var(--radius-pill);background:var(--ink-12)}.task-progress__done,.task-progress__pending{display:block;height:100%;transition:width var(--dur-base) var(--ease)}.task-progress__done{background:var(--task-progress)}.task-progress__pending{background:var(--task-pending, var(--lavender-soft))}.task-progress__status{color:var(--ink-60);font-size:13px}@keyframes task-streak-update{0%{transform:scale(.82);opacity:.45}65%{transform:scale(1.1);opacity:1}to{transform:scale(1);opacity:1}}@keyframes task-day-complete{0%,to{background:var(--paper-light)}45%{border-color:var(--task-complete);background:var(--sage-soft)}}.profile-tasks__list{overflow:hidden;border:var(--border-subtle) solid var(--border);border-radius:var(--radius-card);background:var(--paper-light)}.task-row{position:relative;display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-1);padding:var(--space-1) var(--space-2);transition:background-color .22s var(--ease)}.task-row+.task-row{border-top:var(--border-subtle) solid var(--ink-12)}.task-row__main{display:flex;align-items:center;flex:1;gap:var(--space-2);min-width:0;min-height:52px;padding:4px 0;text-align:left}.task-row__main:disabled{cursor:default}.task-row__marker{display:grid;place-items:center;flex:0 0 auto;width:28px;height:28px;border:var(--border-subtle) solid var(--border);border-radius:var(--radius-control);background:var(--paper-light)}.task-row__text{display:flex;flex-direction:column;gap:2px;min-width:0}.task-row__title{overflow-wrap:anywhere;font-size:15px;font-weight:600}.task-row__meta,.task-row__reason{color:var(--ink-60);font-size:12px}.task-row__reason{font-style:italic}.task-row__action-hint{flex:0 0 auto;color:var(--ink-60);font-size:12px}.task-row__edit{display:grid;place-items:center;flex:0 0 auto;width:44px;height:44px;color:var(--ink-60)}.task-row--pending{background:var(--blue-soft, var(--lavender-soft));animation:task-row-pending .22s var(--ease)}.task-row--pending .task-row__marker{border-color:var(--task-pending, var(--action-active));color:var(--task-pending, var(--action-active))}.task-row--approved,.task-row--completed_trusted{background:var(--sage-soft)}.task-row--approved .task-row__marker,.task-row--completed_trusted .task-row__marker{border-color:var(--success, var(--action-active));color:var(--success, var(--action-active))}.task-row--approved .task-row__marker svg,.task-row--completed_trusted .task-row__marker svg{animation:task-check-in .2s var(--ease)}.task-row__reward-burst{position:absolute;z-index:1;top:2px;right:48px;color:var(--action-active);font-size:14px;font-weight:800;pointer-events:none;animation:task-reward-burst .7s var(--ease) forwards}@keyframes task-check-in{0%{transform:scale(.65);opacity:0}}@keyframes task-row-pending{0%{background:var(--paper-light)}}@keyframes task-reward-burst{0%{transform:translateY(8px);opacity:0}24%{transform:translateY(0);opacity:1}72%{opacity:1}to{transform:translateY(-8px);opacity:0}}.task-row--approved .task-row__title,.task-row--completed_trusted .task-row__title{color:var(--ink-60)}.task-row--rejected{background:var(--danger-soft)}.task-row--rejected .task-row__marker{border-color:var(--task-streak);color:var(--task-streak)}.task-row--unavailable_today{opacity:.62}.task-approval__summary{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);width:100%;min-height:48px;padding:var(--space-2) var(--space-3);border:var(--border-subtle) solid var(--border);border-radius:var(--radius-card);background:var(--paper-light);font-size:15px;font-weight:600}.task-approval__sheet{display:flex;flex-direction:column;gap:var(--space-4)}.task-approval__group{display:flex;flex-direction:column;gap:var(--space-2)}.task-approval__row{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-2);border:var(--border-subtle) solid var(--border);border-radius:var(--radius-control);background:var(--paper-light)}.task-approval__info{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-2)}.task-approval__info span{flex:0 0 auto;color:var(--task-stars);font-weight:700}.task-approval__actions{display:flex;gap:var(--space-2)}.task-approval__reject{display:flex;flex-direction:column;gap:var(--space-2)}.task-progress-details{display:flex;flex-direction:column;gap:var(--space-4)}.task-progress-details__metrics{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.task-progress-details__metrics>div{display:flex;flex-direction:column;gap:3px;padding:var(--space-3);border:var(--border-subtle) solid var(--border);border-radius:var(--radius-control);background:var(--paper-light)}.task-progress-details__metrics span,.task-progress-details__freeze span,.task-progress-details__history p{color:var(--ink-60);font-size:12px}.task-progress-details__freeze{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--space-2);padding:var(--space-3);border:var(--border-subtle) solid var(--border);border-radius:var(--radius-control);background:var(--lavender-soft)}.task-progress-details__freeze>div{display:flex;flex-direction:column;min-width:0}.task-progress-details__history{display:flex;flex-direction:column;gap:var(--space-2)}.task-progress-details__history h3{font-size:15px}.task-progress-details__history ul{display:flex;flex-direction:column}.task-progress-details__history li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--space-2);min-height:46px;border-bottom:var(--border-subtle) solid var(--ink-12)}.task-progress-details__history li>span{display:flex;flex-direction:column}.task-progress-details__history small{color:var(--ink-60)}.task-progress-details__history b{color:var(--task-complete)}.task-progress-details__history b.is-negative{color:var(--ink-60)}.task-achievements__card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3);border:var(--border-subtle) solid var(--border);border-radius:var(--radius-card);background:var(--paper-light);text-align:left}.task-achievements__copy{display:flex;flex-direction:column;gap:3px;min-width:0}.task-achievements__copy small{color:var(--ink-60)}.task-achievements__copy .task-achievements__progress-label{color:var(--ink-45);font-size:12px}.task-achievements__track{height:5px;margin-top:3px;overflow:hidden;border-radius:var(--radius-pill);background:var(--ink-12)}.task-achievements__track>span{display:block;height:100%;border-radius:inherit;background:var(--task-stars);transition:width .22s var(--ease)}.task-achievements__sheet{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);text-align:center}.task-achievements__sheet>svg{color:var(--task-stars)}.task-achievements__sheet>strong{font-family:var(--font-display);font-size:24px}.task-achievements__sheet p{color:var(--ink-60)}.profile-task-form__stars{border:0}.profile-task-form__stars legend{margin-bottom:6px;font-size:14px;font-weight:600}.profile-task-form__stars>div{display:flex;flex-wrap:wrap;gap:6px}.profile-task-form__stars button{flex:1;min-width:92px;min-height:44px;padding:6px 10px;border:var(--border-subtle) solid var(--border);border-radius:var(--radius-control);background:var(--paper-light);font-size:14px;font-weight:600}.profile-task-form__stars button.is-active{border-color:var(--action-active);background:var(--pink-soft);color:var(--action-active)}.profile-task-form{display:flex;flex-direction:column;gap:var(--space-4)}.profile-task-form__weekdays{border:0}.profile-task-form__weekdays legend{margin-bottom:6px;font-size:14px;font-weight:600}.profile-task-form__weekdays>div{display:flex;flex-wrap:wrap;gap:6px}.profile-task-form__weekdays button{min-width:42px;min-height:42px;padding:6px;border:var(--border-subtle) solid var(--border);border-radius:var(--radius-control);background:var(--paper-light);font-size:13px;font-weight:600}.profile-task-form__weekdays button.is-active{border-color:var(--action-active);background:var(--pink-soft);color:var(--action-active)}.profile-task-form__required{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3);border:var(--border-subtle) solid var(--border);border-radius:var(--radius-control);background:var(--paper-light)}.profile-task-form__required input{width:20px;height:20px;margin-top:2px;accent-color:var(--action-active)}.profile-task-form__required span{display:flex;flex-direction:column}.profile-task-form__required small{color:var(--ink-60);font-size:12px}.profile-task-form__actions{display:flex;justify-content:flex-end;gap:var(--space-2)}@media (max-width: 420px){.profile-tasks__heading{align-items:center}.profile-tasks__title{min-height:94px;padding:18px 28px 16px;background-size:118% 190%}.task-approval__actions{flex-wrap:wrap}.task-progress-details__freeze{grid-template-columns:auto minmax(0,1fr)}.task-progress-details__freeze .btn{grid-column:1 / -1}}@media (prefers-reduced-motion: reduce){.task-progress,.task-row,.task-progress__done,.task-progress__pending,.task-achievements__track>span{transition-duration:0ms}.task-progress--complete-pulse,.task-progress__streak-copy strong.is-updating,.task-row--pending,.task-row--approved .task-row__marker svg,.task-row--completed_trusted .task-row__marker svg{animation:task-reduced-fade .14s linear}.task-row__reward-burst{animation:task-reduced-fade .14s linear forwards}@keyframes task-reduced-fade{0%{opacity:.55}to{opacity:1}}}.tasks-screen,.settings{display:flex;flex-direction:column;gap:var(--space-5);max-width:640px}.settings__topbar{display:flex;align-items:center;gap:var(--space-2)}.settings__iconbtn{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--radius-control);color:var(--ink)}.settings__section{display:flex;flex-direction:column;gap:var(--space-3)}.settings__section>h2{display:flex;align-items:center;gap:8px}.settings__notification-options{display:grid;gap:8px}.settings__notification-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding:10px 14px;border:var(--border-subtle) solid var(--border);border-radius:var(--radius-control);background:var(--paper-light);font-size:15px}.settings__notification-toggle input{position:absolute;opacity:0;pointer-events:none}.settings__notification-toggle>span:last-child{width:44px;height:26px;flex:0 0 auto;border-radius:99px;background:var(--border);position:relative;transition:background .15s ease}.settings__notification-toggle>span:last-child:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .15s ease}.settings__notification-toggle input:checked+span+span{background:var(--teal)}.settings__notification-toggle input:checked+span+span:after{transform:translate(18px)}.settings__note{font-size:15px;line-height:1.5;color:var(--ink-60)}.settings__steps{display:flex;flex-direction:column;gap:var(--space-2);counter-reset:step;padding-left:0}.settings__steps li{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 14px;background:var(--paper-light);border:var(--border-subtle) solid var(--border);border-radius:var(--radius-control);font-size:15px}.settings__steps li svg{display:inline;vertical-align:middle}.settings__list{display:flex;flex-direction:column;gap:var(--space-2)}.settings__row{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:52px;padding:12px 16px;border:var(--border-default) solid var(--ink);border-radius:var(--radius-control);background:var(--paper-light);font-size:16px;font-weight:500;text-align:left}.settings__row--static{flex-wrap:wrap}.settings__chev{margin-left:auto;color:var(--ink-60)}.settings__lock{margin-left:auto;display:inline-flex;align-items:center;gap:5px;padding:6px 12px;font-size:13px;font-weight:600;color:var(--tomato);border:var(--border-subtle) solid var(--tomato);border-radius:var(--radius-large)}.settings__personalization{gap:var(--space-4)}.settings__profile-preview{display:flex;align-items:center;gap:var(--space-3);min-height:80px;padding:var(--space-3);border:var(--border-default) solid var(--ink);border-radius:var(--radius-card);background:var(--paper-light)}.settings__profile-preview>svg{margin-left:auto;color:var(--berry)}.settings__profile-preview--grid{background-color:var(--lavender-soft);background-image:linear-gradient(rgba(52,47,49,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(52,47,49,.1) 1px,transparent 1px);background-size:16px 16px}.settings__personalization-group{display:grid;gap:var(--space-2)}.settings__personalization-group h3{margin:0;font-size:15px}.settings__options{display:flex;flex-wrap:wrap;gap:var(--space-2)}.settings__option{position:relative;display:inline-flex;align-items:center;gap:6px;min-height:42px;padding:8px 10px;border:var(--border-subtle) solid var(--ink);border-radius:var(--radius-control);background:var(--paper-light);font-size:14px}.settings__option.is-selected{border-width:var(--border-default);background:var(--pink-soft)}.settings__option.is-locked{color:var(--ink-60);border-color:var(--border);background:var(--surface-muted)}.settings__option small{display:inline-flex;align-items:center;gap:3px;font-size:11px}.settings__swatch{width:42px;min-width:42px;padding:0;border-radius:var(--radius-pill)}.settings__swatch--peach{background:var(--avatar-choice-peach)}.settings__swatch--mint{background:var(--avatar-choice-mint)}.settings__swatch--lilac{background:var(--avatar-choice-lilac)}.settings__swatch--butter{background:var(--avatar-choice-butter)}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.family-settings{padding-bottom:7rem}.family-settings__card{background:var(--surface, #fff);border:2px solid var(--ink, #332f31);border-radius:1.25rem;padding:1rem;margin:0 0 1rem}.family-settings__heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.family-settings__heading h2{margin:.2rem 0 0;font-size:1.6rem}.family-settings__heading input{font:inherit;width:100%;border:0;border-bottom:2px solid currentColor;background:transparent}.family-settings__heading button,.family-settings__actions button{border:0;background:transparent;color:inherit;padding:.4rem}.family-settings__member{display:flex;align-items:center;gap:.7rem;padding:.65rem 0;border-top:1px solid #e5dfe0}.family-settings__member>div:nth-child(2){display:grid;gap:.15rem;flex:1}.family-settings__member span{color:#766e72;font-size:.85rem}.family-settings__actions{display:flex;gap:.2rem}.family-settings__form{display:grid;gap:.8rem}.family-settings__form label{display:grid;gap:.35rem;font-weight:600}.family-settings__form label span{font-weight:400;color:#766e72;font-size:.85rem}.family-settings__form input,.family-settings__form select{width:100%;padding:.75rem;border:2px solid #d8ced1;border-radius:.7rem;font:inherit;background:#fff}.family-settings__colors{display:flex;gap:.55rem}.family-settings__color{width:2.25rem;height:2.25rem;border-radius:50%;border:2px solid #332f31}.family-settings__color--peach{background:#f4a38f}.family-settings__color--mint{background:#9ed8c6}.family-settings__color--lilac{background:#c1a9df}.family-settings__color--butter{background:#f5d477}.family-settings__color.is-selected{outline:3px solid #332f31;outline-offset:2px}.family-settings__form-actions{display:flex;gap:.6rem;flex-wrap:wrap}.family-settings__invite{display:grid;gap:.55rem}.family-settings__invite-code{font-size:2rem;letter-spacing:.12em;font-weight:800}.family-settings__invite-actions{display:flex;gap:.5rem;flex-wrap:wrap}.family-settings__qr{display:grid;gap:.4rem;align-items:start}.family-settings__qr img{width:160px;height:160px;border-radius:.5rem;border:1px solid #e5dfe0}.family-chat{display:grid;grid-template-rows:auto 1fr auto;min-height:100dvh;gap:12px;padding-bottom:calc(78px + env(safe-area-inset-bottom))}.family-chat__header{display:flex;align-items:center;gap:12px;padding:8px 2px}.family-chat__header h1{margin:0;font-size:22px}.family-chat__phone{margin-left:auto;width:42px;height:42px;display:grid;place-items:center;border:0;border-radius:50%;background:var(--pink-soft);color:var(--ink)}.family-chat__phone:disabled{opacity:.45}.family-chat__messages{display:flex;flex-direction:column;justify-content:flex-end;gap:8px;min-height:0;overflow:auto}.family-chat__bubble{max-width:78%;display:grid;gap:3px;align-self:flex-start;padding:9px 12px;border-radius:14px 14px 14px 3px;background:var(--blue-soft)}.family-chat__bubble.is-own{align-self:flex-end;border-radius:14px 14px 3px;background:var(--pink-soft)}.family-chat__bubble small,.family-chat__bubble time{color:var(--ink-60);font-size:11px}.family-chat__bubble time{justify-self:end;font-variant-numeric:tabular-nums}.family-chat__deleted,.family-chat__call{align-self:center;color:var(--ink-60);font-size:13px}.family-chat__composer{display:flex;gap:8px;align-items:end;padding-top:8px}.family-chat__composer textarea{min-height:44px;max-height:88px;flex:1;resize:none;padding:11px 12px;border:var(--border-subtle) solid var(--border);border-radius:12px;background:var(--paper-light);font:inherit}.family-chat__composer button{width:44px;height:44px;display:grid;place-items:center;border:0;border-radius:12px;background:var(--accent);color:#fff}.family-chat__composer button:disabled{opacity:.45}.update-prompt{position:fixed;left:50%;transform:translate(-50%);bottom:calc(var(--bottom-nav-h) + var(--safe-bottom) + var(--space-3));z-index:var(--z-toast);display:flex;align-items:center;gap:var(--space-3);width:min(92vw,460px);padding:12px 12px 12px 16px;background:var(--ink);color:var(--on-accent);border:var(--border-default) solid var(--ink);border-radius:var(--radius-control);box-shadow:var(--shadow-hard)}.update-prompt__text{flex:1;font-size:14px;font-weight:500}.update-prompt__actions{display:flex;align-items:center;gap:var(--space-2)}.update-prompt__update{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:var(--radius-control);background:var(--teal);color:var(--on-accent);font-weight:600;font-size:14px;border:var(--border-subtle) solid var(--paper)}.update-prompt__dismiss{display:grid;place-items:center;width:36px;height:36px;color:var(--paper);border-radius:var(--radius-control)}
