:root{color:var(--ink);background:var(--page-bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--ink:#4a382f;--muted:#8f7d75;--page-bg:#fdf6f1;--body-gradient:linear-gradient(135deg, #fbedc057, transparent 32%), linear-gradient(215deg, #bfe0eb42, transparent 38%), linear-gradient(180deg, #fffaf6 0%, #f7eee9 100%);--surface:#fffdfb;--surface-soft:#fbeeef;--surface-raised:#fff;--peach:#ffdccc;--peach-strong:#dd8567;--mint:#dcf1e4;--sage:#9bc7a9;--sage-deep:#48755b;--butter:#fbedc0;--berry:#db99a4;--berry-strong:#c1717f;--blue:#bfe0eb;--lavender:#ddd6f3;--cream-border:#f4e3da;--cream-border-rgb:234, 216, 199;--surface-rgb:255, 253, 248;--ease:cubic-bezier(.22, 1, .36, 1);--shadow:0 18px 46px #78584c1a;--shadow-soft:0 10px 24px #78584c12;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#ececee;--muted:#9a9ba1;--page-bg:#131315;--body-gradient:linear-gradient(135deg, #dd85670d, transparent 32%), linear-gradient(215deg, #9bc7a90d, transparent 38%), linear-gradient(180deg, #1a1a1c 0%, #0f0f11 100%);--surface:#1c1c1f;--surface-soft:#222226;--surface-raised:#29292d;--peach:#5a3c2c;--peach-strong:#7fbb95;--mint:#24352c;--sage:#6fa384;--sage-deep:#a9d5b8;--butter:#4a3f24;--berry:#4a2c33;--berry-strong:#dd97a5;--blue:#223a42;--lavender:#362f4a;--cream-border:#38383d;--cream-border-rgb:56, 56, 61;--surface-rgb:28, 28, 31;--shadow:0 18px 46px #00000073;--shadow-soft:0 10px 24px #0000004d}*{box-sizing:border-box}html{background:var(--page-bg);scroll-behavior:smooth;min-width:320px}body{background:var(--body-gradient);min-width:320px;min-height:100dvh;margin:0;position:relative;overflow-x:hidden}body:before{content:"";z-index:0;pointer-events:none;opacity:.4;mix-blend-mode:multiply;background-image:url(/food-pattern.webp);background-repeat:repeat;background-size:420px 420px;position:fixed;inset:0}#root{z-index:1;position:relative}button,input,textarea,select{font:inherit;font-size:16px}button{background:var(--sage-deep);min-height:44px;color:var(--surface);cursor:pointer;overflow-wrap:anywhere;transition:transform .22s var(--ease), box-shadow .22s var(--ease), background .22s var(--ease);border:1px solid #0000;border-radius:16px;padding:.8rem 1rem;font-weight:750;box-shadow:0 10px 22px #48755b38}button:hover{transform:translateY(-2px)scale(1.01);box-shadow:0 16px 28px #48755b42}button:active{transform:translateY(0)scale(.99)}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline-offset:3px;outline:3px solid #48755b57}button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}button.secondary{background:var(--surface);border-color:var(--cream-border);color:var(--ink);box-shadow:none}button.secondary:hover{background:var(--butter);box-shadow:0 10px 22px #7e5c311a}button.danger{background:var(--berry-strong);color:var(--surface);box-shadow:0 10px 22px #c1717f38}button.full{width:100%;margin-top:1rem}input,textarea,select{border:1px solid var(--cream-border);background:rgba(var(--surface-rgb), .94);width:100%;min-width:0;color:var(--ink);transition:border-color .2s var(--ease), box-shadow .2s var(--ease);border-radius:16px;outline:none;padding:.9rem 1rem;box-shadow:inset 0 1px #ffffffa6}input:focus,textarea:focus,select:focus{border-color:var(--sage);box-shadow:0 0 0 4px #9bc7a93d}textarea{resize:vertical;line-height:1.45}label{color:var(--muted);gap:.45rem;font-size:.92rem;font-weight:650;display:grid}.app-shell{min-height:100dvh;display:flex}.sidebar{width:288px;height:100vh;color:var(--ink);background:rgba(var(--surface-rgb), .92);border-right:1px solid rgba(var(--cream-border-rgb), .9);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);padding:1.4rem;position:sticky;top:0}.brand{cursor:pointer;width:100%;min-height:auto;color:var(--ink);text-align:left;box-shadow:none;background:0 0;border-color:#0000;border-radius:18px;align-items:center;gap:.95rem;margin-bottom:1.7rem;padding:.5rem;display:flex}.brand:hover{background:var(--surface-soft);box-shadow:none;transform:none}.brand-logo{flex:none;place-items:center;width:50px;height:50px;display:grid}.app-logo-light{display:block}.app-logo-dark,:root[data-theme=dark] .app-logo-light{display:none}:root[data-theme=dark] .app-logo-dark{display:block}.brand-logo.app-logo img{object-fit:contain;width:100%;height:100%}.app-logo-name{justify-content:center;margin:0 auto .35rem;display:flex}.app-logo-name img{width:96px;height:auto}.brand strong{font-size:1.12rem;display:block}.brand>span:not(.brand-logo)>span,.eyebrow{color:var(--muted);font-size:.84rem;display:block}.page-subtitle{max-width:54rem;color:var(--muted);margin:.42rem 0 0}.sidebar nav{gap:.3rem;display:grid}.topbar-logout{white-space:nowrap;flex:none}.sidebar nav button{text-align:left;width:100%;color:var(--ink);box-shadow:none;transition:background .22s var(--ease), color .22s var(--ease), transform .22s var(--ease);background:0 0;border-color:#0000;justify-content:flex-start;align-items:center;gap:.75rem;display:flex;position:relative}.sidebar nav button .nav-icon{color:var(--sage-deep);opacity:.72;transition:color .22s var(--ease), opacity .22s var(--ease);flex:none}.sidebar nav button.active,.sidebar nav button:hover{background:var(--surface-soft);color:var(--ink);border-color:var(--cream-border);transform:translate(2px)}.sidebar nav button.active .nav-icon{color:var(--berry-strong);opacity:1}.sidebar nav button.active{font-weight:800}.content{width:100%;min-width:0;max-width:1420px;padding:2rem;padding-top:calc(2rem + env(safe-area-inset-top));flex:1;margin:0 auto}.mobile-tabbar{display:none}.topbar{border:1px solid rgba(var(--cream-border-rgb), .85);background:rgba(var(--surface-rgb), .72);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:22px;justify-content:flex-start;align-items:center;gap:1rem;margin-bottom:1.35rem;padding:1.1rem 1.2rem;display:flex}.topbar-title{flex:1;min-width:0}.topbar-icon{background:linear-gradient(145deg, var(--mint), var(--surface-soft));width:52px;height:52px;color:var(--sage-deep);box-shadow:var(--shadow-soft);border-radius:16px;flex:none;place-items:center;display:grid}.topbar-icon svg{width:24px;height:24px}h1,h2,h3,p{margin-top:0}h1{color:var(--ink);margin-bottom:0;font-size:clamp(2rem,3.5vw,3.55rem);line-height:.98}h2{color:var(--ink);margin-bottom:.85rem;line-height:1.15}h3{color:var(--ink);margin-bottom:.45rem}p{color:var(--muted);line-height:1.55}.grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;display:grid}@keyframes page-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.dashboard-layout,.two-columns,.cooking-layout,.single-column,.recipe-detail-shell{animation:page-enter .42s var(--ease)}.dashboard-layout{gap:1rem;display:grid}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard-panels{grid-template-columns:minmax(260px,.72fr) minmax(360px,1.3fr) minmax(260px,.82fr);align-items:stretch;gap:1rem;display:grid}.command-panel{border:1px solid rgba(var(--cream-border-rgb), .86);background:linear-gradient(135deg, #dcf1e4d1, rgba(var(--surface-rgb), .9) 48%), linear-gradient(245deg, #ffdcccb3, #bfe0eb2e);min-height:260px;box-shadow:var(--shadow);border-radius:26px;grid-template-columns:minmax(0,1.45fr) minmax(260px,.55fr);gap:1rem;padding:1.35rem;display:grid}.command-copy{align-content:center;gap:.9rem;max-width:760px;display:grid}.command-copy h2{max-width:700px;color:var(--ink);margin-bottom:0;font-size:clamp(2rem,4vw,4.4rem);line-height:.98}.command-copy p{max-width:620px;margin-bottom:0;font-size:1.02rem}.today-panel{background:rgba(var(--surface-rgb), .72);min-width:0;box-shadow:var(--shadow-soft);border:1px solid #8fb59b61;border-radius:20px;align-content:end;gap:.65rem;padding:1rem;display:grid}.today-panel span,.today-panel small{color:var(--muted);font-weight:700}.today-panel strong{color:var(--sage-deep);font-size:clamp(2.4rem,5vw,4.8rem);line-height:.9}.next-card,.watch-card{min-height:260px}.dashboard-card-link{cursor:pointer}.dashboard-card-link:hover{box-shadow:var(--shadow-soft);transform:translateY(-2px)}.dashboard-card-link:focus-visible{outline-offset:3px;outline:3px solid #48755b57}.next-card{background:linear-gradient(160deg, #fbedc070, transparent 48%), rgba(var(--surface-rgb), .94)}.compact-header{margin-bottom:.85rem}.recipe-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;display:grid}.recipe-tile{border-color:var(--cream-border);background:var(--surface);min-height:156px;color:var(--ink);text-align:left;box-shadow:none;transition:background .22s var(--ease), transform .22s var(--ease), box-shadow .22s var(--ease);gap:.45rem;padding:.9rem;display:grid}.recipe-tile:hover{background:var(--surface-soft);box-shadow:var(--shadow-soft);transform:translateY(-2px)}.recipe-initial{background:linear-gradient(145deg, var(--peach), var(--butter));width:42px;height:42px;color:var(--ink);border-radius:14px;place-items:center;font-weight:900;display:grid}.recipe-tile small,.mini-list-row span{color:var(--muted)}.mini-list-row{border-bottom:1px solid rgba(var(--cream-border-rgb), .8);gap:.18rem;padding:.78rem 0;display:grid}.mini-list-row:last-child{border-bottom:0}.two-columns,.cooking-layout,.single-column{grid-template-columns:minmax(320px,.86fr) minmax(420px,1.3fr);align-items:start;gap:1rem;display:grid}.single-column{grid-template-columns:minmax(0,1fr)}.form-page{max-width:860px;margin:0 auto}.card{background:rgba(var(--surface-rgb), .86);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);min-width:0;box-shadow:var(--shadow);transition:transform .26s var(--ease), box-shadow .26s var(--ease);border:1px solid #f4e3dae6;border-radius:24px;padding:1.25rem}.card.wide{background:linear-gradient(135deg, #ffdcccc7, rgba(var(--surface-rgb), .88) 46%), linear-gradient(245deg, #dcf1e4cc, #fbedc057);grid-column:span 4;position:relative;overflow:hidden}.card.wide:after{content:"";background:linear-gradient(90deg, transparent 46%, #6f8f7373 46% 54%, transparent 54%), linear-gradient(0deg, transparent 46%, #6f8f7373 46% 54%, transparent 54%), rgba(var(--surface-rgb), .64);border:1px solid #8fb59b5c;border-radius:28px;width:92px;height:92px;position:absolute;bottom:1.25rem;right:1.25rem;transform:rotate(8deg)}.dashboard-hero{justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.dashboard-hero>*{z-index:1;position:relative}.card-header,.actions,.inline,.space-between{align-items:center;gap:.75rem;display:flex}.card-header,.space-between{justify-content:space-between}.card-header h2,.card h2:last-child{margin-bottom:0}.collapsible-trigger{width:100%;box-shadow:none;cursor:pointer;text-align:left;background:0 0;border:none;padding:0}.collapsible-chevron{color:var(--muted);transition:transform .2s var(--ease);flex-shrink:0;font-size:1.4rem}.collapsible-chevron.open{transform:rotate(90deg)}.actions{flex-wrap:wrap}.compact-actions,.recipe-card-actions,.board-actions,.form-actions{gap:.55rem}.compact-actions button,.recipe-card-actions button,.board-actions button,.form-actions button{border-radius:12px;min-height:38px;padding:.58rem .76rem;font-size:.92rem}.recipe-card-actions,.form-actions{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;display:grid}.recipe-card-actions button,.form-actions button{width:100%}.form{gap:.85rem;display:grid}.quick-actions,.mini-list{gap:.65rem;display:grid}.mini-list-item{border-color:var(--cream-border);background:var(--surface);min-height:auto;color:var(--ink);text-align:left;box-shadow:none;transition:background .22s var(--ease), transform .22s var(--ease), box-shadow .22s var(--ease);gap:.18rem;padding:.78rem .9rem;display:grid}.mini-list-item:hover{background:var(--surface-soft);box-shadow:0 8px 18px #6f493714}.mini-list-item span{color:var(--muted);font-size:.9rem}.form .inline{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;display:grid}.field-grid{gap:.75rem;display:grid}.recipe-meta-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.recipe-fieldset{border:1px solid rgba(var(--cream-border-rgb), .9);background:rgba(var(--surface-rgb), .72);border-radius:18px;gap:.85rem;min-width:0;margin:0;padding:1rem;display:grid}.recipe-fieldset legend{color:var(--ink);padding:0 .35rem;font-size:1rem;font-weight:850}.recipe-builder-list{gap:.8rem;display:grid}.ingredient-row,.step-row,.utensil-row{border:1px solid rgba(var(--cream-border-rgb), .78);background:rgba(var(--surface-rgb), .82);border-radius:16px;align-items:end;gap:.65rem;padding:.85rem;display:grid}.ingredient-row{grid-template-columns:minmax(140px,1.1fr) minmax(180px,.9fr)}.ingredient-measure{grid-template-columns:minmax(86px,.9fr) minmax(86px,.9fr);align-items:end;gap:.65rem;display:grid}.step-row{grid-template-columns:minmax(180px,1fr) minmax(88px,.32fr)}.utensil-row{grid-template-columns:minmax(180px,1fr)}.remove-row,.add-row{box-shadow:none}.remove-row{min-height:38px;color:var(--muted);white-space:nowrap;overflow-wrap:normal;grid-column:1/-1;justify-self:end;padding:.55rem .8rem}.add-row{justify-self:start}.recipes-board{gap:1rem;display:grid}.board-header{border-bottom:1px solid rgba(var(--cream-border-rgb), .85);padding-bottom:.85rem}.board-header p{margin-bottom:0}.search-field{max-width:560px}.recipe-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.recipe-card{border:1px solid var(--cream-border);background:var(--surface-raised);min-width:0;box-shadow:var(--shadow-soft);transition:transform .26s var(--ease), box-shadow .26s var(--ease);border-radius:24px;display:grid;overflow:hidden}.recipe-card:hover{box-shadow:var(--shadow);transform:translateY(-4px)}.recipe-card-media{background:linear-gradient(135deg, #dcf1e4d9, rgba(var(--surface-rgb), .35)), linear-gradient(245deg, #ffdcccb8, #fbedc06b);justify-content:flex-end;align-items:flex-start;min-height:178px;padding:.9rem;display:flex;position:relative;overflow:hidden}.recipe-card-media img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.recipe-card-media:after{content:"";background:linear-gradient(#35231c05,#35231c3d);position:absolute;inset:0}.recipe-select{z-index:1;border:1px solid rgba(var(--cream-border-rgb), .88);background:rgba(var(--surface-rgb), .88);width:auto;color:var(--ink);border-radius:999px;align-items:center;gap:.45rem;padding:.45rem .62rem;font-size:.82rem;display:inline-flex;position:relative}.recipe-select input{width:1rem;height:1rem}.recipe-card-body{gap:.85rem;padding:1rem;display:grid}.recipe-author{color:var(--muted);font-size:.78rem;font-weight:650}.chip-row,.recipe-meta{flex-wrap:wrap;gap:.45rem;margin-bottom:.55rem;display:flex}.chip-row span,.recipe-meta span,.member-badges span{background:var(--surface-soft);min-height:28px;color:var(--ink);border-radius:999px;align-items:center;padding:.26rem .55rem;font-size:.83rem;font-weight:750;display:inline-flex}.recipe-meta span{color:#48755b;background:#dcf1e473}.utensil-note{font-size:.92rem}.photo-suggestion-panel{border:1px solid rgba(var(--cream-border-rgb), .88);background:rgba(var(--surface-rgb), .72);border-radius:18px;gap:.8rem;padding:.9rem;display:grid}.photo-import-row{grid-template-columns:minmax(0,auto) minmax(0,1fr);align-items:center;gap:.75rem;display:grid}.file-button{border:1px solid var(--cream-border);background:var(--surface);width:fit-content;min-height:38px;color:var(--ink);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;padding:.58rem .76rem;font-size:.92rem;font-weight:750;display:inline-flex}.file-button input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.photo-pool-grid{grid-template-columns:repeat(auto-fit,minmax(82px,96px));align-items:start;gap:.8rem;display:grid}.recipe-image-preview-wrap{border-radius:14px;width:100%;max-width:96px;height:72px;position:relative}.recipe-image-preview-wrap.selected{outline-offset:3px;outline:3px solid #dd85676b}.photo-pool-button{width:100%;height:100%;min-height:auto;box-shadow:none;background:0 0;border:0;border-radius:14px;padding:0}.photo-pool-button:hover{box-shadow:none;transform:none}.recipe-image-preview{border:1px solid rgba(var(--cream-border-rgb), .9);object-fit:cover;width:100%;height:100%;box-shadow:var(--shadow-soft);border-radius:14px}.image-remove-button{border:1px solid rgba(var(--surface-rgb), .92);width:26px;min-height:26px;color:var(--surface);box-shadow:var(--shadow-soft);background:#c1717f;border-radius:999px;place-items:center;padding:0;font-size:1rem;line-height:1;display:grid;position:absolute;top:-.45rem;right:-.45rem}.photo-import-row span{color:var(--muted);font-size:.9rem;font-weight:650}.photo-suggestion-grid,.recipe-photo-strip{gap:.75rem;display:grid}.photo-suggestion-grid{grid-template-columns:minmax(0,1fr)}.recipe-photo-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.photo-suggestion-grid button,.recipe-photo-strip button{aspect-ratio:4/3;background:var(--surface);min-height:auto;box-shadow:var(--shadow-soft);border:2px solid #0000;border-radius:16px;padding:0;overflow:hidden}.photo-suggestion-grid button.selected,.recipe-photo-strip button.selected{border-color:var(--peach-strong)}.photo-suggestion-grid img,.recipe-photo-strip img{object-fit:cover;width:100%;height:100%;display:block}.photo-suggestion-status{aspect-ratio:4/3;text-align:center;color:var(--muted);border-radius:16px;justify-content:center;align-items:center;padding:.5rem;font-size:.85rem;font-weight:650;display:flex}.photo-suggestion-loading{background:linear-gradient(90deg, var(--surface-soft) 25%, var(--surface-raised) 50%, var(--surface-soft) 75%);background-size:200% 100%;animation:1.4s ease-in-out infinite photo-suggestion-pulse}.photo-suggestion-error{background:var(--surface-soft);color:var(--berry-strong)}@keyframes photo-suggestion-pulse{0%{background-position:200% 0}to{background-position:-200% 0}}.recipe-detail-shell{justify-items:center;display:grid}.recipe-detail{border:1px solid rgba(var(--cream-border-rgb), .86);background:rgba(var(--surface-rgb), .96);width:min(100%,980px);box-shadow:var(--shadow);border-radius:26px;overflow:hidden}.recipe-detail-hero{background:var(--surface-soft);min-height:clamp(260px,44vw,520px);position:relative;overflow:hidden}.recipe-hero-button{width:100%;min-height:inherit;box-shadow:none;background:0 0;border:0;border-radius:0;padding:0;display:block}.recipe-hero-button:hover{box-shadow:none;transform:none}.recipe-detail-hero img{width:100%;height:100%;min-height:inherit;object-fit:cover;display:block}.recipe-detail-hero:after{content:"";pointer-events:none;background:linear-gradient(#35231c29,#0000 42%,#35231c33);position:absolute;inset:0}.recipe-detail-toolbar{z-index:1;justify-content:space-between;gap:.75rem;display:flex;position:absolute;top:1rem;left:1rem;right:1rem}.icon-button{border-radius:999px;place-items:center;width:48px;min-height:48px;padding:0;font-size:2rem;line-height:1;display:grid}.icon-button.light{border-color:rgba(var(--surface-rgb), .75);background:rgba(var(--surface-rgb), .82);color:var(--ink);box-shadow:var(--shadow-soft)}.recipe-detail-content{gap:1.1rem;padding:clamp(1rem,3vw,1.6rem);display:grid}.recipe-detail-titlebar{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.recipe-detail-titlebar h2{max-width:720px;margin-bottom:0;font-size:clamp(2rem,5vw,3.6rem);line-height:1}.recipe-rating-row,.recipe-facts{color:var(--ink);flex-wrap:wrap;align-items:center;gap:.85rem;font-weight:800;display:flex}.recipe-rating-row span:first-child{color:var(--peach-strong);letter-spacing:0}.recipe-image-tools{border:1px solid rgba(var(--cream-border-rgb), .86);background:var(--surface);border-radius:18px;gap:.75rem;padding:1rem;display:grid}.gallery-lightbox{z-index:50;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.gallery-lightbox-backdrop{min-height:auto;box-shadow:none;background:#231814b8;border:0;border-radius:0;padding:0;position:absolute;inset:0}.gallery-lightbox-backdrop:hover{box-shadow:none;transform:none}.gallery-lightbox-panel{z-index:1;background:var(--surface-raised);width:min(940px,100%);box-shadow:var(--shadow);border-radius:22px;gap:.85rem;padding:.85rem;display:grid;position:relative}.gallery-lightbox-panel img{object-fit:contain;background:#201613;border-radius:16px;width:100%;max-height:min(72vh,720px)}.gallery-lightbox-actions{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.recipe-facts{border-top:1px solid rgba(var(--cream-border-rgb), .86);border-bottom:1px solid rgba(var(--cream-border-rgb), .86);justify-content:center;padding:1rem}.recipe-facts span{align-items:center;min-height:34px;display:inline-flex}.recipe-tabs,.pantry-tabs{background:var(--surface-soft);border-radius:999px;grid-template-columns:repeat(2,minmax(0,1fr));gap:.2rem;padding:.25rem;display:grid}.pantry-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.recipe-tabs button,.pantry-tabs button{min-height:54px;color:var(--muted);box-shadow:none;background:0 0;border-radius:999px}.recipe-tabs button.active,.pantry-tabs button.active{background:var(--surface);color:var(--peach-strong);box-shadow:var(--shadow-soft)}.ingredient-detail-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.ingredient-detail-card{border:1px solid rgba(var(--cream-border-rgb), .88);background:var(--surface);text-align:center;min-height:170px;box-shadow:var(--shadow-soft);border-radius:18px;justify-items:center;gap:.45rem;padding:1rem;display:grid}.ingredient-detail-card span{background:linear-gradient(145deg, var(--mint), var(--surface-soft));width:74px;height:74px;color:var(--sage-deep);border-radius:22px;place-items:center;font-size:2rem;font-weight:900;display:grid}.ingredient-detail-card strong{color:var(--ink)}.ingredient-detail-card small{color:var(--muted);font-weight:750}.preparation-panel{gap:1rem;padding-top:.5rem;display:grid}.preparation-panel h3{text-align:center;color:var(--peach-strong);margin-bottom:0;font-size:clamp(1.8rem,4vw,2.8rem)}.time-summary{background:var(--muted);text-align:center;border-radius:20px;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;padding:1rem;display:grid}.time-summary strong{color:var(--ink);grid-column:1/-1;font-size:1.25rem}.time-summary span{color:var(--ink);font-weight:750}.start-recipe-button{background:var(--surface);border-color:rgba(var(--cream-border-rgb), .9);min-width:min(100%,360px);color:var(--peach-strong);box-shadow:var(--shadow-soft);justify-self:center}.step-timeline{gap:0;display:grid}.step-timeline-item{min-height:160px;color:var(--ink);grid-template-columns:34px minmax(0,1fr);gap:.8rem;display:grid}.step-timeline-item>span{border:2px solid var(--cream-border);background:var(--surface);border-radius:999px;width:18px;height:18px;margin:.35rem auto 0;display:block;position:relative}.step-timeline-item>span:after{content:"";background:var(--cream-border);width:2px;height:150px;position:absolute;top:16px;left:50%;transform:translate(-50%)}.step-timeline-item:last-child>span:after{display:none}.step-timeline-item strong{color:var(--ink);text-transform:uppercase;margin-bottom:.6rem;font-size:1.25rem;display:block}.step-timeline-item p{color:var(--ink);margin-bottom:.4rem;font-size:1.08rem}.step-timeline-item small{color:var(--muted);font-weight:750}.list{gap:.78rem;display:grid}.list-item{border:1px solid var(--cream-border);background:var(--surface);transition:transform .22s var(--ease), box-shadow .22s var(--ease);border-radius:18px;padding:1rem;box-shadow:0 8px 20px #78584c0d}.list-item:hover{box-shadow:var(--shadow-soft);transform:translateY(-2px)}.list-item h3{font-size:1.1rem}.list-item p:last-child,.card p:last-child{margin-bottom:0}.list-item.compact{justify-content:space-between;align-items:center;gap:1rem;display:flex}.list-item.compact span{color:var(--muted);text-align:right}.item-subtext{color:var(--muted);margin:0;font-size:.78rem}.shopping-quantity-edit{color:var(--muted);flex-shrink:0;align-items:center;gap:.4rem;display:flex}.shopping-quantity-edit input{text-align:right;width:4.5rem;min-width:4.5rem;padding:.5rem .6rem}.member-row-meta{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.member-badges{gap:.4rem;display:flex}.list-item.compact .member-badges span{text-align:left;color:var(--ink)}.list-item.done{opacity:.58;text-decoration:line-through}.empty-state{background:#dcf1e438;border:1px dashed #8fb59bbf;border-radius:16px;place-items:start;gap:.55rem;padding:1rem;display:grid}.empty-state strong{color:var(--ink)}.empty-state p{margin-bottom:.15rem}.checkbox-row{color:var(--muted);align-items:center;gap:.65rem;font-size:.92rem;display:flex}.checkbox-row input{width:1.1rem;height:1.1rem;accent-color:var(--sage)}.stat{text-align:left;gap:.65rem;width:100%;display:grid;position:relative;overflow:hidden}.stat:hover{background:rgba(var(--surface-rgb), .86);box-shadow:var(--shadow-soft);transform:translateY(-2px)}.stat:before{content:"";background:var(--mint);border-radius:999px;width:2.4rem;height:.35rem}.stat:nth-child(2):before{background:var(--peach)}.stat:nth-child(3):before{background:var(--butter)}.stat:nth-child(4):before{background:var(--lavender)}.stat span{color:var(--muted);font-weight:700}.stat strong{color:var(--ink);font-size:2.55rem;line-height:1}.stat small{color:var(--muted);font-weight:650}.cooking-card{background:linear-gradient(155deg, #dcf1e4c2, transparent 46%), rgba(var(--surface-rgb), .94);align-content:center;gap:1.15rem;min-height:480px;display:grid}.step-text{color:var(--ink);font-size:clamp(1.45rem,3vw,2.45rem);line-height:1.2}.timer{color:#6b4d1d;background:#fff1ba;border:1px solid #eadb91;border-radius:18px;flex-direction:column;gap:.6rem;width:fit-content;padding:.85rem 1rem;font-size:1.45rem;font-weight:900;display:flex}.timer-row{align-items:baseline;gap:.75rem;display:flex}.timer-count{font-variant-numeric:tabular-nums}.timer.done{color:#1f5c34;background:#dcf5df;border-color:#9ad9a6}:root[data-theme=dark] .timer{color:#f4d789;background:#4a3f1f;border-color:#6b5a2a}:root[data-theme=dark] .timer.done{color:#a3e0b6;background:#23422e;border-color:#3d6b4b}.step-progress{background:#8fb59b2e;border-radius:999px;height:.6rem;overflow:hidden}.step-progress span{border-radius:inherit;background:#6f8f73;height:100%;transition:width .18s;display:block}ul{color:var(--muted);margin:0;padding-left:1.2rem;line-height:1.65}.alert,.status-card{justify-content:space-between;align-items:center;gap:.85rem;display:flex}.alert{color:#9d4b56;background:#fff0f1;border:1px solid #efc3c8;border-radius:18px;margin-bottom:1rem;padding:1rem}:root[data-theme=dark] .alert{color:#f3b4bd;background:#402328;border-color:#6b3540}.alert button{flex:none}.status-card{color:var(--ink)}@media (width<=1100px){.grid,.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.card.wide{grid-column:span 2}.dashboard-panels,.command-panel{grid-template-columns:1fr}.recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=980px){.app-shell{display:block}.sidebar{display:none}.mobile-tabbar{z-index:20;padding:.35rem max(.35rem, env(safe-area-inset-right)) calc(.35rem + env(safe-area-inset-bottom)) max(.35rem, env(safe-area-inset-left));background:rgba(var(--surface-rgb), .96);border-top:1px solid rgba(var(--cream-border-rgb), .9);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);justify-content:space-around;align-items:stretch;gap:.15rem;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -10px 24px #78584c14}.mobile-tabbar button{min-height:54px;color:var(--muted);box-shadow:none;background:0 0;border-radius:14px;flex:1 1 0;justify-items:center;gap:.18rem;padding:.4rem .15rem;font-size:.68rem;font-weight:700;line-height:1.05;display:grid}.mobile-tabbar button:hover{box-shadow:none;transform:none}.mobile-tabbar button .nav-icon{width:20px;height:20px;color:var(--muted);transition:color .22s var(--ease)}.mobile-tabbar button.active{color:var(--berry-strong);background:var(--surface-soft)}.mobile-tabbar button.active .nav-icon{color:var(--berry-strong)}.content{padding:1rem max(1rem, env(safe-area-inset-right)) calc(4.6rem + env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));padding-top:calc(1rem + env(safe-area-inset-top))}.two-columns,.cooking-layout,.single-column{grid-template-columns:1fr}.topbar,.alert,.dashboard-hero,.board-header,.list-item.compact{flex-direction:column;align-items:stretch}.ingredient-row,.step-row,.utensil-row{grid-template-columns:1fr}.ingredient-measure{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.add-row{justify-self:stretch}.topbar{gap:.85rem;padding:1rem}.card-header{flex-direction:column;align-items:flex-start}.recipe-detail-titlebar{flex-direction:column}.ingredient-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.list-item.compact span{text-align:left}}@media (width<=560px){input,textarea,select{padding:.72rem .82rem}button{min-height:40px;padding:.68rem .85rem}label{gap:.34rem;font-size:.86rem}.grid,.recipe-grid,.recipe-strip{grid-template-columns:1fr}.command-panel{border-radius:20px;min-height:auto;padding:1rem}.command-copy h2{font-size:2.05rem;line-height:1.02}.today-panel,.recipe-card-body{padding:.85rem}.card.wide{grid-column:auto}.mobile-tabbar button{min-height:50px;font-size:.62rem}.content{padding-top:calc(.85rem + env(safe-area-inset-top))}h1{font-size:1.9rem;line-height:1.04}h2{font-size:1.22rem}.grid,.two-columns,.cooking-layout,.single-column,.list,.form{gap:.62rem}.form .inline,.recipe-meta-grid,.ingredient-detail-grid,.time-summary{grid-template-columns:1fr;gap:.52rem}.recipe-photo-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.recipe-detail{border-radius:18px}.recipe-detail-hero{min-height:240px}.recipe-detail-content{padding:.85rem}.recipe-tabs button,.pantry-tabs button{min-height:46px}.ingredient-detail-card{min-height:140px}.time-summary strong{grid-column:auto}.card,.list-item{border-radius:18px;padding:.85rem}.recipe-fieldset{border-radius:16px;gap:.65rem;padding:.75rem}.recipe-fieldset legend{font-size:.96rem}.recipe-builder-list{gap:.62rem}.ingredient-row,.step-row,.utensil-row{border-radius:14px;gap:.52rem;padding:.68rem}.ingredient-measure{gap:.52rem}.recipe-meta-grid input{padding-left:.7rem;padding-right:.55rem}.remove-row{justify-self:stretch;min-height:36px}.card.wide:after{display:none}.actions:not(.recipe-card-actions):not(.compact-actions):not(.board-actions),.board-actions{grid-template-columns:1fr;display:grid}.recipe-card-actions,.compact-actions{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.stat{gap:.5rem}.stat strong{font-size:2rem}.cooking-card{align-content:start;min-height:auto}.step-text{font-size:1.32rem}}@media print{.sidebar,.mobile-tabbar,.topbar button,.actions,form{display:none!important}body{background:#fff}.content{padding:0}.card{box-shadow:none;border:none}}.login-screen{justify-content:center;align-items:center;min-height:100dvh;padding:1.5rem;display:flex}.login-card{text-align:center;gap:.85rem;width:100%;max-width:380px;display:grid}.login-card h1{margin:0}.login-card .form{text-align:left}.login-wait{justify-items:center;gap:.75rem;display:grid}.button-link{background:var(--sage-deep);color:#fff;border-radius:999px;justify-content:center;align-items:center;padding:.75rem 1.5rem;font-weight:600;text-decoration:none;display:inline-flex}.login-hint{color:var(--muted);font-size:.9rem}.login-code{color:var(--muted);text-align:center;max-width:26rem;font-size:.85rem}.login-code strong{color:inherit;letter-spacing:.05em;font-size:1.1rem}.hp-field{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;left:-9999px}.settings-layout{gap:1.2rem;max-width:46rem;display:grid}.settings-toggle-list{gap:.75rem;margin-top:1rem;display:grid}.settings-toggle-row,.settings-action-row{border:1px solid var(--cream-border);background:rgba(var(--surface-rgb), .7);border-radius:16px;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1rem;display:flex}.settings-action-row{margin-top:1rem}.settings-toggle-row strong,.settings-action-row strong{margin-bottom:.2rem;display:block}.settings-toggle-row p,.settings-action-row p{color:var(--muted);margin:0;font-size:.88rem}.settings-toggle-row input[type=checkbox]{width:1.4rem;height:1.4rem;accent-color:var(--sage-deep);flex:none}.settings-action-row button{flex:none}.segmented-control{flex-wrap:wrap;gap:.5rem;margin-top:.9rem;display:flex}.segmented-control button{background:var(--surface);border-color:var(--cream-border);color:var(--ink);box-shadow:none;min-height:40px;padding:.6rem 1.1rem}.segmented-control button.active{background:var(--sage-deep);color:var(--surface);border-color:var(--sage-deep)}
