:root {
  --paper:#f8f5ee; --paper-2:#efe9dd; --ink:#292823; --muted:#777268; --line:#ddd5c7;
  --white:#fffdf8; --terracotta:#b95738; --terracotta-dark:#8f3f27; --sage:#75836b;
  --sage-pale:#dce3d5; --honey:#d59c40; --plum:#72586f; --danger:#a33c30;
  --shadow:0 16px 45px rgba(62,49,32,.10); --radius:22px; --safe-bottom:env(safe-area-inset-bottom,0px);
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; background:var(--paper); }
body { margin:0; color:var(--ink); background:var(--paper); font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; line-height:1.5; }
button,input,select,textarea { font:inherit; color:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { font-family:Georgia,"Times New Roman",serif; line-height:1.08; letter-spacing:-.025em; }
h1 { font-size:clamp(2.25rem,7vw,4.8rem); margin-bottom:.4em; font-weight:600; }
h2 { font-size:clamp(1.65rem,4vw,2.35rem); margin-bottom:.45em; font-weight:600; }
h3 { font-size:1.25rem; }
.skip-link { position:fixed; top:-80px; left:12px; z-index:1000; background:var(--ink); color:white; padding:10px 14px; border-radius:8px; }
.skip-link:focus { top:12px; }
.topbar { height:78px; padding:0 max(24px,calc((100vw - 1240px)/2)); display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid rgba(105,96,83,.14); background:rgba(248,245,238,.94); backdrop-filter:blur(18px); position:sticky; top:0; z-index:30; }
.brand { display:flex; align-items:center; gap:11px; }
.brand-mark { display:grid; place-items:center; width:39px; height:39px; border-radius:13px; color:var(--white); background:var(--terracotta); font:600 1.4rem Georgia,serif; box-shadow:0 6px 18px rgba(185,87,56,.25); }
.brand strong,.brand small { display:block; }
.brand strong { font:600 1.13rem Georgia,serif; }
.brand small { color:var(--muted); font-size:.7rem; letter-spacing:.03em; }
.desktop-nav { display:flex; align-items:center; gap:6px; }
.desktop-nav a { padding:10px 14px; border-radius:12px; font-weight:650; font-size:.9rem; color:var(--muted); }
.desktop-nav a:hover,.desktop-nav a.active { background:var(--paper-2); color:var(--ink); }
.desktop-nav .primary-link { color:white; background:var(--terracotta); margin-left:8px; }
.page-shell { width:min(1240px,calc(100% - 40px)); min-height:calc(100vh - 78px); margin:0 auto; padding:44px 0 90px; }
.flash-stack { display:grid; gap:8px; margin-bottom:22px; }
.flash { padding:13px 16px; border:1px solid var(--line); border-radius:14px; background:var(--white); box-shadow:0 6px 20px rgba(62,49,32,.06); }
.flash.success { border-color:#a8b99e; background:#f2f7ef; }.flash.error { border-color:#ddb0a8; background:#fff3f0; }.flash.info { border-color:#d8c48e; background:#fff9e8; }
.eyebrow { margin:0 0 8px; text-transform:uppercase; letter-spacing:.13em; font-size:.72rem; font-weight:800; color:var(--terracotta); }
.lead { color:#5d5952; font-size:1.08rem; max-width:58ch; }
.muted { color:var(--muted); }.tiny { font-size:.78rem; }.desktop-only { display:inline-flex; }
.hero { min-height:295px; padding:44px 48px; border-radius:30px; color:#fff; background:linear-gradient(125deg,rgba(39,45,34,.96),rgba(74,82,64,.9)), radial-gradient(circle at 80% 20%,#a9af8e,transparent 55%); position:relative; overflow:hidden; display:flex; justify-content:space-between; align-items:flex-end; box-shadow:var(--shadow); }
.hero:after { content:""; position:absolute; width:320px; height:320px; border:1px solid rgba(255,255,255,.16); border-radius:50%; right:-70px; top:-150px; box-shadow:0 0 0 38px rgba(255,255,255,.035),0 0 0 75px rgba(255,255,255,.025); }
.hero h1 { max-width:680px; margin-bottom:10px; }.hero p:not(.eyebrow) { color:rgba(255,255,255,.72); margin:0; }
.surprise { position:relative; z-index:1; flex:0 0 auto; min-width:190px; padding:17px 18px; border:1px solid rgba(255,255,255,.22); background:rgba(255,255,255,.12); border-radius:17px; display:grid; grid-template-columns:32px 1fr; column-gap:8px; backdrop-filter:blur(12px); }
.surprise>span { grid-row:1/3; font-size:1.45rem; }.surprise strong,.surprise small { display:block; }.surprise small { opacity:.65; }
.quick-actions { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin:18px 0 48px; }
.quick-actions a { min-height:94px; border:1px solid var(--line); background:var(--white); border-radius:18px; padding:15px; display:grid; grid-template-columns:48px 1fr; column-gap:12px; align-items:center; box-shadow:0 5px 20px rgba(62,49,32,.045); }
.quick-actions a:hover { transform:translateY(-2px); box-shadow:0 10px 28px rgba(62,49,32,.1); }
.quick-actions strong,.quick-actions small { display:block; }.quick-actions small { color:var(--muted); font-size:.76rem; align-self:start; margin-top:-9px; }
.quick-icon,.option-icon { width:48px; height:48px; display:grid; place-items:center; color:white; border-radius:15px; font-size:1.3rem; grid-row:1/3; }
.terracotta { background:var(--terracotta); }.sage { background:var(--sage); }.honey { background:var(--honey); }.plum { background:var(--plum); }
.section-block { margin-top:46px; }.section-heading,.page-heading,.form-section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; }
.section-heading h2,.page-heading h1 { margin-bottom:0; }.section-heading>a,.result-heading a { color:var(--terracotta); font-weight:700; font-size:.88rem; }
.recipe-grid { display:grid; gap:20px; margin-top:20px; }.featured-grid { grid-template-columns:repeat(4,1fr); }.compact-grid,.list-grid { grid-template-columns:repeat(4,1fr); }
.recipe-card { min-width:0; border:1px solid var(--line); background:var(--white); border-radius:20px; overflow:hidden; box-shadow:0 6px 24px rgba(62,49,32,.055); transition:transform .2s,box-shadow .2s; }
.recipe-card:hover { transform:translateY(-3px); box-shadow:0 14px 34px rgba(62,49,32,.11); }
.card-media { display:block; height:190px; position:relative; overflow:hidden; background:#e5dfd2; }
.card-media img { width:100%; height:100%; object-fit:cover; transition:transform .35s; }.recipe-card:hover img { transform:scale(1.025); }
.recipe-placeholder { height:100%; display:grid; place-items:center; background:radial-gradient(circle at 70% 20%,#e7b797,transparent 30%),linear-gradient(135deg,#c16948,#8e4430); }
.recipe-placeholder span { width:64px; height:64px; border:2px solid rgba(255,255,255,.55); color:white; display:grid; place-items:center; border-radius:50%; font:600 2rem Georgia,serif; }
.recipe-placeholder.large { min-height:440px; }.heart { position:absolute; right:12px; top:12px; width:34px; height:34px; display:grid; place-items:center; border-radius:50%; color:var(--terracotta); background:rgba(255,253,248,.92); box-shadow:0 3px 10px rgba(0,0,0,.15); }
.card-body { padding:16px 17px 17px; }.card-body h3 { margin:0 0 11px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }.card-body h3 a:after { content:""; }
.card-meta { margin:0; display:flex; gap:12px; color:var(--muted); font-size:.76rem; }.card-meta span:last-child { color:var(--terracotta); }
.empty-state { border:1px dashed #c9c0b1; background:rgba(255,253,248,.58); padding:52px 24px; text-align:center; border-radius:24px; margin-top:20px; }.empty-state>span { font-size:2rem; color:var(--terracotta); }.empty-state p { color:var(--muted); }
.import-strip { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:18px; }.import-mini { border:1px solid var(--line); background:var(--white); padding:10px; border-radius:16px; display:flex; align-items:center; gap:12px; min-width:0; }.import-mini img,.file-placeholder { width:54px; height:54px; object-fit:cover; border-radius:11px; background:var(--paper-2); display:grid; place-items:center; }.import-mini>span:last-child { min-width:0; }.import-mini strong,.import-mini small { display:block; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }.status { width:max-content; margin-top:4px; border-radius:999px; padding:2px 7px; background:var(--paper-2); font-size:.68rem; }.status.processing { color:#80611f; background:#fff2cb; }.status.review { color:#32603d; background:#e4f2df; }.status.failed { color:#8e3025; background:#fbe1dc; }
.button { border:0; border-radius:13px; min-height:46px; padding:11px 17px; display:inline-flex; align-items:center; justify-content:center; gap:7px; font-weight:750; cursor:pointer; }.button.primary { color:white; background:var(--terracotta); box-shadow:0 7px 18px rgba(185,87,56,.22); }.button.primary:hover { background:var(--terracotta-dark); }.button.secondary { border:1px solid var(--line); background:var(--white); }.button.ghost { background:transparent; color:var(--muted); }.button.small { min-height:38px; padding:8px 12px; font-size:.82rem; }.button.wide { width:100%; }.button:disabled { opacity:.5; cursor:not-allowed; }
.page-heading { margin-bottom:28px; }.page-heading p:last-child { color:var(--muted); margin:8px 0 0; }
.search-panel { border:1px solid var(--line); background:var(--white); padding:16px; border-radius:20px; box-shadow:0 6px 24px rgba(62,49,32,.05); }.search-box { height:52px; border:1px solid var(--line); border-radius:14px; display:flex; align-items:center; gap:10px; padding:0 14px; }.search-box span { color:var(--muted); font-size:1.35rem; }.search-box input { width:100%; border:0; outline:0; background:transparent; font-size:1rem; }.filter-row { margin-top:12px; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)) auto; gap:9px; }.filter-row select { min-width:0; }.result-heading { display:flex; justify-content:space-between; margin:24px 2px 0; }
label { display:grid; gap:7px; color:#514e47; font-weight:700; font-size:.83rem; }
input,select,textarea { width:100%; border:1px solid #d7cec0; background:var(--white); border-radius:12px; padding:11px 12px; outline:none; min-height:46px; }.search-box input { min-height:0; }.recipe-form input:focus,.recipe-form textarea:focus,.recipe-form select:focus,.import-form input:focus,.import-form textarea:focus { border-color:var(--terracotta); box-shadow:0 0 0 3px rgba(185,87,56,.12); }.form-card { border:1px solid var(--line); background:var(--white); border-radius:var(--radius); padding:25px; margin-bottom:18px; box-shadow:0 6px 24px rgba(62,49,32,.045); }.form-card>h2 { font-size:1.55rem; }.form-grid { display:grid; gap:14px; }.form-grid.four { grid-template-columns:repeat(4,1fr); }.form-grid.two { grid-template-columns:repeat(2,1fr); }.form-grid .full { grid-column:1/-1; }.recipe-form>.form-card:first-of-type>.full { margin-bottom:15px; }.form-section-heading { align-items:center; margin-bottom:16px; }.form-section-heading h2 { margin:0; }.form-section-heading p { color:var(--muted); margin:4px 0 0; font-size:.84rem; }
.ingredient-editor,.step-editor { display:grid; gap:9px; }.ingredient-row { display:grid; grid-template-columns:1.1fr .72fr .72fr 2fr 1.5fr 38px; gap:7px; align-items:center; }.ingredient-row input { min-width:0; }.icon-button { width:38px; height:38px; padding:0; border:0; border-radius:10px; background:var(--paper-2); cursor:pointer; font-size:1.25rem; }.icon-button.danger { color:var(--danger); }.step-row { display:grid; grid-template-columns:38px 1fr 70px 38px; gap:9px; align-items:center; }.step-row label { gap:2px; font-size:.67rem; text-align:center; }.step-number,.step-badge { width:34px; height:34px; display:grid; place-items:center; flex:0 0 auto; border-radius:50%; background:var(--terracotta); color:#fff; font-weight:800; }
.sticky-actions { position:sticky; bottom:14px; z-index:20; margin:22px auto 0; padding:10px; width:max-content; max-width:100%; display:flex; gap:8px; border:1px solid rgba(198,188,173,.8); border-radius:17px; background:rgba(255,253,248,.93); backdrop-filter:blur(16px); box-shadow:0 12px 35px rgba(62,49,32,.13); }
.detail-hero { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr); gap:54px; align-items:center; }.detail-image { border-radius:28px; overflow:hidden; min-height:440px; max-height:620px; box-shadow:var(--shadow); }.detail-image>img { width:100%; height:100%; min-height:440px; object-fit:cover; }.detail-topline { display:flex; justify-content:space-between; align-items:center; margin-bottom:46px; color:var(--muted); font-weight:700; font-size:.85rem; }.detail-topline form { margin:0; }.favorite-button { width:44px; height:44px; border:1px solid var(--line); border-radius:50%; background:var(--white); color:#c5beb1; font-size:1.35rem; cursor:pointer; }.favorite-button.active { color:var(--terracotta); }.detail-intro h1 { font-size:clamp(2.7rem,5vw,4.9rem); }.detail-facts { display:flex; flex-wrap:wrap; margin:30px 0 21px; gap:10px; }.detail-facts span { min-width:112px; padding:10px 14px; border-left:2px solid var(--line); }.detail-facts small,.detail-facts strong { display:block; }.detail-facts small { color:var(--muted); font-size:.68rem; text-transform:uppercase; letter-spacing:.08em; }.tag-list { display:flex; flex-wrap:wrap; gap:7px; }.tag-list a { border-radius:999px; padding:5px 10px; color:#4f5d47; background:var(--sage-pale); font-weight:700; font-size:.75rem; }.detail-actions { display:flex; gap:9px; margin-top:30px; }.recipe-columns { display:grid; grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr); gap:70px; margin:75px auto; width:min(1050px,100%); }.ingredient-list,.steps-list { list-style:none; padding:0; margin:22px 0 0; }.ingredient-list li:not(.ingredient-group) { display:grid; grid-template-columns:100px 1fr; gap:15px; padding:12px 2px; border-bottom:1px solid var(--line); }.ingredient-list .amount { font-weight:800; }.ingredient-list small { display:block; color:var(--muted); }.ingredient-group { margin:24px 0 4px; color:var(--terracotta); font-weight:800; text-transform:uppercase; letter-spacing:.1em; font-size:.7rem; }.steps-list { counter-reset:steps; display:grid; gap:20px; }.steps-list li { display:flex; gap:15px; align-items:flex-start; }.steps-list p { margin:4px 0 6px; }.steps-list small { color:var(--terracotta); font-weight:700; }.notes-card,.made-it { border:1px solid var(--line); background:var(--white); padding:26px; border-radius:20px; margin:18px auto; width:min(1050px,100%); }.notes-card a { color:var(--terracotta); font-weight:750; }.made-it { display:flex; justify-content:space-between; align-items:center; }.made-it h2 { margin:0; }.made-it form { display:flex; gap:8px; }.danger-zone { width:min(1050px,100%); margin:28px auto; color:var(--muted); }.danger-zone form { margin-top:12px; }.text-danger { color:var(--danger); border:0; background:transparent; padding:0; cursor:pointer; }
.cook-page .topbar,.cook-page .bottom-nav { display:none; }.cook-page .page-shell { width:min(1100px,calc(100% - 32px)); padding-top:20px; }.cook-header { display:flex; justify-content:space-between; align-items:center; color:var(--muted); font-weight:750; font-size:.84rem; }.cook-header button { border:1px solid var(--line); background:var(--white); border-radius:10px; padding:8px 10px; }.cook-title { text-align:center; padding:55px 0 38px; border-bottom:1px solid var(--line); }.cook-title h1 { font-size:clamp(2.5rem,6vw,4.8rem); }.serving-control { display:flex; align-items:center; justify-content:center; gap:12px; }.serving-control button { width:40px; height:40px; border:1px solid var(--line); background:var(--white); border-radius:50%; }.cook-layout { display:grid; grid-template-columns:.8fr 1.2fr; gap:65px; padding:45px 0; }.cook-ingredients,.cook-steps { list-style:none; padding:0; }.cook-ingredients li { border-bottom:1px solid var(--line); }.cook-ingredients label { display:flex; flex-direction:row; gap:12px; align-items:flex-start; padding:13px 0; font-size:1rem; }.cook-ingredients input,.cook-steps input { width:22px; height:22px; min-height:0; accent-color:var(--terracotta); }.cook-ingredients input:checked+span,.cook-steps input:checked~span { opacity:.4; text-decoration:line-through; }.cook-ingredients small { display:block; color:var(--muted); }.cook-steps { display:grid; gap:15px; }.cook-steps label { display:grid; grid-template-columns:24px 38px 1fr; gap:12px; align-items:start; border:1px solid var(--line); background:var(--white); border-radius:18px; padding:18px; font-size:1rem; }.timer-button { display:block; width:max-content; border:0; color:var(--terracotta); background:#f7e5dd; border-radius:999px; padding:6px 10px; margin-top:12px; font-size:.75rem; font-weight:800; }.timer-toast { position:fixed; right:20px; bottom:20px; z-index:80; border-radius:15px; padding:13px 14px; color:white; background:var(--ink); box-shadow:var(--shadow); display:flex; gap:18px; align-items:center; }.timer-toast button { color:white; border:1px solid rgba(255,255,255,.3); background:transparent; border-radius:8px; padding:5px 8px; }
.import-form { display:grid; gap:14px; }.import-option { border:1px solid var(--line); border-radius:22px; padding:22px; background:var(--white); display:grid; grid-template-columns:52px 1fr; gap:17px; box-shadow:0 6px 24px rgba(62,49,32,.045); }.import-option h2 { font-size:1.5rem; margin:0 0 5px; }.import-option p { color:var(--muted); margin-bottom:14px; }.upload-zone { min-height:130px; border:1.5px dashed #bdb2a3; border-radius:16px; display:grid; place-items:center; text-align:center; padding:20px; cursor:pointer; background:#fcfaf5; }.upload-zone input { position:absolute; opacity:0; pointer-events:none; }.upload-zone span,.upload-zone small { display:block; }.upload-zone small { color:var(--muted); font-weight:400; }.file-preview { display:flex; gap:8px; flex-wrap:wrap; margin-top:9px; }.preview-chip { padding:6px 9px; border-radius:9px; background:var(--paper-2); font-size:.72rem; }.hint { font-size:.75rem; margin:7px 0 0!important; }.privacy-note { display:flex; gap:12px; align-items:flex-start; padding:14px 17px; border-radius:15px; background:var(--sage-pale); color:#4a5644; }.privacy-note p { margin:0; font-size:.82rem; }.status-page { width:min(620px,100%); margin:50px auto; text-align:center; }.status-preview { height:145px; display:flex; justify-content:center; margin-bottom:-35px; }.status-preview img,.pdf-card { width:115px; height:140px; object-fit:cover; border:5px solid var(--paper); border-radius:15px; box-shadow:0 8px 24px rgba(62,49,32,.14); transform:rotate(-4deg); }.status-preview>:nth-child(2) { transform:translateX(-25px) rotate(4deg); }.status-preview>:nth-child(3) { transform:translateX(-50px) rotate(8deg); }.pdf-card { display:grid; place-items:center; background:var(--white); color:var(--terracotta); font-weight:850; }.analysis-orbit { width:96px; height:96px; display:grid; place-items:center; margin:28px auto; border:2px solid var(--terracotta); border-radius:50%; box-shadow:0 0 0 10px rgba(185,87,56,.08),0 0 0 20px rgba(185,87,56,.04); animation:pulse 1.7s infinite; }.analysis-orbit span { font:600 2rem Georgia,serif; color:var(--terracotta); }.analysis-orbit.failed { animation:none; border-color:var(--danger); }.progress-track { width:min(340px,90%); height:5px; margin:24px auto; border-radius:99px; overflow:hidden; background:var(--line); }.progress-track span { display:block; width:35%; height:100%; background:var(--terracotta); border-radius:99px; animation:progress 1.4s infinite ease-in-out; }.warning-card { border:1px solid #e1bc73; background:#fff6df; padding:17px 20px; border-radius:16px; margin-bottom:18px; }.warning-card ul { margin:8px 0 0; padding-left:20px; }.review-layout { display:grid; grid-template-columns:260px 1fr; gap:22px; align-items:start; }.source-panel { position:sticky; top:98px; border:1px solid var(--line); background:var(--paper-2); border-radius:18px; padding:18px; }.source-panel h2 { font-size:1.35rem; }.source-panel a:not(.button) { color:var(--terracotta); font-weight:750; }.recipe-form.compact .form-card { padding:19px; }.settings-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }.settings-grid .form-card { margin:0; }.instruction-list { color:#514e47; padding-left:22px; }.instruction-list li { margin:8px 0; }.token-box { border:1px solid #b8c9ae; background:#f0f7ec; padding:14px; border-radius:14px; margin:14px 0; }.token-box code { display:block; margin:8px 0; padding:9px; background:white; border-radius:8px; overflow-wrap:anywhere; user-select:all; }.success-text { color:#3d7048; font-weight:750; }.login-page { min-height:100vh; background:linear-gradient(150deg,#253127 0 42%,var(--paper) 42%); }.login-page .page-shell { display:grid; place-items:center; min-height:100vh; padding:30px 0; }.login-card { width:min(500px,100%); padding:38px; border-radius:28px; background:rgba(255,253,248,.97); box-shadow:0 26px 80px rgba(15,25,18,.22); }.login-card h1 { font-size:clamp(2.4rem,7vw,3.8rem); }.login-illustration { float:right; width:74px; height:74px; display:grid; place-items:center; border-radius:24px; color:white; background:var(--terracotta); transform:rotate(4deg); box-shadow:0 12px 30px rgba(185,87,56,.25); }.login-illustration span { font:600 2.5rem Georgia,serif; }.stack-form { display:grid; gap:13px; margin-top:28px; }
.review-source-image { width:100%; max-height:320px; object-fit:contain; border-radius:12px; background:var(--white); margin:10px 0; }.pdf-source { display:block; padding:12px; border-radius:10px; background:var(--white); margin:9px 0; }
.upload-zone { position:relative; }.upload-zone input[type="file"] { width:1px; height:1px; min-height:0; overflow:hidden; }
.bottom-nav { display:none; }
@keyframes pulse { 50% { transform:scale(1.04); box-shadow:0 0 0 14px rgba(185,87,56,.06),0 0 0 28px rgba(185,87,56,.02); } }
@keyframes progress { from { transform:translateX(-100%); } to { transform:translateX(290%); } }
@media (max-width:900px) {
  .page-shell { width:min(100% - 28px,720px); padding-top:27px; padding-bottom:calc(100px + var(--safe-bottom)); }
  .topbar { height:64px; padding:0 16px; }.brand small,.desktop-nav { display:none; }.brand-mark { width:36px; height:36px; }.brand strong { font-size:1rem; }
  .bottom-nav { position:fixed; left:0; right:0; bottom:0; z-index:50; height:calc(70px + var(--safe-bottom)); padding:7px 12px var(--safe-bottom); display:grid; grid-template-columns:repeat(4,1fr); align-items:start; border-top:1px solid rgba(105,96,83,.2); background:rgba(255,253,248,.95); backdrop-filter:blur(18px); box-shadow:0 -6px 25px rgba(62,49,32,.07); }
  .bottom-nav a { display:grid; justify-items:center; gap:2px; color:var(--muted); font-size:.68rem; font-weight:750; }.bottom-nav a>span { font-size:1.28rem; line-height:1.45; }.bottom-nav a.active { color:var(--terracotta); }.bottom-nav .add-button>span { width:43px; height:43px; margin-top:-20px; border:4px solid var(--paper); border-radius:50%; display:grid; place-items:center; color:white; background:var(--terracotta); font-size:1.45rem; box-shadow:0 7px 17px rgba(185,87,56,.28); }.bottom-nav .add-button { color:var(--terracotta); }
  .hero { min-height:275px; padding:30px 24px; display:block; }.hero h1 { font-size:2.7rem; }.surprise { margin-top:28px; min-width:0; width:190px; }
  .quick-actions { grid-template-columns:repeat(2,1fr); gap:9px; margin:12px 0 34px; }.quick-actions a { min-height:82px; padding:11px; grid-template-columns:43px 1fr; }.quick-icon { width:43px; height:43px; }.quick-actions small { font-size:.68rem; }
  .featured-grid,.compact-grid,.list-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }.card-media { height:155px; }.card-body { padding:13px; }.card-body h3 { font-size:1.08rem; }.card-meta { gap:7px; font-size:.68rem; }
  .import-strip { grid-template-columns:1fr; }.form-grid.four { grid-template-columns:repeat(2,1fr); }.filter-row { grid-template-columns:repeat(2,1fr); }.filter-row .button { grid-column:1/-1; }.ingredient-row { grid-template-columns:.8fr .7fr .7fr 1.7fr 36px; }.ingredient-row input[name="ingredient_note[]"] { grid-column:1/5; }.ingredient-row .icon-button { grid-column:5; grid-row:1; }.detail-hero { grid-template-columns:1fr; gap:28px; }.detail-image,.detail-image>img { min-height:340px; max-height:460px; }.detail-topline { margin-bottom:24px; }.recipe-columns { grid-template-columns:1fr; gap:40px; margin:45px auto; }.review-layout { grid-template-columns:1fr; }.source-panel { position:static; }.settings-grid { grid-template-columns:1fr; }.cook-layout { grid-template-columns:1fr; gap:35px; }.made-it { display:block; }.made-it form { margin-top:15px; }.desktop-only { display:none; }
}
@media (max-width:520px) {
  .page-shell { width:calc(100% - 22px); }.page-heading { align-items:start; }.page-heading h1 { font-size:2.35rem; }.section-block { margin-top:35px; }
  .hero { margin-left:-11px; margin-right:-11px; border-radius:0 0 28px 28px; min-height:290px; }.hero h1 { font-size:2.55rem; }.quick-actions { margin-left:-2px; margin-right:-2px; }.quick-actions strong { font-size:.86rem; }
  .featured-grid,.compact-grid,.list-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }.card-media { height:132px; }.card-body { padding:11px; }.card-body h3 { font-size:.98rem; }.card-meta span:nth-child(2) { display:none; }
  .form-card { padding:17px; margin-left:-2px; margin-right:-2px; }.form-grid.four,.form-grid.two { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }.form-grid.two>.full { grid-column:1/-1; }
  .ingredient-row { padding:11px; border:1px solid var(--line); border-radius:14px; grid-template-columns:repeat(3,1fr) 36px; }.ingredient-row input { min-height:42px; }.ingredient-row input[name="ingredient_group[]"] { grid-column:1/3; }.ingredient-row input[name="ingredient_amount[]"] { grid-column:1; }.ingredient-row input[name="ingredient_unit[]"] { grid-column:2; }.ingredient-row input[name="ingredient_name[]"] { grid-column:1/5; }.ingredient-row input[name="ingredient_note[]"] { grid-column:1/5; }.ingredient-row .icon-button { grid-column:4; grid-row:1; }
  .step-row { padding:11px; border:1px solid var(--line); border-radius:14px; grid-template-columns:34px 1fr 36px; }.step-row textarea { grid-column:1/4; grid-row:2; }.step-row label { grid-column:2; grid-row:1; display:flex; align-items:center; gap:5px; }.step-row label input { width:68px; min-height:38px; }.step-row .icon-button { grid-column:3; grid-row:1; }
  .form-section-heading { align-items:center; }.form-section-heading p { display:none; }.sticky-actions { width:calc(100% + 4px); bottom:calc(73px + var(--safe-bottom)); justify-content:flex-end; }.sticky-actions .button { flex:1; }.detail-image { margin-left:-11px; margin-right:-11px; border-radius:0 0 24px 24px; min-height:300px; }.detail-image>img { min-height:300px; }.detail-intro h1 { font-size:2.75rem; }.detail-facts { display:grid; grid-template-columns:repeat(2,1fr); }.detail-facts span { min-width:0; }.detail-actions .button { flex:1; padding:10px; }.ingredient-list li:not(.ingredient-group) { grid-template-columns:82px 1fr; }.notes-card,.made-it { padding:18px; }.made-it form { display:grid; }.import-option { grid-template-columns:42px 1fr; padding:17px; gap:12px; }.option-icon { width:42px; height:42px; }.import-option h2 { font-size:1.25rem; }.privacy-note { margin-bottom:84px; }.review-layout .sticky-actions { bottom:calc(73px + var(--safe-bottom)); }.cook-page .page-shell { width:calc(100% - 22px); padding-bottom:30px; }.cook-title { padding:42px 0 28px; }.cook-title h1 { font-size:2.7rem; }.cook-layout { padding-top:30px; }.cook-steps label { grid-template-columns:22px 34px 1fr; padding:14px; }.timer-toast { left:11px; right:11px; bottom:11px; }.login-card { padding:27px 21px; }.login-page .page-shell { width:calc(100% - 24px); }.login-illustration { width:58px; height:58px; border-radius:18px; }.login-illustration span { font-size:2rem; }
}
@media (max-width:520px) { .recipe-placeholder.large { min-height:300px; } }
@media (prefers-reduced-motion:reduce) { * { animation-duration:.01ms!important; animation-iteration-count:1!important; scroll-behavior:auto!important; transition:none!important; } }
