@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Libre+Caslon+Display&display=swap";:root{--bg: #f7f7f2;--surface: #fff;--ink: #293e35;--muted: #7a8279;--green: #365d48;--green-dark: #254533;--soft: #eaf0e5;--border: #e1e5da;--accent: #e8efb3;--danger: #a33d32;--tag-0: #3f8064;--tag-1: #4773c9;--tag-2: #8964bf;--tag-3: #d85c4c;--tag-4: #bc832b;--tag-5: #c95683;--serif: "Libre Caslon Display", Georgia, serif;--sans: "DM Sans", sans-serif;--xs: 12px;--sm: 14px;--base: 15px;--lg: 18px;--xl: 23px;--hero: 52px;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 20px;--s6: 24px;--s8: 32px;--s10: 40px;--s12: 48px;--r1: 6px;--r2: 12px;--r3: 18px;--shadow: 0 16px 60px #21332524;--brand-mark-size: 36px;--sidebar: 238px;--target: 44px;--day-width: 240px;--list-row-gap: var(--s2);--list-row-padding: var(--s1)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:var(--base)}button,input,textarea,select{font:inherit}button,a,label.button{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}button,a,input,textarea{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--green)}button{color:inherit}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}h1{font-family:var(--serif);font-size:var(--hero);font-weight:400;letter-spacing:-1.4px;line-height:1.08;margin:var(--s3) 0 var(--s4)}h2{font-size:var(--lg);font-weight:600}h3{font-size:var(--base);font-weight:600}p{line-height:1.6}.muted{color:var(--muted)}.normal{font-weight:400}.small-text{font-size:var(--sm)}.eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:650;color:var(--green)}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);min-height:var(--target);padding:var(--s3) var(--s5);border:1px solid var(--border);border-radius:var(--r1);background:var(--surface);font-size:var(--sm);font-weight:550;white-space:nowrap}.primary{background:var(--green);color:#fff;border-color:var(--green)}.primary:hover{background:var(--green-dark)}.secondary:hover{background:var(--soft)}.small{padding:var(--s2) var(--s3);font-size:var(--xs)}.button-row{display:flex;align-items:center;gap:var(--s2)}.icon{width:var(--target);height:var(--target);padding:var(--s2);display:inline-flex;align-items:center;justify-content:center;background:none;border:0;border-radius:var(--r1)}.icon:hover{background:var(--soft)}.bordered{border:1px solid var(--border);background:#fff}.text-button{display:inline-flex;align-items:center;gap:var(--s2);border:0;background:none;min-height:var(--target);padding:var(--s2);font-size:var(--sm);color:var(--green);font-weight:550}.app{display:flex;min-height:100vh}.sidebar{width:var(--sidebar);background:#f0f2e9;border-right:1px solid var(--border);padding:var(--s10) var(--s5) var(--s6);position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column}.brand{font-family:var(--serif);font-size:var(--s8);display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2);line-height:1.1}.brand-mark{height:var(--brand-mark-size);width:var(--brand-mark-size);flex-shrink:0}.brand span{width:100%;padding-left:calc(var(--brand-mark-size) + var(--s2));font:8px var(--sans);letter-spacing:1.8px;margin-top:var(--s1)}nav{margin-top:60px;display:grid;gap:var(--s2)}.nav-item{display:flex;align-items:center;gap:var(--s3);min-height:48px;border:0;background:transparent;border-radius:var(--r1);padding:var(--s3);font-size:var(--sm);text-align:left;color:#6a7668}.nav-item svg{width:19px}.nav-item.active{background:#e0e7d6;color:var(--green-dark);font-weight:600}.count{font-size:var(--xs);margin-left:auto;background:#f5f7ef;padding:2px 6px;border-radius:var(--r1)}.sidebar-tip{margin-top:auto;padding:var(--s6) var(--s3);color:#77816d}.sidebar-tip h3{font-size:var(--xs);margin:var(--s3) 0 var(--s2)}.sidebar-tip p{font-size:var(--xs)}.account{border-top:1px solid var(--border);padding-top:var(--s5);display:flex;gap:var(--s2);align-items:center}.avatar{width:32px;height:32px;background:#dfe5ce;border-radius:50%;display:grid;place-items:center;font-size:var(--xs)}.account strong{font-size:var(--xs)}.account small{display:block;font-size:9px;color:var(--muted);margin-top:var(--s1)}.account .icon{margin-left:auto;width:30px}.main{margin-left:var(--sidebar);width:calc(100% - var(--sidebar));padding:0 var(--s10)}.topbar{height:80px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);font-size:var(--xs);color:var(--muted)}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#809475;margin-right:var(--s2)}.page-heading{display:flex;justify-content:space-between;align-items:center;padding:var(--s10) 0}.page-heading p{font-size:var(--sm)}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);margin-bottom:var(--s6)}.week-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r2);padding:var(--s6) var(--s6) 0}.week-title{display:flex;align-items:center;gap:var(--s3)}.week-title h2{font-size:var(--base)}.pill{border:1px solid var(--border);border-radius:var(--r1);padding:var(--s1) var(--s2);font-size:10px;color:var(--muted)}input,textarea{border:1px solid var(--border);border-radius:var(--r1);padding:var(--s3);background:#fff;min-width:0;color:var(--ink);width:100%}input[type=date]{font-size:var(--xs);min-height:var(--target)}.date-picker{width:133px}.week-grid{display:grid;grid-template-columns:repeat(15,var(--day-width));overflow-x:auto;position:relative;padding-bottom:var(--s3);grid-template-rows:auto repeat(3,auto);column-gap:var(--s2);row-gap:0}.day{display:grid;grid-row:span 4;grid-template-rows:subgrid;border:1px solid var(--border);border-radius:var(--r1);min-height:242px;background:#fcfcf9;overflow:hidden}.day.today{border-color:#aabc96;background:#f6f8f0}.day.selected{box-shadow:inset 0 0 0 2px var(--green)}.day-header{min-height:calc(var(--target) * 2 + var(--s3));width:100%;background:none;border:0;display:flex;align-items:center;flex-direction:column;gap:var(--s1);padding:var(--s3) 0}.day-header>span{font-size:var(--sm);text-transform:uppercase;letter-spacing:1px;color:var(--muted)}.day-header strong{font-size:var(--xl);font-weight:500}.day-header small{font-size:var(--xs);letter-spacing:1px;color:var(--green)}.day-meals{display:contents}.add-meal{background:none;border:1px dashed #d9decf;border-radius:var(--r1);padding:var(--s4) var(--s1);display:flex;flex-direction:column;align-items:center;gap:var(--s2);font-size:var(--base);color:var(--muted);min-height:88px}.add-meal:hover{background:var(--soft);color:var(--green)}.planner-footer{padding:var(--s4) 0;display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:var(--sm);min-height:58px}.planner-footer>span{display:flex;align-items:center;gap:var(--s2)}.shopping-callout{display:flex;align-items:center;gap:var(--s4);background:#eef0e3;border:1px solid #e0e5d1;border-radius:var(--r2);padding:var(--s5) var(--s6);margin:var(--s5) 0 var(--s10)}.callout-icon{background:#e1e7cb;color:var(--green);width:48px;height:48px;display:grid;place-items:center;border-radius:var(--r2);flex-shrink:0}.shopping-callout h3{font-size:var(--sm)}.shopping-callout p{font-size:var(--xs);color:var(--muted);margin-top:var(--s1)}.shopping-callout>.button{margin-left:auto;font-size:var(--xs)}.recipe-section .section-heading h2{font-size:var(--lg);margin-bottom:var(--s2)}.search{display:flex;align-items:center;gap:var(--s2);border:1px solid var(--border);background:#fff;border-radius:var(--r1);padding-left:var(--s3);color:var(--muted);width:220px}label.search{flex-direction:row}.search:focus-within{outline:2px solid var(--green);outline-offset:2px}.search input:focus-visible{outline:none}.search input{border:0;font-size:var(--sm);background:none;min-width:0;width:100%}.search svg{flex-shrink:0}.meal-search-full .search{width:100%}.meal-search-full>p{margin-top:var(--s3)}.empty{border:1px dashed var(--border);border-radius:var(--r2);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--s10);gap:var(--s3);min-height:244px;background:#ffffff50}.empty-icon{width:54px;height:54px;display:grid;place-items:center;border-radius:50%;background:var(--soft);color:#798970}.empty h3{font-family:var(--serif);font-size:27px;font-weight:400}.empty p{color:var(--muted);font-size:var(--sm);max-width:410px}.recipe-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s5)}.recipe-card{position:relative;background:#fff;border:1px solid var(--border);border-radius:var(--r2);overflow:hidden}.recipe-open{display:block;background:none;border:0;text-align:left;width:100%;padding:0}.recipe-photo{display:block;width:100%;height:160px;object-fit:cover;background:#e6e9d9}.placeholder{background:radial-gradient(ellipse at 20% 30%,#f2e5c9,transparent),linear-gradient(130deg,#dce5d1,#eeeddf);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s3);color:#879478}.placeholder svg{width:38px;height:38px;stroke-width:1}.placeholder span{font-family:var(--serif);font-size:var(--xl)}.recipe-copy{padding:var(--s5)}.recipe-copy h3{font-family:var(--sans);font-size:var(--lg);font-weight:650;line-height:1.4;margin:0 0 var(--s3);padding-right:var(--target)}.recipe-copy p{display:flex;gap:var(--s2);align-items:center;font-size:var(--base);line-height:1.5;flex-wrap:wrap;padding-right:var(--target);color:var(--muted)}.recipe-copy p svg{flex-shrink:0}.recipe-plan{position:absolute;right:var(--s3);top:var(--s3);border:1px solid var(--border);background:#fff;border-radius:50%;height:34px;width:34px;display:grid;place-items:center}.planned-meal{position:relative;overflow:hidden;border-radius:var(--r1);background:#eaf0df}.planned-meal>button:first-child{border:0;padding:0;width:100%;background:none;text-align:left}.planned-meal strong{font-size:var(--sm);display:block;padding:var(--s2);overflow-wrap:anywhere}.remove-meal{position:absolute;top:var(--s1);right:var(--s1);border:0;border-radius:50%;background:#fff;width:24px;height:24px;display:grid;place-items:center}.page-footer{display:flex;gap:var(--s2);align-items:center;justify-content:center;color:#9aa38f;font-size:10px;padding:var(--s10) 0}.shopping-panel{background:#fff;border:1px solid var(--border);border-radius:var(--r2);padding:var(--s8);max-width:860px}.shopping-range{display:flex;align-items:end;gap:var(--s4);margin-bottom:var(--s8)}label{display:flex;flex-direction:column;gap:var(--s2);font-size:var(--sm);font-weight:500}.shopping-range>svg{align-self:center}.shopping-range .button{margin-left:auto}.shop-title{display:flex;gap:var(--s4);align-items:center;margin:var(--s8) 0 var(--s6)}.shop-title p{font-size:var(--sm);margin-top:var(--s2)}.step{border-radius:50%;width:var(--target);height:var(--target);background:var(--soft);display:grid;place-items:center}.list-row{display:flex;flex-direction:row;align-items:center;gap:var(--list-row-gap);min-height:var(--target);padding:var(--list-row-padding) 0;border-bottom:1px solid var(--border);font-size:var(--sm);font-weight:400}.list-row:last-child{border-bottom:0}.list-row>span{flex:1;min-width:0;overflow-wrap:anywhere}.list-row>strong{margin-left:auto;text-align:right;font-weight:500}.list-row>.icon{flex:0 0 var(--target);margin:0}.shopping-item input{width:20px;height:20px;accent-color:var(--green)}.shopping-item:has(input:checked) span{text-decoration:line-through;color:var(--muted)}.shop-actions{display:flex;gap:var(--s3);margin-top:var(--s6)}.notice{background:#faf1dc;padding:var(--s4);font-size:var(--sm);border-radius:var(--r1)}dialog{color:var(--ink);border:1px solid var(--border);border-radius:var(--r3);box-shadow:var(--shadow);padding:var(--s8);width:620px;max-width:calc(100% - 32px);max-height:90vh}dialog::backdrop{background:#1d302653;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal-head{display:flex;align-items:flex-start;gap:var(--s4);justify-content:space-between;margin-bottom:var(--s4)}.modal-head h2{font-family:var(--serif);font-size:var(--s8);font-weight:400}.recipe-form{display:grid;gap:var(--s5)}.recipe-form>p{font-size:var(--sm)}.ingredient-row{display:grid;grid-template-columns:1fr 75px 85px 32px;gap:var(--s2);margin-top:var(--s2)}.ingredient-row .icon{width:32px}.error{color:var(--danger);font-size:var(--sm);background:#fff1eb;padding:var(--s3);border-radius:var(--r1)}.banner{margin-top:var(--s4);display:flex;align-items:center;justify-content:space-between}.choose-list{display:grid;gap:var(--s3);margin-top:var(--s5)}.choose-list>button{display:flex;align-items:center;gap:var(--s4);padding:var(--s2);background:var(--bg);border:1px solid var(--border);border-radius:var(--r1);text-align:left}.choose-list .recipe-photo{width:65px;height:55px;border-radius:var(--r1)}.choose-list .placeholder span{display:none}.choose-list strong{flex:1}.recipe-detail h3{margin-top:var(--s5);margin-bottom:var(--s3)}.recipe-detail ul{list-style:none;padding:0}.danger{color:var(--danger)}.recipe-detail>.danger{margin-top:var(--s6)}.login-page{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}.login-story{padding:60px;background:#e9edde;display:flex;flex-direction:column;justify-content:space-between;min-height:100vh}.login-story h1{font-size:86px;line-height:1.03;margin-top:var(--s6)}.login-story em{font-style:normal;color:#7a8b59}.login-story p{margin-top:var(--s8);color:#78816e}.login-story>.muted{font-size:var(--xs)}.login-form{width:360px;max-width:calc(100% - 48px);margin:auto;display:grid;gap:var(--s5)}.login-form h2{font-family:var(--serif);font-size:var(--s10);font-weight:400}.login-form>p{font-size:var(--sm);margin-bottom:var(--s3)}.loading{height:100vh;display:flex;align-items:center;justify-content:center;gap:var(--s4)}@media(min-width:1600px){.main{padding-left:60px;padding-right:60px}.day{display:grid;grid-row:span 4;grid-template-rows:subgrid;min-height:300px}.recipe-photo{height:200px}}@media(max-width:1200px){:root{--sidebar: 200px}.main{padding:0 var(--s6)}.week-panel{padding:var(--s4) var(--s4) 0}.week-title .pill{display:none}.shopping-callout{flex-wrap:wrap}.shopping-callout>.button{margin-left:64px}.date-picker{display:none}.recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.brand{font-size:28px}.brand span{font-size:7px}.planner-footer{gap:var(--s3)}}@media(max-width:800px){:root{--hero: 42px}.sidebar{position:static;width:100%;padding:var(--s5);border-right:0;border-bottom:1px solid var(--border)}.app{display:block}.sidebar .brand{justify-content:center}.brand span{text-align:center;padding:0}.sidebar nav{flex-wrap:wrap;margin-top:var(--s5);display:flex;justify-content:center;gap:var(--s2)}.nav-item{padding:var(--s2);font-size:var(--xs);min-height:var(--target)}.sidebar-tip,.account{display:none}.main{margin:0;width:100%;padding:0 var(--s5)}.topbar{height:56px}.topbar>span:first-child{display:none}.topbar>span:last-child{margin-left:auto}.page-heading{padding:var(--s8) 0;gap:var(--s3);align-items:start}.page-heading>.button{padding:var(--s3);font-size:var(--xs)}.page-heading p{max-width:240px}.week-panel{overflow:hidden}.week-grid{overflow-x:auto;grid-template-columns:repeat(15,var(--day-width));padding-bottom:var(--s3)}.week-panel .section-heading{align-items:start}.week-title{gap:var(--s2)}.week-title h2{font-size:var(--xs)}.week-title>svg{display:none}.week-panel .button-row{gap:var(--s1)}.week-panel .button-row .icon{width:32px}.planner-footer{flex-wrap:wrap;font-size:10px}.shopping-callout{padding:var(--s5);gap:var(--s3)}.shopping-callout>div:nth-child(2){flex:1}.shopping-callout>.button{margin-left:0;width:100%}.recipe-section .section-heading{flex-wrap:wrap}.search{width:100%}.recipe-grid{gap:var(--s3)}.recipe-copy{padding:var(--s3)}.recipe-copy h3{font-size:var(--xl)}.recipe-plan{bottom:var(--s3);right:var(--s2);width:28px;height:28px}.recipe-photo{height:140px}.shopping-panel{padding:var(--s5)}.shopping-range{flex-wrap:wrap;gap:var(--s3)}.shopping-range>label{flex:1}.shopping-range>.button{width:100%}.shopping-range>svg{display:none}.shop-actions{flex-wrap:wrap}dialog{padding:var(--s5)}.ingredient-row{grid-template-columns:1fr 55px 65px 28px;gap:var(--s1)}.ingredient-row input{padding:var(--s2)}.login-page{grid-template-columns:1fr}.login-story{min-height:unset;padding:var(--s8)}.login-story>div:nth-child(2),.login-story>.muted{display:none}.login-form{padding:var(--s12) 0}.empty{padding:var(--s6)}}@media print{.sidebar,.topbar,.page-heading,.page-footer,.shopping-range,.shop-actions,button{display:none!important}.main{margin:0;width:100%}.shopping-panel{border:0}.shopping-item{break-inside:avoid}body{background:#fff}}label.button:focus-within{outline:2px solid var(--green);outline-offset:4px}@media(max-width:800px){.account{display:flex;border:0;padding-top:var(--s3);justify-content:center}.account .icon{margin-left:var(--s3)}}.day-shopping{display:flex;align-items:center;justify-content:center;gap:var(--s1);width:100%;min-height:var(--target);border:0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--soft);color:var(--green);font-size:var(--sm)}.day-shopping:hover{background:var(--accent)}.shop-check-icon{position:relative;display:inline-flex;padding-right:var(--s1)}.shop-check-icon svg:last-child{position:absolute;bottom:0;right:0;background:var(--green);color:var(--surface);border-radius:50%}.list-date-range{font-size:var(--base);font-weight:600;color:var(--green);margin-top:var(--s2)}.saved-list-section{margin-top:var(--s8);padding-top:var(--s6);border-top:1px solid var(--border)}.saved-lists{display:grid;gap:var(--s2);margin:var(--s4) 0}.saved-lists .button{justify-content:flex-start;white-space:normal;text-align:left}.saved-lists .button>svg:last-child{margin-left:auto;flex-shrink:0}@media print{.saved-list-section{display:none!important}}.meal-type-options{display:flex;flex-wrap:wrap;gap:var(--s2)}.meal-type-option{position:relative;cursor:pointer}.meal-type-option input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}.meal-type-option span{display:flex;align-items:center;min-height:var(--target);padding:var(--s2) var(--s3);border:1px solid var(--border);border-radius:var(--r1);background:var(--surface)}.meal-type-option input:checked+span{background:var(--green);color:var(--surface);border-color:var(--green)}.meal-type-option input:focus-visible+span{outline:2px solid var(--green);outline-offset:var(--s1)}.fridge-fields{display:grid;grid-template-columns:2fr 1fr 1fr;gap:var(--s3)}.fridge-fields input{min-width:0;width:100%}@media(max-width:600px){.fridge-fields{grid-template-columns:1fr 1fr}.fridge-fields>label:first-child{grid-column:1 / -1}}.tags-section{margin-bottom:var(--s4)}.tags-section>.button-row{margin-bottom:var(--s2)}.tag-manager{margin-top:var(--s3)}.tag-manager>.button-row{flex-wrap:wrap;align-items:end}.tag-manager-list{margin-top:var(--s3)}.meal-slot{margin:0;display:flex;flex-direction:column;gap:var(--s2);min-height:calc(var(--target) * 2 + var(--s6));padding:var(--s3)}.meal-slot+.meal-slot{margin:0;border-top:1px solid var(--border);padding-top:var(--s3)}.meal-slot h3{font-size:var(--sm);margin:0}.meal-slot .add-meal{min-height:var(--target);padding:var(--s2) var(--s1);flex-direction:row;justify-content:center;font-size:var(--sm)}.meal-slot .planned-meal strong{padding-right:var(--s8)}.ingredient-heading,.ingredient-heading h3{margin:0}.recipe-detail>.meal-type-options:empty{display:none}.recipe-detail>form{padding-top:var(--s5);border-top:1px solid var(--border);display:grid;gap:var(--s4)}.recipe-detail>form h3,.recipe-detail>form p{margin:0}select{background:var(--surface);color:var(--ink);border:1px solid var(--border);border-radius:var(--r1);min-height:var(--target);padding:var(--s2) var(--s3)}.recipe-detail .shopping-range{margin-bottom:0;flex-wrap:wrap}.recipe-detail .shopping-range>label{flex:1;min-width:0}.recipe-detail li{gap:var(--s4)}.recipe-detail li strong{white-space:nowrap}.meal-slot.drop-active{background:var(--soft);outline:2px dashed var(--green);outline-offset:-2px}.meal-slot.drop-active .add-meal{border-color:var(--green);color:var(--green)}.selected-meal{box-shadow:inset 0 0 0 2px var(--green)}.planned-meal>button:first-child,.day-header[draggable=true]{cursor:grab}.meal-search-full{margin:var(--s5) 0 var(--s2)}.choose-list>button>div{flex:1;text-align:left}.choose-list .meal-type-options{margin-top:var(--s2)}.planned-meal>button:first-child{user-select:none;-webkit-user-select:none}.meal-hashtags{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s3);margin-top:var(--s3)}.meal-hashtag{font-size:var(--base);font-weight:650;line-height:1.5;overflow-wrap:anywhere}.tag-colour-0{color:var(--tag-0)}.tag-colour-1{color:var(--tag-1)}.tag-colour-2{color:var(--tag-2)}.tag-colour-3{color:var(--tag-3)}.tag-colour-4{color:var(--tag-4)}.tag-colour-5{color:var(--tag-5)}body.meal-dragging,body.meal-dragging *{cursor:grabbing!important;-webkit-user-select:none;user-select:none}.planned-meal.drag-source{opacity:.45}.meal-drag-preview{position:fixed;z-index:1000;pointer-events:none;transform:translate(var(--s4),var(--s4));width:var(--day-width);padding:var(--s3) var(--s4);background:var(--surface);border:1px solid var(--green);border-radius:var(--r1);box-shadow:var(--shadow);font-size:var(--sm)}.meal-drag-preview span{display:block;margin-top:var(--s2);color:var(--green);font-weight:600}.day-header:active{cursor:grabbing}.confirmation-body{display:flex;align-items:flex-start;gap:var(--s4);margin:var(--s5) 0 var(--s6)}.confirmation-body p{line-height:1.6}.confirmation-icon{color:var(--danger);padding:var(--s3);border-radius:var(--r2);background:color-mix(in srgb,var(--danger) 10%,var(--surface));display:flex}.confirmation-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:var(--s3)}.button.destructive{background:var(--danger);border-color:var(--danger);color:var(--surface)}.button.destructive:hover{filter:brightness(.9)}.colour-palette{display:flex;flex-shrink:0;align-items:center}.colour-swatch{display:grid;place-items:center;width:var(--target);height:var(--target);padding:0;border:0;border-radius:var(--r1);background:transparent}.colour-swatch>span{display:grid;place-items:center;width:var(--s6);height:var(--s6);background:currentColor;border-radius:50%}.colour-swatch svg{color:var(--surface)}.colour-swatch[aria-pressed=true]>span{outline:2px solid currentColor;outline-offset:3px}.colour-swatch:hover{background:var(--soft)}@media(max-width:600px){.tag-manager-row{flex-wrap:wrap}.tag-manager-row>span{flex-basis:calc(100% - var(--target) * 2 - var(--s4))}.tag-manager-row .colour-palette{order:1;flex-basis:100%}}.modal-head>.icon{flex:0 0 var(--target)}.detail-shopping{margin-top:var(--s5)}.shopping-comparison{display:grid;grid-template-columns:1fr 1fr;gap:var(--s6)}.fridge-comparison{background:var(--soft);border-radius:var(--r2);padding:var(--s4)}.fridge-comparison h3,.shopping-comparison h3{margin-bottom:var(--s3)}.fridge-flag{display:block;color:var(--green);font-size:var(--xs);margin-top:var(--s1)}@media(max-width:700px){.shopping-comparison{grid-template-columns:1fr}}.planner-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:var(--s5);align-items:start}.planner-main{min-width:0}.planner-meal-library{position:sticky;top:var(--s4);background:var(--surface);border:1px solid var(--border);border-radius:var(--r2);padding:var(--s4);max-height:calc(100vh - var(--s8));overflow-y:auto}.planner-meal-library h2{font-size:var(--lg);margin-bottom:var(--s2)}.planner-meal-options{display:grid;gap:var(--s3)}.library-meal{padding:var(--s3);text-align:left;border:1px solid var(--border);border-radius:var(--r1);background:var(--bg);cursor:grab;-webkit-user-select:none;user-select:none}.library-meal>strong{font-size:var(--base)}.library-meal:hover{border-color:var(--green)}.empty-meal-space{flex:1;min-height:var(--target);background:color-mix(in srgb,var(--soft) 45%,transparent);border-radius:var(--r1)}@media(max-width:800px){.planner-layout{grid-template-columns:minmax(0,1fr)}.planner-meal-library{position:static;max-height:none}}.library-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--s2)}.library-heading h2{margin:0}.library-tag-filters{display:flex;flex-wrap:wrap;gap:var(--s2);margin:var(--s3) 0 var(--s4)}.library-tag-filters button[aria-pressed=true]{background:var(--soft);border-color:var(--green);color:var(--green)}.recipe-detail>.detail-shopping{width:100%;justify-content:center}.recipe-detail>.text-button.danger{display:flex;width:100%;justify-content:center;margin:var(--s3) 0 0}
