:root{--cream:#f7f0e4;--cream-2:#efe4d1;--forest:#254c3b;--forest-dark:#17382b;--terracotta:#b96445;--ink:#2a2a25;--muted:#6f7068;--line:#254c3b29;--white:#fffdf8}*{box-sizing:border-box}html{background:var(--cream)}body{color:var(--ink);background:radial-gradient(circle at 20% 10%, #b9644512, transparent 34%),repeating-linear-gradient(0deg, #5b482d05 0, #5b482d05 1px, transparent 1px, transparent 5px),var(--cream);min-height:100vh;margin:0;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit}button,input,select,textarea{font:inherit}button{cursor:pointer}textarea{resize:vertical}.shell{width:min(1120px,100% - 32px);margin:0 auto}.header{justify-content:space-between;align-items:center;gap:20px;padding:24px 0;display:flex}.brand{color:var(--forest-dark);letter-spacing:-.03em;font-family:Georgia,serif;font-size:2rem;font-weight:700}.hero{grid-template-columns:1.2fr .8fr;align-items:center;gap:48px;min-height:calc(100vh - 96px);padding:48px 0 80px;display:grid}.eyebrow{color:var(--terracotta);text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;font-weight:700}h1{color:var(--forest-dark);letter-spacing:-.05em;margin:18px 0 24px;font-family:Georgia,serif;font-size:clamp(3rem,8vw,6rem);line-height:.95}h2{color:var(--forest-dark);font-family:Georgia,serif}h3{color:var(--forest-dark)}.lead{max-width:650px;color:var(--muted);font-size:1.2rem;line-height:1.65}.actions,.nav{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.actions{margin-top:28px}.button{border:0;border-radius:999px;justify-content:center;align-items:center;padding:13px 20px;font-weight:700;text-decoration:none;display:inline-flex}.button.primary{background:var(--forest);color:#fff}.button.secondary{color:var(--forest);border:1px solid var(--line);background:#fff9}.card{border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffdf8d1;border-radius:28px;padding:28px;box-shadow:0 18px 50px #24302614}.form{gap:20px;display:grid}.field{gap:7px;display:grid}.field label{color:var(--forest-dark);font-size:.9rem;font-weight:700}.field input,.field select,.field textarea,.ingredient-row input,.ingredient-row select,.step-fields input,.step-fields textarea{border:1px solid var(--line);background:var(--white);width:100%;color:var(--ink);border-radius:14px;outline:none;padding:13px 14px}.field input:focus,.field select:focus,.field textarea:focus,.ingredient-row input:focus,.ingredient-row select:focus,.step-fields input:focus,.step-fields textarea:focus{border-color:var(--forest);box-shadow:0 0 0 3px #254c3b14}.auth-wrap{place-items:center;min-height:100vh;padding:32px 16px;display:grid}.auth-card{width:min(480px,100%)}.public-footer{color:var(--muted);flex-wrap:wrap;align-items:center;gap:18px;padding:0 0 30px;font-size:.88rem;display:flex}.public-footer a,.legal-links a,.legal-consent a{color:var(--forest)}.legal-links{color:var(--muted);gap:8px;font-size:.86rem;display:flex}.legal-consent{color:var(--muted);align-items:flex-start;gap:10px;font-size:.88rem;line-height:1.45;display:flex}.legal-consent input{accent-color:var(--forest);margin-top:3px}.legal-page{padding-bottom:64px}.legal-card{max-width:860px;margin:12px auto 0}.legal-card h1{margin-bottom:18px;font-size:clamp(2.6rem,7vw,4.6rem)}.legal-card section{margin-top:34px}.legal-card section h2{margin-bottom:10px}.legal-card ul{gap:9px;padding-left:22px;line-height:1.6;display:grid}.legal-related{border-top:1px solid var(--line);margin-top:38px;padding-top:20px;font-weight:700}.muted{color:var(--muted)}.notice{color:#7b402d;background:#b9644514;border-radius:14px;padding:12px 14px}.compact-notice{margin:14px 0 4px;font-size:.88rem}.dashboard{padding:32px 0 80px}.grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.tile{min-height:160px}.back-link{color:var(--forest);margin-bottom:8px;font-weight:700;text-decoration:none;display:inline-block}.form-grid{gap:14px;margin-top:16px;display:grid}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.section-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.stack{gap:12px;margin-top:18px;display:grid}.ingredient-row{grid-template-columns:34px 90px 100px minmax(150px,1.4fr) minmax(150px,1fr) 130px;align-items:center;gap:8px;display:grid}.ingredient-rich-row,.step-rich-row{border-bottom:1px solid var(--line);grid-template-columns:34px minmax(0,1fr) 34px;align-items:start;gap:12px;padding:14px 0;display:grid}.ingredient-rich-row:last-child,.step-rich-row:last-child{border-bottom:0}.ingredient-fields,.step-fields{min-width:0}.row-number{background:var(--cream-2);width:30px;height:30px;color:var(--forest-dark);border-radius:50%;place-items:center;font-weight:800;display:grid}.icon-button{border:1px solid var(--line);width:32px;height:32px;color:var(--muted);background:#ffffff8c;border-radius:50%;place-items:center;font-size:1.25rem;line-height:1;display:grid}.icon-button:hover{color:var(--terracotta);border-color:#b9644559}.step-row{grid-template-columns:38px 1fr;align-items:start;gap:12px;display:grid}.step-fields{gap:8px;display:grid}.field.compact{max-width:180px}.save-bar{border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffdf8f2;border-radius:20px;justify-content:space-between;align-items:center;gap:18px;padding:16px 18px;display:flex;position:sticky;bottom:12px;box-shadow:0 16px 45px #2430261f}.empty-state{text-align:center;padding:56px 28px}.recipe-list{gap:14px;display:grid}.recipe-list-item{justify-content:space-between;align-items:center;text-decoration:none;transition:transform .16s,box-shadow .16s;display:flex}.recipe-list-item:hover{transform:translateY(-2px);box-shadow:0 22px 55px #2430261f}.recipe-title{margin:10px 0;font-size:clamp(2.6rem,6vw,5rem)}.recipe-lead{margin-top:-8px}.recipe-cover{border:1px solid var(--line);background:var(--cream-2);border-radius:30px;margin:0 0 24px;overflow:hidden;box-shadow:0 18px 50px #2430261a}.recipe-cover img{aspect-ratio:3/2;object-fit:cover;width:100%;display:block}.recipe-cover figcaption{color:var(--muted);padding:10px 16px 12px;font-size:.82rem}.recipe-cover-placeholder{text-align:center;background:linear-gradient(135deg,#fffdf8c7,#efe4d1b8);border:1px dashed #254c3b47;border-radius:30px;place-items:center;min-height:300px;margin:0 0 24px;display:grid}.recipe-cover-placeholder-inner{justify-items:center;max-width:520px;padding:38px 24px;display:grid}.recipe-cover-placeholder h2{margin:12px 0 6px}.cover-loader{border:4px solid #254c3b24;border-top-color:var(--forest);border-radius:50%;width:44px;height:44px;margin:22px 0 4px;animation:.9s linear infinite cover-spin}@keyframes cover-spin{to{transform:rotate(360deg)}}.recipe-facts{flex-wrap:wrap;gap:10px;margin:24px 0;display:flex}.fact{border:1px solid var(--line);background:#fffdf8b8;border-radius:18px;gap:3px;min-width:110px;padding:13px 16px;display:grid}.fact strong{color:var(--forest-dark);text-transform:capitalize}.fact span{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:.78rem}.recipe-tag-strip{flex-wrap:wrap;gap:8px;margin:-4px 0 22px;display:flex}.recipe-tag{border:1px solid var(--line);color:var(--forest-dark);background:#ffffff7a;border-radius:999px;padding:7px 11px;font-size:.82rem}.recipe-tag.dietary{background:#254c3b12}.recipe-tag.equipment{background:#b9644512}.recipe-story-card{margin-bottom:18px}.rich-copy{white-space:pre-wrap;line-height:1.7}.recipe-columns{grid-template-columns:.85fr 1.15fr;align-items:start;gap:18px;display:grid}.ingredient-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.ingredient-list li{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding:10px 0;display:flex}.ingredient-list small{color:var(--terracotta);text-transform:uppercase;letter-spacing:.06em}.ingredient-group+.ingredient-group{margin-top:22px}.ingredient-group h3{margin:14px 0 4px;font-family:Georgia,serif}.ingredient-needs-review{align-items:flex-start}.scaling-warning{margin-top:5px;line-height:1.35;display:block;color:#7b402d!important;text-transform:none!important;letter-spacing:0!important}.scaling-note{margin:18px 0 0;font-size:.83rem;line-height:1.45}.servings-heading{align-items:flex-start}.servings-control{justify-items:end;gap:5px;display:grid}.servings-control>label{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:.72rem;font-weight:700}.servings-control>div{border:1px solid var(--line);background:var(--white);border-radius:999px;grid-template-columns:34px 64px 34px;align-items:center;display:grid;overflow:hidden}.servings-control button{color:var(--forest);background:0 0;border:0;height:34px;font-size:1.1rem;font-weight:800}.servings-control input{border:0;border-left:1px solid var(--line);border-right:1px solid var(--line);text-align:center;background:0 0;outline:none;width:64px;height:34px}.cooking-list{gap:16px;margin:0;padding:0;list-style:none;display:grid}.cooking-list li{grid-template-columns:40px 1fr;gap:12px;display:grid}.cooking-list p{margin:6px 0;line-height:1.55}.step-number{background:var(--forest);color:#fff;border-radius:12px;place-items:center;width:34px;height:34px;font-weight:800;display:grid}.step-stage{color:var(--terracotta);text-transform:uppercase;letter-spacing:.07em;margin-bottom:3px;font-size:.72rem;font-weight:700}.step-meta{flex-wrap:wrap;gap:7px;margin-top:8px;display:flex}.step-meta span{border:1px solid var(--line);color:var(--muted);background:#ffffff6b;border-radius:999px;padding:5px 8px;font-size:.76rem}.doneness-cue{color:var(--forest-dark);background:#254c3b0e;border-radius:12px;padding:9px 11px;font-size:.88rem;margin-top:9px!important}.detail-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px;display:grid}.detail-card-grid h2{margin:8px 0 10px}.nutrition-card{margin-top:18px}.nutrition-basis{color:var(--muted);font-size:.85rem}.nutrition-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:16px;display:grid}.nutrition-fact{border:1px solid var(--line);background:#ffffff73;border-radius:16px;gap:3px;padding:12px;display:grid}.nutrition-fact strong{color:var(--forest-dark)}.nutrition-fact span{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:.75rem}.source-card{margin-top:18px}.family-card{margin:0 0 18px}.family-links,.match-list{gap:10px;margin:16px 0;display:grid}.family-link{border:1px solid var(--line);background:#ffffff7a;border-radius:16px;justify-content:space-between;align-items:center;gap:16px;padding:12px 14px;text-decoration:none;display:flex}.family-link span{color:var(--forest-dark);font-weight:700}.family-link small{color:var(--muted);text-transform:capitalize}.review-grid{grid-template-columns:1fr 1fr;gap:18px;margin-bottom:20px;display:grid}.review-list{margin:16px 0;padding-left:20px;line-height:1.7}.match-card{border:1px solid var(--line);background:#ffffff80;border-radius:18px;justify-content:space-between;align-items:center;gap:16px;padding:14px;display:flex}.match-card.strong{background:#b9644512;border-color:#b9644566}.match-signals{margin-top:4px;font-size:.82rem}.match-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.match-actions form{margin:0}.match-actions .button{padding:9px 13px;font-size:.86rem}.duplicate-confirmation{border-color:#b9644557}.check-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0;display:grid}.check-card,.choice-card,.confirm-row{border:1px solid var(--line);background:#ffffff85;border-radius:16px;align-items:flex-start;gap:12px;padding:14px;display:flex}.check-card input,.choice-card input,.confirm-row input{accent-color:var(--forest);margin-top:3px}.choice-card{cursor:pointer;margin-top:10px}.choice-card span{gap:4px;display:grid}.choice-card small{color:var(--muted);line-height:1.4}.confirm-row{margin-top:16px}.revision-safety-card,.revision-identity-card{border-color:#254c3b3d;margin-bottom:20px}.revision-safety-card p,.revision-identity-card p{line-height:1.6}.version-timeline{gap:14px;display:grid}.version-card{justify-content:space-between;align-items:center;gap:20px;display:flex}.version-card h2{margin:8px 0}.version-card.current{border-color:#254c3b61;box-shadow:0 20px 55px #2430261f}.version-card.working{background:#efe4d18f;border-style:dashed}.version-compare-card{margin-top:20px}.version-diff-list{gap:10px;margin-top:18px;display:grid}.version-diff-row{border:1px solid var(--line);background:#ffffff70;border-radius:18px;grid-template-columns:minmax(120px,.55fr) 1fr 1fr;align-items:start;gap:12px;padding:14px;display:grid}.version-diff-row>strong{color:var(--forest-dark)}.version-diff-row div{gap:4px;min-width:0;display:grid}.version-diff-row small{color:var(--terracotta);text-transform:uppercase;letter-spacing:.06em;font-weight:700}.version-diff-row span{overflow-wrap:anywhere;line-height:1.45}.version-count-grid{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.danger-card{border-color:#b9644547;justify-content:space-between;align-items:center;gap:18px;margin-top:20px;display:flex}.danger-card h2{margin:8px 0}.planner-list{gap:14px;display:grid}.planner-list-item{justify-content:space-between;align-items:center;gap:20px;text-decoration:none;display:flex}.planner-list-item h2{margin:8px 0}.planner-cycle-strip{grid-template-columns:minmax(180px,.45fr) 1fr;align-items:start;gap:18px;margin-bottom:18px;display:grid}.cycle-links{flex-wrap:wrap;gap:8px;display:flex}.cycle-link{border:1px solid var(--line);background:#ffffff73;border-radius:16px;gap:2px;min-width:150px;padding:10px 12px;text-decoration:none;display:grid}.cycle-link.active{border-color:var(--forest);background:#254c3b12}.cycle-link small{color:var(--muted)}.planner-add-card{margin-bottom:18px}.planner-date-selector{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;display:grid}.planner-date-selector .check-card span{gap:2px;display:grid}.planner-date-selector .check-card small{color:var(--muted)}.planner-days{gap:18px;display:grid}.planner-day{padding:24px}.planner-day-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:14px;display:flex}.planner-day-heading h2{margin:6px 0 0}.meal-slot{border-bottom:1px solid var(--line);grid-template-columns:120px 1fr;gap:16px;padding:16px 0;display:grid}.meal-slot-title{color:var(--forest-dark);font-weight:800}.empty-meal-slot{color:var(--muted);font-style:italic}.meal-entry-list{gap:10px;display:grid}.meal-entry{border:1px solid var(--line);background:#ffffff73;border-radius:16px;padding:12px 14px}.meal-entry-main{gap:4px;display:grid}.meal-entry-tools{margin-top:10px}.meal-entry-tools summary{color:var(--forest);cursor:pointer;font-weight:700}.planner-tool-grid{grid-template-columns:1fr 1fr;gap:10px;margin-top:10px;display:grid}.planner-tool-grid form{border:1px solid var(--line);background:#fffdf8b3;border-radius:14px;gap:8px;padding:10px;display:grid}.planner-tool-grid select{border:1px solid var(--line);background:var(--white);border-radius:12px;width:100%;padding:9px 10px}.copy-date-list{max-height:145px;color:var(--muted);grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 8px;font-size:.86rem;display:grid;overflow:auto}.day-note-form{grid-template-columns:1fr auto;align-items:end;gap:12px;margin-top:16px;display:grid}.archive-banner{margin-bottom:18px}.planner-shopping-gate{border-style:dashed;margin-top:18px}.capture-jobs-section{margin-bottom:20px}.capture-jobs-heading{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.capture-jobs-heading h2{margin:8px 0}.capture-jobs-heading p{max-width:720px;margin:0;line-height:1.5}.capture-job-list{gap:12px;margin-top:20px;display:grid}.capture-job-item{border:1px solid var(--line);background:#ffffff75;border-radius:18px;justify-content:space-between;align-items:center;gap:20px;padding:16px;display:flex}.capture-job-main{grid-template-columns:auto 1fr;align-items:start;gap:13px;min-width:0;display:grid}.capture-job-main p{margin:5px 0;line-height:1.45}.capture-status{min-height:28px;color:var(--forest-dark);white-space:nowrap;background:#254c3b14;border-radius:999px;align-items:center;padding:6px 10px;font-size:.74rem;font-weight:800;display:inline-flex}.capture-status-needs_review{color:var(--forest-dark);background:#254c3b24}.capture-status-failed,.capture-status-stale{color:#7b402d;background:#b964451f}.capture-job-actions{flex:none;align-items:center;display:flex}.capture-job-actions .button{text-align:center}.capture-job-error{color:#7b402d;font-size:.88rem;margin:6px 0!important}.capture-refresh-message{color:var(--forest-dark);background:#254c3b12;border-radius:12px;margin:16px 0 0;padding:10px 12px;line-height:1.45}.capture-status-detail{max-width:760px;margin:0 auto}.capture-status-detail .capture-refresh-message{display:inline-block}.capture-detail-actions{justify-content:center}.capture-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.capture-choice{text-align:left;width:100%;margin-top:0}.capture-choice.selected{background:#254c3b14;border-color:#254c3b80;box-shadow:0 0 0 2px #254c3b0f}.capture-acquisition-actions{flex-wrap:wrap;gap:12px;margin:20px 0 10px;display:flex}.capture-file-control{opacity:0;pointer-events:none;width:1px;height:1px;position:fixed}.capture-camera-help{margin:0 0 18px;line-height:1.45}.capture-file-list{margin:10px 0 0;padding-left:22px;line-height:1.6}@media (max-width:900px){.form-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.ingredient-row{grid-template-columns:34px 80px 90px 1fr}.ingredient-row input:nth-of-type(4),.ingredient-row select{grid-column:2/-1}.nutrition-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.planner-cycle-strip,.planner-tool-grid{grid-template-columns:1fr}}@media (max-width:760px){.hero{grid-template-columns:1fr;padding-top:20px}.grid,.recipe-columns,.review-grid,.check-grid,.form-grid.two,.form-grid.three,.form-grid.four,.detail-card-grid{grid-template-columns:1fr}.header{flex-direction:column;align-items:flex-start;padding:18px 0}.brand{font-size:1.65rem}.ingredient-row{grid-template-columns:34px 1fr 1fr}.ingredient-row input:nth-of-type(3),.ingredient-row input:nth-of-type(4),.ingredient-row select{grid-column:2/-1}.ingredient-rich-row,.step-rich-row{grid-template-columns:32px minmax(0,1fr)}.ingredient-rich-row .icon-button,.step-rich-row .icon-button{grid-column:2;justify-self:end}.save-bar{flex-direction:column;align-items:stretch;position:static}.recipe-cover-placeholder{min-height:240px}.match-card,.version-card,.danger-card{flex-direction:column;align-items:flex-start}.version-diff-row{grid-template-columns:1fr}.servings-heading{flex-direction:column;align-items:flex-start}.servings-control{justify-items:start}.nutrition-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.planner-list-item,.planner-day-heading{flex-direction:column;align-items:flex-start}.meal-slot{grid-template-columns:1fr;gap:8px}.day-note-form,.copy-date-list{grid-template-columns:1fr}.capture-jobs-heading,.capture-job-item{flex-direction:column;align-items:stretch}.capture-job-main{grid-template-columns:1fr}.capture-job-actions .button{width:100%}.capture-choice-grid{grid-template-columns:1fr}.capture-acquisition-actions{display:grid}.capture-acquisition-actions .button{width:100%}}
.language-switch{border:1px solid var(--line);background:#fffdf8b3;border-radius:999px;gap:3px;padding:3px;display:inline-flex}.language-switch button{min-width:40px;min-height:36px;color:var(--muted);background:0 0;border:0;border-radius:999px;font-size:.78rem;font-weight:800}.language-switch button.active{background:var(--forest);color:#fff}.language-switch.compact button{min-width:34px;min-height:32px}@media (max-width:760px){.language-switch button{min-height:44px}}
