:root{--bg:#f7f3ec;--card:#fffcf7;--lav:#82758f;--lav-dark:#655672;--pale:#e9e3ed;--sage:#87917b;--ink:#403747;--muted:#776d7c;--line:#ded6dc}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.6}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,a:focus-visible{outline:3px solid var(--sage);outline-offset:3px}h1,h2,h3{margin:0;font-family:Georgia,Times New Roman,serif;font-weight:400;line-height:1.2}h1{letter-spacing:-.035em;font-size:clamp(2.5rem,4.5vw,4.25rem)}h2{font-size:1.9rem}h3{font-size:1.35rem}p{margin:0 0 1rem}svg{flex-shrink:0}a{color:var(--lav-dark)}.topbar{background:var(--card);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;min-height:90px;padding:16px max(24px,50vw - 680px);display:flex}.brand{white-space:nowrap;color:var(--ink);background:0 0;border:0;align-items:center;gap:9px;font-family:Georgia,serif;font-size:1.65rem;display:flex}.brandmark{color:var(--lav);font-size:2.5rem;line-height:1}.topbar nav{gap:24px;display:flex}.topbar nav button{color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:7px;padding:9px 0;font-size:.9rem;display:flex}.topbar nav button.active{color:var(--ink);border-bottom-color:var(--lav)}.account{align-items:center;gap:12px;display:flex}.account-name{font-size:.875rem}.button{border:1px solid #0000;border-radius:26px;justify-content:center;align-items:center;gap:9px;min-height:44px;padding:11px 19px;font-size:.95rem;font-weight:500;line-height:1.5;text-decoration:none;transition:background .15s;display:inline-flex}.primary{background:var(--lav);color:#fff}.primary:hover{background:var(--lav-dark)}.secondary{background:var(--card);border-color:var(--line);color:var(--ink)}.secondary:hover{background:var(--pale)}.icon-btn{color:var(--muted);background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;min-width:40px;min-height:40px;padding:10px;display:inline-flex}.icon-btn:hover{background:var(--pale);color:var(--ink)}.container{max-width:1360px;margin:auto;padding:30px 40px 0}.hero{background:var(--card) url(/lavande.png) right center/cover no-repeat;border:1px solid #e7e0da;border-radius:20px;min-height:335px;margin-bottom:38px;overflow:hidden}.hero-copy{background:linear-gradient(90deg,#fffcf7fa 60%,#fffcf7bf 90%,#0000);width:62%;padding:32px 36px}.eyebrow{letter-spacing:.2em;color:#697460;margin-bottom:14px;font-size:.78rem}.subtitle{color:var(--lav-dark);margin:12px 0 23px;font-family:Georgia,serif;font-size:1.3rem}.search{color:var(--lav);background:#fffcf7f0;border:1px solid #cfc3d1;border-radius:28px;align-items:center;gap:10px;min-height:52px;padding:6px 16px;display:flex}.search input{width:100%;color:var(--ink);background:0 0;border:0;outline:none;padding:6px 0;font-size:.95rem}.search:focus-within{outline:2px solid var(--lav)}.categories{flex-wrap:wrap;gap:9px;margin-top:17px;display:flex}.categories button,.chip{background:var(--pale);color:var(--ink);border:1px solid #0000;border-radius:25px;align-items:center;gap:7px;padding:8px 16px;font-size:.875rem;display:inline-flex}.categories button.selected,.chip.selected{background:var(--lav);color:#fff}.section-head{justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px;display:flex}.section-head p{color:var(--muted);margin:7px 0 0;font-size:.875rem}.tools{align-items:center;gap:10px;display:flex}.tools select{border:1px solid var(--line);color:var(--ink);background:0 0;border-radius:7px;padding:9px 12px;font-size:.875rem}.tools .chip{border-color:var(--line);background:0 0}.tools .chip.selected{background:var(--pale);border-color:var(--lav);color:var(--lav-dark)}.recipe-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:25px;display:grid}.recipe-card{background:var(--card);border:1px solid #e5dfe1;border-radius:13px;transition:transform .2s,box-shadow .2s;position:relative;overflow:hidden;box-shadow:0 5px 14px #40374707}.recipe-card:hover{transform:translateY(-3px);box-shadow:0 7px 20px #40374714}.card-main{text-align:left;width:100%;color:var(--ink);background:0 0;border:0;padding:0;display:block}.card-photo{aspect-ratio:1.8;background:var(--pale);position:relative;overflow:hidden}.card-photo img{object-fit:cover;width:100%;height:100%}.photo-empty{height:100%;color:var(--lav);background:linear-gradient(135deg,#eee7ef,#f4efe7);flex-direction:column;justify-content:center;align-items:center;gap:8px;font-family:Georgia,serif;display:flex}.badge{color:#434c37;background:#f0f0dc;border-radius:20px;align-items:center;gap:5px;padding:5px 10px;font-size:.75rem;display:inline-flex;position:absolute;bottom:13px;left:13px}.badge.inline{position:static}.card-body{padding:17px 20px 21px}.card-category{color:var(--muted);font-size:.75rem}.card-body h3{margin:4px 0 12px;padding-right:20px;font-size:1.5rem}.meta{color:var(--muted);flex-wrap:wrap;gap:20px;font-size:.875rem;display:flex}.meta span{align-items:center;gap:6px;display:flex}.favorite{background:var(--card);color:var(--lav);border:0;border-radius:50%;place-items:center;width:38px;height:38px;display:grid;position:absolute;top:13px;right:13px}.favorite.is-favorite{color:var(--lav-dark)}.empty{text-align:center;background:#fffcf775;border:1px dashed #cfc2d5;border-radius:18px;min-height:230px;padding:43px 20px}.empty-icon{background:var(--pale);width:76px;height:76px;color:var(--lav);border-radius:50%;place-items:center;margin:0 auto 17px;display:grid}.empty h3{margin-bottom:12px;font-size:1.65rem}.empty p{max-width:520px;color:var(--muted);margin:0 auto 23px}.empty>svg{margin:20px auto}.tip{background:var(--pale);border-radius:13px;align-items:center;gap:20px;margin-top:32px;padding:23px 28px;display:flex}.tip>svg{color:var(--sage)}.tip h3{white-space:nowrap;font-size:1.3rem;font-style:italic}.tip p{color:var(--muted);border-left:1px solid #c7bbd0;margin:0;padding-left:22px;font-size:.95rem}footer{color:var(--muted);justify-content:space-between;padding:30px 0;font-size:.78rem;display:flex}footer span:first-child{font-family:Georgia,serif;font-style:italic}.toast{z-index:10;color:#45503a;background:#f2f3e9;border-radius:12px;align-items:center;gap:10px;max-width:90vw;padding:14px 20px;display:flex;position:fixed;top:100px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #0002}.alert{color:#853c35;background:#fae9e5;border-radius:10px;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;padding:14px 18px;display:flex}.alert.muted{background:var(--pale);color:var(--ink)}.text-btn{color:var(--lav-dark);text-underline-offset:4px;background:0 0;border:0;align-items:center;gap:5px;padding:7px 0;font-size:.9rem;text-decoration:underline;display:inline-flex}.settings{min-height:70vh;padding:24px 0}.settings h1{font-size:2.9rem}.lead{color:var(--muted);margin:20px 0 30px;font-size:1.125rem}.settings-grid{grid-template-columns:1fr 1fr;gap:25px;display:grid}.panel{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:30px}.panel>svg{color:var(--lav);margin-bottom:18px}.panel h2{margin-bottom:17px;font-size:1.6rem}.panel ul{margin:0 0 22px;padding-left:20px}.panel li{margin-bottom:9px}.note{color:var(--muted);font-size:.875rem;line-height:1.5}.install{margin-top:25px}.modal{background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:19px;width:100%;max-width:min(680px,100vw - 28px);max-height:90vh;padding:0;box-shadow:0 18px 90px #22172c40}.modal.wide{max-width:min(960px,100vw - 28px)}.modal::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#2c203970}.modal-head{border-bottom:1px solid var(--line);z-index:3;background:var(--card);justify-content:space-between;align-items:center;gap:20px;padding:23px 28px;display:flex;position:sticky;top:0}.modal-head h2{font-size:1.65rem}.recipe-form{flex-direction:column;gap:22px;padding:26px 30px;display:flex}.form-grid{grid-template-columns:1fr 1fr;gap:17px;display:grid}.recipe-form label{flex-direction:column;gap:7px;font-size:.9rem;display:flex}.span2{grid-column:span 2}input:not([type=checkbox]):not([type=file]),textarea,select{color:var(--ink)}.recipe-form input:not([type=checkbox]):not([type=file]),.recipe-form textarea,.recipe-form select{background:#fff;border:1px solid #cfc5d2;border-radius:8px;width:100%;min-width:0;padding:10px 12px}.recipe-form textarea{resize:vertical;min-height:88px}.recipe-form input:focus,.recipe-form textarea:focus,.recipe-form select:focus{outline:2px solid var(--lav);outline-offset:1px}.form-options{flex-wrap:wrap;gap:26px;display:flex}.form-options label{flex-direction:row;align-items:center}.form-options input,.ingredient-list input{accent-color:var(--lav);width:19px;height:19px}.photo-upload{background:var(--pale);cursor:pointer;border:1px dashed #b5a7bc;border-radius:10px;align-items:center;padding:22px;position:relative;flex-direction:row!important;display:flex!important}.photo-upload small{color:var(--muted);font-size:.78rem;display:block}.photo-upload input{opacity:0;cursor:pointer;width:100%;position:absolute;inset:0}.form-section{border-top:1px solid var(--line);padding-top:23px}.form-section h3{margin-bottom:16px}.ingredient-row{grid-template-columns:85px 90px 1fr 40px;gap:9px;margin-bottom:10px;display:grid}.step-row{grid-template-columns:32px 1fr 40px;gap:12px;margin-bottom:17px;display:grid}.step-number{background:var(--pale);width:30px;height:30px;color:var(--lav-dark);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-family:Arial,sans-serif;font-size:.875rem;display:inline-flex}.timer-field{color:var(--muted);align-items:center;margin-top:8px;flex-direction:row!important;font-size:.8rem!important;display:flex!important}.timer-field input{max-width:75px;padding:5px 8px!important}.form-actions{border-top:1px solid var(--line);justify-content:flex-end;gap:12px;padding-top:22px;display:flex}.recipe-detail{padding:25px 30px}.detail-photo{object-fit:cover;border-radius:12px;width:100%;max-height:290px;margin-bottom:23px}.detail-top{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.detail-actions{margin-left:auto;display:flex}.detail-meta{color:var(--muted);flex-wrap:wrap;gap:24px;margin:20px 0;font-size:.9rem;display:flex}.detail-meta span{align-items:center;gap:8px;display:flex}.cook-button{margin-bottom:30px}.detail-columns{grid-template-columns:32% 1fr;gap:40px;display:grid}.detail-columns h3{margin-bottom:18px}.portions{background:var(--pale);border-radius:24px;justify-content:space-between;align-items:center;max-width:250px;margin-bottom:8px;display:flex}.portions strong{font-size:.9rem;font-weight:500}.ingredient-list{margin:20px 0;padding:0;list-style:none}.ingredient-list li{border-bottom:1px solid var(--line);padding:12px 0}.ingredient-list label{cursor:pointer;align-items:baseline;gap:10px;font-size:.95rem;display:flex}.ingredient-list strong{color:var(--lav-dark);font-weight:500}.ingredient-list input{flex-shrink:0}.checked{color:var(--muted);text-decoration:line-through}.steps{margin:0;padding:0;list-style:none}.steps li{gap:14px;margin-bottom:23px;display:flex}.steps p{white-space:pre-wrap;margin:0}.timer-note{color:var(--muted);align-items:center;gap:5px;margin-top:8px;font-size:.78rem;display:flex}.recipe-notes{background:var(--pale);border-radius:12px;gap:17px;margin-top:25px;padding:22px;display:flex}.recipe-notes>svg{color:var(--sage)}.recipe-notes h3{margin-bottom:10px;font-size:1.25rem}.recipe-notes p{white-space:pre-wrap;margin:0}.source{color:var(--muted);overflow-wrap:anywhere;margin:20px 0 0;font-size:.875rem}.delete-confirm{background:#fbefeb;border:1px solid #b86d6d;border-radius:12px;margin-top:25px;padding:20px}.delete-confirm .button{margin-right:12px}.danger{color:#9a514b}.danger-button{color:#fff;background:#97524e}.cook-heading{justify-content:space-between;gap:10px;margin-bottom:30px;display:flex}.current-step{gap:17px;padding:22px 0;display:flex}.current-step p{white-space:pre-wrap;font-size:1.35rem;line-height:1.6}.progress{background:var(--pale);border-radius:4px;height:5px;overflow:hidden}.progress span{background:var(--lav);height:100%;display:block}.cook-nav{justify-content:space-between;gap:15px;margin-top:35px;display:flex}.timer-toast{background:var(--ink);color:#fff;z-index:20;white-space:nowrap;border-radius:28px;align-items:center;gap:13px;padding:8px 10px 8px 23px;display:flex;position:fixed;bottom:22px;left:50%;transform:translate(-50%);box-shadow:0 5px 25px #0003}.timer-toast .icon-btn{color:#fff}.welcome{text-align:center;background:linear-gradient(#f7f3ecbb,#f7f3ecf7),url(/lavande.png) 50%/cover;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:30px;display:flex}.welcome h1{margin:18px 0}.welcome p{color:var(--muted);font-size:1.2rem}.welcome small{color:var(--muted);margin-top:24px;font-size:.85rem;display:block}.spin{animation:2s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=1100px){.topbar{gap:15px;padding:16px 24px}.topbar nav{gap:15px}.brand{font-size:1.4rem}.account-name,.account .button span{display:none}.container{padding:25px 25px 0}.hero-copy{width:67%}.hero h1{font-size:3.25rem}.tools{gap:6px}.tip{gap:14px}.tip h3{white-space:normal;min-width:160px}}@media (width<=750px){.topbar{flex-wrap:wrap;gap:8px;min-height:auto;padding:12px 17px}.brand{font-size:1.4rem}.brandmark{font-size:2rem}.account{gap:0;margin-left:auto}.account .primary{min-width:40px;padding:10px}.topbar nav{order:3;justify-content:center;gap:30px;width:100%}.topbar nav button{padding:6px 0;font-size:.875rem}.container{padding:17px 17px 0}.hero{background-position:70%;min-height:0;margin-bottom:26px}.hero-copy{background:linear-gradient(90deg,#fffcf7ed,#fffcf7d9);width:100%;padding:27px 20px}.hero h1{font-size:2.65rem}.eyebrow{letter-spacing:.14em;font-size:.75rem}.subtitle{margin:12px 0 20px;font-size:1.1rem}.search{padding:6px 11px}.search input{font-size:.875rem}.categories{gap:6px}.categories button{padding:8px 11px;font-size:.875rem}.section-head{flex-direction:column;align-items:flex-start;gap:13px;margin-bottom:18px}.section-head h2{font-size:1.65rem}.tools{justify-content:space-between;gap:5px;width:100%}.tools .chip{padding:8px 12px;font-size:.8rem}.tools select{max-width:165px;padding:8px;font-size:.8rem}.recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.card-body{padding:12px}.card-body h3{margin:4px 0 10px;padding-right:0;font-size:1.2rem}.meta{flex-direction:column;gap:7px;font-size:.75rem}.card-photo{aspect-ratio:1.2}.badge{padding:4px 7px;font-size:.65rem;bottom:7px;left:7px}.favorite{width:32px;height:32px;top:7px;right:7px}.photo-empty span{font-size:.8rem}.tip{grid-template-columns:28px 1fr;gap:9px 10px;padding:20px;display:grid}.tip h3{min-width:0}.tip p{border:0;grid-column:span 2;padding:0;font-size:.875rem}.empty{padding:30px 20px}.empty h3{font-size:1.45rem}.settings h1{font-size:2.2rem}.settings-grid{grid-template-columns:1fr;gap:16px}.panel{padding:22px}.lead{font-size:1rem}.modal-head{padding:17px 20px}.modal-head h2{font-size:1.4rem}.recipe-form,.recipe-detail{padding:20px}.ingredient-row{grid-template-columns:55px 60px 1fr 32px;gap:5px}.recipe-form input:not([type=checkbox]):not([type=file]){padding:9px 8px}.step-row{grid-template-columns:24px 1fr 30px;gap:8px}.step-row .step-number{width:24px;height:24px}.detail-columns{grid-template-columns:1fr;gap:22px}.cooking .detail-columns{flex-direction:column-reverse;display:flex}.ingredient-list{margin:10px 0}.cook-nav .button{padding:10px 15px}.current-step p{font-size:1.25rem}.detail-meta{flex-direction:column;gap:10px}.detail-top{gap:8px}.detail-top .chip{padding:6px 11px;font-size:.8rem}.detail-actions{margin-left:0}.toast{font-size:.875rem;top:130px}footer{gap:20px;font-size:.75rem}}@media (width<=380px){.recipe-grid{grid-template-columns:1fr}.brand{font-size:1.25rem}.topbar nav{gap:18px}.tools select{max-width:130px}.span2{grid-column:span 1}.form-grid{grid-template-columns:1fr}}@media print{body>*{display:none!important}body{background:#fff}dialog.modal{max-width:none;max-height:none;box-shadow:none;border:0;position:static;display:block!important}dialog::backdrop{display:none}.modal-head .icon-btn,.detail-actions,.cook-button,.portions button,.delete-confirm{display:none!important}.modal-head{position:static}.detail-columns{grid-template-columns:32% 1fr}.recipe-detail{padding:15px}.detail-photo{max-height:180px}.ingredient-list input{display:none}.steps li{break-inside:avoid}dialog.modal *{overflow:visible!important}}#root{min-height:100vh}button{font-family:inherit}input,textarea,select{box-sizing:border-box}svg{vertical-align:middle}ul{list-style:outside}ol{list-style:decimal}.icon-btn svg,.brand svg,.meta span svg,.tools svg{display:block}.auth-overlay{z-index:40;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#2c203970;place-items:center;padding:20px;display:grid;position:fixed;inset:0;overflow:auto}.auth-panel{background:var(--card);border:1px solid var(--line);border-radius:20px;width:100%;max-width:450px;padding:34px;position:relative;box-shadow:0 15px 80px #22172c40}.auth-close{position:absolute;top:12px;right:12px}.auth-icon{background:var(--pale);width:60px;height:60px;color:var(--lav-dark);border-radius:50%;place-items:center;margin-bottom:20px;display:grid}.auth-panel h2{margin-bottom:15px;font-size:1.9rem}.auth-panel form{flex-direction:column;gap:16px;margin:24px 0 15px;display:flex}.auth-panel label{flex-direction:column;gap:7px;font-size:.9rem;display:flex}.auth-panel input{font:inherit;background:#fff;border:1px solid #cfc5d2;border-radius:8px;padding:11px 13px}.auth-panel input:focus{outline:2px solid var(--lav)}.auth-panel form .text-btn{align-self:center}.session-note{margin:20px 0 0;font-size:.8rem}.admin-access{font-size:.875rem}.button.admin-access{padding:9px 13px}@media (width<=750px){.topbar .account .admin-access{gap:5px;padding:8px 10px;font-size:.8rem}.auth-panel{padding:28px 23px}}@media print{body>#root{display:block!important}#root>.topbar,#root>.container,#root>.timer-toast,#root>.auth-overlay{display:none!important}.modal{overflow:visible!important}.modal-head{position:static!important}}
