@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-vietnamese-wght-normal-qRpaaN48.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-ext-wght-normal-DmpS2jIq.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-wght-normal-eXO_dkmS.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#f4f6fb;--surface:#fff;--surface-2:#eef2f9;--border:#e1e7f2;--card-border:#1018280d;--text:#0e1630;--muted:#66708a;--accent:#2f5bea;--accent-hover:#2148cc;--accent-soft:#e8eefe;--accent-grad:linear-gradient(135deg, #4a74ff 0%, #2f5bea 55%, #1f43c4 100%);--on-accent:#fff;--good:#12a47a;--danger:#e5484d;--person-a:#ff7a45;--person-b:#2f5bea;--person-c:#12a47a;--person-d:#a855f7;--shadow:0 1px 2px #1018280a, 0 6px 20px #1018280f;--shadow-lift:0 10px 30px #2f5bea47;--radius:20px;--tabbar-h:calc(64px + env(safe-area-inset-bottom));--font-body:"Inter Variable", "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-display:"Plus Jakarta Sans Variable", "Plus Jakarta Sans", system-ui, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0a0f1e;--surface:#121a2f;--surface-2:#1a2440;--border:#253154;--card-border:#1f2a48;--text:#e9eefa;--muted:#8e9ab8;--accent:#6c8fff;--accent-hover:#8ea9ff;--accent-soft:#1b2654;--accent-grad:linear-gradient(135deg, #7d9cff 0%, #5079ff 55%, #2f5bea 100%);--on-accent:#fff;--good:#3dd6a3;--danger:#ff6b6b;--person-a:#ff9466;--person-b:#6c8fff;--person-c:#3dd6a3;--person-d:#c084fc;--shadow:0 1px 2px #0000004d, 0 6px 20px #00000040;--shadow-lift:0 10px 30px #5079ff4d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font:16px/1.55 var(--font-body);margin:0}img{max-width:100%;display:block}a{color:var(--accent);text-decoration:none}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.025em;margin:0 0 .5em;font-weight:800;line-height:1.15}h1{font-size:1.85rem}h2{font-size:1.35rem}h3{font-size:1.1rem}p{margin:0 0 .8em}@media (hover:hover){a:hover{text-decoration:underline}}.app-header{z-index:20;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border);padding-top:env(safe-area-inset-top);position:sticky;top:0}.app-header-inner{justify-content:space-between;align-items:center;gap:16px;max-width:1100px;margin:0 auto;padding:8px 16px;display:flex}.brand{color:var(--text);font-family:var(--font-display);letter-spacing:-.02em;align-items:center;gap:10px;font-size:1.15rem;font-weight:800;display:flex}.brand:hover{text-decoration:none}.brand img{width:30px;height:30px}.nav{display:none}.profile-link{border-radius:50%;display:flex}.profile-link.active{box-shadow:0 0 0 2px var(--bg), 0 0 0 4px var(--accent)}main{max-width:1100px;padding:16px 16px calc(var(--tabbar-h) + 32px);margin:0 auto}.tabbar{z-index:30;background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--border);padding:6px 4px calc(6px + env(safe-area-inset-bottom));justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar a{color:var(--muted);flex-direction:column;flex:1;align-items:center;gap:2px;padding:4px 0;font-size:.7rem;font-weight:500;display:flex}.tabbar-gap{flex:none;width:76px}.tabbar a:hover{text-decoration:none}.tabbar a.active{color:var(--accent)}@media (width>=721px){.app-header-inner{justify-content:flex-start;padding:10px 16px}.nav{gap:2px;margin-left:auto;display:flex}.nav a{color:var(--muted);white-space:nowrap;border-radius:999px;padding:6px 12px;font-size:.95rem;font-weight:500}.nav a:hover{color:var(--text);background:var(--surface-2);text-decoration:none}.nav a.active{color:var(--accent);background:var(--accent-soft)}.profile-link{margin-left:8px}.tabbar{display:none}main{padding:28px 16px 80px}h1{font-size:2.4rem}}.card{background:var(--surface);border:1px solid var(--card-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}@media (width>=721px){.card{padding:20px}}.stack{flex-direction:column;gap:16px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.row.spread{justify-content:space-between}.grow{flex:1;min-width:0}.narrow{max-width:760px;margin:0 auto}.muted{color:var(--muted)}.small{font-size:.875rem}.error{color:var(--danger);margin:0}.center{text-align:center}.pre{white-space:pre-wrap}.nowrap{white-space:nowrap}.btn{border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;white-space:nowrap;border-radius:14px;justify-content:center;align-items:center;gap:6px;min-height:44px;padding:9px 16px;font-weight:500;text-decoration:none;transition:background .12s,transform 80ms;display:inline-flex}.btn:active{transform:scale(.97)}.btn:hover{text-decoration:none}@media (hover:hover){.btn:hover{background:var(--surface-2)}}.btn:disabled{opacity:.55;cursor:default}.btn.primary{background:var(--accent-grad);color:var(--on-accent);border-color:#0000;font-weight:600;box-shadow:0 4px 14px #2f5bea38}@media (hover:hover){.btn.primary:hover{background:var(--accent-grad);filter:brightness(1.06)}}.btn.ghost{background:0 0;border-color:#0000}.btn.danger{color:var(--danger)}.btn.small{border-radius:10px;min-height:36px;padding:5px 12px;font-size:.9rem}.btn.icon{min-width:44px;padding:0}.btn.small.icon{min-width:36px}.btn.big{border-radius:16px;min-height:54px;font-size:1.05rem}.link-btn{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}input,textarea,select{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:14px;width:100%;min-height:46px;padding:10px 14px;font-size:16px}textarea{resize:vertical;min-height:90px}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft);outline:none}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}label{margin-bottom:4px;font-size:.9rem;font-weight:500;display:block}.field{flex-direction:column;gap:4px;display:flex}.pill{background:var(--accent-soft);color:var(--accent);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:.85rem;font-weight:600;display:inline-flex}.dot{border-radius:50%;flex:none;width:10px;height:10px;display:inline-block}.avatar{color:#fff;border-radius:50%;flex:none;place-items:center;width:34px;height:34px;font-size:.85rem;font-weight:700;display:grid}.empty{text-align:center;color:var(--muted);padding:48px 16px}.empty h2{color:var(--text)}.banner{background:var(--accent-soft);color:var(--text);border-radius:12px;padding:10px 14px;font-size:.9rem}.tabs{border-bottom:1px solid var(--border);scrollbar-width:none;margin:0 -16px 16px;padding:0 8px;display:flex;overflow-x:auto}.tabs button{font:inherit;color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;flex:1;padding:12px 6px;font-size:.92rem;font-weight:500}.tabs button.active{color:var(--accent);border-bottom-color:var(--accent)}@media (width>=721px){.tabs{margin:0 0 20px;padding:0}.tabs button{flex:none;padding:10px 16px;font-size:1rem}}.chip-picker{flex-wrap:wrap;gap:8px;display:flex}.chip-picker button{font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:999px;min-height:40px;padding:8px 14px;font-size:.95rem}.chip-picker button.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.sheet-backdrop{z-index:90;background:#140a0573;justify-content:center;align-items:flex-end;animation:.15s ease-out fade;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;max-width:520px;max-height:90vh;padding:8px 20px calc(20px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;flex-direction:column;gap:14px;animation:.2s ease-out slide-up;display:flex;overflow:auto;box-shadow:0 -8px 32px #0000002e}.sheet-handle{background:var(--border);border-radius:3px;flex:none;width:40px;height:5px;margin:4px auto 0}.sheet-title{margin:0}@media (width>=721px){.sheet-backdrop{align-items:center}.sheet{border-radius:22px}}@keyframes slide-up{0%{opacity:.4;transform:translateY(40px)}}@keyframes fade{0%{opacity:0}}.toolbar{gap:8px;margin-bottom:14px;display:flex}.toolbar select{flex:none;width:auto}.meal-grid{flex-direction:column;gap:10px;display:flex}.card.meal-card{color:var(--text);align-items:center;gap:12px;padding:10px;display:flex}.meal-card:hover{text-decoration:none}.meal-card .cover{background:linear-gradient(135deg, var(--accent-soft), var(--surface-2));border-radius:14px;flex:none;place-items:center;width:84px;height:84px;font-size:2.2rem;display:grid;overflow:hidden}.meal-card .cover img{object-fit:cover;width:100%;height:100%}.meal-card .body{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.meal-card h3{margin:0;font-size:1.05rem}.meal-card .meta{color:var(--muted);font-size:.8rem}@media (width>=721px){.toolbar input{max-width:340px}.meal-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px;display:grid}.card.meal-card{flex-direction:column;align-items:stretch;gap:0;padding:0;transition:transform .15s;overflow:hidden}.meal-card:hover{transform:translateY(-2px)}.meal-card .cover{aspect-ratio:4/3;border-radius:0;width:auto;height:auto;font-size:3rem}.meal-card .body{gap:6px;padding:14px 16px 16px}.meal-card h3{font-size:1.15rem}}.scores{flex-wrap:wrap;gap:6px;display:flex}.score-chip{border:1px solid var(--border);border-radius:999px;align-items:center;gap:5px;padding:1px 8px;font-size:.8rem;font-weight:600;display:inline-flex}.cooking-now{border-radius:var(--radius);background:var(--accent-soft);color:var(--text);border:1px solid color-mix(in srgb, var(--accent) 25%, transparent);align-items:center;gap:12px;padding:14px 16px;display:flex}.cooking-now:hover{text-decoration:none}.cooking-now strong{font-size:1.05rem;display:block}.pulse{background:var(--accent);border-radius:50%;flex:none;width:12px;height:12px;animation:1.6s infinite pulse}@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 55%, transparent)}70%{box-shadow:0 0 0 10px #0000}to{box-shadow:0 0 #0000}}.dashboard{grid-template-columns:minmax(0,1fr);gap:12px;margin:12px 0 24px;display:grid}@media (width>=721px){.dashboard{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}}.dash-card{flex-direction:column;gap:10px;display:flex}.dash-head h3{margin:0}.podium{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.podium-row{color:var(--text);border-radius:12px;align-items:center;gap:12px;margin:0 -6px;padding:6px;display:flex}.podium-row:hover{background:var(--surface-2);text-decoration:none}.medal{color:#fff;background:var(--muted);border-radius:50%;flex:none;place-items:center;width:28px;height:28px;font-size:.85rem;font-weight:800;display:grid}.medal-1{background:linear-gradient(135deg,#f7c948,#d99a06)}.medal-2{background:linear-gradient(135deg,#cfd6e2,#94a0b4)}.medal-3{background:linear-gradient(135deg,#f0a875,#c46a2c)}.podium-thumb{background:var(--surface-2);border-radius:10px;flex:none;place-items:center;width:46px;height:46px;font-size:1.4rem;display:grid;overflow:hidden}.podium-thumb img{object-fit:cover;width:100%;height:100%}.podium-title{white-space:nowrap;text-overflow:ellipsis;font-weight:600;display:block;overflow:hidden}.podium-scores{color:var(--muted);gap:10px;font-size:.8rem;display:flex}.podium-scores>span{align-items:center;gap:4px;display:inline-flex}.podium-scores .dot{width:8px;height:8px}.podium-score{font-family:var(--font-display);color:var(--accent);font-size:1.5rem;font-weight:800}.dash-stats{color:var(--muted);border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:14px;margin-top:auto;padding-top:10px;font-size:.85rem;display:flex}.dash-stats strong{color:var(--text)}.nudge{margin-left:auto;font-weight:600}.feed{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.feed li{border-bottom:1px dashed var(--border);align-items:center;gap:12px;padding:8px 0;font-size:.92rem;display:flex}.feed li:last-child{border-bottom:0}.feed-quote{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;display:block;overflow:hidden}.feed-time{color:var(--muted);white-space:nowrap;flex:none;font-size:.78rem}.meal-hero{flex-direction:column;gap:16px;margin-bottom:18px;display:flex}.meal-hero .cover{aspect-ratio:16/10;background:linear-gradient(135deg, var(--accent-soft), var(--surface-2));place-items:center;margin:-16px -16px 0;font-size:4rem;display:grid;overflow:hidden}.meal-hero .cover img{object-fit:cover;width:100%;height:100%}.meal-hero .cover.no-photo{aspect-ratio:3;font-size:3rem}.hero-actions{gap:8px;display:flex}.hero-actions .btn.primary{flex:1}.score-tiles{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:10px;display:grid}.score-tile{text-align:left;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);font:inherit;color:var(--text);flex-direction:column;align-items:flex-start;gap:6px;min-width:0;padding:12px 14px;display:flex}.score-tile.mine{cursor:pointer;border-style:dashed}.score-tile .score-big{font-size:2.2rem}.tile-note{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.score-big{font-family:var(--font-display);letter-spacing:-.03em;font-size:2rem;font-weight:800;line-height:1}.score-picker{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.score-picker button{border:1px solid var(--border);background:var(--surface);height:52px;font:inherit;cursor:pointer;color:var(--text);border-radius:12px;padding:0;font-size:1.1rem;font-weight:600}.score-picker button.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}@media (width>=721px){.meal-hero{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start;gap:28px;margin-bottom:28px;display:grid}.meal-hero .cover,.meal-hero .cover.no-photo{border-radius:var(--radius);aspect-ratio:4/3;margin:0;font-size:5rem}}.serves{align-items:center;gap:10px;display:flex}.serves strong{text-align:center;min-width:1.5em;font-size:1.1rem}.recipe-layout{flex-direction:column;gap:24px;display:flex}@media (width>=801px){.recipe-layout{grid-template-columns:minmax(260px,1fr) minmax(0,1.8fr);align-items:start;gap:32px;display:grid}}.ingredient-list,.step-list{margin:0;padding:0;list-style:none}.ingredient-list li{border-bottom:1px dashed var(--border);align-items:baseline;gap:10px;padding:9px 0;display:flex}.ingredient-list .qty{min-width:4.5em;color:var(--accent);font-weight:600}.ingredient-list .note{color:var(--muted);font-size:.9rem}.ingredient-list li.checked .grow,.ingredient-list li.checked .qty{opacity:.45;text-decoration:line-through}.ingredient-toggle{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:2px 0;display:flex}.ingredient-list li:has(.ingredient-toggle){padding:6px 0}.tick{border:2px solid var(--border);border-radius:8px;flex:none;place-items:center;width:24px;height:24px;display:grid}.tick.on{background:var(--good);border-color:var(--good)}.tick.on:after{content:"";border:2.5px solid #fff;border-width:0 2.5px 2.5px 0;width:6px;height:11px;transform:rotate(45deg)translate(-1px,-1px)}.woolies{color:var(--good);white-space:nowrap;font-size:.8rem;font-weight:600}.group-heading{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:20px 0 4px;font-size:.75rem;font-weight:700}.step-list>li{grid-template-columns:2.2em 1fr;gap:10px;padding:10px 0;display:grid}.step-list p{margin:0}.step-num{background:var(--accent-soft);width:2em;height:2em;color:var(--accent);border-radius:50%;flex:none;place-items:center;font-size:.9rem;font-weight:700;display:grid}.step-ing strong{color:var(--accent);font-weight:700}.paste-box{background:var(--surface-2)}.edit-row{margin-bottom:8px}.more{color:var(--muted);flex:none}.more.has-link{color:var(--good)}.row-options{background:var(--surface-2);border-radius:12px;flex-direction:column;gap:10px;margin-top:6px;padding:12px;display:flex}.row-options.row{flex-direction:row}.group-input{max-width:320px;margin:14px 0 8px;font-weight:600}.add-btn{color:var(--muted)}.serves-input{align-items:center;gap:8px;margin:0;font-weight:500;display:flex}.serves-input input{text-align:center;width:64px}.save-bar{bottom:calc(var(--tabbar-h) + 8px);z-index:10;border-radius:var(--radius);background:color-mix(in srgb, var(--surface) 94%, transparent);border:1px solid var(--border);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);gap:10px;padding:10px;display:flex;position:sticky}@media (width>=721px){.save-bar{bottom:16px}}.gallery{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;display:grid}@media (width>=721px){.gallery{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}}.small-gallery{grid-template-columns:repeat(auto-fill,minmax(72px,1fr))}.gallery figure{aspect-ratio:1;background:var(--surface-2);cursor:zoom-in;border-radius:12px;margin:0;position:relative;overflow:hidden}.gallery img{object-fit:cover;width:100%;height:100%}.gallery figcaption{color:#fff;background:linear-gradient(#0000,#000000a6);padding:18px 8px 6px;font-size:.8rem;position:absolute;inset:auto 0 0}.lightbox{z-index:100;background:#0a0604f0;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:16px;display:flex;position:fixed;inset:0}.lightbox img{border-radius:8px;width:auto;max-height:74vh}.lightbox .caption{color:#f3ebe4;text-align:center;max-width:640px}.lightbox-bar{padding-bottom:env(safe-area-inset-bottom);justify-content:center;gap:8px;display:flex}.lightbox .btn{color:#fff;background:#ffffff1a;border-color:#ffffff2e;border-radius:999px;min-width:44px;min-height:44px}.lightbox-close{top:calc(12px + env(safe-area-inset-top));position:absolute;right:12px}.dropzone{border:2px dashed var(--border);border-radius:var(--radius);text-align:center;color:var(--muted);cursor:pointer;padding:20px;font-weight:500}.dropzone.over{border-color:var(--accent);background:var(--accent-soft)}.comment{border-bottom:1px solid var(--border);gap:12px;padding:12px 0;display:flex}.version-item{border:1px solid var(--border);background:var(--surface);border-radius:14px;align-items:flex-start;gap:12px;margin-bottom:8px;padding:12px;display:flex}.version-item.current{border-color:var(--accent)}.version-badge{font-family:var(--font-display);background:var(--surface-2);white-space:nowrap;border-radius:8px;padding:4px 10px;font-weight:800}.diff-add{background:color-mix(in srgb, var(--good) 15%, transparent);border-radius:6px;padding:2px 6px}.diff-del{background:color-mix(in srgb, var(--danger) 13%, transparent);border-radius:6px;padding:2px 6px;text-decoration:line-through}.diff-list{flex-direction:column;gap:4px;margin:0 0 12px;padding:0;list-style:none;display:flex}.timeline{margin:0;padding:0;list-style:none;position:relative}.timeline:before{content:"";background:var(--border);width:2px;position:absolute;top:0;bottom:0;left:18px}.timeline li{padding:0 0 18px 48px;position:relative}.timeline .icon{background:var(--bg);border-radius:50%;place-items:center;padding:3px;display:grid;position:absolute;top:0;left:0}.timeline li.month{font-family:var(--font-display);letter-spacing:-.02em;padding:4px 0 14px 48px;font-size:1.15rem;font-weight:800}.live{flex-direction:column;gap:14px;max-width:720px;margin:-16px auto 0;display:flex}.live-head{top:calc(55px + env(safe-area-inset-top));z-index:15;background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);align-items:center;gap:8px;margin:0 -16px;padding:10px 8px;display:flex;position:sticky}.live-title{font-family:var(--font-display);white-space:nowrap;text-overflow:ellipsis;font-size:1.15rem;font-weight:800;line-height:1.2;overflow:hidden}.live-clock{font-variant-numeric:tabular-nums;color:var(--text)}.live-people{flex-direction:column;gap:10px;display:flex}.live-person{align-items:center;gap:10px;display:flex}.bar{background:var(--surface-2);border-radius:3px;height:6px;margin-top:4px;overflow:hidden}.bar div{border-radius:3px;height:100%;transition:width .3s}.live-timers{flex-direction:column;gap:8px;display:flex}.timer{background:var(--surface);border:1px solid var(--border);font-variant-numeric:tabular-nums;border-radius:14px;align-items:center;gap:10px;padding:8px 8px 8px 14px;display:flex}.timer.ringing{background:var(--accent);color:var(--on-accent);border-color:var(--accent);animation:1s ease-in-out infinite alternate ring}.timer.ringing .btn{color:var(--on-accent)}@keyframes ring{to{filter:brightness(1.15)}}.live-prep{padding:0;overflow:hidden}.live-prep-head{width:100%;font:inherit;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:10px;padding:14px 16px;display:flex}.live-prep-head strong{flex:1}.live-prep .ingredient-list{padding:0 16px 10px}.live-prep .group-heading{padding:0 16px}.live-steps{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.live-step{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);align-items:flex-start;gap:12px;padding:14px;scroll-margin:140px;transition:opacity .2s;display:flex}.live-step p{margin:0;font-size:1.05rem;line-height:1.55}.live-step.current{border:2px solid var(--accent);box-shadow:var(--shadow)}.live-step.current p{font-size:1.2rem}.live-step.done{opacity:.55;align-items:center;padding:10px 14px}.live-step.done p{-webkit-line-clamp:1;-webkit-box-orient:vertical;font-size:.95rem;display:-webkit-box;overflow:hidden}.live-step.done .step-ing strong{color:inherit}.tick-btn{border:2px solid var(--border);background:var(--surface);width:40px;height:40px;color:var(--muted);font:inherit;cursor:pointer;border-radius:50%;flex:none;place-items:center;font-weight:700;display:grid}.live-step.current .tick-btn{border-color:var(--accent);color:var(--accent)}.live-step.done .tick-btn{background:var(--good);border-color:var(--good);color:#fff}.timer-btn{background:var(--accent-soft);color:var(--accent);border-color:#0000}.live-bar{z-index:40;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--border);gap:10px;display:flex;position:fixed;bottom:0;left:0;right:0}.live-bar .btn{min-height:54px;font-size:1.05rem}.live-bar .btn.icon{min-width:54px}@media (width>=721px){.live{margin-top:-28px}.live-head{margin:0;padding:12px 0;top:57px}.live-bar{border:1px solid var(--border);width:min(720px,100% - 32px);box-shadow:var(--shadow);border-radius:18px;padding:10px;bottom:16px;left:50%;transform:translate(-50%)}}.rank-row{color:var(--text);grid-template-columns:2.2em 52px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px;display:grid}.rank-row:hover{background:var(--surface-2);text-decoration:none}.rank-row .pos{font-family:var(--font-display);color:var(--muted);text-align:center;font-size:1.4rem;font-weight:800}.rank-row .thumb{background:var(--surface-2);border-radius:10px;place-items:center;width:52px;height:52px;font-size:1.5rem;display:grid;overflow:hidden}.rank-row .thumb img{object-fit:cover;width:100%;height:100%}.podium-1 .pos{color:#d4a017}.podium-2 .pos{color:#9ca3af}.podium-3 .pos{color:#b87333}.shop-item{border-bottom:1px dashed var(--border);align-items:center;gap:8px;padding:8px 0;display:flex}.shop-item input[type=checkbox]{width:22px;height:22px;min-height:0;accent-color:var(--good);flex:none}.shop-item.checked .grow{opacity:.45;text-decoration:line-through}.shop-link.has{color:var(--good)}.shop-link span{display:none}.shop-link{min-width:40px;padding:0}@media (width>=721px){.shop-link span{display:inline}.shop-link{padding:5px 12px}}.check-list{flex-direction:column;gap:4px;max-height:360px;display:flex;overflow:auto}.check-list label{cursor:pointer;align-items:center;gap:10px;min-height:40px;margin:0;font-weight:400;display:flex}.check-list input{width:20px;height:20px;min-height:0;accent-color:var(--accent)}@media print{.app-header,.tabbar,.no-print{display:none!important}body{background:#fff}.card{box-shadow:none;border:0}}.fab-wrap{z-index:50;left:50%;bottom:calc(env(safe-area-inset-bottom) + 22px);width:62px;height:62px;position:fixed;transform:translate(-50%)}.fab{z-index:2;cursor:pointer;background:var(--accent-grad);color:#fff;width:62px;height:62px;box-shadow:var(--shadow-lift), 0 0 0 5px var(--bg);border:0;border-radius:50%;place-items:center;transition:transform .25s cubic-bezier(.3,1.4,.5,1);display:grid;position:relative}.fab:active{transform:scale(.94)}.fab-wrap.open .fab{transform:rotate(45deg)}.fab-backdrop{z-index:45;-webkit-backdrop-filter:blur(5px);background:#0a0f1e61;animation:.18s ease-out fade;position:fixed;inset:0}.fab-action{z-index:1;cursor:pointer;color:var(--text);font:inherit;opacity:0;pointer-events:none;background:0 0;border:0;flex-direction:column;align-items:center;gap:6px;padding:0;transition:transform .3s cubic-bezier(.3,1.35,.5,1),opacity .2s;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-28px)translate(0)scale(.3)}.fab-wrap.open .fab-action{transform:translate(-50%, -28px) translate(var(--x), var(--y)) scale(1);opacity:1;pointer-events:auto;transition-delay:var(--delay)}.fab-action-icon{background:var(--surface);width:56px;height:56px;color:var(--accent);border-radius:50%;place-items:center;display:grid;box-shadow:0 8px 24px #0a0f1e2e}.fab-action:active .fab-action-icon{transform:scale(.94)}.fab-action-label{white-space:nowrap;background:var(--surface);border-radius:999px;padding:3px 10px;font-size:.78rem;font-weight:600;box-shadow:0 4px 12px #0a0f1e1f}@media (width>=721px){.fab-wrap{bottom:32px;left:auto;right:32px;transform:none}.fab{box-shadow:var(--shadow-lift)}}.activity-icon{width:32px;height:32px;color:var(--c);background:color-mix(in srgb, var(--c) 14%, var(--surface));border-radius:50%;flex:none;place-items:center;display:grid}.kind-meal{--c:#2f5bea}.kind-version{--c:#8b5cf6}.kind-cook{--c:#f97316}.kind-photo{--c:#ec4899}.kind-comment{--c:#0ea5a4}.kind-rating{--c:#eab308}.search-input{position:relative}.search-input svg{color:var(--muted);position:absolute;top:50%;left:14px;transform:translateY(-50%)}.search-input input{padding-left:42px}.pick-list{flex-direction:column;gap:6px;max-height:260px;display:flex;overflow:auto}.pick-list button{text-align:left;border:1px solid var(--border);background:var(--surface);font:inherit;color:var(--text);cursor:pointer;border-radius:14px;align-items:center;gap:8px;min-height:48px;padding:12px 14px;display:flex}.pick-list button.new{color:var(--accent);border-style:dashed;font-weight:600}.picked{background:var(--accent-soft);border-radius:14px;align-items:center;gap:10px;padding:12px 14px;display:flex}.fields-2{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;display:grid}.chip-picker button .dot{vertical-align:middle;width:8px;height:8px;margin-right:2px}.fab-wrap.stacked .fab-action{transform-origin:100%;flex-direction:row-reverse;gap:12px;transform:translate(calc(28px - 100%),-28px)scale(.3)}.fab-wrap.stacked.open .fab-action{transform:translate(calc(-100% + 28px), -28px) translate(var(--x), var(--y)) scale(1)}.text-btn{font:inherit;cursor:pointer;color:var(--muted);background:0 0;border:0;align-self:flex-start;padding:4px 0;font-size:.875rem;font-weight:500}.text-btn.danger{color:var(--danger)}.list-row{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:10px 0;display:flex}.list-row:last-child{border-bottom:0;padding-bottom:0}.recipe-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.version-select{align-self:flex-start;width:auto}.diff-card{border-top-left-radius:8px;border-top-right-radius:8px;margin:-2px 0 12px}.diff-card h3{margin-top:4px;font-size:1rem}.rank-score{color:var(--accent)}.feed-time-inline{color:var(--muted);margin-top:2px;font-size:.78rem;display:block}.feed-time{display:none}@media (width>=721px){.feed-time-inline{display:none}.feed-time{display:inline}}.meal-hero .cover{position:relative}.add-photo{background:color-mix(in srgb, var(--surface) 88%, transparent);color:var(--accent);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:.85rem;font-weight:600;display:inline-flex;position:absolute;bottom:12px;right:12px}.add-photo:hover{text-decoration:none}@media (width>=721px){.meal-hero .cover.no-photo{aspect-ratio:16/10}}.auth{min-height:100dvh;padding:calc(24px + env(safe-area-inset-top)) 16px calc(24px + env(safe-area-inset-bottom));background:radial-gradient(120% 60% at 50% 0%, var(--accent-soft), var(--bg) 70%);place-items:center;display:grid}.auth-card{background:var(--surface);border:1px solid var(--card-border);width:100%;max-width:400px;box-shadow:var(--shadow);border-radius:24px;padding:28px 22px}.auth-card h1{margin:18px 0;font-size:1.7rem}.auth-card h1+p{margin-top:-12px}.auth-card>p{margin:0 0 18px}.auth-brand{font-family:var(--font-display);letter-spacing:-.02em;align-items:center;gap:10px;font-size:1.1rem;font-weight:800;display:flex}.auth-brand img{width:36px;height:36px}.password-input{position:relative}.password-input input{padding-right:64px}.password-input .text-btn{color:var(--accent);position:absolute;top:50%;right:12px;transform:translateY(-50%)}.timeline-photo{aspect-ratio:4/3;background:var(--surface-2);border-radius:14px;width:100%;max-width:440px;margin:8px auto 2px;display:block;overflow:hidden}.timeline-photo img{object-fit:cover;object-position:center;width:100%;height:100%}.saved-links{flex-direction:column;gap:8px;display:flex}.saved-links .chip-picker button{align-items:center;gap:4px;display:inline-flex}.meal-hero .cover,.meal-card .cover,.podium-thumb,.rank-row .thumb,.gallery figure,.timeline-photo{position:relative}.meal-hero .cover img,.meal-card .cover img,.podium-thumb img,.rank-row .thumb img,.gallery figure img,.timeline-photo img{object-fit:cover;object-position:center;width:100%;height:100%;position:absolute;inset:0}
