:root{--bg:#fbf7ef;--paper:#f3eadc;--surface:#fffdf8;--surface-2:#eadcc9;--ink:#342019;--muted:#7c6759;--border:#dccab7;--primary:#4a2f25;--primary-dark:#2f1e18;--primary-ink:#fffaf2;--herb:#31594e;--herb-dark:#24463d;--accent:#b76043;--shadow:0 22px 60px #3420191a;--serif:Georgia, "Times New Roman", serif;--sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font-family:var(--sans);margin:0;overflow-x:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer}img{max-width:100%}a{color:inherit}.app-shell{min-height:100vh}.site-header{z-index:20;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fbf7eff0;grid-template-columns:220px 1fr auto;align-items:center;gap:24px;min-height:76px;padding:14px clamp(18px,4vw,52px);display:grid;position:sticky;top:0}.brand{color:inherit;align-items:center;gap:12px;text-decoration:none;display:flex}.brand-button{text-align:left;background:0 0;border:0;padding:0}.brand-mark{width:50px;height:50px;color:var(--primary-ink);border-radius:0;place-items:center;display:grid}.brand-mark svg{width:50px;height:50px}.logo-ring,.logo-chair-leg,.logo-table-line,.logo-table-base,.logo-plant-stem{fill:none;stroke:var(--herb);stroke-linecap:round;stroke-linejoin:round}.logo-ring{stroke-width:4.5px}.logo-chair-leg,.logo-table-line{stroke-width:5px}.logo-table-base{stroke-width:4px}.logo-table,.logo-chair-fill,.logo-plant-pot{fill:var(--herb)}.logo-plant-stem{stroke-width:3.2px}.logo-leaf{fill:var(--herb);stroke:var(--herb);stroke-linejoin:round}.admin-invite-form{grid-template-columns:minmax(240px,1fr) auto;align-items:end;gap:12px;margin-top:18px;display:grid}.admin-invite-form label{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;gap:7px;font-size:.78rem;font-weight:900;display:grid}.brand strong,.brand small{display:block}.brand strong{font-family:var(--serif);letter-spacing:.12em;text-transform:uppercase;font-size:1.1rem;font-weight:500}.brand small,.muted,.hero-summary,.macro span,.stat span{color:var(--muted)}.top-nav{justify-content:center;gap:20px;display:flex}.header-actions{justify-content:flex-end;align-items:center;gap:10px;display:flex}.nav-link,.bottom-link{color:var(--ink);letter-spacing:.08em;text-transform:uppercase;background:0 0;border:0;min-width:0;padding:8px 0;font-size:.72rem;font-weight:800;text-decoration:none}.nav-link.is-active,.bottom-link.is-active{color:var(--herb);box-shadow:inset 0 -1px 0 var(--herb)}.main{width:min(1180px,100% - 36px);margin:0 auto;padding:18px 0 74px}.hero-band{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:24px;margin-bottom:30px;padding:48px 0 32px;display:grid}.eyebrow{color:var(--muted);letter-spacing:.14em;text-transform:uppercase;margin:0 0 10px;font-size:.68rem;font-weight:900}h1,h2,h3,p{margin-top:0}h1,h2{font-family:var(--serif);font-weight:500}h1{max-width:860px;margin-bottom:0;font-size:clamp(2.7rem,7vw,5.6rem);line-height:.95}h2{margin-bottom:12px;font-size:clamp(1.7rem,3vw,2.6rem);line-height:1}h3{margin-bottom:10px;font-size:.98rem}p{line-height:1.65}.hero-summary{flex-wrap:wrap;justify-content:flex-end;gap:10px;max-width:360px;display:flex}.hero-summary span,.chip,.filter-button{border:1px solid var(--border);background:var(--surface);letter-spacing:.09em;text-transform:uppercase;padding:7px 10px;font-size:.68rem;font-weight:900}.primary-action,.secondary-action,.icon-action{border:1px solid var(--primary);border-radius:0;justify-content:center;align-items:center;min-height:42px;font-weight:900;text-decoration:none;display:inline-flex}.primary-action{background:var(--primary);color:var(--primary-ink);padding:11px 16px}.primary-action:hover{background:var(--primary-dark)}.secondary-action{color:var(--herb);border-color:var(--herb);background:0 0;padding:10px 14px}.secondary-action.on-dark{color:var(--primary-ink);border-color:#ffffffb3}.icon-action{width:42px;height:42px;color:var(--herb);background:0 0;font-size:1.2rem}.dashboard-stack,.editorial-section,.recipe-detail-grid>div,.swap-list,.ingredient-list,.instruction-list,.grocery-list{gap:18px;display:grid}.editorial-hero{grid-template-columns:.78fr 1.22fr;align-items:stretch;gap:0;min-height:450px;margin:6px 0 42px;display:grid;position:relative}.hero-card{z-index:1;background:var(--primary);min-width:0;color:var(--primary-ink);align-self:center;margin-right:-36px;padding:clamp(28px,4vw,48px)}.hero-card .eyebrow,.hero-card p{color:#ffffffd1}.hero-card p{max-width:520px}.hero-card h1{overflow-wrap:break-word;max-width:min(560px,100%);margin-bottom:18px;font-size:clamp(2.4rem,5vw,4.5rem)}.featured-image{object-fit:cover;width:100%;height:100%;min-height:430px}.editorial-section{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:38px 0 42px}.dashboard-grid,.recipe-detail-grid{grid-template-columns:minmax(0,1.18fr) minmax(320px,.82fr);gap:28px;display:grid}.recipe-detail-grid>div,.recipe-detail-grid>aside{min-width:0}.panel,.recipe-card,.grocery-section{background:var(--surface);border:1px solid var(--border)}.panel{padding:26px}.archive-tools{background:var(--paper);border:1px solid var(--border);gap:14px;padding:18px;display:grid}.section-header,.card-row,.macro-strip,.recipe-actions,.ingredient-row{justify-content:space-between;align-items:center;gap:14px;display:flex}.start-actions{justify-content:flex-start;margin-top:20px}.stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px;display:grid}.stat,.macro{border-top:1px solid var(--border);padding:11px 0}.macro-strip{align-items:stretch}.macro{min-width:72px}.stat strong,.macro strong{font-family:var(--serif);font-size:1.35rem;font-weight:500;display:block}.macro span,.stat span{letter-spacing:.1em;text-transform:uppercase;margin-top:2px;font-size:.66rem;font-weight:900;display:block}.recipe-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;display:grid}.spaced-grid{margin-top:20px}.recipe-card{background:var(--bg);cursor:pointer;transition:transform .16s,box-shadow .16s;position:relative;overflow:hidden}.recipe-card:hover,.recipe-card:focus-within{box-shadow:var(--shadow);transform:translateY(-3px)}.recipe-card-view-link{z-index:1;position:absolute;inset:0}.recipe-card-view-link:focus-visible{outline:2px solid var(--herb);outline-offset:-2px}.food-art{object-fit:cover;background:var(--surface-2);width:100%;display:block}.recipe-image{aspect-ratio:4/3;border-bottom:1px solid var(--border)}.recipe-card-body{padding:16px 0 0}.recipe-card h3,.recipe-card p,.recipe-card .tag-row,.recipe-card .macro-strip,.recipe-card .recipe-actions{margin-left:16px;margin-right:16px}.recipe-card .recipe-actions{z-index:2;margin-bottom:16px;position:relative}.tag-row,.filter-row{flex-wrap:wrap;gap:8px;display:flex}.chip{color:var(--primary)}.filter-button{color:var(--muted)}.filter-button.is-active{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}.searchbar{border:0;border-bottom:1px solid var(--border);width:100%;color:var(--ink);background:0 0;margin-bottom:16px;padding:15px 0}.auth-layout,.admin-stack,.account-panel{gap:22px;display:grid}.auth-layout{width:min(560px,100%);margin:58px auto}.auth-card,.setup-notice,.empty-state{border:1px solid var(--border);background:var(--surface);gap:16px;padding:clamp(24px,5vw,42px);display:grid}.setup-notice{background:var(--paper);margin-bottom:28px}.auth-card h1{font-size:clamp(2.4rem,6vw,4rem)}.auth-inner-form,.mfa-actions{gap:16px;display:grid}.auth-card-actions,.auth-card-actions form{gap:10px;display:grid}.auth-card label,.field-stack,.plan-modal label{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;gap:7px;font-size:.78rem;font-weight:900;display:grid}.auth-card input,.auth-card select,.auth-card textarea,.admin-invite-form input,.admin-form input,.admin-form select,.admin-form textarea,.admin-row select{border:1px solid var(--border);background:var(--surface);width:100%;min-height:44px;color:var(--ink);padding:10px 12px}.auth-card input.code-input{min-height:58px;font-family:var(--serif);letter-spacing:.18em;text-align:center;font-size:2rem}.captcha-wrap{min-height:1px}.admin-form textarea,.auth-card textarea{resize:vertical;line-height:1.45}.auth-alt,.form-message{color:var(--muted)}.form-message{border-left:3px solid var(--accent);background:var(--paper);margin:0;padding:10px 12px}.form-message.is-success{border-left-color:var(--herb)}.recipe-import-form{max-width:760px}.import-review-panel{gap:22px;display:grid}.import-warning-list{border:1px solid var(--border);border-left:3px solid var(--accent);background:var(--paper);gap:8px;padding:14px 16px;display:grid}.import-warning-list ul{color:var(--muted);margin:0;padding-left:18px}.import-warning-list li+li{margin-top:6px}.image-upload-field{border:1px solid var(--border);background:var(--paper);grid-template-columns:minmax(180px,260px) minmax(0,1fr);align-items:start;gap:16px;padding:16px;display:grid}.image-upload-preview{border:1px solid var(--border);background:var(--surface);min-height:150px;color:var(--muted);text-align:center;place-items:center;display:grid;overflow:hidden}.image-upload-preview img{object-fit:cover;width:100%;height:100%;min-height:150px}.image-upload-actions{flex-wrap:wrap;gap:10px;display:flex}.image-upload-button{position:relative;overflow:hidden}.image-upload-button input{opacity:0;cursor:pointer;position:absolute;inset:0}.link-button{color:var(--herb);text-align:left;text-underline-offset:4px;background:0 0;border:0;padding:0;font-weight:900;text-decoration:underline}.link-button:disabled{color:var(--muted);cursor:not-allowed;text-decoration:none}.account-grid,.admin-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.account-actions{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.admin-form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-form{gap:18px;display:grid}.admin-table{gap:10px;margin-top:18px;display:grid}.admin-row{border-top:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px 0;display:grid}.admin-row strong,.admin-row span{display:block}.admin-row-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.admin-row-actions form{gap:8px;display:flex}.danger-action{border-color:var(--accent);color:var(--accent)}.field-error{color:var(--accent);letter-spacing:0;text-transform:none;font-size:.76rem}.check-row{color:var(--ink);align-items:center;gap:10px;font-weight:800;display:flex}.check-row input{width:auto}.qr-wrap{border:1px solid var(--border);background:#fff;place-items:center;padding:18px;display:grid}.qr-wrap svg{width:min(240px,100%);height:auto}.archive-search{margin-bottom:0;padding:12px 0}.detail-hero{min-height:430px}.recipe-facts{border-top:1px solid var(--border);border-bottom:1px solid var(--border);grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:22px 0 14px;display:grid}.recipe-facts div{border-right:1px solid var(--border);padding:14px 12px}.recipe-facts div:last-child{border-right:0}.recipe-facts dt{color:var(--muted);letter-spacing:.09em;text-transform:uppercase;font-size:.68rem;font-weight:900}.recipe-facts dd{font-family:var(--serif);margin:5px 0 0;font-size:1.25rem}.ingredient-measure{text-align:right;justify-items:end;gap:3px;min-width:96px;display:grid}.sticky-panel{background:var(--paper);align-self:start;position:sticky;top:104px}.scale-selector{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:16px;display:grid}.scale-selector button{border:1px solid var(--border);background:var(--surface);min-height:40px;color:var(--muted);font-weight:900}.scale-selector button.is-active{border-color:var(--primary);background:var(--primary);color:var(--primary-ink)}.stepper{grid-template-columns:42px 1fr 42px;align-items:center;gap:8px;margin:14px 0;display:grid}.stepper button{border:1px solid var(--border);background:var(--bg);height:42px;color:var(--herb);font-weight:900}.stepper output{text-align:center;font-family:var(--serif);gap:2px;font-size:1.7rem;display:grid}.stepper output span{color:var(--muted);font-family:var(--sans);letter-spacing:.09em;text-transform:uppercase;font-size:.68rem;font-weight:900}.full-button{width:100%;margin-top:14px}.swap-button{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--ink);text-align:left;padding:13px}.swap-button span{margin-top:4px;display:block}.swap-button.is-active{border-color:var(--herb);box-shadow:inset 4px 0 0 var(--herb)}.grocery-callout{background:var(--surface);border:1px solid var(--border);grid-template-columns:minmax(0,1fr) minmax(300px,.55fr);align-items:center;gap:28px;padding:clamp(24px,4vw,42px);display:grid}.grocery-callout-actions{gap:4px;display:grid}.ingredient-row,.grocery-item{border:0;border-bottom:1px solid var(--border);padding:12px 0}.ingredient-row:last-child,.grocery-item:last-child{border-bottom:0}.section-spacer{margin-top:22px}.grocery-layout{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.grocery-section{padding:20px}.grocery-item{align-items:center;gap:10px;display:flex}.toast{background:var(--ink);color:var(--bg);opacity:0;pointer-events:none;z-index:30;padding:12px 14px;transition:all .18s;position:fixed;bottom:24px;right:24px;transform:translateY(12px)}.toast.is-visible{opacity:1;transform:translateY(0)}.modal-backdrop{z-index:40;background:#20211f57;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.plan-modal{border:1px solid var(--border);background:var(--bg);gap:14px;width:min(460px,100%);padding:24px;display:grid;box-shadow:0 24px 80px #20211f38}.plan-modal label{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;gap:7px;font-size:.78rem;font-weight:900;display:grid}.plan-modal select,.plan-modal input{border:1px solid var(--border);background:var(--surface);width:100%;min-height:44px;color:var(--ink);padding:10px 12px}.bottom-nav{display:none}@media (max-width:1080px){.recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:980px){.site-header{grid-template-columns:1fr auto}.top-nav,.header-action,.header-actions{display:none}.main{width:min(1180px,100% - 28px);padding-bottom:88px}.editorial-hero,.hero-band,.dashboard-grid,.recipe-detail-grid,.grocery-layout,.grocery-callout{grid-template-columns:1fr}.hero-card{margin-right:0}.sticky-panel{position:static}.recipe-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.recipe-facts div:nth-child(2){border-right:0}.recipe-facts div:nth-child(-n+2){border-bottom:1px solid var(--border)}.bottom-nav{border:1px solid var(--border);background:var(--bg);box-shadow:var(--shadow);z-index:25;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;padding:6px;display:grid;position:fixed;bottom:12px;left:12px;right:12px;overflow:hidden}.bottom-link{letter-spacing:.04em;text-align:center;white-space:nowrap;place-items:center;min-height:44px;padding:10px 4px;font-size:.64rem;display:grid}}@media (max-width:640px){h1{font-size:2.7rem}.hero-card{padding:28px}.hero-card h1{white-space:normal;width:min(100%,280px);font-size:2.2rem;line-height:.98}.hero-card p{max-width:280px;font-size:.95rem}.hero-summary{justify-content:flex-start}.recipe-grid,.stat-grid,.image-upload-field,.account-grid,.admin-form-grid,.admin-form-grid.four,.admin-invite-form,.admin-row{grid-template-columns:1fr}.admin-row-actions,.admin-row-actions form,.account-actions,.account-actions form{width:100%}.account-actions,.admin-row-actions form{flex-direction:column}.detail-hero,.featured-image{min-height:280px}.section-header{flex-direction:column;align-items:flex-start}}
