:root{--paper:#f8f5ee;--white:#fffdf8;--ink:#29382e;--muted:#73786b;--line:#dedfd3;--green:#465c3a;--soft:#e8ecdf;--accent:#a65c3b;--danger:#a03527;--serif:Georgia,'Times New Roman',serif;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);font-size:15px;line-height:1.5}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer;border:1px solid var(--line);border-radius:9px;padding:10px 16px;background:var(--white);color:var(--ink);min-height:44px}button:hover{border-color:var(--green);background:var(--soft)}button:disabled{opacity:.5;cursor:wait}button.primary{background:var(--green);color:white;border-color:var(--green)}button.quiet{background:transparent;border-color:transparent}button.danger{color:var(--danger)}a{color:var(--green)}:focus-visible{outline:3px solid #bb8a49;outline-offset:3px}input,textarea,select{border:1px solid var(--line);border-radius:8px;background:var(--white);color:var(--ink);padding:11px;width:100%;min-height:44px}textarea{resize:vertical;min-height:100px}input[type=checkbox]{width:22px;height:22px;min-height:22px;accent-color:var(--green)}label{display:grid;gap:6px;font-size:13px;font-weight:600}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.15}h1{font-size:clamp(36px,5vw,62px);letter-spacing:-1.8px}h2{font-size:32px}h3{font-size:24px}p{color:var(--muted)}header{border-bottom:1px solid var(--line);background:var(--paper)}.header-inner{max-width:1440px;margin:auto;display:flex;align-items:center;gap:40px;padding:22px 5%}.brand{font-family:var(--serif);font-size:32px;font-weight:bold;letter-spacing:-1.5px;color:var(--ink);text-decoration:none}.brand span{color:var(--accent);font-style:italic}nav{display:flex;gap:8px;flex:1}nav button{border:0;background:none;color:var(--muted)}nav button.active{color:var(--ink);background:var(--soft)}main{max-width:1440px;padding:45px 5% 80px;margin:auto}.eyebrow{text-transform:uppercase;letter-spacing:2.5px;font-size:11px;color:var(--accent);margin-bottom:14px}.hero{display:flex;justify-content:space-between;align-items:center;gap:24px;margin:14px 0 32px}.hero h1{margin-bottom:14px}.hero p{max-width:510px;margin-bottom:0}.actions,.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.muted{color:var(--muted)}.small{font-size:13px}.toolbar{padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:24px}.search-line{display:flex;gap:12px}.search-line input{font-size:17px;flex:1}.filters{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:15px}.chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.chip{border-radius:24px;padding:7px 15px;min-height:38px;font-size:13px}.chip.active{background:var(--green);color:white}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 24px}.card{position:relative;min-width:0}.card-cover{padding:0;border:0;width:100%;display:block;aspect-ratio:4/3;overflow:hidden;border-radius:12px;background:#ece7d9}.card-cover img{width:100%;height:100%;object-fit:cover;transition:transform .25s}.card-cover:hover img{transform:scale(1.025)}.placeholder{display:grid;place-items:center;height:100%;background:linear-gradient(135deg,#e9e4d6,#dce2d0);font-family:var(--serif);color:#839074;font-size:72px}.card h3{margin:14px 0 7px}.card-title{border:0;padding:0;background:none;font-family:var(--serif);font-size:25px;text-align:left;line-height:1.2;min-height:0}.card-meta{font-size:12px;color:var(--muted);display:flex;gap:9px;flex-wrap:wrap}.heart{position:absolute;right:12px;top:12px;border-radius:50%;width:44px;padding:0;background:#fffdf8ed;font-size:23px}.empty{border:1px dashed #c5cbb9;border-radius:15px;padding:55px 25px;text-align:center;max-width:760px;margin:36px auto;background:#f2f1e8}.empty .mark{font-family:var(--serif);font-size:68px;color:#8b967b}.empty p{max-width:460px;margin:0 auto 24px}.auth-layout{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}.auth-story{padding:9vw 7vw;background:#e7eadc;display:flex;flex-direction:column;justify-content:center}.auth-story h1{font-size:clamp(48px,6vw,80px);margin:45px 0 25px}.auth-story p{max-width:420px}.auth-form{display:flex;align-items:center;justify-content:center;padding:40px 25px}.auth-box{width:100%;max-width:390px}.auth-box h2{margin-bottom:10px}.stack{display:grid;gap:18px}.tabs{display:flex;gap:4px;margin:25px 0}.tabs button{flex:1;border:0;background:none;border-bottom:2px solid var(--line);border-radius:0}.tabs button.active{border-color:var(--green);color:var(--green)}.error{color:var(--danger);background:#fff0eb;padding:12px;border-radius:8px}.error:empty{display:none}.notice{background:var(--soft);border:1px solid #ced7c1;padding:18px;border-radius:10px}.notice p:last-child{margin-bottom:0}dialog{border:1px solid var(--line);border-radius:16px;background:var(--paper);color:var(--ink);padding:28px;max-width:880px;width:calc(100% - 30px);max-height:90dvh}dialog::backdrop{background:#1b261db3;backdrop-filter:blur(3px)}.dialog-head{display:flex;justify-content:space-between;gap:15px;align-items:start;margin-bottom:22px}.dialog-head h2{margin:8px 0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.wide{grid-column:1/-1}.ingredient-row{display:grid;grid-template-columns:2fr .7fr .8fr 1fr 44px;gap:8px;margin:8px 0}.ingredient-row button{padding:0}.form-section{border-top:1px solid var(--line);padding-top:20px;margin-top:6px}.detail-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:45px;margin-top:25px}.detail-cover{width:100%;max-height:620px;object-fit:contain;border-radius:12px;background:#eee9dd}.detail-description{font-size:17px}.recipe-heading h1{font-size:48px;margin:20px 0}.ingredients{padding:0;list-style:none}.ingredients li{padding:13px 0;border-bottom:1px solid var(--line);display:flex;align-items:start;justify-content:space-between;gap:20px}.ingredients li label{display:flex;align-items:center;font-weight:400;font-size:15px}.amount{white-space:nowrap;color:var(--muted)}.steps{list-style:none;padding:0;counter-reset:steps}.steps li{counter-increment:steps;display:flex;gap:18px;padding:20px 0;border-bottom:1px solid var(--line);white-space:pre-wrap}.steps li:before{content:counter(steps,decimal-leading-zero);font-family:var(--serif);font-size:29px;color:#8a977b;min-width:38px}.panel{padding:25px;background:var(--white);border:1px solid var(--line);border-radius:12px;margin-bottom:20px}.section{margin-top:38px}.timeline{border-left:1px solid var(--line);padding-left:20px}.timeline article{margin:24px 0}.timeline p{white-space:pre-wrap;color:var(--ink);margin-top:6px}.title-row{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:20px}.title-row h2{margin:0}.menu-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr);gap:28px}.slot{display:grid;grid-template-columns:1fr;gap:12px;margin:14px 0;padding:20px;border:1px solid var(--line);border-radius:12px;background:var(--white)}.slot.locked{border-color:#859874}.slot-controls{display:grid;grid-template-columns:1fr 100px 44px;gap:12px;align-items:end}.slot-controls > button{padding:0}.collection-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.collection{padding:28px;background:var(--soft);border-radius:12px}.checklist{max-height:300px;overflow:auto;display:grid;gap:12px}.checklist label{display:flex;align-items:center;font-weight:400;font-size:15px}.shopping-item{display:flex;align-items:start;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.shopping-item.done .shopping-name{text-decoration:line-through;color:var(--muted)}.shopping-name{flex:1}.shopping-item label{font-weight:400;font-size:15px;display:block}.shopping-item small{display:block;color:var(--muted);font-size:11px}.cook{max-width:850px}.cook h1{font-size:36px}.cook-step{font-family:var(--serif);font-size:clamp(25px,4vw,38px);line-height:1.4;white-space:pre-wrap;min-height:200px;margin:25px 0}.progress{height:5px;background:var(--line);border-radius:5px;overflow:hidden;margin-top:20px}.progress span{display:block;height:100%;background:var(--green)}.cook .steps li{font-size:22px}.image-dialog{width:95vw;max-width:1500px}.full-image{display:block;width:100%;max-height:75dvh;object-fit:contain}.footer{margin-top:55px;border-top:1px solid var(--line);padding-top:18px;font-size:12px;color:var(--muted)}.loading{text-align:center;padding:100px}.skip{position:absolute;top:-60px;left:15px;background:white;padding:12px;z-index:20}.skip:focus{top:10px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);max-width:90vw;padding:12px 22px;background:var(--ink);color:white;border-radius:10px;z-index:100;display:none}#toast.visible{display:block}.recovery-code{display:block;word-break:break-all;user-select:all;font-family:monospace;font-size:17px;padding:15px;background:white;border-radius:8px}.inline-input{width:85px}.checkrow{display:flex;align-items:center;gap:10px;font-weight:400}.hidden{display:none!important}@media(min-width:1600px){.grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:1000px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.header-inner{gap:20px}.filters{grid-template-columns:repeat(3,1fr)}.detail-grid{gap:25px}.collection-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.header-inner{padding:16px 5%;flex-wrap:wrap;gap:8px}.brand{flex:1}nav{order:3;flex-basis:100%;overflow:auto}nav button{white-space:nowrap;font-size:13px;padding:8px 12px}main{padding-top:25px}.hero{display:block}.hero .actions{margin-top:22px}h1{font-size:42px}.hero p{font-size:14px}.grid{gap:24px 14px}.card-title{font-size:21px}.card-meta{font-size:11px}.filters{grid-template-columns:1fr 1fr}.auth-layout{grid-template-columns:1fr}.auth-story{padding:30px 7%}.auth-story h1{font-size:38px;margin:15px 0}.auth-story p{display:none}.auth-form{padding:25px}.detail-grid,.menu-layout{grid-template-columns:1fr}.detail-cover{max-height:420px}.recipe-heading h1{font-size:36px}.form-grid{grid-template-columns:1fr}.ingredient-row{grid-template-columns:1fr 70px 70px 40px}.ingredient-row .ing-note{grid-column:1/-1;grid-row:2}.ingredient-row .remove-ingredient{grid-column:4;grid-row:1}.collection-grid{grid-template-columns:1fr}dialog{padding:20px}.title-row{align-items:start;flex-wrap:wrap}.panel{padding:20px}.slot-controls{grid-template-columns:1fr 85px 44px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}@media print{header,.actions,.toolbar,button,.footer,.skip{display:none!important}main{padding:0}.panel{border:0}.menu-layout{display:block}.slot{break-inside:avoid}body{background:white}}
