:root{color:#202421;background:#f6f4ef;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;font-weight:400}html{font-size:82.5%}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden}button,input,select{font:inherit}.app-shell{width:min(1720px,calc(100vw - 32px));margin:0 auto;padding:20px 0 36px}.app-header{align-items:center;border-bottom:1px solid #d9d5ca;display:flex;gap:20px;justify-content:space-between;padding:0 0 14px}.app-header h1,.section-heading h2,.recipe-card h3,.detail-header h2,.control-title h3,.detail-section h3,.detail-note h3{letter-spacing:0;margin:0}.app-header h1{font-size:1.35rem;line-height:1.2}.app-user-label{color:#667065;display:block;font-size:.78rem;font-weight:750;margin-top:2px}.logout-button{white-space:nowrap}.auth-shell{align-items:center;background:#f6f4ef;display:grid;min-height:100vh;padding:20px}.auth-card{background:#fff;border:1px solid #d7d2c7;border-radius:8px;display:grid;gap:16px;margin:0 auto;max-width:420px;padding:22px;width:100%}.auth-card h1,.auth-card h2{letter-spacing:0;margin:0}.auth-card form,.auth-card label{display:grid;gap:10px}.auth-card input{background:#fff;border:1px solid #c9c4b8;border-radius:6px;color:#202421;min-height:40px;padding:8px 10px}.auth-card label span{color:#4f574f;font-weight:800}.auth-link-button{background:transparent;border:0;color:#1f4d3a;cursor:pointer;font-weight:800;justify-self:start;padding:4px 0}.auth-error,.auth-message{border-radius:6px;font-weight:750;margin:0;padding:9px 10px}.auth-error{background:#fff1f0;border:1px solid #d28b82;color:#74332b}.auth-message{background:#eef6f0;border:1px solid #cfe1d4;color:#1f4d3a}.sync-warning{background:#fff7e6;border:1px solid #d69b38;border-radius:6px;color:#573b08;display:grid;gap:4px;margin:14px 0;padding:10px 12px}.sync-warning span{font-size:.86rem}.app-tabs{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.tab-button,.chip-button,.toggle-button,.primary-button,.secondary-button{align-items:center;border:1px solid #c9c4b8;border-radius:6px;cursor:pointer;display:inline-flex;font-size:.9rem;font-weight:650;justify-content:center;min-height:36px;padding:7px 12px;text-decoration:none;transition:background .15s ease,border-color .15s ease,color .15s ease}.tab-button,.chip-button,.secondary-button{background:#fff;color:#2f342f}.tab-button[aria-current=page],.chip-button[aria-pressed=true],.toggle-button[aria-pressed=true]{background:#1f4d3a;border-color:#1f4d3a;color:#fff}.primary-button{background:#2e6b4f;border-color:#2e6b4f;color:#fff}.toggle-button{background:#fff;border-color:#c9c4b8;color:#2f342f}.toggle-button[aria-pressed=true]{background:#1f4d3a;border-color:#1f4d3a;color:#fff}.tab-button:hover,.chip-button:hover,.secondary-button:hover{border-color:#7e867c}.primary-button:hover{background:#24563f;border-color:#24563f}.toggle-button:hover{border-color:#7e867c}.toggle-button[aria-pressed=true]:hover{background:#24563f;border-color:#24563f}.app-main{padding-top:20px}.workspace-layout{align-items:start;display:grid;gap:20px;grid-template-columns:1fr}.today-view{display:grid;gap:16px}.today-assistant{background:#fff;border:1px solid #d7d2c7;border-radius:8px;display:grid;gap:12px;grid-template-columns:minmax(180px,.8fr) minmax(260px,1fr) minmax(320px,1.3fr) minmax(220px,.9fr);padding:14px}.today-filter-bar{align-items:start;background:#fff;border:1px solid #d7d2c7;border-radius:8px;display:flex;flex-wrap:wrap;gap:8px;padding:12px}.today-filter-title{flex:0 0 180px;min-width:150px}.assistant-intro{align-self:center;flex:none}.today-filter-title h2{font-size:1.05rem;letter-spacing:0;line-height:1.2;margin:0}.today-filter-title p{color:#697067;font-size:.82rem;margin:2px 0 0}.assistant-step{border-left:1px solid #e0dbd1;display:grid;gap:9px;grid-template-columns:28px minmax(0,1fr);min-width:0;padding-left:12px}.assistant-step>span{align-items:center;background:#edf3ee;border-radius:999px;color:#214f3c;display:inline-flex;font-size:.78rem;font-weight:800;height:26px;justify-content:center;width:26px}.assistant-step strong{display:block;font-size:.86rem;margin-bottom:7px}.assistant-step .chip-group{max-height:70px;overflow:hidden}.assistant-actions>div{align-items:start;display:flex;flex-wrap:wrap;gap:8px}.assistant-actions strong{flex:0 0 100%}.today-protein-summary{align-items:center;background:#f6f2e8;border:1px solid #ded2b9;border-radius:8px;display:flex;gap:12px;justify-content:space-between;padding:11px 13px}.today-protein-summary div{display:grid;gap:2px}.today-protein-summary span{color:#6b5a3c;font-size:.76rem;font-weight:800;text-transform:uppercase}.today-protein-summary strong{color:#312913;font-size:1rem}.today-protein-summary p{color:#5a4d35;font-size:.86rem;margin:0;text-align:right}.planned-notice{align-items:center;background:#eef6f0;border:1px solid #cfe1d4;border-radius:8px;color:#1f4d3a;display:flex;gap:12px;justify-content:space-between;padding:12px 14px}.planned-notice div{display:grid;gap:2px}.planned-notice span{color:#3e5a48;font-size:.9rem}.today-filter-bar .chip-group{flex:1 1 560px;max-height:72px;overflow:hidden}.filter-popover{position:relative}.segmented-control{background:#eef2ed;border:1px solid #d5ddcf;border-radius:7px;display:inline-flex;flex-wrap:wrap;gap:3px;padding:3px}.segmented-control button{background:transparent;border:0;border-radius:5px;color:#2f342f;cursor:pointer;font-size:.84rem;font-weight:750;min-height:30px;padding:5px 9px}.segmented-control button[aria-pressed=true]{background:#1f4d3a;color:#fff}.today-kind-control{flex:0 1 auto}.filter-popover summary{align-items:center;background:#fff;border:1px solid #c9c4b8;border-radius:6px;color:#2f342f;cursor:pointer;display:inline-flex;font-size:.9rem;font-weight:650;min-height:36px;padding:7px 12px}.filter-popover[open] summary{background:#1f4d3a;border-color:#1f4d3a;color:#fff}.filter-popover .pantry-picker{background:#fff;border:1px solid #d7d2c7;border-radius:8px;box-shadow:0 18px 40px #20242124;max-height:min(70vh,620px);min-width:min(680px,calc(100vw - 48px));overflow:auto;padding:14px;position:absolute;right:0;top:calc(100% + 8px);z-index:5}.today-content-layout{align-items:start;display:grid;gap:18px;grid-template-columns:minmax(0,2fr) minmax(320px,1fr)}.today-results-column,.today-detail-column{min-width:0}.today-detail-column{position:sticky;top:14px}.today-detail-column .detail-panel{grid-column:auto;max-height:calc(100vh - 120px);overflow-y:auto;overscroll-behavior:contain}.control-column,.results-column,.library-column,.detail-panel,.placeholder-panel{min-width:0}.library-column{grid-column:1}.section-heading{margin-bottom:14px}.shopping-heading{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.section-heading h2{font-size:1.15rem;line-height:1.25}.section-heading p,.recipe-card p,.detail-header p,.match-info span,.placeholder-panel p{color:#5f665e;margin:4px 0 0}.control-block{border-top:1px solid #d9d5ca;padding:14px 0}.control-title{align-items:center;display:flex;gap:10px;justify-content:space-between;margin-bottom:10px}.control-title h3{font-size:.95rem}.control-title span{color:#697067;font-size:.85rem}.pantry-picker{display:grid;gap:12px}.pantry-picker-footer{background:linear-gradient(180deg,#ffffffb8,#fff 34%);bottom:-14px;display:flex;justify-content:flex-end;margin:0 -14px -14px;padding:12px 14px 14px;position:sticky}.pantry-group{border:0;margin:0;padding:0}.pantry-group legend{color:#4f574f;font-size:.82rem;font-weight:700;margin-bottom:6px;padding:0}.chip-group{display:flex;flex-wrap:wrap;gap:6px}.chip-button{font-size:.82rem;min-height:32px;padding:5px 9px}.recipe-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.recipe-card{background:#fff;border:1px solid #d7d2c7;border-radius:8px;display:flex;flex-direction:column;gap:12px;min-height:260px;padding:14px}.recipe-card-main{flex:1}.recipe-card-actions,.detail-actions{display:flex;flex-wrap:wrap;gap:8px}.recipe-card-actions{align-items:stretch}.recipe-card-actions .primary-button,.recipe-card-actions .secondary-button{flex:1 1 130px}.detail-actions{justify-content:flex-end}.recipe-card h3{font-size:1rem;line-height:1.3}.recipe-card p{font-size:.92rem}.recipe-meta,.detail-meta{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));margin:0}.recipe-meta div,.detail-meta div{border-left:2px solid #d9d5ca;padding-left:8px}.recipe-meta dt,.detail-meta dt{color:#697067;font-size:.75rem;font-weight:700}.recipe-meta dd,.detail-meta dd{font-size:.9rem;font-weight:700;margin:0}.tag-list{display:flex;flex-wrap:wrap;gap:5px}.tag-list span{background:#eef2ed;border-radius:5px;color:#3f4a40;font-size:.76rem;font-weight:700;padding:3px 7px}.match-info{display:grid;gap:2px;min-height:42px}.match-info strong{color:#1f4d3a;font-size:.86rem}.match-info span{font-size:.82rem}.detail-panel{background:#fff;border:1px solid #d7d2c7;border-radius:8px;display:grid;gap:16px;padding:16px}.detail-page-shell{display:grid;gap:12px;margin:0 auto;max-width:980px}.detail-back-button{justify-self:start}.detail-header{align-items:start;display:flex;gap:16px;justify-content:space-between}.detail-header h2{font-size:1.18rem;line-height:1.25}.detail-section,.detail-note{border-top:1px solid #e2ded5;padding-top:12px}.nutrition-note{background:#f7f8f5;border:1px solid #dce4da;border-radius:6px;color:#4f5b51;font-size:.86rem;margin:-4px 0 0;padding:9px 10px}.detail-section h3,.detail-note h3{font-size:.92rem;margin-bottom:6px}.detail-section ul,.detail-section ol,.detail-note ul{margin:0;padding-left:20px}.detail-section li,.detail-note li,.detail-note p{color:#3d443e;margin:3px 0}.ingredient-groups{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.ingredient-group{background:#f8f7f2;border:1px solid #e5e0d6;border-radius:6px;padding:10px}.ingredient-group h4{color:#4f5b51;font-size:.78rem;margin:0 0 6px}.ingredient-group ul{padding-left:16px}.cooking-guide{display:grid;gap:10px}.cooking-step{align-items:start;background:#fbfaf7;border:1px solid #e3ded3;border-radius:8px;display:grid;gap:12px;grid-template-columns:62px minmax(0,1fr);padding:12px}.cooking-step-marker{align-items:center;display:grid;gap:4px;justify-items:center}.cooking-step-marker span{align-items:center;background:#2f6d50;border-radius:999px;color:#fff;display:inline-flex;font-size:.86rem;font-weight:800;height:34px;justify-content:center;width:34px}.cooking-step-marker small{color:#697067;font-size:.7rem;font-weight:700;text-align:center}.cooking-step-heading{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;margin-bottom:4px}.cooking-step-heading strong{color:#26352d;font-size:.9rem}.cooking-step-heading span,.step-tip{color:#697067;font-size:.78rem;font-weight:700}.cooking-step p{margin:0}.step-ingredients{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin-top:8px;padding:0}.step-ingredients li{background:#edf3ee;border:1px solid #d7e3d9;border-radius:5px;color:#2d4e3c;font-size:.78rem;font-weight:700;margin:0;padding:4px 7px}.step-tip{border-left:3px solid #d0dacd;margin-top:8px;padding-left:8px}.compact-steps{background:#fbfaf7;border:1px solid #e8e2d8;border-radius:8px;padding:12px}.note-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.search-input{background:#fff;border:1px solid #c9c4b8;border-radius:6px;color:#202421;margin-bottom:14px;min-height:40px;padding:8px 11px;width:min(420px,100%)}.search-input:focus,select:focus,button:focus-visible{outline:3px solid rgba(46,107,79,.25);outline-offset:2px}.placeholder-panel,.planner-view,.interval-view,.shopping-view,.supplements-view,.settings-view{background:#fff;border:1px solid #d7d2c7;border-radius:8px;padding:18px}.supplements-section{border-top:1px solid #e2ded5;display:grid;gap:12px;padding:16px 0}.supplements-section h3{font-size:1rem;margin:0}.supplement-print-heading{display:none}.supplement-total-list{display:flex;flex-wrap:wrap;gap:8px}.supplement-total-list span{background:#eef6f0;border:1px solid #cfe1d4;border-radius:6px;color:#1f4d3a;font-size:.9rem;font-weight:800;line-height:1.25;padding:7px 9px}.supplement-weekly-note{background:#fbfaf7;border:1px solid #ded8cb;border-radius:6px;color:#4e554d;font-weight:750;line-height:1.35;margin:0;padding:9px 10px}.supplement-routine-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.supplement-routine-card{background:#fbfaf7;border:1px solid #ded8cb;border-radius:8px;display:grid;gap:10px;padding:12px}.supplement-routine-card header{align-items:baseline;border-bottom:1px solid #e2ded5;display:flex;gap:10px;padding-bottom:8px}.supplement-routine-card header span{color:#1f4d3a;font-weight:900}.supplement-routine-card h4{font-size:1.05rem;margin:0}.supplement-routine-card ul{display:grid;gap:10px;list-style:none;margin:0;padding:0}.supplement-routine-card li{display:grid;gap:3px}.supplement-routine-card li strong{color:#202421;line-height:1.2}.supplement-routine-card li span{color:#5f675d;font-size:.86rem;line-height:1.35}.settings-section{border-top:1px solid #e2ded5;display:grid;gap:12px;padding:16px 0}.settings-section h3{font-size:1rem;margin:0}.settings-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.settings-card{background:#fbfaf7;border:1px solid #ded8cb;border-radius:8px;display:grid;gap:10px;padding:12px}.supplement-card{align-content:start}.settings-check{align-items:center;color:#2f342f;display:flex;font-weight:750;gap:8px}.settings-check input{accent-color:#1f4d3a}.settings-inline-fields{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.planner-small-field input{background:#fff;border:1px solid #c9c4b8;border-radius:6px;color:#202421;min-height:38px;padding:7px 10px}.settings-fluid-target{background:#eef6f0;border:1px solid #cfe1d4;border-radius:8px;color:#1f4d3a;font-weight:800;margin:0;padding:10px 12px}.settings-fluid-table{border-collapse:collapse;max-width:520px;width:100%}.settings-fluid-table th,.settings-fluid-table td{border-bottom:1px solid #e2ded5;padding:8px 6px;text-align:left}.interval-heading{align-items:flex-start;display:flex;gap:16px;justify-content:space-between}.interval-weekbar{align-items:center;background:#f7f5f0;border:1px solid #d7d2c7;border-radius:8px;display:grid;gap:10px;grid-template-columns:42px minmax(0,1fr) 42px;margin-bottom:10px;padding:8px;text-align:center}.interval-weekbar strong{color:#214f3c;font-size:1rem}.interval-week-button{min-height:32px;padding:4px 8px}.interval-print-week-label{display:none}.interval-guidance{background:#f7faf6;border:1px solid #dce5dc;border-radius:8px;margin-bottom:10px;padding:10px}.interval-guidance h3{font-size:.9rem;letter-spacing:0;margin:0 0 5px}.interval-guidance-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.interval-guidance p{color:#3f4840;font-size:.82rem;line-height:1.3;margin:0}.interval-days{display:grid;gap:7px;grid-template-columns:repeat(7,minmax(0,1fr))}.interval-day{border:1px solid #d7d2c7;border-radius:8px;overflow:hidden}.interval-day header{align-items:center;background:#f7f5f0;border-bottom:1px solid #e2ded5;display:flex;gap:6px;justify-content:space-between;padding:7px 8px}.interval-day header span{display:block;font-weight:800}.interval-day header strong{color:#214f3c;display:block;font-size:.74rem;line-height:1.15}.interval-day.is-vacation{border-color:#a5c2ae}.interval-day.is-vacation header{background:#eef6ef}.interval-vacation-button{background:#fff;border:1px solid #c9c4b8;border-radius:999px;color:#3f4840;cursor:pointer;font-size:.68rem;font-weight:800;line-height:1;padding:5px 7px;white-space:nowrap}.interval-vacation-button[aria-pressed=true]{background:#1f4d3a;border-color:#1f4d3a;color:#fff}.interval-timeline{display:grid;gap:0;list-style:none;margin:0;padding:0}.interval-timeline li{display:grid;gap:5px;grid-template-columns:46px minmax(0,1fr);padding:5px 7px}.interval-timeline li+li{border-top:1px solid #ede9df}.interval-timeline time{color:#214f3c;font-size:.72rem;font-weight:850}.interval-timeline strong{display:block;font-size:.78rem;line-height:1.25}.interval-timeline p{color:#4f5a51;font-size:.72rem;line-height:1.25;margin:2px 0 0}.print-detail,.interval-print-summary{display:none}body.interval-print-mode .screen-detail{display:none!important}body.interval-print-mode .print-detail{display:block!important}.planner-heading{align-items:flex-start;display:flex;gap:16px;justify-content:space-between}.planner-heading-fields{align-items:end;display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.clear-plan-button{min-height:38px}.week-start-control{display:grid;gap:5px}.week-start-label{color:#697067;font-size:.78rem;font-weight:700}.week-start-control-row{align-items:center;display:grid;gap:6px;grid-template-columns:38px minmax(132px,1fr) 38px}.week-start-select{min-width:0}.week-step-button{align-items:center;background:#fff;border:1px solid #c9c4b8;border-radius:6px;color:#1f4d3a;cursor:pointer;display:inline-flex;height:38px;justify-content:center;padding:0;transition:background .15s ease,border-color .15s ease,color .15s ease;width:38px}.week-step-button:hover{background:#eef5ef;border-color:#7e867c}.inline-field,.planner-select-field,.planner-small-field{display:grid;gap:5px}.inline-field span,.planner-select-field span,.planner-small-field span{color:#697067;font-size:.78rem;font-weight:700}.inline-field select,.planner-select-field select,.planner-small-field select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#fff;background-image:linear-gradient(45deg,transparent 50%,#425048 50%),linear-gradient(135deg,#425048 50%,transparent 50%);background-position:calc(100% - 15px) 50%,calc(100% - 10px) 50%;background-repeat:no-repeat;background-size:5px 5px,5px 5px;border:1px solid #c9c4b8;border-radius:6px;color:#202421;max-width:100%;min-height:38px;min-width:0;overflow:hidden;padding:7px 28px 7px 10px;text-overflow:ellipsis;width:100%}.planner-list,.day-progress-list,.shopping-groups,.shopping-items{display:grid;gap:10px}.shopping-item-details{display:flex;flex-wrap:wrap;gap:4px 12px}.shopping-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.shopping-range-fields{align-items:end;display:flex;flex-wrap:wrap;gap:8px}.calendar-picker{display:grid;gap:3px;position:relative}.calendar-picker>span{color:#596158;font-size:.74rem;font-weight:800;text-transform:uppercase}.calendar-picker-button{background:#fff;border:1px solid #c9c4b8;border-radius:6px;color:#202421;cursor:pointer;font-weight:650;min-height:36px;padding:6px 9px}.calendar-picker-button[aria-expanded=true]{border-color:#1f4d3a;box-shadow:0 0 0 2px #1f4d3a1f}.calendar-popover{background:#fff;border:1px solid #d7d2c7;border-radius:8px;box-shadow:0 16px 34px #20242129;display:grid;gap:8px;padding:10px;position:absolute;right:0;top:calc(100% + 6px);width:276px;z-index:8}.calendar-month-header{align-items:center;display:grid;gap:6px;grid-template-columns:32px 1fr 32px;text-align:center}.calendar-month-header button,.calendar-day,.calendar-close-button{background:#fff;border:1px solid #c9c4b8;border-radius:5px;color:#202421;cursor:pointer;font-weight:700;min-width:0;padding:0}.calendar-month-header button{min-height:30px}.calendar-month-header button:disabled,.calendar-day:disabled{cursor:default;opacity:.35}.calendar-grid{display:grid;gap:3px;grid-template-columns:repeat(7,32px);justify-content:center}.calendar-weekday{color:#596158;font-size:.72rem;font-weight:800;text-align:center}.calendar-day,.calendar-empty-day{align-items:center;aspect-ratio:1;display:inline-flex;justify-content:center;min-height:32px;width:32px}.calendar-day[aria-pressed=true]{background:#1f4d3a;border-color:#1f4d3a;color:#fff}.calendar-close-button{min-height:30px;padding:0 10px}.empty-panel{background:#fff;border:1px dashed #d7d2c7;border-radius:8px;color:#596158;display:grid;gap:3px;padding:14px}.empty-panel strong{color:#202421}.shopping-check{align-items:center;color:#4f5a51;display:flex;font-size:.78rem;font-weight:700;gap:6px;margin-bottom:6px}.shopping-check input{accent-color:#1f4d3a}.shopping-item.is-checked{background:#f7f5f0}.shopping-item.is-checked .shopping-item-main,.shopping-item.is-checked .shopping-item-details{opacity:.58;text-decoration:line-through}.day-progress-list{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:16px}.day-progress-button{background:#fff;border:1px solid #d7d2c7;border-radius:8px;color:#202421;cursor:pointer;display:grid;gap:4px;min-height:92px;padding:10px 12px;text-align:left}.day-progress-button[aria-current=date]{background:#1f4d3a;border-color:#1f4d3a;color:#fff}.day-progress-button.is-past{opacity:.58}.day-progress-kicker{color:#697067;font-size:.72rem;font-weight:800;text-transform:uppercase}.day-progress-button[aria-current=date] .day-progress-kicker,.day-progress-button[aria-current=date] .day-progress-summary,.day-progress-button[aria-current=date] .day-progress-calories,.day-progress-button[aria-current=date] .day-progress-count{color:inherit}.day-progress-button strong{font-size:.98rem;line-height:1.2}.day-progress-summary{color:#3f4840;font-size:.8rem;font-weight:750;line-height:1.25}.day-progress-calories{color:#214f3c;display:grid;font-size:.86rem;font-weight:800;gap:2px;line-height:1.25}.day-progress-calories.is-empty{color:#697067;font-size:.78rem;font-weight:750}.day-progress-count{color:#697067;font-size:.8rem;font-weight:750}.planner-day,.planner-day-focus{border-top:1px solid #e2ded5;display:grid;gap:10px;padding:12px 0}.planner-day.is-past,.planner-day-focus.is-past{opacity:.56}.planner-day.is-past .planner-row,.planner-day-focus.is-past .planner-row{background:#f1f0ec}.meal-toggle-row{display:flex;flex-wrap:wrap;gap:6px}.meal-count-controls{align-items:end;display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.planner-meals{display:grid;gap:12px}.planner-meal-card{background:#fff;border:1px solid #d7d2c7;border-radius:8px;display:grid;gap:12px;padding:12px}.bread-addon-card{background:#fffdf8;border-style:dashed}.bread-addon-row{grid-template-columns:minmax(220px,1fr) auto}.meal-card-header{align-items:start;display:flex;gap:12px;justify-content:space-between}.meal-card-header h3{font-size:1rem;letter-spacing:0;line-height:1.25;margin:0}.meal-card-header p{color:#697067;font-size:.86rem;margin:2px 0 0}.meal-filter-row{display:flex;flex-wrap:wrap;gap:6px;max-height:70px;overflow:hidden}.meal-filter-panel{border:1px solid #e2ded5;border-radius:8px;background:#fbfaf7}.meal-filter-panel summary{color:#3f4a40;cursor:pointer;font-size:.86rem;font-weight:800;padding:9px 10px}.meal-filter-panel[open]{padding-bottom:10px}.meal-filter-panel[open] summary{border-bottom:1px solid #e2ded5;margin-bottom:10px}.meal-filter-panel .meal-filter-row,.meal-filter-panel .meal-filter-selects{margin-left:10px;margin-right:10px}.meal-filter-panel .meal-filter-row{margin-bottom:10px}.meal-filter-selects{display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}.planner-row{align-items:end;background:#faf9f6;border:1px solid #e2ded5;border-radius:8px;display:grid;gap:10px;grid-template-columns:minmax(220px,1fr) minmax(90px,.28fr) minmax(110px,.34fr) auto;padding:10px}.planner-recipe-preview{background:#eef6f0;border:1px solid #cfe1d4;border-radius:8px;display:grid;gap:10px;padding:11px}.planner-recipe-preview strong{color:#1f4d3a;display:block;font-size:.88rem;line-height:1.25;overflow-wrap:anywhere}.planner-recipe-preview span{color:#496052;font-size:.86rem;overflow-wrap:anywhere}.planner-preview-ingredients{display:flex;flex-wrap:wrap;gap:6px}.planner-preview-ingredients span{background:#fff;border:1px solid #d8e4da;border-radius:5px;color:#294b3a;font-size:.78rem;font-weight:750;overflow-wrap:anywhere;padding:4px 7px;white-space:normal}.meal-suggestions{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.meal-suggestion{background:#f7f8f5;border:1px solid #d7d2c7;border-radius:8px;color:#202421;cursor:pointer;display:grid;gap:5px;min-height:86px;padding:8px 10px;text-align:left}.meal-suggestion:hover{border-color:#7e867c}.meal-suggestion strong{font-size:.8rem;line-height:1.25;overflow-wrap:anywhere}.meal-suggestion span{color:#697067;font-size:.78rem;font-weight:700;line-height:1.3;overflow-wrap:anywhere;white-space:normal}.meal-suggestion small{color:#425048;font-size:.78rem;line-height:1.3;overflow-wrap:anywhere;white-space:normal}.planner-date{align-items:start;display:flex;gap:12px;justify-content:space-between;min-width:0}.planner-date>div{min-width:0}.planner-date strong{display:block;font-size:.95rem}.planner-date span{color:#697067;display:block;font-size:.78rem;font-weight:700;overflow-wrap:anywhere}.planner-day-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;min-width:0}.day-view-toggle button{min-height:34px}.day-print-button{white-space:nowrap}.meal-count-controls.is-hidden,.planner-meal-card.is-hidden,.planner-meals.is-hidden{display:none}.day-print-sheet{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.day-print-sheet *{white-space:normal}.day-screen-sheet{background:#fffefa;border:1px solid #d7d2c7;border-radius:8px;display:grid;gap:14px;padding:14px}.day-screen-sheet .day-print-header{border-bottom:1px solid #ded8cb;padding-bottom:8px}.day-screen-sheet .day-print-header h2{font-size:1.15rem;line-height:1.2;margin:0}.day-screen-sheet .day-print-header p{color:#697067;font-size:.86rem;margin:2px 0 0}.day-screen-sheet .day-print-recipes{display:grid;gap:14px}.day-screen-sheet .day-print-recipe{border-bottom:1px solid #e5dfd4;padding-bottom:14px}.day-screen-sheet .day-print-recipe:last-child{border-bottom:0;padding-bottom:0}.day-screen-sheet .day-print-recipe-heading{margin-bottom:8px}.day-screen-sheet .day-print-recipe-heading span{color:#1f4d3a;display:block;font-size:.8rem;font-weight:850}.day-screen-sheet .day-print-recipe-heading h3{font-size:1rem;line-height:1.25;margin:1px 0}.day-screen-sheet .day-print-recipe-heading p{color:#697067;font-size:.84rem;margin:0}.day-screen-sheet .day-print-columns{display:grid;gap:16px;grid-template-columns:minmax(180px,.75fr) minmax(260px,1.25fr)}.day-screen-sheet .day-print-columns h4{color:#3f4a40;font-size:.86rem;margin:0 0 5px}.day-screen-sheet .day-print-columns ul,.day-screen-sheet .day-print-columns ol{margin:0;padding-left:20px}.day-screen-sheet .day-print-columns li{color:#303830;font-size:.9rem;line-height:1.35;margin:3px 0}.planner-clear:disabled{cursor:not-allowed;opacity:.45}.muted-text{color:#697067;margin:0}.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.shopping-group{border-top:1px solid #e2ded5;padding-top:10px}.shopping-group h3,.shopping-item h4{letter-spacing:0;margin:0}.shopping-group h3{font-size:1rem;margin-bottom:5px}.shopping-item{border-bottom:1px solid #ebe6dc;display:grid;gap:1px;padding:2px 0}.shopping-group .shopping-items{gap:0}.shopping-item-main{align-items:baseline;display:flex;gap:12px;justify-content:space-between}.shopping-item-main h4{font-size:.9rem;font-weight:400}.shopping-recipe-count,.shopping-inline-hint{color:#697067;font-size:.74rem;font-style:italic;font-weight:400;margin-left:6px;white-space:nowrap}.shopping-item-main strong{color:#1f4d3a;white-space:nowrap}.shopping-item-details span{color:#5f665e;font-size:.74rem;font-style:italic;line-height:1.25}.print-button{white-space:nowrap}@media(min-width:1500px){.recipe-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}}@media(max-width:1180px){.interval-days{grid-template-columns:repeat(2,minmax(0,1fr))}.today-assistant{grid-template-columns:1fr 1fr}.today-filter-title{flex-basis:100%}}@media(max-width:960px){.filter-popover .pantry-picker{left:0;right:auto}.planner-view,.planner-day-focus{max-width:100%;min-width:0;overflow-x:hidden;overflow-x:clip}.planner-date{align-items:stretch;display:block;flex-direction:column;max-width:100%;min-width:0;overflow-x:hidden;overflow-x:clip;width:100%}.planner-date>div,.planner-date strong,.planner-date span{max-width:100%;min-width:0}.planner-day-actions{display:grid;gap:8px;grid-template-columns:1fr;justify-content:stretch;justify-items:stretch;max-width:100%;min-width:0;overflow-x:hidden;overflow-x:clip;width:100%}.planner-day-actions>*,.day-print-button{max-width:100%;min-width:0;width:100%}.day-view-toggle{background:transparent;border:0;border-radius:0;display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr));max-width:100%;min-width:0;overflow-x:hidden;overflow-x:clip;padding:0;width:100%}.day-view-toggle button{background:#fff;border:1px solid #c9c4b8;border-radius:7px;color:#2f342f;display:block;min-width:0;overflow-wrap:anywhere;padding:8px 6px;text-align:center;white-space:normal;width:100%}.day-view-toggle button[aria-pressed=true]{background:#1f4d3a;border-color:#1f4d3a;color:#fff}}@media(max-width:780px){html{font-size:66%}.app-shell{width:min(100vw - 20px,1240px);padding-top:12px}.app-header{align-items:flex-start;flex-direction:column;gap:12px}.app-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.tab-button{width:100%}.workspace-layout{grid-template-columns:1fr}.today-assistant,.today-filter-bar{align-items:stretch;display:grid;grid-template-columns:1fr}.interval-days{grid-template-columns:1fr}.today-filter-title,.today-filter-bar .chip-group,.today-kind-control,.filter-popover{grid-column:1 / -1}.today-filter-bar .chip-group{flex:none;max-height:76px}.assistant-step{border-left:0;border-top:1px solid #e0dbd1;padding-left:0;padding-top:12px}.today-protein-summary{align-items:flex-start;flex-direction:column}.today-protein-summary p{text-align:left}.filter-popover .pantry-picker{min-width:100%;position:static;box-shadow:none;margin-top:8px}.library-column,.detail-panel{grid-column:1}.recipe-grid{grid-template-columns:1fr}.detail-header{align-items:stretch;flex-direction:column}.detail-meta,.recipe-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.planner-heading,.interval-heading,.shopping-heading,.planner-date,.shopping-item-main{align-items:stretch;flex-direction:column}.day-view-toggle{grid-template-columns:1fr}.planner-day-actions{width:min(100%,calc(100vw - 40px))}.planner-heading-fields{justify-content:stretch}.planner-heading-fields .inline-field,.week-start-control{min-width:0;width:100%}.week-start-control-row{grid-template-columns:40px minmax(0,1fr) 40px}.planner-row{align-items:stretch;grid-template-columns:1fr}.inline-field select,.planner-select-field select,.planner-small-field select{min-height:40px;white-space:nowrap}.planner-clear{min-height:40px;overflow-wrap:anywhere;white-space:normal}.day-progress-list,.meal-count-controls,.meal-filter-selects,.day-screen-sheet .day-print-columns,.meal-suggestions{grid-template-columns:1fr}.meal-suggestion,.planner-recipe-preview{min-height:auto;overflow:hidden}.meal-suggestion{align-content:start;gap:4px}.meal-suggestion strong,.meal-suggestion span,.meal-suggestion small,.planner-recipe-preview strong,.planner-recipe-preview span,.planner-preview-ingredients span{max-width:100%;overflow-wrap:anywhere;white-space:normal}.meal-card-header{align-items:stretch;flex-direction:column}.meal-card-header .toggle-button,.planner-clear{width:100%}.interval-timeline li{grid-template-columns:58px minmax(0,1fr)}}@media print{@page{margin:4mm;size:A4 landscape}@page portrait-print{margin:10mm;size:A4 portrait}:root{background:#fff;color:#000;font-size:10pt}body{background:#fff;height:auto;min-height:0;overflow:visible}.no-print,.app-header{display:none!important}.app-shell{margin:0;padding:0;width:100%}.app-main{padding:0}.shopping-view{border:0;border-radius:0;page:portrait-print;padding:0}.section-heading{border-bottom:1px solid #000000;display:block;margin-bottom:5px;padding-bottom:4px}.section-heading h2{font-size:13pt}.section-heading p{color:#000;font-size:7.5pt}.shopping-groups{gap:6px}.shopping-group{break-inside:avoid;border-top:0;padding-top:0}.shopping-group h3{border-bottom:1px solid #999999;font-size:11pt;margin:5px 0 1px;padding-bottom:1px}.shopping-items{gap:0}.shopping-item{break-inside:avoid;border-bottom:1px dotted #bbbbbb;gap:0;padding:1px 0}.shopping-group.is-complete,.shopping-item.is-checked{display:none!important}.shopping-item-main{display:grid;gap:6px;grid-template-columns:1fr auto}.shopping-item-main h4,.shopping-item-main strong{color:#000;font-size:10pt;line-height:1.15}.shopping-item-main h4{font-weight:400}.shopping-recipe-count,.shopping-inline-hint{color:#333;font-size:8pt;font-style:italic;font-weight:400;margin-left:4px}.shopping-item-details{display:block}.shopping-item-details span{color:#222;display:inline;font-size:8pt;font-style:italic;line-height:1.15}.shopping-item-details span+span:before{content:" | "}body.recipe-print-mode .detail-back-button,body.recipe-print-mode .detail-actions,body.recipe-print-mode .nutrition-note,body.recipe-print-mode .detail-equipment,body.recipe-print-mode .detail-cooking-guide,body.recipe-print-mode .note-grid,body.recipe-print-mode .library-column,body.recipe-print-mode .results-column,body.recipe-print-mode .control-column,body.recipe-print-mode .recipe-grid,body.recipe-print-mode .placeholder-panel,body.recipe-print-mode .section-heading{display:none!important}body.recipe-print-mode .detail-page-shell,body.recipe-print-mode .detail-panel{display:block;max-width:none}body.recipe-print-mode .detail-panel{border:0;border-radius:0;color:#000;font-size:8.5pt;page:portrait-print;padding:0}body.recipe-print-mode .detail-header{border-bottom:1px solid #000000;display:block;margin-bottom:5px;padding-bottom:4px}body.recipe-print-mode .detail-header h2{font-size:14pt;line-height:1.1;margin:0 0 2px}body.recipe-print-mode .detail-header p{font-size:8pt;margin:0}body.recipe-print-mode .detail-meta{display:grid;gap:2px 8px;grid-template-columns:repeat(6,1fr);margin-bottom:5px}body.recipe-print-mode .detail-meta div{border-left:0;padding-left:0}body.recipe-print-mode .detail-meta dt,body.recipe-print-mode .detail-meta dd{font-size:7.5pt;line-height:1.1}body.recipe-print-mode .detail-section{border-top:1px solid #999999;margin-top:5px;padding-top:4px}body.recipe-print-mode .detail-section h3{font-size:10pt;margin:0 0 3px}body.recipe-print-mode .ingredient-groups{display:grid;gap:4px 8px;grid-template-columns:repeat(3,1fr)}body.recipe-print-mode .ingredient-group{background:transparent;border:0;border-radius:0;padding:0}body.recipe-print-mode .ingredient-group h4{color:#000;font-size:8pt;margin:0 0 1px}body.recipe-print-mode .ingredient-group ul,body.recipe-print-mode .compact-steps ol{margin:0;padding-left:14px}body.recipe-print-mode .ingredient-group li,body.recipe-print-mode .compact-steps li{color:#000;font-size:8pt;line-height:1.15;margin:1px 0}body.day-print-mode .planner-heading,body.day-print-mode .day-progress-list,body.day-print-mode .planner-day-focus>:not(.day-print-sheet),body.day-print-mode .shopping-view,body.day-print-mode .detail-panel,body.day-print-mode .recipe-grid,body.day-print-mode .placeholder-panel{display:none!important}body.day-print-mode .planner-view,body.day-print-mode .planner-day-focus{border:0;border-radius:0;padding:0}body.day-print-mode .day-print-sheet{clip:auto;clip-path:none;color:#000;display:block;font-size:8pt;height:auto;overflow:visible;page:portrait-print;position:static;white-space:normal;width:auto}.day-print-header{border-bottom:1px solid #000000;margin-bottom:5px;padding-bottom:4px}.day-print-header h2{font-size:13pt;margin:0}.day-print-header p{font-size:8pt;margin:1px 0 0}.day-print-recipes{display:grid;gap:6px}.day-print-recipe{break-inside:avoid;border-bottom:1px dotted #999999;padding-bottom:5px}.day-print-recipe-heading span{font-size:7.5pt;font-style:italic}.day-print-recipe-heading h3{font-size:10.5pt;margin:0}.day-print-recipe-heading p{font-size:7.5pt;margin:1px 0 4px}.day-print-columns{display:grid;gap:8px;grid-template-columns:.8fr 1.2fr}.day-print-columns h4{font-size:8.5pt;margin:0 0 1px}.day-print-columns ul,.day-print-columns ol{margin:0;padding-left:13px}.day-print-columns li{font-size:7.5pt;line-height:1.15;margin:0}body.interval-print-mode .today-view,body.interval-print-mode .planner-view,body.interval-print-mode .shopping-view,body.interval-print-mode .supplements-view,body.interval-print-mode .detail-panel,body.interval-print-mode .recipe-grid,body.interval-print-mode .placeholder-panel,body.supplements-print-mode .today-view,body.supplements-print-mode .planner-view,body.supplements-print-mode .interval-view,body.supplements-print-mode .shopping-view,body.supplements-print-mode .detail-panel,body.supplements-print-mode .recipe-grid,body.supplements-print-mode .placeholder-panel,body.supplements-print-mode .settings-view{display:none!important}body.supplements-print-mode .supplements-view{border:0;border-radius:0;color:#000;max-height:257mm;overflow:hidden;page:portrait-print;padding:0}body.supplements-print-mode .app-shell,body.supplements-print-mode .app-main{height:auto;max-height:257mm;min-height:0;overflow:hidden;page:portrait-print}body.supplements-print-mode .supplements-view>.section-heading,body.supplements-print-mode #supplement-totals-heading,body.supplements-print-mode .supplement-total-list,body.supplements-print-mode .supplement-weekly-note{display:none!important}body.supplements-print-mode .supplements-section{border-top:0;display:block;padding:0}body.supplements-print-mode .supplements-section:first-of-type{display:none}body.supplements-print-mode #supplement-routine-heading{display:none}body.supplements-print-mode .supplement-print-heading{border-bottom:1px solid #000000;display:block;margin-bottom:5mm;padding-bottom:2mm}body.supplements-print-mode .supplement-print-heading h2{color:#000;font-size:15pt;line-height:1.1;margin:0}body.supplements-print-mode .supplement-print-heading p{color:#333;font-size:8.5pt;margin:1mm 0 0}body.supplements-print-mode .supplement-routine-grid{align-items:stretch;display:grid;gap:4mm;grid-template-columns:1fr}body.supplements-print-mode .supplement-routine-card{break-inside:avoid;background:transparent;border:1px solid #888888;border-radius:0;gap:2.5mm;padding:3mm}body.supplements-print-mode .supplement-routine-card header{border-bottom:1px solid #bbbbbb;gap:2.5mm;padding-bottom:1.6mm}body.supplements-print-mode .supplement-routine-card header span,body.supplements-print-mode .supplement-routine-card h4,body.supplements-print-mode .supplement-routine-card li strong,body.supplements-print-mode .supplement-routine-card li span{color:#000}body.supplements-print-mode .supplement-routine-card header span{font-size:11pt}body.supplements-print-mode .supplement-routine-card h4{font-size:11pt}body.supplements-print-mode .supplement-routine-card ul{gap:2.2mm}body.supplements-print-mode .supplement-routine-card li{border-bottom:1px dotted #c6c6c6;gap:.7mm;padding-bottom:1.6mm}body.supplements-print-mode .supplement-routine-card li:last-child{border-bottom:0;padding-bottom:0}body.supplements-print-mode .supplement-routine-card li strong{font-size:10pt;line-height:1.15}body.supplements-print-mode .supplement-routine-card li span{font-size:8pt;line-height:1.2}body.interval-print-mode .interval-view{border:0;border-radius:0;color:#000;max-height:200mm;overflow:hidden;page:auto;padding:0}body.interval-print-mode .interval-heading{display:none}body.interval-print-mode .interval-print-week-label{border-bottom:1px solid #999999;display:block;font-size:9pt;font-weight:800;margin-bottom:2px;padding-bottom:1px}body.interval-print-mode .interval-guidance{display:none}body.interval-print-mode .interval-days{align-items:start;gap:1.2mm;grid-template-columns:repeat(7,minmax(0,1fr))}body.interval-print-mode .interval-day{break-inside:avoid;border:1px solid #999999;border-radius:0}body.interval-print-mode .interval-day header{background:transparent;border-bottom:1px solid #999999;padding:1.2mm 1.4mm .8mm}body.interval-print-mode .interval-day header span,body.interval-print-mode .interval-day header strong{color:#000;font-size:6.2pt;line-height:1.05}body.interval-print-mode .interval-print-summary{border-bottom:1px dotted #b6b6b6;color:#000;display:block;font-size:4.9pt;line-height:1.05;margin:0;padding:.8mm 1.4mm}body.interval-print-mode .interval-timeline{display:block}body.interval-print-mode .interval-timeline li.is-print-hidden{display:none}body.interval-print-mode .interval-timeline li{display:block;padding:.55mm 1.4mm}body.interval-print-mode .interval-timeline time,body.interval-print-mode .interval-timeline strong,body.interval-print-mode .interval-timeline p{color:#000;font-size:5.05pt;line-height:1.03}body.interval-print-mode .interval-timeline time{display:inline;font-weight:800}body.interval-print-mode .interval-timeline time:after{content:" "}body.interval-print-mode .interval-timeline strong{display:inline;overflow:hidden;text-overflow:ellipsis}body.interval-print-mode .interval-timeline p{display:block;margin-top:0}}
