:root{--paper:#f5f3ec;--ink:#263b32;--muted:#758078;--accent:#b95b3e;--line:#dedfd4;--sage:#e4eadc}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px 'DM Sans',system-ui,sans-serif}button,input,textarea,select{font:inherit}button{cursor:pointer;border:1px solid var(--line);border-radius:9px;background:#fffef9;color:var(--ink);padding:10px 14px;transition:background .15s}button:hover{background:var(--sage)}button.primary{background:var(--ink);color:white;border-color:var(--ink)}button.accent{background:var(--accent);color:white;border-color:var(--accent)}button:disabled{opacity:.45;cursor:not-allowed}button.small{padding:6px 9px;font-size:12px}a{color:var(--accent)}input,select,textarea{border:1px solid var(--line);background:#fffefb;border-radius:8px;padding:11px;color:var(--ink);max-width:100%}textarea{resize:vertical;line-height:1.6;width:100%}label{display:block;font-size:12px;font-weight:600;margin:15px 0 7px}h1,h2,h3,p{margin-top:0}h1,h2{font-family:'Libre Caslon Display',Georgia,serif;font-weight:400}h1{font-size:46px;line-height:1.08;margin-bottom:10px}h2{font-size:30px}h3{font-size:16px}p{line-height:1.6}.muted{color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:10px;font-weight:700;color:var(--accent);margin-bottom:14px}.shell{display:grid;grid-template-columns:210px minmax(0,1fr);min-height:100vh}.sidebar{border-right:1px solid var(--line);padding:35px 22px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.logo{font:46px 'Libre Caslon Display',Georgia,serif;letter-spacing:-2px;margin-bottom:8px}.logo span{color:var(--accent)}.tagline{font-size:11px;color:var(--muted);margin-bottom:45px}.nav{display:grid;gap:7px}.nav button{text-align:left;border:none;background:transparent;padding:12px}.nav button.active{background:var(--sage);font-weight:600}.side-bottom{margin-top:auto;font-size:11px;line-height:1.8;color:var(--muted)}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 330px}.main{padding:38px 35px;min-width:0}.topline{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:30px}.badge{font-size:10px;letter-spacing:.06em;text-transform:uppercase;border-radius:99px;padding:6px 10px;background:var(--sage);display:inline-block}.badge.warm{background:#f4dfd2;color:#8b462e}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.intro{margin-bottom:28px}.weeknav{display:flex;align-items:center;gap:10px}.weeknav input{background:transparent;padding:6px}.weekgrid{display:grid;grid-template-columns:repeat(7,minmax(105px,1fr));gap:10px;overflow:auto;padding-bottom:10px}.day{min-height:300px}.day-head{display:flex;justify-content:space-between;align-items:baseline;padding:12px 4px;border-bottom:1px solid var(--line);margin-bottom:12px;font-size:10px;text-transform:uppercase;letter-spacing:.09em}.day-num{font:25px Georgia,serif}.meal{border-radius:12px;background:#fffef9;border:1px solid var(--line);padding:13px 10px;min-height:211px;display:flex;flex-direction:column;margin-bottom:10px}.meal-art{font-size:34px;background:var(--sage);height:70px;border-radius:7px;display:grid;place-items:center;margin-bottom:13px}.meal:nth-child(odd) .meal-art{background:#f3e3d2}.meal-title{font-family:Georgia,serif;font-size:17px;line-height:1.3;cursor:pointer;margin-bottom:10px}.meal small{font-size:10px;color:var(--muted)}.meal select{width:100%;font-size:11px;padding:6px;margin-top:12px}.meal-footer{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:10px}.meal-footer input{width:48px;padding:4px;font-size:11px}.empty-slot{border:1px dashed #c9cebf;min-height:210px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;color:var(--muted);padding:10px}.empty-slot button{font-size:11px}.stepper{display:flex;gap:7px;border-top:1px solid var(--line);margin-top:23px;padding-top:22px;flex-wrap:wrap}.step{padding:8px 12px;background:#eeeee5;color:var(--muted);border-radius:30px;font-size:11px}.step.done{background:var(--sage);color:var(--ink)}.panel{background:#fffef9;border:1px solid var(--line);border-radius:14px;padding:23px;margin:20px 0}.panel h3{margin-bottom:9px}.chat{border-left:1px solid var(--line);background:#eeefe6;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;min-width:0}.chat-head{padding:26px 20px 16px;border-bottom:1px solid var(--line)}.chat-head h3{font-family:Georgia,serif;font-size:20px;margin-bottom:6px}.chat-head select{width:100%;margin-top:12px}.chat-messages{overflow:auto;flex:1;padding:18px;min-height:160px}.bubble{font-size:12px;line-height:1.7;padding:13px;background:#fffef9;border:1px solid var(--line);border-radius:12px;margin-bottom:13px;white-space:pre-wrap;overflow-wrap:anywhere}.bubble.user{background:var(--sage);margin-left:20px}.bubble .who{display:block;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.chat-compose{padding:16px;border-top:1px solid var(--line)}.chat-compose textarea{font-size:12px;background:#fffef9;min-height:80px}.chat-compose .row{margin-top:9px;justify-content:space-between}.chat-hint{font-size:10px;color:var(--muted)}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:18px}.recipe-card{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fffef9;cursor:pointer;transition:transform .15s}.recipe-card:hover{transform:translateY(-3px)}.recipe-cover{height:116px;background:var(--sage);display:grid;place-items:center;font-size:46px}.recipe-card:nth-child(3n+2) .recipe-cover{background:#eedfcd}.recipe-card:nth-child(3n+3) .recipe-cover{background:#e9dcd3}.recipe-body{padding:16px}.recipe-body h3{font:21px Georgia,serif;line-height:1.3;margin-bottom:10px}.tags{display:flex;gap:5px;flex-wrap:wrap}.tag{font-size:10px;color:var(--muted);padding:3px 6px;background:#f0f1e9;border-radius:5px}.search{width:100%;margin-bottom:20px}.shopping-list{display:grid;gap:1px}.grocery{display:grid;grid-template-columns:24px minmax(90px,1fr) 75px 60px 28px;gap:8px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}.grocery input{width:100%;padding:8px;font-size:12px}.grocery input[type=checkbox]{width:16px}.grocery.checked{opacity:.5}.product{padding:16px 0;border-bottom:1px solid var(--line)}.product strong{display:block;margin-bottom:5px}.product small{color:var(--muted)}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.settings-grid .panel{margin:0}.full{grid-column:1/-1}.settings-grid input,.settings-grid select{width:100%}.notice{padding:14px 17px;background:#f3e3d2;border-radius:9px;font-size:12px;line-height:1.6;margin-bottom:20px}.saved-list{display:grid;gap:8px}.saved-list button{text-align:left;display:flex;justify-content:space-between}.login{max-width:400px;margin:12vh auto;padding:40px}.login h1{font-size:75px}.login input,.login button{width:100%;margin:7px 0}.skill-card textarea{font-size:12px}.version{font-size:10px;color:var(--muted)}dialog{border:1px solid var(--line);border-radius:18px;max-width:760px;width:calc(100% - 32px);padding:30px;background:var(--paper);color:var(--ink);max-height:90vh}dialog::backdrop{background:#182d2580;backdrop-filter:blur(3px)}.recipe-detail{white-space:pre-wrap;line-height:1.8}.nutrition{display:flex;gap:20px;padding:15px 0;border-block:1px solid var(--line);margin:20px 0;flex-wrap:wrap}.nutrition b{font:24px Georgia,serif;display:block}.nutrition span{font-size:10px;color:var(--muted)}.ingredients{list-style:none;padding:0}.ingredients li{padding:9px 0;border-bottom:1px solid var(--line)}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;padding:13px 20px;border-radius:10px;display:none;z-index:100;font-size:13px;max-width:90vw}.busy{animation:breathe 1.5s infinite}@keyframes breathe{50%{opacity:.45}}.approval{background:#f4dfd2;padding:12px;border-radius:9px;font-size:12px;margin-bottom:12px}.approval pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:11px}button.icon{padding:5px 9px}.mobile-chat{display:none}@media(min-width:1600px){.main{padding:45px 50px}.workspace{grid-template-columns:minmax(0,1fr) 370px}.meal{min-height:245px}.meal-art{height:95px}}@media(max-width:1200px){.shell{grid-template-columns:165px minmax(0,1fr)}.sidebar{padding:28px 16px}.main{padding:28px 22px}.workspace{grid-template-columns:minmax(0,1fr) 290px}.weekgrid{grid-template-columns:repeat(7,125px)}}@media(max-width:900px){.shell{display:block}.sidebar{position:static;height:auto;padding:17px 20px;border-right:none;border-bottom:1px solid var(--line)}.logo{font-size:35px}.tagline,.side-bottom{display:none}.nav{display:flex;overflow:auto;gap:3px;margin-top:14px}.nav button{white-space:nowrap;padding:8px 11px;font-size:12px}.workspace{display:block}.chat{position:fixed;right:0;bottom:0;top:auto;width:360px;height:75vh;z-index:10;border:1px solid var(--line);border-radius:16px 0 0 0;box-shadow:0 0 50px #233d3220;display:none}.chat.open{display:flex}.mobile-chat{display:block;position:fixed;right:20px;bottom:20px;z-index:11;border-radius:99px;background:var(--ink);color:white}.main{padding:25px 20px 90px}.settings-grid{grid-template-columns:1fr}.weekgrid{grid-template-columns:repeat(7,145px)}h1{font-size:39px}.topline{align-items:flex-start}.chat.open+.mobile-chat{bottom:calc(75vh + 10px)}.recipe-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.day:has(.meal)>.empty-slot{min-height:70px;flex-direction:row;margin-top:8px;font-size:10px}.day:has(.meal)>.empty-slot>span{display:none}.meal{min-height:330px}.meal-art{cursor:pointer}.recipe-cover svg{width:95px;height:95px}.meal-title{overflow-wrap:anywhere}.chat-messages:empty::before{content:"Votre assistant est prêt.";color:var(--muted);font-size:12px}

@media(max-width:900px){.main>.topline{flex-wrap:wrap}.weeknav{flex-wrap:wrap;max-width:100%}.weeknav strong{min-width:0}.weeknav input{max-width:100%}}
