@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@500;600;700&display=swap";.lock-meal-toggle{display:flex;align-items:center;gap:8px;padding:10px 11px;margin-top:12px;border:1px solid #e8e6de;border-radius:7px;background:#f7f5ef;color:#5d7055;font-size:10px;line-height:1.45}.lock-meal-toggle input{accent-color:#65795d}.cookidoo-library{margin-top:22px;padding:17px;border:1px solid #eae7df;border-radius:9px;background:#fffefa}.cookidoo-library-heading{display:flex;align-items:flex-start;justify-content:space-between;border-bottom:1px solid #eeece5;padding-bottom:12px}.cookidoo-library-heading h2{margin:0;font:500 18px Playfair Display,serif}.cookidoo-library-heading p{margin:5px 0 0;color:#85867e;font-size:10px}.cookidoo-library-heading>span{color:#708066;background:#edf0e9;border-radius:12px;padding:4px 8px;font-size:10px}.cookidoo-library-list{display:grid}.cookidoo-library-list article{display:flex;align-items:center;gap:12px;padding:10px 2px;border-bottom:1px solid #f0eee8}.cookidoo-library-list article:last-child{border-bottom:0}.cookidoo-library-list article>span{flex:1;min-width:0}.cookidoo-library-list b,.cookidoo-library-list small{display:block}.cookidoo-library-list b{font-size:11px}.cookidoo-library-list small{margin-top:4px;color:#85867e;font-size:9px}.cookidoo-library-list a{color:#708066;font-size:9px}.recipe-favorite{display:grid;place-items:center;width:30px;height:30px;border:1px solid #e7e4dc;border-radius:6px;background:#fffefa;color:#9a9a8f}.recipe-favorite.selected{color:#aa8d42;background:#f8f4e6;border-color:#eee5c8}.meal-actions{display:flex;align-items:center;gap:3px}.meal-lock,.meal-more{width:23px;height:23px;border:0;border-radius:5px;background:transparent;color:#99998f;padding:0;display:grid;place-items:center}.meal-lock:hover,.meal-more:hover{background:#f0efe8;color:#63775b}.meal-lock.locked{color:#5d7553;background:#e9eee5}.meal-regenerate{width:23px;height:23px;border:0;border-radius:5px;background:transparent;color:#85867e;padding:0;display:grid;place-items:center}.meal-regenerate:hover{background:#f0efe8;color:#63775b}.meal-regenerate:disabled{opacity:.45;cursor:wait}.week-plan-notes{display:block}.week-plan-notes>summary{display:grid;gap:4px;cursor:pointer;list-style:none}.week-plan-notes>summary::-webkit-details-marker{display:none}.week-plan-notes>summary:after{content:"Afficher";color:#61775a;font-size:9px;font-weight:600}.week-plan-notes[open]>summary:after{content:"Masquer"}.week-plan-notes>summary b{font-size:10px;color:#4d6047}.week-plan-notes>summary span{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;color:#72746b}.week-plan-details{display:grid;gap:8px;padding-top:11px}.week-plan-details>div{font-size:10px}.proposal-review-backdrop{z-index:8}.proposal-review{width:min(820px,100%)}.proposal-headline{max-width:650px;margin:0 0 10px;color:#4c5f45;font:500 14px/1.45 Playfair Display,serif}.proposal-review .proposal-meta{display:flex;align-items:center;gap:6px;margin-bottom:12px}.compact-proposal-meals{gap:8px}.compact-proposal-meals>section{padding:10px}.compact-proposal-meals h3{font-size:15px;margin-bottom:5px}.compact-proposal-meal{display:flex;align-items:center;gap:5px;min-width:0;border-top:1px solid #f0eee8;padding:7px 0;font-size:10px}.compact-proposal-slot{width:33px;flex:none;color:#85867e;font-size:9px}.compact-proposal-meal>svg{flex:none;color:#607653}.compact-proposal-meal b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.compact-proposal-meal small{flex:none;color:#85867e;font-size:8px}.proposal-more{margin-top:10px;border:1px solid #eeece5;border-radius:7px;background:#f8f7f2;padding:10px 12px}.proposal-more summary{cursor:pointer;color:#5e7056;font-size:10px;font-weight:600}.proposal-more-content{display:grid;gap:8px;margin-top:10px;font-size:10px;line-height:1.5;color:#74756d}.proposal-more-content p,.proposal-more-content ul{margin:0}.proposal-more-content ul{padding-left:18px}.proposal-more-content a{color:#61775a}.proposal-review .modal-actions{position:sticky;bottom:-28px;background:#fffefa;padding:12px 0 0;margin-top:8px}@media (max-width:600px){.proposal-review{padding:20px}.compact-proposal-meals{grid-template-columns:1fr}.proposal-review .modal-actions{bottom:-20px}.week-plan-notes>summary span{-webkit-line-clamp:1}}.household-preferences{display:grid;gap:14px}.household-preferences .settings-title{margin-bottom:0}.serving-default{display:grid;grid-template-columns:1fr 80px;align-items:center;gap:6px 12px;padding:10px 0;border-top:1px solid #f0eee8}.serving-default>label,.preference-group>label{font-size:10px;font-weight:600}.serving-default input,.goal-number input{width:70px;height:32px;border:1px solid #deddd4;border-radius:5px;padding:0 7px;background:#fffefa}.serving-default small{grid-column:1/-1;color:#85867e;font-size:9px}.preference-group{display:grid;gap:8px}.preference-tags{display:flex;flex-wrap:wrap;gap:6px}.preference-tag{display:inline-flex;align-items:center;gap:5px;background:#eff1ea;color:#56694e;border-radius:12px;padding:5px 8px;font-size:9px}.preference-tag button{display:grid;place-items:center;width:16px;height:16px;border:0;border-radius:50%;background:#fffefa;color:#72776a;line-height:1}.preference-add-row{display:flex;gap:7px}.preference-add-row input{flex:1;min-width:0;height:34px;border:1px solid #deddd4;border-radius:5px;padding:0 9px;background:#fffefa;font-size:10px}.preference-add-row .button{flex:none}.preference-goals{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;border-top:1px solid #f0eee8;padding-top:12px}.preference-goals h3{grid-column:1/-1;margin:0;font:600 13px Playfair Display,serif}.goal-number{display:flex;align-items:center;justify-content:space-between;gap:6px;color:#65675f;font-size:9px}.goal-number>span{display:flex;align-items:center;gap:4px;white-space:nowrap;color:#85867e}.goal-number input{width:54px;height:30px}.goal-switches{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:8px;border-top:1px solid #f0eee8;padding-top:11px}.goal-switches label{display:flex;align-items:center;gap:6px;color:#65675f;font-size:9px}.goal-switches input{accent-color:#61775a}.preference-message{margin:0;color:#61775a;font-size:10px}.preference-save{justify-self:start}.readonly-hint{color:#898a82;font-size:9px}.grocery-editor{display:grid;gap:7px}.grocery-editor h2{margin-bottom:13px}.grocery-editor label{margin-top:5px}.grocery-editor>input,.grocery-editor>select{width:100%;height:38px;border:1px solid #deddd4;border-radius:6px;padding:0 10px;background:#fffefa;font-size:11px}.grocery-editor .modal-actions{justify-content:space-between;flex-wrap:wrap}.button.danger{display:flex;align-items:center;gap:5px;border:1px solid #edd9d2;border-radius:6px;background:#fff8f5;color:#9b5e4a;padding:8px 10px;font-size:10px}.delete-confirm{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid #f0eee8;color:#77786f;font-size:10px}.delete-confirm span{flex:1 0 100%}.grocery-editor-error{margin:5px 0 0;color:#a14f43;font-size:10px}.grocery-edit-actions{display:flex;gap:4px;margin-left:auto}.grocery-edit-actions button{display:grid;place-items:center;width:27px;height:27px;border:0;border-radius:5px;background:transparent;color:#85867e}.grocery-edit-actions button:hover{background:#f0efe8;color:#61775a}.grocery-edit-actions button:last-child:hover{background:#f8ece8;color:#a15c4b}.offline-banner{display:flex;align-items:center;gap:8px;padding:10px 12px;margin:0 0 13px;border:1px solid #eadfca;border-radius:7px;background:#faf6ea;color:#776547;font-size:10px}.offline-banner small{margin-left:auto;color:#89806d}.recipe-filter{height:34px;border:1px solid #deddd4;border-radius:6px;background:#fffefa;padding:0 9px;color:#696b62;font-size:10px}.recipe-card-link{display:inline-flex;align-items:center;gap:4px;color:#61775a;font-size:9px;text-decoration:none}.meal-note-input{width:100%;min-height:74px;resize:vertical;border:1px solid #deddd4;border-radius:6px;padding:9px;background:#fffefa;font:inherit;font-size:11px}.meal-fields-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:13px}.meal-fields-grid input,.meal-fields-grid select{width:100%;height:36px;border:1px solid #deddd4;border-radius:6px;padding:0 8px;background:#fffefa;font-size:10px}.meal-delete-confirm{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:9px;margin-top:10px;border:1px solid #edd9d2;border-radius:6px;background:#fff8f5;color:#8c5d50;font-size:10px}@media (max-width:700px){.preference-goals{grid-template-columns:1fr}.preference-goals h3,.goal-switches{grid-column:1}.goal-switches{grid-template-columns:1fr}.preference-add-row .button{padding:7px}.grocery-editor .modal-actions{justify-content:flex-end}.goal-number{font-size:10px}.meal-fields-grid{grid-template-columns:1fr}}:root{font-family:DM Sans,sans-serif;color:#292b25;background:#fbf8f2;font-synthesis:none;text-rendering:optimizeLegibility;font-optical-sizing:auto;font-weight:400;--ink:#292b25;--muted:#85867e;--line:#eae7df;--green:#5e725b;--green-dark:#475943;--paper:#fbf8f2;--white:#fffefb;--soft:#f3f0e8}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select{font:inherit}button{cursor:pointer;color:inherit}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:244px;background:#f5f2ea;border-right:1px solid #ebe7dd;padding:28px 17px 16px;display:flex;flex-direction:column;z-index:2}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink);padding:0 8px 32px}.brand-mark{display:grid;place-items:center;width:35px;height:35px;background:#697c62;border-radius:12px;color:#fff;font:600 24px Playfair Display,serif}.brand b,.brand small,.household strong,.household small,.profile b,.profile small,.sync-note b,.sync-note small{display:block}.brand b{font:600 19px Playfair Display,serif;letter-spacing:-.3px}.brand small{font-size:10px;color:var(--muted);margin-top:1px}.household{height:56px;border:1px solid #e8e4db;background:#faf8f2;border-radius:9px;display:flex;align-items:center;gap:10px;padding:8px 9px;margin-bottom:28px}.house-icon{width:32px;height:32px;border-radius:8px;background:#e9ece3;display:grid;place-items:center;color:#61745a}.household strong{font-size:12px;font-weight:600}.household small,.profile small,.sync-note small{font-size:10px;color:var(--muted);margin-top:3px}.household>.muted{margin-left:auto}.section-label,.eyebrow,.week-label{font-size:9px;font-weight:700;letter-spacing:1.2px;color:#929187}.section-label{padding:0 10px 9px}.sidebar nav{display:grid;gap:4px}.nav-item{border:0;background:transparent;border-radius:7px;display:flex;align-items:center;gap:12px;padding:10px;color:#65665e;font-size:12px;text-align:left}.nav-item.active{background:#e8ebe2;color:#4c6248;font-weight:600}.nav-count{margin-left:auto;border-radius:10px;background:#e8e5dc;color:#77776e;font-size:10px;padding:2px 7px}.sidebar-bottom{margin-top:auto}.sync-note{border-top:1px solid var(--line);padding:16px 7px;display:flex;align-items:center;gap:9px}.online-dot,.status-dot{width:7px;height:7px;background:#7a9a6c;border-radius:100%;display:inline-block}.sync-note b{font-size:10px;font-weight:600}.profile{width:100%;border:0;border-top:1px solid var(--line);padding:14px 7px 2px;background:none;display:flex;align-items:center;gap:9px;text-align:left}.profile>svg{margin-left:auto;color:var(--muted)}.profile b{font-size:10px;font-weight:600}.avatar,.collab-avatars i{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:#d9dfd0;color:#54634d;font-size:11px;font-style:normal;font-weight:600}.main-area{margin-left:244px;min-height:100vh}.topbar{height:62px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 44px;background:#fbf8f2e0}.crumb{font-size:11px;color:#85867e}.crumb span{padding:0 9px;color:#c5c2b9}.crumb b{font-weight:600;color:#494a44}.top-actions{display:flex;align-items:center;gap:10px}.collab-avatars{display:flex;padding-left:7px}.collab-avatars i{width:24px;height:24px;border:2px solid var(--paper);margin-left:-7px;font-size:9px}.collab-avatars i+i{background:#ead7cb;color:#8d6454}.shared-label{font-size:10px;color:#77786e}.icon-button{display:inline-grid;place-items:center;width:30px;height:30px;border:1px solid var(--line);border-radius:7px;background:var(--white);color:#76766e}.top-actions .icon-button{margin-left:10px}.page-content{max-width:1300px;margin:0 auto;padding:43px 44px 36px}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:29px;gap:20px}.eyebrow{margin-bottom:9px;color:#77836f}.page-heading h1{font:500 33px/1.17 Playfair Display,serif;letter-spacing:-.7px;margin:0;color:#30322c}.title-period{color:#9aa78e}.subheading{color:#898a82;font-size:12px;margin:8px 0 0}.heading-actions{display:flex;gap:8px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:7px;padding:9px 13px;font-size:11px;font-weight:600;border:1px solid transparent;white-space:nowrap}.button.primary{background:#63775c;color:#fff;box-shadow:0 2px 4px #485b3b18}.button.primary:hover{background:#53694d}.button.secondary{background:#fffefa;border-color:#e6e2d9;color:#5c5d55}.button.small{padding:7px 12px}.constraint-bar{display:flex;align-items:center;gap:12px;background:#f1eee5;padding:12px 15px;border-radius:8px;margin-top:-10px;margin-bottom:16px}.constraint-bar label{font-size:10px;font-weight:600;white-space:nowrap}.constraint-bar input{flex:1;border:1px solid #e2ded4;border-radius:6px;padding:8px;background:#fffefa;font-size:11px;outline:none}.week-toolbar{min-height:68px;display:flex;align-items:center;justify-content:space-between;background:#f4f1e9;border:1px solid #ece8de;border-radius:9px;padding:11px 14px;margin-bottom:14px}.week-label{font-size:8px;color:#888980;margin-bottom:4px}.week-controls{display:flex;align-items:center;gap:8px}.week-controls b{font:500 15px Playfair Display,serif;min-width:117px;text-align:center}.week-controls .icon-button{width:24px;height:24px;border:0;background:transparent}.today-button{font-size:9px;color:#69745f;border:1px solid #d9ddd2;border-radius:5px;padding:5px 8px;background:transparent;margin-left:5px}.week-status{display:flex;align-items:center;gap:7px;font-size:10px;color:#66675f}.status-dot{width:6px;height:6px}.status-separator{color:#bbb8ad}.validate-button{border:0;background:#e6eadf;color:#576b50;border-radius:5px;padding:7px 9px;font-size:10px;font-weight:600;display:flex;align-items:center;gap:5px;margin-left:8px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));gap:9px;overflow-x:auto;padding-bottom:4px}.day-column{min-width:120px}.day-heading{height:37px;display:flex;align-items:center;justify-content:space-between;padding:0 3px}.day-heading>div{display:flex;align-items:center;gap:6px}.day-name{font-size:10px;font-weight:600;color:#5c5d56}.day-date{font-size:9px;color:#99998f}.today .day-name{color:#61775a}.today-tag{font-size:7px;letter-spacing:.5px;color:#65775c;background:#e8ece3;border-radius:4px;padding:4px 5px}.meal-card{height:145px;border:1px solid #e9e6de;border-radius:8px;background:#fffefa;margin-bottom:8px;padding:10px 9px;cursor:pointer;transition:box-shadow .15s,border-color .15s;display:flex;flex-direction:column}.meal-card:hover{border-color:#cbd4c3;box-shadow:0 3px 12px #393b2b0b}.meal-card.leftover{background:#f5f3ed}.meal-card.free{background:#faf5eb}.meal-top{display:flex;align-items:center;justify-content:space-between;color:#99988f;font-size:7px;letter-spacing:.8px;font-weight:700}.meal-more{border:0;background:transparent;color:#a09f96;padding:0;display:grid;place-items:center}.meal-card h3{font:600 12px/1.35 DM Sans,sans-serif;letter-spacing:-.2px;margin:8px 0 0;color:#33352e}.meal-card p{font-size:9px;line-height:1.4;color:#8b8a81;margin:5px 0 0}.meal-meta{display:flex;align-items:center;gap:7px;margin-top:auto;padding-top:7px;color:#8a8b83;font-size:8px}.meal-meta>span{display:flex;align-items:center;gap:3px}.meal-tag{color:#6d8062;background:#edf0e9;border-radius:4px;padding:3px 5px}.week-footer{display:flex;justify-content:space-between;align-items:center;margin-top:10px;color:#7d7e75;font-size:10px}.week-footer>span,.week-footer button{display:flex;align-items:center;gap:6px}.week-footer>span svg{color:#77866f}.week-footer button{border:0;background:transparent;color:#5f7358;font-size:10px;font-weight:600;padding:6px 0}.mobile-nav{display:none}.shopping-summary{display:flex;align-items:center;gap:12px;background:#f2efe7;border:1px solid #eae6dc;border-radius:9px;padding:13px 15px;margin-bottom:17px}.summary-icon{width:35px;height:35px;display:grid;place-items:center;background:#e5e9de;color:#617358;border-radius:8px}.shopping-summary b,.shopping-summary small{display:block}.shopping-summary b{font-size:11px}.shopping-summary small{color:#888980;font-size:9px;margin-top:3px}.progress-track{width:150px;height:5px;background:#e0ded5;border-radius:9px;margin-left:auto;overflow:hidden}.progress-track span{display:block;background:#728466;height:100%;border-radius:9px}.store-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.store-card,.settings-card{background:#fffefa;border:1px solid #eae7df;border-radius:9px;padding:14px}.store-card>header{display:flex;align-items:center;gap:9px;padding-bottom:12px;border-bottom:1px solid #efede6}.store-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:8px;background:#e9ece4;color:#66785e}.store-icon.primeur{background:#f0eddd;color:#8d8052}.store-icon.boucherie{background:#f1e6df;color:#9a705e}.store-card header h2{margin:0;font:600 14px Playfair Display,serif}.store-card header small{font-size:9px;color:#929188}.store-card header>.muted{margin-left:auto;color:#9b9b92}.grocery-row{min-height:42px;display:flex;align-items:center;gap:8px;border-bottom:1px solid #f0eee8}.check{width:16px;height:16px;border:1px solid #d5d6cd;border-radius:5px;background:transparent;color:#fff;display:grid;place-items:center;padding:0;flex:none}.checked .check{background:#718266;border-color:#718266}.grocery-name{font-size:10px;flex:1}.grocery-row>small{font-size:9px;color:#898a81;white-space:nowrap}.grocery-row select{width:19px;border:0;background:transparent;color:transparent;outline:0;cursor:pointer}.grocery-row select option{color:#333}.grocery-row.checked .grocery-name{text-decoration:line-through;color:#9b9c93}.add-to-store{width:100%;border:0;background:transparent;color:#708066;font-size:9px;font-weight:600;padding:11px 0 1px;display:flex;justify-content:center;align-items:center;gap:4px}.recipe-tools{display:flex;align-items:center;gap:9px;margin:-5px 0 18px}.searchbox{height:35px;display:flex;align-items:center;gap:8px;border:1px solid #e7e4dc;background:#fffefa;border-radius:7px;padding:0 10px;width:min(360px,100%);color:#99998f}.searchbox input{border:0;outline:0;background:transparent;font-size:10px;width:100%;color:var(--ink)}.recipe-count{margin-left:auto;font-size:10px;color:#898a82}.recipe-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.recipe-card{background:#fffefa;border:1px solid #e9e6de;border-radius:9px;overflow:hidden}.recipe-illustration{height:100px;position:relative;display:grid;place-items:center;background:linear-gradient(135deg,#e9ecdf,#cbd3bd);color:#73816a}.recipe-1 .recipe-illustration{background:linear-gradient(135deg,#f1e8d4,#dfceb0);color:#a68c5f}.recipe-2 .recipe-illustration{background:linear-gradient(135deg,#f0e0d4,#ddc1ae);color:#9c7058}.recipe-3 .recipe-illustration{background:linear-gradient(135deg,#e2e9e7,#c1d3d0);color:#688581}.recipe-illustration>span{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#fffefa77}.recipe-illustration small{position:absolute;left:11px;top:10px;background:#fffefaab;border-radius:4px;padding:4px 6px;font-size:7px;letter-spacing:.7px;color:#65695e}.recipe-info{padding:12px}.recipe-tags{display:flex;gap:5px}.recipe-tags span{font-size:8px;padding:3px 6px;border-radius:4px;background:#eff1ea;color:#6c7b62}.recipe-info h3{font-size:12px;margin:8px 0;color:#373830}.recipe-info p{display:flex;align-items:center;gap:5px;color:#8d8e85;font-size:9px}.recipe-info button{border:0;background:transparent;color:#63775b;display:flex;align-items:center;gap:3px;padding:3px 0;font-size:9px;font-weight:600}.settings-layout{display:grid;grid-template-columns:1fr 1fr;gap:13px}.settings-card{padding:17px}.settings-title{display:flex;align-items:flex-start;gap:10px;margin-bottom:14px}.settings-title>svg{width:18px;color:#718168}.settings-title h2{font:600 14px Playfair Display,serif;margin:0}.settings-title p{font-size:9px;color:#898a82;margin:4px 0 0}.member-row{display:flex;align-items:center;gap:9px;padding:9px 0;border-top:1px solid #f0eee8}.member-row>b,.member-row small{display:block}.member-row>span:nth-child(2) b{font-size:10px}.member-row small{font-size:9px;color:#8d8e85;margin-top:3px}.avatar.coral{background:#f0ddd3;color:#986c59}.member-pill{margin-left:auto;font-size:8px;color:#72766a;background:#f2f1eb;padding:4px 7px;border-radius:10px}.preference-list>div{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-top:1px solid #f0eee8;font-size:10px}.preference-list svg{width:15px;color:#77886c}.settings-card.wide{grid-column:1/-1}.integration-row{display:flex;align-items:center;gap:10px;padding:11px 0;border-top:1px solid #f0eee8}.service-logo{width:31px;height:31px;border-radius:8px;display:grid;place-items:center;font:700 15px Playfair Display,serif}.service-logo.supa{background:#e7eee6;color:#57734e}.service-logo.cook{background:#f0e6df;color:#9a6d55}.integration-row>span:nth-child(2){flex:1}.integration-row b,.integration-row small,.budget-box b,.budget-box small{display:block}.integration-row b,.budget-box b{font-size:10px}.integration-row small,.budget-box small{font-size:9px;color:#898a82;margin-top:4px}.integration-state{font-size:9px;color:#8d8e85}.integration-state.pending{display:flex;align-items:center;gap:4px;color:#9a8053}.budget-box{display:flex;align-items:center;gap:10px;background:#f5f2e9;border-radius:7px;padding:12px;margin-top:9px;color:#697c60}.budget-box span{flex:1}.budget-box button{display:flex;align-items:center;gap:3px;border:0;background:transparent;color:#6d7c65;font-size:9px}.security-note{display:flex;align-items:center;gap:6px;margin-top:11px;color:#81837a;font-size:9px}.security-note svg{color:#718168}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#22251f55;display:grid;place-items:center;padding:20px;z-index:5}.edit-modal{width:min(420px,100%);padding:25px;background:#fffefa;border-radius:12px;box-shadow:0 20px 60px #20231d33;position:relative}.modal-close{position:absolute;right:16px;top:13px;background:transparent;border:0;font-size:24px;color:#898a82}.edit-modal h2{font:600 23px Playfair Display,serif;margin:6px 0 20px}.edit-modal label{display:block;font-size:10px;font-weight:600;margin-bottom:6px}.edit-modal input{width:100%;height:38px;border:1px solid #deddd4;border-radius:6px;padding:0 10px;outline-color:#87977c;font-size:12px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;padding:10px 15px;background:#394936;color:#fff;border-radius:7px;box-shadow:0 6px 20px #1b241b2e;font-size:10px;z-index:8}@media (min-width:1500px){.page-content{padding-top:54px}.calendar-grid{gap:12px}.meal-card{height:158px;padding:12px}}@media (max-width:1100px){.sidebar{width:210px}.main-area{margin-left:210px}.topbar{padding:0 25px}.page-content{padding:34px 25px}.calendar-grid{grid-template-columns:repeat(7,145px);padding-bottom:9px}.week-toolbar{align-items:flex-start;gap:10px}.week-status{flex-wrap:wrap;justify-content:flex-end}.store-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:700px){body{background:#fbf8f2}.sidebar{display:none}.main-area{margin:0;padding-bottom:75px}.topbar{height:53px;padding:0 17px}.top-actions{gap:5px}.shared-label{display:none}.page-content{padding:27px 16px 25px}.page-heading{align-items:flex-start;flex-direction:column;margin-bottom:20px;gap:15px}.page-heading h1{font-size:30px}.subheading{font-size:11px;line-height:1.5}.heading-actions{width:100%}.heading-actions .button{flex:1}.week-toolbar{padding:10px 11px;flex-direction:column;gap:8px}.week-status{width:100%;justify-content:flex-start;border-top:1px solid #e7e3d9;padding-top:8px;font-size:9px}.validate-button{margin-left:auto;padding:6px 7px}.calendar-grid{grid-template-columns:repeat(7,150px);margin-right:-16px;padding-right:16px;gap:8px}.day-column{min-width:150px}.meal-card{height:134px}.week-footer{align-items:flex-start;gap:10px;font-size:9px}.week-footer button{white-space:nowrap;font-size:9px}.mobile-nav{position:fixed;display:flex;left:0;right:0;bottom:0;height:66px;padding:5px 10px calc(5px + env(safe-area-inset-bottom));justify-content:space-around;align-items:center;background:#fffefaed;border-top:1px solid #eae7df;z-index:3;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.mobile-nav button{min-width:58px;border:0;background:transparent;color:#898a82;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:9px}.mobile-nav button.active{color:#61775a;font-weight:600}.constraint-bar{flex-wrap:wrap}.constraint-bar label{width:100%}.constraint-bar input{min-width:0}.shopping-summary{padding:11px;gap:9px}.summary-icon{width:31px;height:31px}.shopping-summary b{font-size:10px}.shopping-summary small{font-size:8px}.progress-track{width:55px}.store-grid{grid-template-columns:1fr;gap:10px}.store-card{padding:12px}.grocery-row{min-height:41px}.grocery-name{font-size:11px}.recipe-tools{flex-wrap:wrap}.searchbox{width:100%;order:0}.recipe-tools .button{order:1}.recipe-count{order:2;margin-left:auto}.recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.recipe-illustration{height:82px}.recipe-info{padding:9px}.recipe-info h3{font-size:11px;line-height:1.4}.settings-layout{grid-template-columns:1fr}.settings-card.wide{grid-column:auto}.integration-row small{max-width:200px;line-height:1.4}.budget-box{align-items:flex-start;flex-wrap:wrap}.budget-box button{margin-left:26px}.toast{bottom:82px;width:max-content;max-width:calc(100vw - 30px);text-align:center}.edit-modal{padding:22px}}.access-page{min-height:100vh;display:grid;place-items:center;padding:28px;background:radial-gradient(ellipse at 15% 12%,#eef0e7 0,transparent 38%),radial-gradient(ellipse at 90% 90%,#eee4d9 0,transparent 36%),var(--paper)}.access-card{width:min(440px,100%);background:#fffefa;border:1px solid #eae7df;border-radius:14px;padding:34px;box-shadow:0 18px 60px #35372b0c}.access-brand{display:flex;align-items:center;gap:10px;margin-bottom:36px}.access-brand .brand-mark{display:grid;place-items:center;width:38px;height:38px;background:#697c62;border-radius:12px;color:#fff}.access-brand b,.access-brand small{display:block}.access-brand b{font:600 19px Playfair Display,serif}.access-brand small{font-size:10px;color:var(--muted);margin-top:2px}.access-card h1{font:500 27px Playfair Display,serif;margin:0;color:#30322c}.access-description{font-size:11px;line-height:1.6;color:#85867e;margin:8px 0 20px}.access-description b{color:#5b5c54;overflow-wrap:anywhere}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;background:#f3f1eb;border-radius:7px;padding:3px;margin-bottom:18px}.auth-tabs button{border:0;background:transparent;border-radius:5px;padding:8px;font-size:10px;color:#77786e}.auth-tabs button.selected{background:#fffefa;color:#53694d;font-weight:600;box-shadow:0 1px 3px #32351e13}.access-card form>label{display:block;font-size:10px;font-weight:600;margin:12px 0 6px}.access-input{height:39px;display:flex;align-items:center;gap:8px;border:1px solid #e2dfd7;background:#fffefa;border-radius:6px;padding:0 10px;color:#909187}.access-input:focus-within{border-color:#9ca994;box-shadow:0 0 0 3px #e8ece4}.access-input input{width:100%;border:0;outline:0;background:transparent;font-size:11px;color:var(--ink)}.access-submit{width:100%;height:40px;margin-top:17px}.access-submit svg{margin-left:auto}.access-submit:disabled,.invite-panel button:disabled{opacity:.65;cursor:wait}.access-message{font-size:10px;line-height:1.5;color:#65775c;background:#eef1e9;border-radius:6px;padding:9px 10px;margin:12px 0 0}.access-message.error{color:#985f4e;background:#f7ede8}.access-privacy{display:flex;align-items:center;gap:7px;border-top:1px solid #eeece5;margin-top:18px;padding-top:14px;color:#85867e;font-size:9px;line-height:1.45}.access-privacy svg{color:#73846a;flex:none}.signout-link{display:block;margin:15px auto 0;border:0;background:transparent;color:#85867e;font-size:10px}.loading-card{text-align:center}.loading-card .brand-mark{margin:0 auto 18px}.loading-card h1{font-size:23px}.loading-card p{font-size:11px;color:#85867e}.loading-indicator{display:block;width:22px;height:22px;border:2px solid #e5e9df;border-top-color:#697c62;border-radius:50%;margin:19px auto 0;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.invite-panel{display:flex;align-items:flex-start;gap:12px;justify-content:space-between;border-top:1px solid #f0eee8;padding-top:12px;margin-top:4px}.invite-panel>div{min-width:0}.invite-panel b,.invite-panel small{display:block}.invite-panel b{font-size:10px}.invite-panel small{font-size:9px;line-height:1.4;color:#85867e;margin-top:4px}.invite-panel code{display:block;margin-top:8px;word-break:break-all;border-radius:5px;background:#f2f0e9;padding:7px;font-size:10px;color:#53694d;-webkit-user-select:all;user-select:all}.invite-panel .invite-error{color:#985f4e}.invite-panel button{padding:7px 9px;font-size:9px}.cloud-error{display:flex;align-items:center;gap:8px;margin:-13px 0 16px;padding:10px 12px;border:1px solid #eadbd4;background:#fbf1ec;border-radius:7px;color:#8f5f4d;font-size:10px}.cloud-error span{flex:1}.cloud-error button{border:0;background:transparent;color:#795b4e;font-size:10px;font-weight:600}@media (max-width:700px){.access-page{padding:18px}.access-card{padding:25px 21px}.access-brand{margin-bottom:29px}.invite-panel{flex-direction:column}.invite-panel button{width:100%}}.settings-signout{margin-top:14px;width:100%;justify-content:center}.pwa-card{min-width:0}.pwa-icon{width:31px;height:31px;flex:none;display:grid;place-items:center;border-radius:9px;background:#697c62;color:#fff;font:600 20px Playfair Display,serif}.pwa-instructions{font-size:11px;line-height:1.55;color:#51544c}.pwa-instructions ol{padding-left:21px;margin:8px 0}.pwa-instructions li{margin:4px 0}.pwa-instructions p{margin:8px 0}.pwa-instructions small,.pwa-storage-note{display:block;color:#85867e;font-size:10px;line-height:1.5}.pwa-message{font-size:11px;line-height:1.55;color:#62655c}.pwa-update,.pwa-global-update{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;border:1px solid #dfe5d9;background:#f4f6f0;border-radius:8px;padding:11px 13px;font-size:11px}.pwa-update{border:0;border-top:1px solid #eeece5;border-radius:0;background:transparent;padding:12px 0 0;margin-top:12px}.pwa-storage-note{border-top:1px solid #eeece5;padding-top:10px;margin:12px 0 0}.proposal-backdrop{z-index:8}.proposal-modal{position:relative;width:min(760px,100%);max-height:calc(100vh - 32px);overflow:auto;background:#fffefa;border:1px solid #eae7df;border-radius:14px;padding:28px;box-shadow:0 24px 80px #30322b30}.proposal-modal h2{font:500 28px Playfair Display,serif;margin:8px 0;color:#30322c}.proposal-summary{color:#66695f;font-size:12px;line-height:1.6;margin:0 0 8px}.proposal-meta{color:#85867e;font-size:10px;margin-bottom:18px}.proposal-meals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.proposal-meals>section,.proposal-extras,.week-plan-notes{border:1px solid #eeece5;border-radius:8px;padding:12px;background:#fffefa}.proposal-meals h3{font:500 17px Playfair Display,serif;margin:0 0 8px;color:#52664b}.proposal-meal{display:grid;gap:3px;border-top:1px solid #f0eee8;padding:8px 0;font-size:10px}.proposal-meal small{color:#85867e;line-height:1.45}.proposal-extras{display:grid;gap:8px;margin-top:12px;font-size:10px;line-height:1.5}.proposal-extras p,.proposal-extras ul,.week-plan-notes p,.week-plan-notes ul{margin:0}.proposal-extras ul,.week-plan-notes ul{padding-left:18px}.week-plan-notes{display:grid;gap:8px;margin:0 0 14px;background:#f8f7f1;color:#61645a;font-size:10px;line-height:1.5}.week-plan-notes b{color:#30322c}.proposal-modal .modal-actions{position:sticky;bottom:-28px;background:#fffefa;padding:12px 0 0;margin-top:8px}@media (max-width:600px){.proposal-modal{padding:21px}.proposal-meals{grid-template-columns:1fr}.proposal-modal .modal-actions{bottom:-21px}}.household-members{display:grid;gap:0}.member-empty{font-size:10px;color:#85867e}.member-profile-form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;border-top:1px solid #f0eee8;padding-top:12px;margin-top:8px}.member-profile-form>div{min-width:0}.member-profile-form label,.member-profile-form small{display:block;font-size:10px}.member-profile-form label{font-weight:600;margin-bottom:6px}.member-profile-form input{width:100%;height:36px;border:1px solid #e2dfd7;border-radius:6px;padding:0 9px;font-size:11px}.member-profile-form small{color:#85867e;margin-top:5px}.member-profile-form .button{height:36px;font-size:10px}.member-profile-message{grid-column:1/-1;font-size:10px;color:#65775c;margin:2px 0 0}.member-profile-message.error{color:#985f4e}n .meal-ingredients{font-size:9px!important;line-height:1.35!important;color:#6f7c65!important;margin:5px 0 0!important;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.edit-modal{width:min(620px,100%);max-height:calc(100vh - 40px);overflow:auto}.recipe-association{margin-top:15px;display:grid;gap:6px}.recipe-association label,.ingredient-editor-heading{font-size:10px;font-weight:600}.recipe-association select{height:36px;border:1px solid #deddd4;border-radius:6px;padding:0 9px;background:#fffefa;font-size:11px}.recipe-association small{font-size:9px;color:#85867e}.ingredient-editor{margin-top:16px;border-top:1px solid #eeece5;padding-top:12px}.ingredient-editor-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.ingredient-editor-heading span{color:#85867e;font-weight:400}.ingredient-editor-row{display:grid;grid-template-columns:minmax(110px,2fr) minmax(65px,.7fr) minmax(75px,.9fr) minmax(100px,1fr) auto 30px;align-items:center;gap:6px;margin:6px 0}.ingredient-editor-row input:not([type=checkbox]),.ingredient-editor-row select{height:34px;min-width:0;width:100%;border:1px solid #deddd4;border-radius:5px;padding:0 7px;background:#fffefa;font-size:10px}.pantry-toggle{display:flex;align-items:center;gap:4px;white-space:nowrap;font-size:9px;color:#686a61}.pantry-toggle input{accent-color:#63775c}.remove-ingredient{display:grid;place-items:center;width:28px;height:28px;border:0;border-radius:5px;background:transparent;color:#8b756c}.remove-ingredient:hover{background:#f4ebe5}.add-ingredient{display:flex;align-items:center;gap:5px;border:0;background:transparent;padding:7px 0;color:#61775a;font-size:10px;font-weight:600}@media (max-width:700px){.ingredient-editor-row{grid-template-columns:minmax(0,1.5fr) minmax(62px,.7fr) minmax(70px,.8fr) 30px;gap:5px}.ingredient-editor-row select{grid-column:1/3}.pantry-toggle{grid-column:3/4;grid-row:2}.remove-ingredient{grid-column:4;grid-row:1}.meal-ingredients{font-size:8px!important}}.cookidoo-modal{max-height:min(80vh,720px);overflow:auto}.cookidoo-modal .subheading{font-size:11px;line-height:1.5;margin:-10px 0 18px}.cookidoo-search-row{display:flex;gap:8px}.cookidoo-search-row input{flex:1;min-width:0}.cookidoo-task-status{display:flex;align-items:center;gap:8px;padding:10px 11px;margin-top:12px;background:#f3f1e9;border-radius:6px;color:#6e795e;font-size:10px}.cookidoo-results{display:grid;gap:7px;max-height:280px;overflow:auto;margin-top:13px}.cookidoo-result{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px;border:1px solid #ece8df;border-radius:7px}.cookidoo-result b,.cookidoo-result small{display:block}.cookidoo-result b{font-size:11px}.cookidoo-result small{margin-top:4px;font-size:9px}.cookidoo-result a{color:#708066}.cookidoo-result .button{flex:none}.cookidoo-empty{font-size:11px;color:#898a82}
