:root,[data-theme=garde-manger],[data-theme-preview=garde-manger]{--bg:#f4ecdf;--surface:#fffaf1;--surface-2:#efe4d2;--ink:#2b2118;--muted:#7a6a58;--line:#e3d5c0;--accent:#c2552c;--accent-ink:#fff;--accent-soft:#f6dccd;--ok:#4f7d38;--warn:#c98316;--bad:#b8332a;--font-display:"Fraunces", Georgia, serif;--font-body:"Inter", system-ui, sans-serif;--display-weight:600;--display-track:-.02em;--radius:18px;--radius-sm:12px;--shadow:0 1px 2px #3c28140f, 0 8px 24px -12px #3c28142e;--shadow-lg:0 24px 60px -20px #3c281459;--texture:radial-gradient(circle at 20% 10%, #c2552c0f, transparent 40%), radial-gradient(circle at 90% 80%, #4f7d380f, transparent 45%);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=potager],[data-theme-preview=potager]{--bg:#eef2e6;--surface:#fbfdf7;--surface-2:#e2ead6;--ink:#1f2e1e;--muted:#5d6e58;--line:#d4dec4;--accent:#4f7d38;--accent-ink:#fff;--accent-soft:#dcebcf;--ok:#3f7a2e;--warn:#d99a1c;--bad:#c4472f;--font-display:"DM Serif Display", Georgia, serif;--font-body:"Manrope", system-ui, sans-serif;--display-weight:400;--display-track:-.01em;--radius:22px;--radius-sm:14px;--shadow:0 1px 2px #1e32140f, 0 10px 26px -14px #1e3c1438;--shadow-lg:0 26px 60px -22px #1e3c1459;--texture:radial-gradient(circle at 0% 0%, #c4472f12, transparent 35%), radial-gradient(circle at 100% 100%, #4f7d381a, transparent 45%);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=bistrot],[data-theme-preview=bistrot]{--bg:#111715;--surface:#18201e;--surface-2:#212b28;--ink:#efe6d2;--muted:#a49d8a;--line:#2c3834;--accent:#c9a43a;--accent-ink:#15110a;--accent-soft:#352f1c;--ok:#82b46b;--warn:#e3ab4c;--bad:#e0675a;--font-display:"Playfair Display", Georgia, serif;--font-body:"Inter", system-ui, sans-serif;--display-weight:700;--display-track:-.01em;--radius:10px;--radius-sm:8px;--shadow:0 1px 0 #ffffff08 inset, 0 12px 30px -14px #000000b3;--shadow-lg:0 30px 70px -20px #000c;--texture:linear-gradient(#c9a43a09 1px, transparent 1px), linear-gradient(90deg, #c9a43a09 1px, transparent 1px);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=nordique],[data-theme-preview=nordique]{--bg:#eef1f3;--surface:#fff;--surface-2:#e6ebef;--ink:#1b2430;--muted:#607084;--line:#d8dfe6;--accent:#2f6fdb;--accent-ink:#fff;--accent-soft:#dde8fb;--ok:#2e9b6a;--warn:#d68b19;--bad:#d24646;--font-display:"Space Grotesk", system-ui, sans-serif;--font-body:"Manrope", system-ui, sans-serif;--display-weight:700;--display-track:-.03em;--radius:12px;--radius-sm:8px;--shadow:0 1px 2px #141e320f, 0 6px 18px -10px #141e322e;--shadow-lg:0 24px 50px -20px #141e324d;--texture:linear-gradient(180deg, #2f6fdb0a, transparent 30%);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=provence],[data-theme-preview=provence]{--bg:#f6f1f8;--surface:#fffcff;--surface-2:#ede4f1;--ink:#2d2140;--muted:#74688a;--line:#e2d7ea;--accent:#7b5ea7;--accent-ink:#fff;--accent-soft:#e8def5;--ok:#5c8a4a;--warn:#d9962b;--bad:#b84a5a;--font-display:"Cormorant Garamond", Georgia, serif;--font-body:"Manrope", system-ui, sans-serif;--display-weight:700;--display-track:0;--radius:20px;--radius-sm:14px;--shadow:0 1px 2px #2d21400f, 0 10px 28px -14px #7b5ea747;--shadow-lg:0 26px 60px -22px #2d214059;--texture:radial-gradient(circle at 85% 5%, #e0a43a1f, transparent 35%), radial-gradient(circle at 5% 95%, #7b5ea71a, transparent 40%);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=minuit],[data-theme-preview=minuit]{--bg:#0b0f1d;--surface:#131a2e;--surface-2:#1b2340;--ink:#e7e9f4;--muted:#98a0bf;--line:#252f51;--accent:#f5b841;--accent-ink:#1a1406;--accent-soft:#3a3218;--ok:#5fd3a0;--warn:#f5b841;--bad:#ff6b81;--font-display:"Bricolage Grotesque", system-ui, sans-serif;--font-body:"Inter", system-ui, sans-serif;--display-weight:700;--display-track:-.03em;--radius:16px;--radius-sm:10px;--shadow:0 0 0 1px #ffffff05, 0 14px 34px -16px #000c;--shadow-lg:0 30px 80px -20px #000000e6, 0 0 60px -30px #f5b8414d;--texture:radial-gradient(circle at 80% -10%, #f5b8411a, transparent 40%), radial-gradient(circle at -10% 110%, #5fd3a014, transparent 40%);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=agrumes],[data-theme-preview=agrumes]{--bg:#fffaf2;--surface:#fff;--surface-2:#fff0dc;--ink:#2a1d10;--muted:#84705a;--line:#f2dfc5;--accent:#f0642a;--accent-ink:#fff;--accent-soft:#ffe2d1;--ok:#3f9b4a;--warn:#e9ad00;--bad:#d63c3c;--font-display:"Nunito", system-ui, sans-serif;--font-body:"Nunito", system-ui, sans-serif;--display-weight:800;--display-track:-.02em;--radius:24px;--radius-sm:16px;--shadow:0 2px 4px #f0642a0f, 0 12px 28px -14px #f0642a4d;--shadow-lg:0 28px 60px -22px #f0642a66;--texture:radial-gradient(circle at 100% 0%, #f2b70524, transparent 35%), radial-gradient(circle at 0% 100%, #f0642a1a, transparent 40%);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{min-height:100dvh;font:400 15px/1.55 var(--font-body);color:var(--ink);background:var(--texture), var(--bg);-webkit-font-smoothing:antialiased;background-size:auto,auto;background-attachment:fixed;margin:0;transition:background-color .4s,color .4s}[data-theme=bistrot] body,[data-theme=bistrot]{background-size:28px 28px,28px 28px,auto}body.noscroll{overflow:hidden}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}h1,h2,h3,h4,h5{margin:0;line-height:1.2}h3{font-size:1.08rem;font-weight:700}p{margin:0}ul,ol{margin:0;padding:0;list-style:none}code{background:var(--surface-2);border-radius:6px;padding:.1em .35em;font-family:ui-monospace,monospace}::selection{background:var(--accent);color:var(--accent-ink)}:focus-visible{outline:2.5px solid var(--accent);outline-offset:2px;border-radius:6px}.skip{z-index:100;background:var(--accent);color:var(--accent-ink);border-radius:10px;padding:8px 14px;position:absolute;top:8px;left:-999px}.skip:focus{left:8px}.display{font-family:var(--font-display);font-weight:var(--display-weight);letter-spacing:var(--display-track);font-size:clamp(1.5rem,2.6vw,2.1rem);line-height:1.1}.display.xl{font-size:clamp(1.9rem,4.2vw,3.1rem)}[data-theme=provence] .display{font-size:clamp(1.7rem,3vw,2.4rem)}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);align-items:center;gap:6px;margin-bottom:6px;font-size:.72rem;font-weight:700;display:flex}.lead{color:var(--muted);max-width:65ch;font-size:1.05rem}.muted{color:var(--muted)}.small{font-size:.85rem}.block{display:block}.cap{text-transform:capitalize}.center{text-align:center;justify-content:center}.grow{flex:1;min-width:0}.warn-text{color:var(--warn)}.error{color:var(--bad);align-items:center;gap:8px;font-weight:600;display:flex}.link{color:var(--accent);align-items:center;gap:4px;font-weight:600;display:inline-flex}.link:hover{text-underline-offset:3px;text-decoration:underline}.rot90{transform:rotate(90deg)}.stack{flex-direction:column;gap:16px;display:flex}.stack-lg{flex-direction:column;gap:28px;display:flex}.stack-sm{flex-direction:column;gap:10px;display:flex}.stack-xs{flex-direction:column;gap:6px;display:flex}.row{align-items:center;gap:10px;display:flex}.row.wrap{flex-wrap:wrap}.row.gap{gap:18px}.row.end{justify-content:flex-end}.grid-2{grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:20px;display:grid}.align-start{align-items:start}.page-pad{width:100%;max-width:1320px;margin:0 auto;padding:clamp(14px,2.6vw,34px)}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes pop{0%{opacity:0;transform:scale(.92)}60%{opacity:1;transform:scale(1.02)}to{transform:scale(1)}}@keyframes sheet-up{0%{opacity:.4;transform:translateY(40px)}to{opacity:1;transform:none}}@keyframes sheet-left{0%{opacity:.4;transform:translate(40px)}to{opacity:1;transform:none}}@keyframes shimmer{to{background-position:-200% 0}}@keyframes laser{0%,to{top:12%}50%{top:84%}}@keyframes from-right{0%{opacity:0;transform:translate(48px)}to{opacity:1;transform:none}}@keyframes from-left{0%{opacity:0;transform:translate(-48px)}to{opacity:1;transform:none}}@keyframes ring-draw{0%{stroke-dasharray:0 1000}}@keyframes float-in{0%{opacity:0;transform:translateY(18px)rotate(-8deg)scale(.8)}to{opacity:1;transform:none}}@keyframes pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 50%, transparent)}50%{box-shadow:0 0 0 10px #0000}}@keyframes strike{0%{width:0}to{width:100%}}.content>*{animation:.42s cubic-bezier(.2,.8,.2,1) both rise}.fade-in{animation:.3s both fade}.kpi,.rcard,.mini-card,.stock-row,.cat-tile,.place,.more-tile,.step-list li,.suggest-list li{animation:.5s cubic-bezier(.2,.8,.2,1) both rise;animation-delay:calc(var(--i,0) * 35ms)}::view-transition-old(root){animation:.18s reverse both fade}::view-transition-new(root){animation:.32s cubic-bezier(.2,.8,.2,1) both rise}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-delay:0s!important}}.btn{background:var(--accent);min-height:42px;color:var(--accent-ink);white-space:nowrap;box-shadow:0 6px 18px -8px color-mix(in srgb, var(--accent) 70%, transparent);border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-weight:650;transition:transform .15s,box-shadow .2s,background-color .2s,opacity .2s;display:inline-flex}.btn:hover{box-shadow:0 10px 22px -10px color-mix(in srgb, var(--accent) 80%, transparent);transform:translateY(-1px)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn.ghost{color:var(--ink);border-color:var(--line);box-shadow:none;background:0 0}.btn.ghost:hover{background:var(--surface-2)}.btn.ghost.active{border-color:var(--accent);color:var(--accent)}.btn.danger{background:var(--bad);color:#fff}.btn.ghost.danger{color:var(--bad);border-color:color-mix(in srgb, var(--bad) 35%, transparent);background:0 0}.btn.sm{gap:6px;min-height:34px;padding:0 12px;font-size:.86rem}.btn.lg{min-height:50px;padding:0 24px;font-size:1.02rem}[data-theme=nordique] .btn,[data-theme=bistrot] .btn{border-radius:var(--radius-sm)}.icon-btn{width:40px;height:40px;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:50%;flex-shrink:0;place-items:center;transition:background-color .2s,color .2s,transform .15s;display:inline-grid}.icon-btn:hover{background:var(--surface-2)}.icon-btn:active{transform:scale(.9)}.icon-btn:disabled{opacity:.35}.icon-btn.sm{width:32px;height:32px}.icon-btn.lg{border-color:var(--line);background:var(--surface);width:48px;height:48px}.icon-btn.on{color:var(--accent);background:var(--accent-soft)}.icon-btn.on.fav{color:#e0405a;background:#e0405a24}.icon-btn.on.fav .ic path{fill:currentColor}.icon-btn.on.bad{color:var(--bad);background:color-mix(in srgb, var(--bad) 14%, transparent)}input:not([type=checkbox]):not([type=file]),select,textarea{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface);outline:none;width:100%;min-height:44px;padding:10px 14px;transition:border-color .2s,box-shadow .2s}textarea{resize:vertical;line-height:1.5}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 18%, transparent)}select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);background-position:calc(100% - 18px),calc(100% - 13px);background-repeat:no-repeat;background-size:5px 5px;padding-right:34px}.w-sm{flex:none;width:84px!important}.w-qty{flex:none;width:96px!important}.field{flex-direction:column;gap:6px;display:flex}.field>span{color:var(--muted);font-size:.8rem;font-weight:650}.form-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;display:grid}.form-grid .span-2{grid-column:1/-1}.otp{letter-spacing:.4em;text-align:center;font-size:1.6rem;font-weight:700}.search{border:1px solid var(--line);background:var(--surface);min-height:48px;box-shadow:var(--shadow);border-radius:999px;align-items:center;gap:10px;padding:0 8px 0 16px;transition:border-color .2s,box-shadow .2s;display:flex}.search:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 16%, transparent), var(--shadow)}.search input{background:0 0;min-height:44px;padding:0;box-shadow:none!important;border:0!important}.search .ic{color:var(--muted);flex-shrink:0}.search.lg{min-height:54px}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.toolbar select{width:auto}.chips{flex-wrap:wrap;gap:8px;display:flex}.chips.scroll-x,.tabs.scroll-x{scrollbar-width:none;flex-wrap:nowrap;margin:0 -4px;padding-bottom:2px;padding-left:4px;overflow-x:auto}.scroll-x::-webkit-scrollbar{display:none}.chip{border:1px solid var(--line);background:var(--surface);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;min-height:34px;padding:0 14px;font-size:.87rem;font-weight:550;transition:all .18s;display:inline-flex}.chip:hover{border-color:var(--accent)}.chip.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);animation:.25s pop}.chip.ghost{background:0 0;border-style:dashed}.chip.sm{min-height:28px;padding:0 10px;font-size:.8rem}.chip.lg{min-height:42px;padding:0 18px;font-size:.95rem}.chip-select{font-size:.8rem;border-style:dashed!important;border-radius:999px!important;width:auto!important;min-height:28px!important;padding:0 28px 0 10px!important}.tags{flex-wrap:wrap;gap:6px;display:flex}.tag{background:var(--surface-2);color:var(--ink);border:0;border-radius:999px;align-items:center;gap:4px;padding:3px 10px;font-size:.78rem;font-weight:600;display:inline-flex}.tags.sm .tag{padding:2px 8px;font-size:.72rem}.tag.ok{background:color-mix(in srgb, var(--ok) 16%, transparent);color:var(--ok)}.tag.leaf{background:color-mix(in srgb, var(--ok) 12%, transparent)}.tag.missing{background:color-mix(in srgb, var(--bad) 12%, transparent);color:var(--bad)}.tag.prepared{background:color-mix(in srgb, var(--warn) 16%, transparent)}.tag.removable{cursor:pointer}.tag.removable:hover{background:color-mix(in srgb, var(--bad) 14%, transparent)}.badge{background:var(--accent-soft);color:var(--accent);white-space:nowrap;border-radius:999px;align-items:center;padding:2px 9px;font-size:.72rem;font-weight:700;display:inline-flex}.badge.soft{background:var(--surface-2);color:var(--muted)}.badge.ok{background:color-mix(in srgb, var(--ok) 16%, transparent);color:var(--ok)}.badge.bad{background:color-mix(in srgb, var(--bad) 14%, transparent);color:var(--bad)}.seg{background:var(--surface-2);border:1px solid var(--line);border-radius:999px;gap:2px;width:-moz-fit-content;width:fit-content;max-width:100%;padding:4px;display:inline-flex}.seg button{color:var(--muted);background:0 0;border:0;border-radius:999px;align-items:center;gap:6px;padding:8px 16px;font-weight:650;transition:all .2s;display:inline-flex}.seg button.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.tabs{border-bottom:1px solid var(--line);gap:4px;display:flex}.tab-btn{color:var(--muted);white-space:nowrap;background:0 0;border:0;align-items:center;gap:6px;padding:10px 14px;font-weight:650;display:inline-flex;position:relative}.tab-btn:after{content:"";background:var(--accent);border-radius:2px;height:2.5px;transition:transform .25s cubic-bezier(.2,.8,.2,1);position:absolute;bottom:-1px;left:10px;right:10px;transform:scaleX(0)}.tab-btn.on{color:var(--ink)}.tab-btn.on:after{transform:scaleX(1)}.count{background:var(--surface-2);border-radius:999px;padding:1px 7px;font-size:.72rem}.tab-btn.on .count{background:var(--accent-soft);color:var(--accent)}.switch{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;font-size:.9rem;display:inline-flex}.switch input{opacity:0;width:1px;height:1px;position:absolute}.switch>span{background:var(--line);border-radius:999px;flex-shrink:0;width:40px;height:24px;transition:background .2s;position:relative}.switch>span:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .25s cubic-bezier(.3,1.4,.5,1);position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}.switch input:checked+span{background:var(--accent)}.switch input:checked+span:after{transform:translate(16px)}.switch input:focus-visible+span{outline:2.5px solid var(--accent);outline-offset:2px}.switch.sm{gap:6px;font-size:.8rem}.switch.sm>span{width:32px;height:20px}.switch.sm>span:after{width:14px;height:14px}.switch.sm input:checked+span:after{transform:translate(12px)}.check{cursor:pointer;align-items:center;gap:10px;display:flex}.check input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent);flex-shrink:0}.stepper{border:1px solid var(--line);background:var(--surface);border-radius:999px;align-items:center;gap:4px;padding:3px;display:flex}.stepper input{text-align:center;min-height:36px;padding:0;font-weight:700;box-shadow:none!important;border:0!important}.stepper.sm{gap:6px;font-size:.85rem;font-weight:650}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:clamp(16px,2vw,22px)}.card.soft{background:var(--surface-2);box-shadow:none}.card-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-title{font-family:var(--font-display);font-weight:var(--display-weight);align-items:center;gap:10px;font-size:1.25rem;display:flex}.section-title small{font-family:var(--font-body);color:var(--muted);background:var(--surface-2);border-radius:999px;padding:2px 8px;font-size:.75rem;font-weight:700}.list{flex-direction:column;display:flex}.list-row{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:10px 2px;display:flex}.list-row:last-child{border-bottom:0}.list-row.wrap{flex-wrap:wrap}.link-row{border-radius:var(--radius-sm);padding:10px 8px;transition:background .2s}.link-row:hover{background:var(--surface-2)}.facts{flex-direction:column;gap:4px;font-size:.92rem;display:flex}.facts strong{font-family:var(--font-display);font-size:1.15rem}.skeleton{border-radius:var(--radius);background:linear-gradient(90deg, var(--surface-2) 25%, var(--surface) 50%, var(--surface-2) 75%);background-size:200% 100%;animation:1.4s linear infinite shimmer}.empty{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:10px;padding:48px 20px;display:flex}.empty h3{color:var(--ink);font-family:var(--font-display);font-weight:var(--display-weight);font-size:1.3rem}.empty-ic{background:var(--accent-soft);width:64px;height:64px;color:var(--accent);border-radius:50%;place-items:center;animation:.5s both pop;display:grid}.empty-body{flex-direction:column;align-items:center;gap:12px;display:flex}.alert{border-radius:var(--radius-sm);background:color-mix(in srgb, var(--warn) 14%, var(--surface));border:1px solid color-mix(in srgb, var(--warn) 35%, transparent);gap:12px;padding:14px 16px;display:flex}.alert .ic{color:var(--warn);flex-shrink:0;margin-top:2px}.hero-empty{text-align:center;flex-direction:column;align-items:center;gap:14px;padding:48px 24px;display:flex}.progress{background:var(--surface-2);border-radius:999px;height:6px;overflow:hidden}.progress i{border-radius:inherit;background:linear-gradient(90deg, var(--warn), var(--accent));transform-origin:0;height:100%;transition:width .8s cubic-bezier(.2,.8,.2,1);animation:.9s cubic-bezier(.2,.8,.2,1) both grow;display:block}.progress.full i{background:var(--ok)}.progress.thin{height:4px}@keyframes grow{0%{transform:scaleX(0)}}.dots{vertical-align:middle;gap:3px;margin:0 4px;display:inline-flex}.dots i{background:var(--line);border-radius:50%;width:6px;height:6px}.dots i.on{background:var(--accent)}.score-pill{border-radius:999px;place-items:center;min-width:30px;padding:1px 7px;font-size:.75rem;font-weight:800;display:inline-grid}.score-pill.ok{background:color-mix(in srgb, var(--ok) 18%, transparent);color:var(--ok)}.score-pill.warn{background:color-mix(in srgb, var(--warn) 20%, transparent);color:var(--warn)}.score-pill.bad{background:color-mix(in srgb, var(--bad) 16%, transparent);color:var(--bad)}.ring{flex-direction:column;flex-shrink:0;align-items:center;gap:6px;display:inline-flex;position:relative}.ring svg{display:block}.ring-bg{fill:none;stroke:var(--surface-2);stroke-width:8px}.ring-fg{fill:none;stroke-width:8px;stroke-linecap:round;transition:stroke-dashoffset .9s cubic-bezier(.2,.8,.2,1);animation:1.1s cubic-bezier(.2,.8,.2,1) both ring-draw}.ring-ok .ring-fg{stroke:var(--ok)}.ring-warn .ring-fg{stroke:var(--warn)}.ring-bad .ring-fg{stroke:var(--bad)}.ring-val{aspect-ratio:1;text-align:center;place-content:center;display:grid;position:absolute;top:0;left:0;right:0}.ring-val strong{font-family:var(--font-display);font-size:1.35em;line-height:1}.ring-label{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:.72rem;font-weight:700}.app{grid-template-columns:1fr;min-height:100dvh;display:grid}.sidebar{display:none}.main-col{flex-direction:column;min-width:0;display:flex}.topbar{z-index:20;padding:calc(env(safe-area-inset-top) + 10px) clamp(14px, 2.6vw, 34px) 10px;background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(14px);border-bottom:1px solid color-mix(in srgb, var(--line) 60%, transparent);justify-content:space-between;align-items:center;gap:12px;display:flex;position:sticky;top:0}.topbar-title{font-family:var(--font-display);font-weight:var(--display-weight);letter-spacing:var(--display-track);font-size:1.35rem}.loc-switch{border:1px solid var(--line);background:var(--surface);border-radius:999px;align-items:center;gap:6px;max-width:60%;padding-left:12px;display:inline-flex}.loc-switch select{background-color:#0000;min-height:38px;padding-left:0;font-weight:650;box-shadow:none!important;border:0!important}.content{padding-bottom:calc(96px + env(safe-area-inset-bottom));flex:1}.brand{align-items:center;gap:10px;display:flex}.brand-mark{background:var(--accent);width:34px;height:34px;box-shadow:0 6px 16px -6px var(--accent);border-radius:10px;flex-shrink:0;position:relative}.brand-mark:before{content:"";background:var(--surface);border-radius:4px;position:absolute;inset:7px 8px}.brand-mark:after{content:"";background:var(--accent);width:2px;margin-left:-1px;position:absolute;top:7px;bottom:7px;left:50%}.brand-name{font-family:var(--font-display);font-weight:var(--display-weight);letter-spacing:var(--display-track);font-size:1.4rem}.tabbar{left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:30;background:color-mix(in srgb, var(--surface) 88%, transparent);-webkit-backdrop-filter:blur(16px);border:1px solid var(--line);box-shadow:var(--shadow-lg);border-radius:22px;grid-template-columns:repeat(5,1fr);align-items:center;padding:6px;display:grid;position:fixed}.tab{color:var(--muted);background:0 0;border:0;border-radius:14px;flex-direction:column;align-items:center;gap:2px;padding:6px 0;font-size:.68rem;font-weight:650;transition:color .2s;display:flex}.tab.on{color:var(--accent)}.tab-fab{background:var(--accent);width:58px;height:58px;color:var(--accent-ink);box-shadow:0 10px 24px -8px var(--accent);border-radius:20px;justify-self:center;place-items:center;margin-top:-26px;transition:transform .2s;display:grid}.tab-fab:active{transform:scale(.92)}.more-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.more-tile{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface);flex-direction:column;align-items:center;gap:8px;padding:18px 8px;font-size:.88rem;font-weight:650;display:flex}.more-tile:hover{border-color:var(--accent);color:var(--accent)}@media (min-width:760px){.app{grid-template-columns:84px 1fr}.tabbar{display:none}.content{padding-bottom:40px}.sidebar{border-right:1px solid var(--line);background:color-mix(in srgb, var(--surface) 70%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);flex-direction:column;gap:18px;height:100dvh;padding:18px 12px;display:flex;position:sticky;top:0}.sidebar .brand{justify-content:center}.sidebar .brand-name,.sidebar .nav-link span,.sidebar .who{display:none}.sidebar nav{flex-direction:column;gap:4px;display:flex;overflow-y:auto}.nav-link{height:46px;color:var(--muted);border-radius:14px;justify-content:center;align-items:center;gap:12px;font-weight:650;transition:background .2s,color .2s;display:flex;position:relative}.nav-link:hover{background:var(--surface-2);color:var(--ink)}.nav-link.on{background:var(--accent-soft);color:var(--accent)}.nav-link.on:before{content:"";background:var(--accent);border-radius:0 3px 3px 0;width:3px;position:absolute;top:10px;bottom:10px;left:-12px}.sidebar-foot{justify-content:center;margin-top:auto;display:flex}}@media (min-width:1100px){.app{grid-template-columns:248px 1fr}.sidebar{padding:22px 16px}.sidebar .brand{justify-content:flex-start;padding:0 8px}.sidebar .brand-name,.sidebar .nav-link span{display:inline}.nav-link{justify-content:flex-start;padding:0 14px}.sidebar-foot{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;padding:10px 8px 0}.sidebar .who{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;display:block;overflow:hidden}}.sheet-backdrop{z-index:60;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0a080673;justify-content:center;align-items:flex-end;animation:.2s both fade;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;max-height:92dvh;color:var(--ink);border-radius:calc(var(--radius) + 6px) calc(var(--radius) + 6px) 0 0;box-shadow:var(--shadow-lg);padding-bottom:env(safe-area-inset-bottom);flex-direction:column;animation:.32s cubic-bezier(.2,.9,.25,1) both sheet-up;display:flex}.sheet-head{justify-content:space-between;align-items:center;gap:12px;padding:18px 20px 10px;display:flex}.sheet-head h2{font-family:var(--font-display);font-weight:var(--display-weight);font-size:1.3rem}.sheet-head:before{content:"";background:var(--line);border-radius:4px;width:40px;height:4px;margin-top:-10px;margin-left:-20px;position:absolute;left:50%}.sheet-body{overscroll-behavior:contain;padding:6px 20px 20px;overflow-y:auto}.sheet-foot{border-top:1px solid var(--line);justify-content:flex-end;gap:10px;padding:12px 20px 16px;display:flex}@media (min-width:760px){.sheet-backdrop{justify-content:flex-end;align-items:stretch}.sheet{border-radius:var(--radius) 0 0 var(--radius);width:min(520px,100vw);height:100dvh;max-height:none;animation-name:sheet-left}.sheet.wide{width:min(760px,100vw)}.sheet-head:before{display:none}}.toasts{z-index:80;left:50%;bottom:calc(96px + env(safe-area-inset-bottom));pointer-events:none;flex-direction:column;gap:8px;width:min(92vw,460px);display:flex;position:fixed;transform:translate(-50%)}@media (min-width:760px){.toasts{bottom:24px}}.toast{pointer-events:auto;background:var(--ink);color:var(--bg);box-shadow:var(--shadow-lg);border-radius:16px;align-items:center;gap:10px;padding:12px 14px 12px 16px;font-size:.92rem;font-weight:550;animation:.3s both pop;display:flex}.toast span{flex:1}.toast-err{background:var(--bad);color:#fff}.toast button{background:color-mix(in srgb, currentColor 18%, transparent);color:inherit;border:0;border-radius:999px;padding:6px 12px;font-weight:700}.splash{place-items:center;min-height:100dvh;display:grid}.splash-mark{background:var(--accent);border-radius:16px;width:56px;height:56px;animation:1.4s infinite pulse}.auth{grid-template-columns:1fr;min-height:100dvh;display:grid}.auth-card{flex-direction:column;gap:22px;width:min(440px,100%);margin:auto;padding:32px 24px;animation:.5s both rise;display:flex}.auth-art{display:none}@media (min-width:900px){.auth{grid-template-columns:1.1fr 1fr}.auth-art{background:linear-gradient(160deg, var(--accent), color-mix(in srgb, var(--accent) 55%, #000));color:var(--accent-ink);flex-direction:column;justify-content:center;gap:36px;padding:6vw;display:flex;position:relative;overflow:hidden}.auth-shelves{background:#ffffff14;border:1px solid #ffffff26;border-radius:24px;grid-template-columns:repeat(4,1fr);gap:18px;padding:24px;display:grid}.auth-shelves span{aspect-ratio:1;animation:.6s cubic-bezier(.2,.8,.2,1) both float-in;animation-delay:calc(var(--i) * 60ms);background:#ffffff1a;border-radius:18px;place-items:center;font-size:clamp(2rem,3.4vw,3.2rem);display:grid}.auth-quote{font-family:var(--font-display);max-width:26ch;font-size:clamp(1.3rem,2vw,1.8rem);line-height:1.3}}.hello{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:18px;display:flex}.quick{flex-wrap:wrap;gap:10px;display:flex}.kpis{grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:14px;display:grid}@media (max-width:640px){.kpis{grid-template-columns:1fr 1fr;gap:10px}.kpi{padding:14px}.kpi strong{font-size:1.7rem}.kpi.ring-kpi{flex-direction:column;align-items:flex-start;gap:6px}}.kpi{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);flex-direction:column;gap:4px;padding:18px 20px;transition:transform .2s,box-shadow .2s;display:flex}.kpi:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.kpi .ic{color:var(--accent)}.kpi strong{font-family:var(--font-display);font-size:2.2rem;line-height:1;font-weight:var(--display-weight)}.kpi span{color:var(--muted);font-size:.88rem;font-weight:550}.kpi.warn .ic{color:var(--warn)}.kpi.ok .ic{color:var(--ok)}.kpi.ring-kpi{flex-direction:row;align-items:center;gap:14px}.mini-cards{grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:10px;display:grid}.mini-card{border-radius:var(--radius-sm);align-items:center;gap:12px;padding:8px;transition:background .2s;display:flex}.mini-card:hover{background:var(--surface-2)}.mini-card .cover{aspect-ratio:auto;border-radius:12px;flex-shrink:0;width:64px;height:64px}.mini-card .cover-title{display:none}.mini-card .cover-emoji{font-size:1.8rem}.mini-card strong{font-size:.95rem;line-height:1.25;display:block}.mini-card small{color:var(--muted);font-size:.8rem;display:block}.rescue{align-items:center;gap:4px;font-weight:650;color:var(--ok)!important;display:flex!important}.stock-list{flex-direction:column;gap:8px;display:flex}.stock-row{border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--line);grid-template-columns:46px 1fr auto auto;align-items:center;gap:12px;padding:10px 12px;transition:border-color .2s,transform .2s;display:grid}.stock-row:hover{border-color:color-mix(in srgb, var(--accent) 40%, var(--line))}.thumb{background:var(--surface-2);border-radius:12px;flex-shrink:0;place-items:center;width:46px;height:46px;font-size:1.4rem;display:grid;overflow:hidden}.thumb img{object-fit:contain;background:#fff;width:100%;height:100%}.thumb.lg{border-radius:16px;width:72px;height:72px;font-size:2.2rem}.stock-main{text-align:left;background:0 0;border:0;min-width:0;padding:0}.stock-main strong{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.stock-main small{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 6px;font-size:.78rem;display:flex}.crumbs{flex-wrap:wrap;align-items:center;gap:2px;display:inline-flex}.crumbs .ic{opacity:.6}.qty{background:var(--surface-2);border-radius:999px;align-items:center;gap:2px;padding:2px;display:flex}.qty-val{text-align:center;font-variant-numeric:tabular-nums;min-width:42px;font-weight:800}.qty-val small{color:var(--muted);font-size:.72rem;font-weight:600}.exp{white-space:nowrap;border-radius:999px;padding:3px 9px;font-size:.74rem;font-weight:750}.exp-bad{background:var(--bad);color:#fff}.exp-warn{background:color-mix(in srgb, var(--warn) 22%, transparent);color:var(--warn)}.exp-soon{background:color-mix(in srgb, var(--warn) 10%, transparent);color:var(--muted)}.exp-ok{background:var(--surface-2);color:var(--muted)}@media (max-width:560px){.stock-row{grid-template-columns:40px 1fr auto;grid-template-areas:"t m q""t e q";row-gap:2px}.stock-row .thumb{grid-area:t;width:40px;height:40px}.stock-row .stock-main{grid-area:m}.stock-row .exp{grid-area:e;justify-self:start}.stock-row .qty{grid-area:q}}.confirm-product{border-radius:var(--radius);background:var(--surface-2);align-items:center;gap:16px;padding:14px;display:flex}.confirm-product h3{font-family:var(--font-display);font-weight:var(--display-weight);font-size:1.35rem}.siblings summary{cursor:pointer;padding:6px 0;font-size:.9rem;font-weight:650}.siblings .chips{max-height:160px;margin-top:8px;overflow-y:auto}.picker{flex-direction:column;gap:16px;display:flex}.pick-list{flex-direction:column;gap:4px;display:flex}.pick-row{border-radius:var(--radius-sm);text-align:left;background:0 0;border:1px solid #0000;align-items:center;gap:12px;width:100%;padding:8px 10px;transition:background .15s,border-color .15s;display:flex}.pick-row:hover{background:var(--surface-2);border-color:var(--line)}.pick-row>.ic{color:var(--accent);flex-shrink:0}.pick-ic{background:var(--surface-2);border-radius:10px;flex-shrink:0;place-items:center;width:40px;height:40px;font-size:1.3rem;display:grid;overflow:hidden}.pick-ic img{object-fit:contain;background:#fff;width:100%;height:100%}.pick-ic .cover{aspect-ratio:auto;border-radius:10px;width:40px;height:40px}.pick-ic .cover-title{display:none}.pick-ic .cover-emoji{font-size:1.2rem}.pick-main{flex-direction:column;flex:1;min-width:0;display:flex}.pick-main small{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px;font-size:.78rem;display:flex}.cat-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,150px),1fr));gap:10px;display:grid}.cat-grid.small{grid-template-columns:repeat(auto-fill,minmax(min(100%,130px),1fr));gap:8px}.cat-tile{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface);text-align:left;flex-direction:column;align-items:flex-start;gap:8px;padding:14px;font-size:.9rem;font-weight:650;line-height:1.25;transition:transform .18s,border-color .18s,box-shadow .18s;display:flex}.cat-tile span{font-size:1.6rem;line-height:1}.cat-grid.small .cat-tile{padding:10px 12px;font-size:.84rem}.cat-grid.small .cat-tile span{font-size:1.2rem}.cat-tile:hover{border-color:var(--accent);box-shadow:var(--shadow);transform:translateY(-2px)}.crumb-nav{flex-wrap:wrap;align-items:center;gap:12px;font-weight:650;display:flex}.scan-page{gap:16px;max-width:760px;display:grid}.scanner{border-radius:calc(var(--radius) + 4px);aspect-ratio:4/3;max-height:62dvh;box-shadow:var(--shadow-lg);background:#000;transition:box-shadow .2s;position:relative;overflow:hidden}.scanner video{object-fit:cover;width:100%;height:100%}.scanner.paused video{filter:blur(2px)brightness(.6)}.scanner.hit{box-shadow:0 0 0 4px var(--ok), var(--shadow-lg)}.scan-frame{pointer-events:none;position:absolute;inset:18% 12%}.scan-frame i{filter:drop-shadow(0 0 6px #00000080);border:4px solid #fff;width:34px;height:34px;position:absolute}.scan-frame i:first-child{border-bottom:0;border-right:0;border-radius:14px 0 0;top:0;left:0}.scan-frame i:nth-child(2){border-bottom:0;border-left:0;border-radius:0 14px 0 0;top:0;right:0}.scan-frame i:nth-child(3){border-top:0;border-right:0;border-radius:0 0 0 14px;bottom:0;left:0}.scan-frame i:nth-child(4){border-top:0;border-left:0;border-radius:0 0 14px;bottom:0;right:0}.laser{background:var(--accent);height:2px;box-shadow:0 0 14px 2px var(--accent);animation:2.2s ease-in-out infinite laser;position:absolute;left:6%;right:6%}.scanner.paused .laser{opacity:.3;animation-play-state:paused}.scanner-error{color:#fff;text-align:center;place-content:center;justify-items:center;gap:12px;padding:24px;display:grid;position:absolute;inset:0}.torch{color:#fff;background:#00000073;position:absolute;top:12px;right:12px}.scan-log{flex-direction:column;gap:6px;display:flex}.scan-log li{background:var(--surface);border:1px solid var(--line);border-radius:12px;align-items:center;gap:8px;padding:8px 12px;font-size:.88rem;animation:.3s both rise;display:flex}.log-ok .ic{color:var(--ok)}.log-err .ic{color:var(--bad)}.log-info .ic{color:var(--warn)}.card-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:18px;display:grid}.cover{aspect-ratio:4/3;background:var(--surface-2);position:relative;overflow:hidden}.cover img{object-fit:cover;width:100%;height:100%;transition:transform .6s cubic-bezier(.2,.8,.2,1)}.cover-credit{color:#fff;background:#00000073;border-radius:6px;padding:2px 6px;font-size:.62rem;position:absolute;bottom:6px;right:6px}.cover-gen{color:#fff;background:radial-gradient(circle at 80% 20%, hsl(calc(var(--h) + 40) 70% 62% / .9), transparent 55%), linear-gradient(135deg, hsl(var(--h) 52% 38%), hsl(calc(var(--h) + 30) 48% 26%));flex-direction:column;justify-content:space-between;padding:14px 16px;display:flex}.cover-emoji{filter:drop-shadow(0 6px 12px #0000004d);font-size:2.6rem;line-height:1}.cover-title{font-family:var(--font-display);font-weight:var(--display-weight);text-shadow:0 2px 10px #0000004d;-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:1.15rem;line-height:1.15;display:-webkit-box;overflow:hidden}.rcard{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);flex-direction:column;transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s;display:flex;position:relative;overflow:hidden}.rcard:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}.rcard:hover .cover img{transform:scale(1.05)}.rcard-link{flex-direction:column;flex:1;display:flex}.rcard .cover-gen .cover-title{display:none}.rcard-body{flex-direction:column;gap:8px;padding:14px 16px 10px;display:flex}.rcard h3{font-family:var(--font-display);font-weight:var(--display-weight);letter-spacing:var(--display-track);font-size:1.15rem}.rcard .eyebrow{margin:0}.rcard-meta{color:var(--muted);align-items:center;gap:6px;font-size:.82rem;display:flex}.rcard-status{color:var(--muted);align-items:center;gap:6px;display:flex}.rcard-status .ic{color:var(--ok)}.rcard-actions{justify-content:flex-end;gap:2px;padding:0 8px 8px;display:flex}@media (max-width:640px){.card-grid{gap:10px}.rcard-link{flex-direction:row}.rcard .cover{aspect-ratio:auto;flex-shrink:0;width:108px;min-height:100%}.rcard .cover-emoji{font-size:2rem}.rcard-body{gap:4px;min-width:0;padding:10px 12px 4px}.rcard h3{font-size:1rem}.rcard .eyebrow{font-size:.64rem}.rcard-actions{padding:0 6px 6px 114px}.rcard-actions .icon-btn{width:34px;height:34px}}.first-cap:first-letter{text-transform:uppercase}.hints .chip{font-size:.8rem}.folders{flex-wrap:wrap;gap:10px;display:flex}.folder{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface);align-items:center;gap:8px;padding:10px 14px;font-weight:600;transition:all .2s;display:flex}.folder small{color:var(--muted)}.folder.on{border-color:var(--accent);background:var(--accent-soft)}.folder.new{padding:4px 4px 4px 12px}.folder.new input{min-width:220px;min-height:36px;padding:0;box-shadow:none!important;border:0!important}.recipe{flex-direction:column;gap:24px;padding-bottom:40px;display:flex}.recipe-hero{grid-template-columns:1fr;display:grid}.hero-cover{aspect-ratio:16/9;max-height:52vh}.hero-cover.cover-gen .cover-emoji{font-size:4rem}.hero-cover.cover-gen .cover-title{font-size:1.6rem}.recipe-hero-text{flex-direction:column;gap:12px;padding:clamp(16px,3vw,34px);display:flex}@media (min-width:1000px){.recipe-hero{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:stretch;gap:28px;padding:clamp(14px,2.6vw,34px) clamp(14px,2.6vw,34px) 0}.hero-cover{border-radius:calc(var(--radius) + 6px);aspect-ratio:auto;height:100%;min-height:360px;max-height:none;box-shadow:var(--shadow-lg)}.recipe-hero-text{justify-content:center;padding:12px 0}}.meta-row{color:var(--muted);flex-wrap:wrap;gap:8px 18px;font-size:.9rem;font-weight:550;display:flex}.meta-row span{align-items:center;gap:6px;display:inline-flex}.actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:6px;display:flex}.recipe>.alert{margin:0 clamp(14px,2.6vw,34px)}.recipe-cols{grid-template-columns:1fr;align-items:start;gap:20px;padding:0 clamp(14px,2.6vw,34px);display:grid}@media (min-width:900px){.recipe-cols{grid-template-columns:minmax(300px,.85fr) minmax(0,1.15fr)}.ingredients{position:sticky;top:76px}}.ingredients,.steps{flex-direction:column;gap:14px;display:flex}.completeness{border-radius:var(--radius-sm);background:var(--surface-2);flex-wrap:wrap;align-items:center;gap:12px;padding:10px 12px;display:flex}.completeness p{flex:1;font-size:.9rem;font-weight:600}.ing-list{flex-direction:column;display:flex}.ing{border-bottom:1px dashed var(--line);grid-template-columns:12px 74px 1fr auto;align-items:center;gap:10px;padding:9px 0;display:grid}.ing:last-child{border-bottom:0}.ing-dot{background:var(--line);border-radius:50%;width:10px;height:10px}.ing-ok .ing-dot{background:var(--ok)}.ing-approx .ing-dot{background:color-mix(in srgb, var(--ok) 55%, var(--warn))}.ing-sub .ing-dot{background:var(--warn)}.ing-prep .ing-dot{background:var(--accent)}.ing-missing .ing-dot{border:2px solid var(--bad);background:0 0}.ing-qty{font-variant-numeric:tabular-nums;font-size:.9rem;font-weight:750}.ing-main{flex-direction:column;min-width:0;display:flex}.ing-main s{color:var(--muted)}.ing-info{color:var(--muted);font-size:.76rem}.ing-missing .ing-info{color:var(--bad)}.step-list{counter-reset:step;flex-direction:column;gap:16px;display:flex}.step-list li{grid-template-columns:36px 1fr;gap:14px;display:grid}.step-n{width:32px;height:32px;font-family:var(--font-display);background:var(--accent-soft);color:var(--accent);border-radius:50%;place-items:center;font-weight:700;display:grid}.step-list p{padding-top:4px;line-height:1.65}.timer-pill{background:var(--surface-2);vertical-align:middle;border-radius:999px;align-items:center;gap:4px;margin-left:8px;padding:1px 8px;font-size:.76rem;font-weight:700;display:inline-flex}.tips{border-radius:var(--radius-sm);background:var(--accent-soft);border-left:4px solid var(--accent);padding:16px 18px}.tips h4{color:var(--accent);font-family:var(--font-display);font-weight:var(--display-weight);align-items:center;gap:8px;margin-bottom:8px;font-size:1.05rem;display:flex}.tips li{margin-top:6px;padding-left:16px;position:relative}.tips li:before{content:"—";color:var(--accent);position:absolute;left:0}.tag.missing{text-decoration:line-through}.sub-list{flex-direction:column;gap:6px;display:flex}.sub-row{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface);text-align:left;align-items:center;gap:14px;width:100%;padding:10px 12px;transition:border-color .2s,transform .2s;display:flex}.sub-row:hover{border-color:var(--accent);transform:translate(3px)}.app.cooking{grid-template-columns:1fr}.app.cooking .sidebar,.app.cooking .topbar,.app.cooking .tabbar{display:none}.app.cooking .content{padding:0}.cook{flex-direction:column;width:100%;max-width:980px;min-height:100dvh;margin:0 auto;display:flex}.cook-head{z-index:5;padding:calc(env(safe-area-inset-top) + 12px) 18px 12px;background:color-mix(in srgb, var(--bg) 85%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);align-items:center;gap:14px;display:flex;position:sticky;top:0}.cook-head .eyebrow{margin-bottom:6px}.cook-stage{flex:1;padding:clamp(20px,5vw,56px) clamp(18px,5vw,48px)}.cook-stage.next{animation:.38s cubic-bezier(.2,.8,.2,1) both from-right}.cook-stage.prev{animation:.38s cubic-bezier(.2,.8,.2,1) both from-left}.cook-text{font-family:var(--font-display);letter-spacing:var(--display-track);max-width:34ch;font-size:clamp(1.4rem,3.2vw,2.15rem);font-weight:500;line-height:1.35}[data-theme=nordique] .cook-text,[data-theme=minuit] .cook-text,[data-theme=agrumes] .cook-text{font-weight:600}.cook-nav{padding:14px 18px calc(14px + env(safe-area-inset-bottom));background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);justify-content:space-between;gap:12px;display:flex;position:sticky;bottom:0}.cook-nav .btn:last-child{margin-left:auto}.mise{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:8px;display:grid}.mise-item{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface);text-align:left;align-items:center;gap:12px;width:100%;padding:12px 14px;transition:all .2s;display:flex}.mise-item .box{border:2px solid var(--line);color:#0000;border-radius:8px;flex-shrink:0;place-items:center;width:26px;height:26px;transition:all .2s;display:grid}.mise-item.on{background:var(--surface-2);color:var(--muted)}.mise-item.on .box{background:var(--ok);border-color:var(--ok);color:#fff;animation:.3s pop}.mise-qty{min-width:64px;font-weight:800}.timers{flex-wrap:wrap;gap:8px;padding:0 18px;display:flex}.timer{--p:0;border:1px solid var(--line);background:linear-gradient(90deg, var(--accent-soft) calc(var(--p) * 100%), var(--surface) 0);font-variant-numeric:tabular-nums;border-radius:999px;align-items:center;gap:10px;padding:6px 6px 6px 14px;animation:.3s both pop;display:flex}.timer strong{font-size:1.1rem}.timer-label{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:120px;font-size:.75rem;overflow:hidden}.timer.done{background:var(--ok);color:#fff;border-color:var(--ok);animation:1s infinite pulse}.timer.done .timer-label{color:#fff}.builder{grid-template-columns:1fr;align-items:start;gap:24px;display:grid}@media (min-width:1100px){.builder{grid-template-columns:minmax(0,1fr) 380px}.builder-side{position:sticky;top:76px}}.builder-side{flex-direction:column;gap:16px;display:flex}.image-field{grid-template-columns:160px 1fr;align-items:center;gap:16px;display:grid}.image-field .cover{border-radius:var(--radius-sm)}.image-field .cover-title{font-size:.9rem}.comp-list{flex-direction:column;gap:8px;display:flex}.comp{border-radius:var(--radius-sm);background:var(--surface-2);grid-template-columns:1fr auto;gap:6px 10px;padding:12px 14px;animation:.3s both rise;display:grid}.comp .chips,.comp small{grid-column:1}.comp .icon-btn{grid-area:1/2}.ing-edit,.step-edit{flex-direction:column;gap:10px;display:flex}.ing-edit li{align-items:flex-start;gap:8px;display:flex}.step-edit li{grid-template-columns:32px 1fr 70px auto;align-items:start;gap:8px;display:grid}.row-actions{gap:2px;display:flex}.key-edit summary{cursor:pointer;color:var(--muted);padding:2px 4px;font-size:.74rem}.key-edit[open]{flex-direction:column;gap:4px;display:flex}.concord .pairs{flex-direction:column;gap:8px;display:flex}.pairs li{background:var(--surface-2);border-radius:12px;grid-template-columns:44px 1fr;align-items:start;gap:10px;padding:8px 10px;font-size:.88rem;animation:.3s both rise;display:grid}.pair-score{text-align:center;border-radius:8px;padding:2px 0;font-weight:800}.pairs .good .pair-score{background:color-mix(in srgb, var(--ok) 18%, transparent);color:var(--ok)}.pairs .bad .pair-score{background:color-mix(in srgb, var(--bad) 16%, transparent);color:var(--bad)}.pairs .unk .pair-score{background:var(--surface);color:var(--muted)}.suggest{border-bottom:1px dashed var(--line);align-items:flex-start;gap:10px;padding:8px 0;display:flex}.suggest:last-child{border-bottom:0}.sticky-save{bottom:calc(86px + env(safe-area-inset-bottom));z-index:4;background:color-mix(in srgb, var(--surface) 85%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line);box-shadow:var(--shadow-lg);border-radius:999px;padding:12px;position:sticky}@media (min-width:760px){.sticky-save{bottom:16px}}.conc-float{right:16px;bottom:calc(100px + env(safe-area-inset-bottom));z-index:25;border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-lg);border-radius:999px;align-items:center;gap:8px;padding:6px 14px 6px 6px;font-weight:700;animation:.35s both pop;display:flex;position:fixed}@media (min-width:1100px){.conc-float{display:none}}.shop-list{flex-direction:column;display:flex}.shop-list li{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:8px 2px;display:flex}.shop-list li:last-child{border-bottom:0}.shop-list .check input{opacity:0;width:1px;height:1px;position:absolute}.checkmark{border:2px solid var(--line);color:#0000;border-radius:8px;flex-shrink:0;place-items:center;width:24px;height:24px;transition:all .2s;display:grid}.check input:checked+.checkmark{background:var(--ok);border-color:var(--ok);color:#fff;animation:.3s pop}.check input:focus-visible+.checkmark{outline:2.5px solid var(--accent);outline-offset:2px}.shop-name{position:relative}.done .shop-name{color:var(--muted)}.done .shop-name:after{content:"";background:var(--muted);width:100%;height:1.5px;animation:.35s both strike;position:absolute;top:50%;left:0}.suggest-list{flex-direction:column;gap:10px;display:flex}.suggest-list li{border-radius:var(--radius-sm);background:var(--surface-2);align-items:center;gap:12px;padding:12px 14px;display:flex}.week-nav{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.week-nav .btn{margin-left:auto}.report{grid-template-columns:1fr;align-items:center;gap:24px;display:grid}@media (min-width:900px){.report{grid-template-columns:auto 1fr auto}}.report-score{flex-direction:column;align-items:center;gap:10px;display:flex}.delta{font-size:.82rem;font-weight:700}.delta.up{color:var(--ok)}.delta.down{color:var(--bad)}.report-bars{flex-direction:column;gap:14px;min-width:0;display:flex}.bar-head{justify-content:space-between;gap:10px;margin-bottom:6px;font-size:.88rem;display:flex}.report-facts{gap:12px;display:grid}.big-stat{border-radius:var(--radius-sm);background:var(--surface-2);flex-direction:column;max-width:280px;padding:14px 16px;display:flex}.big-stat strong{font-family:var(--font-display);font-size:2.2rem;line-height:1}.big-stat span{font-weight:700}.big-stat small{color:var(--muted);margin-top:4px;font-size:.76rem}.history{align-items:flex-end;gap:10px;height:150px;padding-top:12px;display:flex}.hbar{height:100%;color:var(--muted);flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:4px;font-size:.72rem;display:flex}.hbar i{background:color-mix(in srgb, var(--accent) 35%, var(--surface-2));transform-origin:bottom;border-radius:10px 10px 4px 4px;width:100%;max-width:46px;animation:.8s cubic-bezier(.2,.8,.2,1) both grow-y}.hbar.cur i{background:var(--accent)}.hbar span{color:var(--ink);font-weight:800}@keyframes grow-y{0%{transform:scaleY(0)}}.day{flex-direction:column;gap:8px;display:flex}.day-title{color:var(--muted);font-size:.9rem}.meal-list{flex-direction:column;gap:8px;display:flex}.meal{border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;padding:12px 14px;animation:.35s both rise;display:flex}.meal-slot{text-transform:uppercase;letter-spacing:.05em;color:var(--accent);min-width:92px;font-size:.72rem;font-weight:800}.places{grid-template-columns:repeat(auto-fill,minmax(min(100%,210px),1fr));gap:12px;display:grid}.place{border-radius:var(--radius);border:2px solid var(--line);background:var(--surface);color:var(--ink);text-align:left;font-family:var(--font-body);flex-direction:column;align-items:flex-start;gap:8px;padding:16px;transition:transform .2s,border-color .2s,box-shadow .2s;display:flex}.place strong{font-family:var(--font-display);font-weight:var(--display-weight);font-size:1.2rem}.place small{color:var(--muted)}.place.on{border-color:var(--accent);box-shadow:var(--shadow-lg)}.place:hover{transform:translateY(-2px)}.place.new{border-style:dashed;gap:8px}.place-swatch,.theme-swatch{gap:4px;display:flex}.place-swatch i,.theme-swatch i{border:2px solid #fff9;border-radius:50%;width:22px;height:22px;box-shadow:0 1px 3px #0003}.themes{grid-template-columns:repeat(auto-fill,minmax(min(100%,150px),1fr));gap:10px;display:grid}.theme-card{border-radius:var(--radius-sm);border:2px solid var(--line);background:var(--bg);color:var(--ink);text-align:left;background-image:var(--texture);flex-direction:column;gap:6px;padding:14px;transition:transform .2s,border-color .2s;display:flex}.theme-card strong{font-family:var(--font-display);font-weight:var(--display-weight);font-size:1.1rem}.theme-card small{color:var(--muted);font-size:.75rem;font-family:var(--font-body)}.theme-card:not(:disabled):hover{transform:translateY(-2px)}.theme-card.on{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.theme-card:disabled{cursor:default;opacity:.85}.storage-list{flex-direction:column;gap:8px;display:flex}.invite{background:var(--surface);color:var(--ink);border-left:4px solid var(--accent);flex-wrap:wrap;align-items:center;gap:12px;animation:.4s both pop;display:flex}.invite .ic{color:var(--accent)}.info{color:var(--ok);align-items:center;gap:8px;font-weight:600;display:flex}.storage-list li{align-items:center;gap:8px;display:flex}.icon-select{flex:none;font-size:1.2rem;background-position:calc(100% - 14px),calc(100% - 9px)!important;width:64px!important;padding-right:24px!important}.seal{filter:drop-shadow(0 3px 6px #00000059);pointer-events:auto;z-index:2;width:62px;height:62px;animation:.5s both pop;position:absolute;top:8px;right:8px;transform:rotate(-12deg)}.hero-cover .seal{width:96px;height:96px;top:14px;right:14px}.mini-card .seal,.pick-ic .seal{display:none}.seal svg{width:100%;height:100%}.seal-bg,.seal-trad .seal-bg{fill:#b8862b}.seal-rev .seal-bg{fill:#3d5a80}.seal-mod .seal-bg{fill:#6b4c9a}.seal-ring{fill:none;stroke:#ffffffd9;stroke-width:1.4px;stroke-dasharray:2 2}.seal-txt{fill:#fff;font:700 8.6px/1 var(--font-body);letter-spacing:.6px}.seal-mid{fill:#fff;font:800 10.5px/1 var(--font-display);letter-spacing:.5px}.seal-star{fill:#fff;font:700 8px/1 var(--font-body)}@media (max-width:640px){.rcard .seal{width:40px;height:40px;top:4px;right:4px}}.tipsbox{border-radius:var(--radius);background:linear-gradient(135deg, var(--accent-soft), var(--surface));border:1px solid color-mix(in srgb, var(--accent) 30%, var(--line));flex-direction:column;gap:8px;padding:14px 16px;display:flex}.tipsbox header{color:var(--accent);align-items:center;gap:8px;display:flex}.tipsbox header .eyebrow{color:var(--accent);margin:0}.tip-slide{animation:.45s cubic-bezier(.2,.8,.2,1) both from-right}.tip-slide h4{font-family:var(--font-display);font-weight:var(--display-weight);margin-bottom:6px;font-size:1.08rem}.tip-slide li{margin-top:4px;padding-left:16px;font-size:.92rem;position:relative}.tip-slide li:before{content:"—";color:var(--accent);position:absolute;left:0}.tip-dots{flex-wrap:wrap;gap:5px;display:flex}.tip-dots button{background:var(--line);border:0;border-radius:50%;width:7px;height:7px;padding:0;transition:all .25s}.tip-dots button.on{background:var(--accent);border-radius:4px;width:18px}.ing-section{flex-direction:column;gap:6px;display:flex}.ing-section.opt{opacity:.85;border-top:1px dashed var(--line);padding-top:10px}.ideal{color:var(--muted);font-size:.85em;font-weight:500}.subrec-btn{color:var(--accent);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:0;font-weight:650;text-decoration:underline}.backchip{background:var(--accent);color:var(--accent-ink);box-shadow:var(--shadow);border-radius:999px;align-items:center;gap:6px;width:-moz-fit-content;width:fit-content;padding:6px 12px;font-size:.85rem;font-weight:700;animation:.35s both pop;display:inline-flex}.postit{z-index:45;right:18px;bottom:calc(100px + env(safe-area-inset-bottom));color:#3b3418;background:#fff3a8;border-radius:4px 4px 4px 18px;flex-direction:column;width:min(300px,100vw - 36px);animation:.35s both pop;display:flex;position:fixed;transform:rotate(-1.2deg);box-shadow:0 18px 40px -16px #00000080,inset 0 -24px 30px -26px #0000002e}.postit.c1{background:#ffd6e0}.postit.c2{background:#c9f2d4}.postit.c3{background:#cfe4ff}.postit header{font:700 .78rem/1 var(--font-body);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:4px;padding:6px 6px 0 12px;display:flex}.postit textarea{resize:vertical;min-height:150px;font:500 1rem/1.5 "Nunito", var(--font-body);color:inherit;padding:8px 12px 12px;box-shadow:none!important;background:0 0!important;border:0!important}.postit .icon-btn{color:inherit;width:30px;height:30px}.postit.min{width:auto;transform:none}.postit.min textarea{display:none}@media (min-width:760px){.postit{bottom:20px}}.postit-dot{border:2px solid #0003;border-radius:50%;width:14px;height:14px;padding:0}.tip-lines li{margin-top:4px;padding-left:14px;font-size:.92rem;position:relative}.tip-lines li:before{content:"—";color:var(--accent);position:absolute;left:0}.tip-card h3{font-family:var(--font-display);font-weight:var(--display-weight)}.ok-text{color:var(--ok,var(--accent))}.menu-day{animation:.35s both rise;animation-delay:calc(var(--i,0) * 40ms)}.menu-day.today{outline:2px solid var(--accent);outline-offset:-2px}.menu-day.past{opacity:.7}.menu-day .meal{align-items:center}
