html,body,#root{min-height:100%}body{margin:0}:root{color:#2a241f;background:#f5f1e9;font-family:Manrope,Avenir Next,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 15% 20%,#f2dfc4,#0000 38%),radial-gradient(circle at 80% 0,#f0e6d2,#0000 35%),linear-gradient(#f8f3e8 0%,#f0e7d6 100%);min-height:100dvh;margin:0}button,input,select,textarea{font:inherit}.shell{gap:1rem;width:min(1080px,100%);margin:0 auto;padding:1rem;display:grid}.auth-shell{align-items:center;min-height:100dvh;display:grid}.panel{background:#ffffffd9;border:1px solid #d7c8ae;border-radius:16px;padding:1rem;box-shadow:0 10px 30px #664d2c14}.auth-panel{max-width:460px;margin:0 auto}h1{letter-spacing:-.02em;margin:0;font-size:clamp(1.6rem,4vw,2.4rem)}h2{margin:0 0 .6rem;font-size:1.2rem}h3{margin:0;font-size:1rem}p{margin:.3rem 0}.muted{color:#6d5a44;font-size:.95rem}.error{color:#8a2222;background:#fff2f2;border:1px solid #d06363;border-radius:10px;margin:0;padding:.6rem .8rem}.topbar{flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.topbar-brand h1{white-space:nowrap}.topbar-menu{position:relative}.menu-trigger,.menu-trigger.ghost{color:#4f3e2e;min-width:2rem;box-shadow:none;background:0 0;border:0;padding:.2rem .35rem;font-size:1.2rem;line-height:1}.menu-trigger:hover,.menu-trigger.ghost:hover{filter:none;background:0 0}.topbar-menu-list{z-index:20;background:#fff;border:1px solid #d7c8ae;border-radius:10px;gap:.4rem;min-width:220px;padding:.5rem;display:grid;position:absolute;top:calc(100% + .35rem);right:0;box-shadow:0 10px 24px #664d2c29}.topbar-menu-list button{text-align:left;justify-content:flex-start;width:100%}.tabs{background:#ffffffb3;border:1px solid #dcccb1;border-radius:12px;grid-template-columns:repeat(3,minmax(0,1fr));padding:.3rem;display:grid}.tabs button{color:#4f3e2e;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;min-height:2.5rem;padding:.6rem;font-weight:600;line-height:1.1;display:flex}.tabs button.active{color:#35271c;background:#f0d7ad;border-color:#c8a36f}.grid{gap:1rem;display:grid}.grid.two-col{grid-template-columns:1fr}.form-stack,.auth-form{gap:.8rem;display:grid}.inline-form{grid-template-columns:1fr auto;align-items:end;gap:.8rem;display:grid}.bake-start-form{max-width:680px}.start-mode-group{border:1px solid #d9c7aa;border-radius:10px;flex-wrap:wrap;gap:1rem;margin:0;padding:.55rem .7rem;display:flex}.start-mode-group legend{color:#5a4935;padding:0 .3rem;font-size:.9rem}.start-reminder-group{border:1px solid #d9c7aa;border-radius:10px;gap:.65rem;margin:0;padding:.55rem .7rem;display:grid}.start-reminder-group legend{color:#5a4935;padding:0 .3rem;font-size:.9rem}.start-scale-group{border:1px solid #d9c7aa;border-radius:10px;gap:.65rem;margin:0;padding:.55rem .7rem;display:grid}.start-scale-group legend{color:#5a4935;padding:0 .3rem;font-size:.9rem}.scale-button-row{flex-wrap:wrap;gap:.5rem;display:flex}.scale-option{min-width:4rem}.scale-option.active{color:#35271c;background:#f0d7ad;border-color:#c8a36f}.inline-choice{align-items:center;gap:.45rem;display:flex}.inline-choice input{width:auto}label{color:#49392a;gap:.35rem;font-size:.95rem;display:grid}input,select,textarea{color:#2a241f;background:#fffefb;border:1px solid #cbb896;border-radius:10px;width:100%;padding:.55rem .7rem}textarea{resize:vertical}button{appearance:none;color:#fff;cursor:pointer;background:#b07a45;border:1px solid #9f7240;border-radius:10px;justify-content:center;align-items:center;min-height:2.25rem;padding:.55rem .8rem;line-height:1.2;display:inline-flex}button:hover{filter:brightness(1.05)}button.ghost{color:#674c33;background:#fff;border-color:#b69465}button.danger{color:#8f2f2f;border-color:#d4a2a2}.step-drafts{gap:.5rem;display:grid}.step-row{grid-template-columns:1fr 88px auto auto;align-items:center;gap:.5rem;display:grid}.row{align-items:center;display:flex}.row.between{justify-content:space-between}.row.gap-sm{gap:.5rem}.badge{color:#523d24;background:#efdfc2;border-radius:999px;padding:.2rem .6rem;font-size:.8rem}.badge.success{color:#285f25;background:#def3d7}.badge.warning{color:#8a5600;background:#ffe7be}.recipe-list,.archive-list{gap:.8rem;margin:0;padding:0;list-style:none;display:grid}.recipe-list li,.archive-card,.bake-card{background:#fff;border:1px solid #e0cfb2;border-radius:12px;padding:.75rem}.recipe-thumb-grid{gap:.65rem;max-height:460px;margin-top:.6rem;padding-right:.25rem;display:grid;overflow-y:auto}.recipe-thumb-item{gap:.45rem;display:grid}.recipe-thumb-card{text-align:left;color:#2a241f;background:#fff;border:1px solid #e0cfb2;border-radius:12px;align-items:start;width:100%;padding:.6rem;display:block}.recipe-thumb-card:hover{filter:none;border-color:#cfb58b}.recipe-thumb-card.active{border-color:#9f7240;box-shadow:0 0 0 2px #b07a4526}.recipe-thumb-copy{gap:.3rem;display:grid}.recipe-thumb-copy p{margin:0}.recipe-detail-card{background:#fffaf0;border:1px solid #e7d7bd;border-radius:10px;padding:.65rem}.recipe-detail-card ol,.recipe-list ol,.ingredient-list,.step-list{margin:.5rem 0 0;padding-left:1.1rem}.step-list li{border-bottom:1px dashed #e6d9c3;margin-bottom:.6rem;padding-bottom:.6rem}.step-list li.overdue{background:#fff8eb;border-radius:8px;padding:.5rem}.bake-step-row{grid-template-columns:1fr auto;align-items:start;gap:.8rem;display:grid}.bake-step-copy{gap:.2rem;min-width:0;display:grid}.bake-step-title,.bake-step-time{margin:0}.bake-step-action{justify-content:flex-end;display:flex}.step-action-pill{text-align:center;white-space:nowrap;min-width:110px;min-height:2.25rem}.step-action-pill-done{color:#285f25;background:#def3d7;border:1px solid #9ccf8e;border-radius:10px;justify-content:center;align-items:center;min-height:2.25rem;padding:.55rem .8rem;display:inline-flex}.complete-box{border-top:1px solid #e5d6be;gap:.7rem;margin-top:.8rem;padding-top:.8rem;display:grid}.bake-recipe-block{gap:.25rem;display:grid}.compact-ingredient-list{margin-top:0}.archive-image{border:1px solid #dfc8a4;border-radius:10px;width:100%;display:block}.archive-preview{grid-template-columns:120px 1fr;gap:.75rem;margin:.55rem 0;display:grid}.archive-thumb-button,.archive-photo-button{background:0 0;border:0;min-height:0;padding:0;display:block}.archive-thumb{object-fit:cover;border:1px solid #dfc8a4;border-radius:10px;width:120px;height:90px}.archive-thumb-placeholder{color:#7b664a;background:#f7efe2;place-items:center;font-size:.85rem;display:grid}.archive-preview-copy{gap:.35rem;display:grid}.archive-preview-copy p{margin:0}.archive-expanded{border-top:1px solid #e7d7bd;margin-top:.7rem;padding-top:.7rem}.archive-photo-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.7rem;margin-top:.75rem;display:grid}.archive-step-list{margin-top:.4rem}.lightbox-backdrop{z-index:40;background:#2a241fdb;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.lightbox-close{position:absolute;top:1rem;right:1rem}.lightbox-image{border:1px solid #ffffff47;border-radius:14px;max-width:min(92vw,1100px);max-height:88vh;box-shadow:0 18px 40px #00000047}@media (width<=700px){.shell{gap:.8rem}.inline-form,.step-row{grid-template-columns:1fr}.tabs{z-index:5;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);position:sticky;top:.5rem}.archive-preview{grid-template-columns:1fr}.archive-thumb{aspect-ratio:4/3;width:min(260px,100%);height:auto}.bake-step-row{grid-template-columns:1fr auto}.step-action-pill{min-width:102px}.tabs button{padding:.55rem .35rem;font-size:.92rem}.topbar{gap:.5rem}.topbar-brand h1{font-size:1.25rem}.topbar-menu-list{min-width:200px}}@media (width>=860px){.grid.two-col{grid-template-columns:1fr 1fr}}
