:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#24382f;background:#f3f6f4;--green:#214a3f;--soft:#dcebe3;--purple:#7a559a;--magnet-color:#7a559a}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer;border:1px solid #ccd9d0;background:white;color:var(--green);padding:.7rem 1rem;border-radius:9px}button:hover{background:#eaf2ec}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #ccac3b;outline-offset:3px}button:disabled{opacity:.5;cursor:default}a{color:var(--green)}.topbar{height:76px;background:white;border-bottom:1px solid #dce5df;display:flex;justify-content:space-between;align-items:center;padding:0 max(5vw,18px)}.brand{text-decoration:none;font-size:1.55rem;font-weight:800;letter-spacing:-1px}.brand span{font-weight:450}#status{font-size:.82rem;color:#52675c;max-width:44%;text-align:right}#main{max-width:1100px;margin:auto;padding:38px 28px 120px}h1{font-size:clamp(1.8rem,4vw,2.7rem);font-weight:650;letter-spacing:-1px;margin:0 0 10px}h2{font-size:1.25rem;font-weight:600}h3,h4{margin-bottom:.4rem}.muted{color:#5c7165;font-size:.95rem;line-height:1.5}.section-head{margin-bottom:24px}.month-nav{display:flex;align-items:center;gap:15px;margin-top:25px;text-transform:capitalize}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.weekday{padding:12px 0;text-align:center;font-weight:600;color:#5c7165}.day{min-height:108px;background:white;border:1px solid #dce5df;padding:6px;position:relative;border-radius:5px}.outside{opacity:.48}.day-number{border:0;padding:6px;min-width:34px;background:transparent;font-weight:700}.day-add{border:0;display:block;margin:4px auto 0;padding:2px 8px;color:#80978a}.magnet{display:block;margin:3px 0;width:100%;font-size:.77rem;line-height:1.2;text-align:left;overflow-wrap:anywhere;padding:7px 5px;background:#7a559a;color:white;border:0;border-radius:5px}.magnet.ingredient{background:#478568}.magnet:hover{background:#654682}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-top:20px}.calendar-tip{color:#5c7165;font-size:.85rem}.field{display:flex;flex-direction:column;gap:6px;margin:14px 0}.field>span{font-weight:600;font-size:.9rem}input,textarea,select{border:1px solid #bacbbf;border-radius:8px;padding:12px;background:white;color:#24382f;width:100%}input[type=checkbox]{width:24px;height:24px;accent-color:var(--green)}input[type=color]{padding:4px;height:45px}.primary{background:var(--green);color:white;border:0}.primary:hover{background:#356753}.shopping-form{display:grid;grid-template-columns:1fr 1.2fr auto;align-items:end;gap:12px;margin:20px 0}.shopping-form .field{margin:0}.shopping-form button{height:46px}.shopping-list{background:white;border-radius:12px;border:1px solid #dce5df;margin-top:26px}.shopping-row{display:flex;gap:18px;align-items:center;padding:20px;border-bottom:1px solid #e5ece6}.shopping-row:last-child{border:0}.shopping-row>div{flex:1}.shopping-row p{margin:5px 0 0;color:#5c7165;font-size:.92rem}.purchased strong{text-decoration:line-through;color:#7c8b82}.purchased{background:#f6f8f6}.catalog-tabs{display:flex;gap:8px;margin:24px 0}.catalog-list{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.catalog-item{text-align:left;border-left:7px solid var(--magnet-color);min-height:72px;font-weight:550;padding:18px}.catalog-new{border-style:dashed}.sheet{border:0;border-radius:16px;padding:25px;width:min(560px,94vw);max-height:85vh;color:#24382f;box-shadow:0 20px 90px #0d352c44}.sheet::backdrop{background:#15372e66}.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:15px}.sheet li{margin:8px 0;line-height:1.5}.sheet form>button{margin:8px 8px 0 0}.empty{padding:45px 0;color:#52675c}.welcome{max-width:660px;padding:40px 0}.welcome h1{font-size:3.4rem;line-height:1.05;max-width:560px}.welcome p{line-height:1.6;max-width:490px}.welcome button{margin:12px 10px 0 0}.welcome .note{font-size:.86rem;margin-top:18px}.welcome-mark{font-size:3rem;margin-bottom:22px}.hero-copy{margin:26px 0}#notice{max-width:1044px;margin:16px auto 0;padding:16px;background:#fff4c9;color:#5a4b10;border-radius:8px}#notice button{margin-left:12px}#nav{position:fixed;bottom:0;left:0;right:0;padding:10px 15px max(10px,env(safe-area-inset-bottom));display:flex;justify-content:center;gap:8px;background:white;border-top:1px solid #dce5df}#nav[hidden]{display:none}#nav button{border:0;min-width:100px;background:transparent}#nav button.active{background:var(--soft);font-weight:700}.settings-panel{max-width:650px}.settings-panel>button{margin:8px 8px 8px 0}.conflict{border:1px solid #dfcfad;padding:18px;border-radius:9px;margin:16px 0}.conflict button{margin:5px}.badge{display:inline-block;padding:4px 8px;border-radius:6px;background:var(--soft);font-size:.8rem}@media(max-width:650px){#main{padding:26px 14px 110px}.topbar{height:66px}.brand{font-size:1.3rem}.calendar{gap:2px}.day{min-height:86px;padding:2px}.day-number{padding:5px;min-width:26px;font-size:.85rem}.magnet{font-size:.65rem;padding:5px 3px}.week-grid{grid-template-columns:1fr}.week-grid .day{min-height:90px}.week-grid .magnet{font-size:.95rem;width:auto}.catalog-list{grid-template-columns:repeat(2,1fr)}.shopping-form{grid-template-columns:1fr}.shopping-row{padding:15px;gap:12px}.shopping-row>button{font-size:.8rem;padding:8px}#nav{gap:0}#nav button{min-width:0;flex:1;padding:12px 5px}.welcome{padding:22px 0}.welcome h1{font-size:2.6rem}.sheet{padding:20px}.month-nav{justify-content:space-between}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
textarea:focus-visible{outline:3px solid #ccac3b;outline-offset:3px}.ingredient-choice{display:flex;align-items:center;gap:10px;margin:9px 0}.ingredient-choice input{flex:none}.settings-section{padding:20px 0;border-bottom:1px solid #dce5df;max-width:650px}.settings-section button{margin:8px 8px 0 0}.device{padding:10px 0;border-bottom:1px solid #dce5df}.sheet fieldset{border:1px solid #dce5df;border-radius:9px;margin:18px 0}
/* Shared visual language: local Lucide, food colours and touch controls. */
button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px}.lucide{flex:none;width:22px;height:22px}.section-head{margin-bottom:12px}.month-nav{margin-top:8px}.calendar-scroll{position:relative;height:clamp(280px,calc(100dvh - 390px),700px);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.calendar-week{margin-bottom:8px}.week-heading{min-height:26px;display:flex;align-items:center;gap:8px;font-size:.76rem;color:#52675c;flex-wrap:wrap}.week-shopping{padding:2px 8px;font-size:.76rem;min-height:30px}.calendar .day{height:clamp(115px,calc((100dvh - 470px)/2),180px);min-height:0;overflow:hidden}.day-top{display:flex;align-items:center;justify-content:space-between}.day-number{min-height:32px}.day-number .lucide{display:none}.day-add{min-width:30px;min-height:32px;margin:0;padding:4px}.day-add .lucide{width:18px;height:18px}.today{border:2px solid var(--green)}.outside{opacity:1;background:#f7f9f8;color:#75867d}.magnet{display:flex;align-items:center;gap:5px;min-height:28px;margin:4px 0;padding:5px 7px;background:color-mix(in srgb,var(--magnet-color) 14%,white);border:1px solid color-mix(in srgb,var(--magnet-color) 35%,white);border-left:4px solid var(--magnet-color);color:#24382f;overflow:hidden;white-space:nowrap;line-height:1.2;text-align:left}.magnet.ingredient{background:color-mix(in srgb,var(--magnet-color) 14%,white)}.magnet:hover{background:color-mix(in srgb,var(--magnet-color) 24%,white)}.magnet span{min-width:0;overflow:hidden;text-overflow:ellipsis}.magnet .lucide{width:16px;height:16px;color:var(--magnet-color)}.magnet.purchase{--magnet-color:#687986}.more-items{font-size:.72rem;padding:0 5px;min-height:24px;width:100%;background:transparent;border:0}.more-items .lucide{width:14px;height:14px}.week-grid .day{height:auto;min-height:130px;overflow:visible}.week-grid .magnet,.day-detail .magnet{white-space:normal;font-size:.95rem;min-height:44px}.week-grid .magnet span,.day-detail .magnet span{overflow:visible}.day-detail .magnet{width:100%}.catalog-tabs{flex-wrap:wrap;margin:16px 0}.catalog-item{display:flex;justify-content:flex-start;gap:12px;font-weight:600;border-left-width:4px}.catalog-item>span:last-child{min-width:0;overflow-wrap:anywhere}.food-symbol{width:44px;height:44px;flex:none;background:color-mix(in srgb,var(--magnet-color) 12%,white);color:var(--magnet-color);border-radius:12px;display:grid;place-items:center}.food-symbol .lucide{width:28px;height:28px}.food-symbol img{width:44px;height:44px;object-fit:cover;border-radius:12px}.recipe-portal{display:flex;width:100%;max-width:650px;margin:18px 0;padding:22px;justify-content:flex-start;background:var(--green);color:white;border:0;border-radius:16px;text-align:left}.recipe-portal:hover{background:#356753}.recipe-portal>.lucide{width:42px;height:42px;margin-right:12px}.recipe-portal strong{display:block;font-size:1.3rem}.recipe-portal small{display:block;margin-top:5px;color:#dcebe3}.selector-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:35vh;overflow:auto;padding:3px}.choice-card{min-height:64px;justify-content:flex-start;text-align:left;border-left:4px solid var(--magnet-color,#7a559a)}.choice-card[aria-pressed=true]{outline:2px solid var(--green);background:var(--soft)}.selector-categories{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.category-chip{border-left:4px solid var(--magnet-color);color:#24382f}.category-chip>.lucide{color:var(--magnet-color)}.selection-summary{font-weight:600;font-size:.9rem}.subtle-add{margin-top:12px;border-style:dashed}.audience{display:flex;gap:6px;padding:12px}.audience button{flex:1}.audience .active{background:var(--soft);border-color:var(--green)}.palette{display:flex;flex-wrap:wrap;gap:10px}.swatch{width:44px;height:44px;background:var(--swatch);color:white;border:2px solid white;border-radius:50%;box-shadow:0 0 0 1px #bccbc2}.swatch:hover{background:var(--swatch)}.swatch[aria-pressed=false] .lucide{visibility:hidden}.swatch[aria-pressed=true]{outline:3px solid var(--green);outline-offset:2px}.add-actions{display:grid;gap:12px;margin-top:22px}.add-actions button{min-height:66px;justify-content:flex-start;font-size:1.05rem}.add-actions .lucide{width:28px;height:28px}.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.list-card{background:white;border:1px solid #ccd9d0;border-radius:12px;overflow:hidden}.list-open{display:flex;width:100%;flex-direction:column;align-items:flex-start;padding:20px;border:0;text-align:left}.list-open>.lucide{width:28px;height:28px;color:#52675c}.photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}.photo-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px}.recipe-thumb{width:48px;height:48px;object-fit:cover;border-radius:8px}.external-link{display:inline-flex;gap:8px;align-items:center;margin:12px 12px 12px 0;min-height:44px}.sheet-head{position:sticky;top:-25px;background:white;z-index:1;padding:8px 0}.detail-icon .lucide{width:48px;height:48px}#nav button{flex-direction:column;gap:4px;font-size:.86rem}#nav .lucide{width:22px;height:22px}.field[hidden]{display:none}.choice-card small{display:block}.catalog-new{min-height:72px}
@media(max-width:650px){.calendar .day{height:clamp(114px,calc((100dvh - 470px)/2),160px);padding:2px 2px 35px}.calendar .day-top{display:block}.calendar .day-number{width:100%;padding:2px;min-height:28px}.calendar .day-add{position:absolute;bottom:2px;left:0;width:100%;min-height:32px}.calendar .magnet{padding:4px 2px;gap:2px;font-size:.66rem;border-left-width:3px}.calendar .magnet .lucide{width:13px;height:13px}.calendar .more-items{font-size:.66rem;padding:2px;gap:1px}.catalog-item{padding:12px;gap:8px}.catalog-tabs{gap:6px}.catalog-tabs button{font-size:.85rem;padding:8px}.catalog-list{gap:8px}.sheet{max-height:92dvh;padding:18px}.sheet-head{top:-18px}.selector-grid{grid-template-columns:1fr 1fr}.choice-card{padding:10px;font-size:.9rem}.choice-card>.lucide{width:20px;height:20px}.audience{padding:8px;gap:4px}.audience button{padding:6px;font-size:.86rem}#nav button{font-size:.72rem;padding:8px 3px;min-height:54px}.shopping-form{margin:15px 0}.week-grid .day-add{width:44px}.week-heading{font-size:.72rem}.photo-grid button{font-size:.8rem;padding:5px}.calendar-tip{margin:10px 0}}
@media(max-height:720px){.calendar .day{height:100px}.calendar-scroll{height:280px}.week-heading{min-height:22px}.calendar-week{margin-bottom:5px}}
.form-notice{padding:12px;background:#fff4c9;border-radius:8px;color:#5a4b10}.shopping-form input,.shopping-row{min-width:0}.shopping-form{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) auto}.sheet .shopping-form{grid-template-columns:1fr}.sheet .shopping-row button{padding:8px}.sheet .shopping-row p{overflow-wrap:anywhere}
@media(max-width:650px){.catalog-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.shopping-page .catalog-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.shopping-page .catalog-tabs button{padding:6px 3px;font-size:.8rem}}

@media(max-height:720px){.topbar{height:50px}#main{padding-top:14px}.section-head h1{font-size:1.5rem;margin-bottom:4px}.month-nav{margin-top:0}.weekday{padding:6px 0}}

/* Dish magnets plan meals; recipe cards provide preparation information. */
[hidden]{display:none!important}.catalog-item strong,.catalog-item small{display:block}.catalog-item small{font-weight:400;font-size:.78rem;color:#52675c;margin-top:5px}.dish-card{background:color-mix(in srgb,var(--magnet-color) 8%,white);border-radius:8px}.recipe-card{border-left:1px solid #ccd9d0;border-radius:14px;align-items:flex-start;background:white}.recipe-card .food-symbol{background:#edf2ee;color:var(--green)}.dish-preparation{border-top:1px solid #dce5df;margin-top:16px;padding-top:2px}.preparation-link{width:100%;justify-content:flex-start;margin:4px 0}.category-chip[aria-pressed=true]{background:color-mix(in srgb,var(--magnet-color) 18%,white);outline:2px solid var(--magnet-color);outline-offset:1px}.category-edit{margin:0 6px 10px 0;font-size:.85rem}.recipe-purpose{font-weight:600;color:#52675c;font-size:.9rem}
.sheet{padding:18px;width:min(520px,94vw)}.sheet-head{top:-18px;padding:2px 0 8px;gap:10px}.sheet-head h2{margin:6px 0;font-size:1.12rem}.sheet .field{margin:10px 0;gap:4px}.sheet input,.sheet select,.sheet textarea{padding:10px}.sheet p{margin:10px 0}.sheet .actions{margin-top:10px}.sheet fieldset{margin:12px 0}.sheet .add-actions{gap:8px;margin-top:10px}.sheet .add-actions button{min-height:52px;font-size:1rem}.sheet .choice-card{min-height:52px;padding:9px}.sheet .selector-categories{gap:6px;margin:10px 0}.sheet .selection-summary:empty{display:none}.day-detail .magnet{justify-content:flex-start;margin:6px 0}.day-detail>.muted{margin:2px 0 10px}.day-detail>button:last-child:not(.magnet){margin-top:10px}.sheet>div>button:not(.magnet){margin-right:6px;margin-top:6px}
.calendar .day{padding-bottom:6px}.calendar .day-top{min-height:44px}.calendar .day-add{display:flex;background:#e7f0eb;border:1px solid #bed2c5;border-radius:8px;color:var(--green);width:44px;min-width:44px;height:44px;min-height:44px;position:static;padding:0;margin:0}.calendar .day-add:hover{background:#cfe2d7;border-color:var(--green)}.calendar .day-add .lucide{width:22px;height:22px}.calendar .is-empty .day-add{position:absolute;left:50%;top:56%;bottom:auto;transform:translate(-50%,-50%)}.calendar .day-number{padding:2px;min-width:24px}.calendar .magnet{justify-content:flex-start}
@media(max-width:650px){.calendar .day{padding-bottom:46px}.calendar .day-top{min-height:28px}.calendar .has-items .day-add{position:absolute;bottom:3px;left:50%;transform:translateX(-50%);width:40px;min-width:0;height:40px;min-height:40px}.calendar .is-empty .day-add{width:40px;min-width:0;height:44px}.catalog-item{align-items:flex-start}.recipe-card .food-symbol{width:36px;height:36px}.recipe-portal{padding:16px;margin:12px 0}.recipe-portal>.lucide{width:32px;height:32px;margin-right:4px}.recipe-portal strong{font-size:1.12rem}.catalog-list{gap:8px}}

/* Active filters are removable; editing belongs to the result footer. */
.selected-categories{display:flex;flex-wrap:wrap;gap:8px;padding:12px 0;margin-bottom:12px;border-top:1px solid #dce5df;border-bottom:1px solid #dce5df}.selected-category{background:color-mix(in srgb,var(--magnet-color) 12%,white);border-color:color-mix(in srgb,var(--magnet-color) 45%,white);padding:8px 10px;gap:8px}.selected-category .lucide{width:18px;height:18px;color:var(--magnet-color)}.selected-category .lucide:last-child{color:var(--green);margin-left:6px}.catalog-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.catalog-actions:empty{display:none}.catalog-actions button{margin:0;min-height:44px}.catalog-actions .subtle-add{margin-left:auto}.catalog-actions .catalog-new{border-style:solid;background:var(--soft)}
@media(max-width:650px){.catalog-actions .subtle-add{margin-left:0}.selected-categories{gap:6px}}

/* Persistent sections, compact planning magnets and readable preparation pages. */
.pantry-navigation{position:sticky;top:0;z-index:2;background:#f3f6f4;padding:8px 0;display:flex;gap:8px;margin:10px 0}.pantry-navigation button{flex:1;max-width:220px}.pantry-navigation button[aria-pressed=true]{background:var(--soft);border-color:var(--green);font-weight:700}.pantry-section-title{margin:8px 0 12px;font-size:1.2rem}.dish-list{gap:10px}.catalog-item.dish-card{padding:0;min-height:64px;gap:0;align-items:center;overflow:hidden}.dish-open{flex:1;min-width:0;justify-content:flex-start;text-align:left;padding:10px;border:0;background:transparent;border-radius:0}.dish-open strong{overflow-wrap:anywhere;font-size:.94rem}.dish-open .food-symbol{width:32px;height:32px;border-radius:8px}.dish-open .lucide{width:23px;height:23px}.dish-calendar{flex:none;width:44px;padding:0;margin:6px;border-color:#c3b1d2;background:white}.dish-calendar .lucide{width:20px;height:20px}.catalog-list.recipe-list{display:flex;flex-direction:column;gap:0;max-width:850px;background:#fffefa;padding:0 18px;border-radius:10px;border:1px solid #e0e4da}.recipe-list .recipe-card{border:0;border-bottom:1px solid #dce5df;border-radius:0;background:transparent;padding:20px 0;gap:18px;min-height:130px;align-items:flex-start}.recipe-list .recipe-card:hover{background:#f4f5ee}.recipe-list .food-symbol{width:80px;height:96px;border-radius:6px;background:#edf1e8}.recipe-list .food-symbol .lucide{width:36px;height:36px}.recipe-list .food-symbol img{width:80px;height:96px;border-radius:6px;object-fit:cover}.recipe-card .catalog-copy{display:flex;flex-direction:column;gap:6px;flex:1}.recipe-card strong{font-size:1.08rem;font-weight:650}.recipe-dish{font-size:.83rem;color:#52675c}.recipe-method{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:.8rem;color:#52675c}.recipe-method .lucide{width:16px;height:16px}.recipe-method>span{padding-left:8px;border-left:1px solid #ccd9d0}.recipe-ingredients{font-size:.9rem;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.recipe-list>.catalog-new{align-self:flex-start;min-height:44px;margin:14px 0}.selected-categories .subtle-add{margin:0;background:white}.selected-categories{align-items:center}
@media(max-width:650px){.pantry-navigation{display:flex;gap:4px}.pantry-navigation button{padding:8px 5px;font-size:.78rem;gap:4px}.pantry-navigation .lucide{width:18px;height:18px}.dish-list{grid-template-columns:1fr}.catalog-item.dish-card{min-height:60px}.catalog-list.recipe-list{padding:0 12px}.recipe-list .recipe-card{gap:12px;padding:16px 0}.recipe-list .food-symbol,.recipe-list .food-symbol img{width:56px;height:72px}.recipe-list .food-symbol .lucide{width:28px;height:28px}.recipe-card strong{font-size:1rem}}
/* Compact kitchen planner: one viewport for the month, flowing agendas for detail. */
:root{background:#f5f7f5;--green:#183f35;--soft:#dfebe2}
.topbar{height:52px;padding:0 max(18px,3vw)}
.brand{font-size:1.3rem;letter-spacing:-.8px}
#main{padding-top:22px}
#main.calendar-page{max-width:1200px;padding:14px 22px 0;height:calc(100dvh - 52px - 72px - env(safe-area-inset-bottom));display:flex;flex-direction:column;min-height:340px}
.calendar-header{flex:none;margin-bottom:8px}
.calendar-title{display:flex;justify-content:space-between;align-items:center;gap:12px}
.calendar-title h1{font-size:1.45rem;margin:0;letter-spacing:-.7px;font-weight:750}
.view-switch{display:flex;padding:3px;background:#e6ece7;border-radius:10px;gap:2px}
.view-switch button{min-height:38px;border:0;border-radius:7px;background:transparent;padding:6px 13px;font-size:.85rem}
.view-switch button[aria-pressed=true]{background:var(--green);color:white;font-weight:650}
.period-nav{display:flex;align-items:center;gap:5px;margin-top:8px}
.period-nav h2{flex:1;text-align:center;font-size:1.12rem;letter-spacing:-.35px;margin:0;font-weight:650}
.period-nav>button{width:40px;min-height:40px;padding:0;background:transparent;border:0}
.period-nav .today-action{font-size:.8rem;border:1px solid #cbd8cf;width:auto;padding:0 10px;margin-left:6px}
.calendar-page .weekdays{flex:none;gap:0}
.calendar-page .weekday{padding:7px 0;font-size:.75rem}
.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:repeat(var(--rows),minmax(0,1fr));flex:1;min-height:0;gap:3px;padding-bottom:8px}
.month-grid .day{height:auto;min-height:0;padding:4px;display:flex;flex-direction:column;overflow:hidden;border:0;border-radius:8px;background:white;box-shadow:inset 0 0 0 1px #dbe4dd;cursor:pointer}
.month-grid .day.outside{background:#edf1ed;color:#6e7b72}
.month-grid .day.today{box-shadow:inset 0 0 0 2px var(--green)}
.month-grid .day-top{display:flex;flex:none;min-height:28px}
.month-grid .day-number{min-height:28px;height:28px;min-width:28px;padding:0 5px;font-size:.83rem;border-radius:50%;color:inherit}
.month-grid .today .day-number{background:var(--green);color:white}
.month-grid .day-entries{flex:1;min-height:0;overflow:hidden}
.month-grid .magnet{height:26px;min-height:26px;max-height:26px;margin:3px 0 0;padding:3px 4px;border-left-width:3px;font-size:.73rem;gap:4px;justify-content:flex-start}
.month-grid .magnet .lucide{width:17px;height:17px}
.month-grid .more-items{position:absolute;bottom:2px;left:2px;width:calc(100% - 4px);height:22px;min-height:22px;font-weight:700;background:#edf2ee;margin:0;border-radius:4px}
.calendar-page .week-grid,.day-agenda{display:flex;flex-direction:column;gap:8px;margin:8px 0 0;padding-bottom:90px}
.calendar-page:has(.week-grid),#main.calendar-page:has(.day-agenda){height:auto}
.week-grid .day,.day-agenda .day{display:grid;grid-template-columns:84px minmax(0,1fr);gap:12px;min-height:100px;padding:12px;border:0;border-bottom:1px solid #d5dfd7;background:white;border-radius:8px}
.week-grid .day-top,.day-agenda .day-top{align-items:flex-start;display:flex}
.week-grid .day-number,.day-agenda .day-number{display:flex;flex-direction:column;gap:2px;padding:0;min-width:68px;align-items:flex-start}
.week-grid .day-number strong,.day-agenda .day-number strong{font-size:1.8rem;letter-spacing:-1px}
.week-grid .day-number span,.day-agenda .day-number span{font-size:.78rem;font-weight:500}
.week-grid .day.today,.day-agenda .day.today{border-left:3px solid var(--green)}
.day-entries{min-width:0}
.week-grid .magnet,.day-agenda .magnet{width:100%;justify-content:flex-start;white-space:normal;min-height:44px;font-size:.95rem}
.day-agenda .magnet span{overflow:visible}
.plan-note{font-size:.88rem;color:#52675c;margin:5px 0 12px;white-space:pre-wrap;overflow-wrap:anywhere}
.day-empty{font-size:.85rem;color:#657a6b;margin:8px 0}
.agenda-add{font-size:.83rem;padding:6px 10px;border:0;background:#edf2ee;margin-top:6px}
#nav{padding:5px 12px max(5px,env(safe-area-inset-bottom));gap:4px}
#nav button{min-height:52px;padding:5px 10px;font-size:.75rem}
#nav button.active{background:transparent;color:var(--green)}
#nav button.active>.lucide{background:var(--soft);box-shadow:0 0 0 5px var(--soft);border-radius:5px}
.catalog-actions:has(+.recipe-list){margin:0 0 14px}
.catalog-actions:has(+.recipe-list) .catalog-new{background:var(--green);color:white;border:0}
@media(max-width:650px){
 #main.calendar-page{padding:10px 10px 0;height:calc(100dvh - 52px - 68px - env(safe-area-inset-bottom))}
 .calendar-title h1{font-size:1.23rem}.view-switch button{padding:5px 10px}.period-nav h2{font-size:1rem}
 .month-grid{gap:2px}.month-grid .day{padding:3px 2px;border-radius:5px}
 .month-grid .magnet{height:25px;min-height:25px;max-height:25px;padding:3px 2px;gap:2px;font-size:.65rem;border-left-width:2px}
 .month-grid .magnet .lucide{width:16px;height:16px}
 .month-grid .magnet span{display:none}
 .month-grid .magnet{justify-content:center}
 .week-grid .day,.day-agenda .day{grid-template-columns:60px minmax(0,1fr);gap:8px;padding:10px}
 .week-grid .day-number,.day-agenda .day-number{min-width:0}
 #nav button{font-size:.69rem;padding:5px 3px;min-height:50px}
}
@media(min-width:480px){.month-grid .magnet span{display:block}.month-grid .magnet{justify-content:flex-start}}
#main.calendar-page{height:calc(100dvh - 52px - 88px - env(safe-area-inset-bottom))}
@media(max-width:650px){#main.calendar-page{height:calc(100dvh - 52px - 88px - env(safe-area-inset-bottom))}.month-grid .magnet{height:34px;min-height:34px;max-height:34px;flex-direction:column;gap:0;padding:1px}.month-grid .magnet span{display:block;width:100%;font-size:.55rem;text-align:center;line-height:12px}.month-grid .magnet .lucide{height:16px;width:16px}}

.month-grid .icon-only .magnet{height:22px;min-height:22px;max-height:22px;flex-direction:row}.month-grid .icon-only .magnet span{display:none}.month-grid .more-items .lucide{width:13px;height:13px}
