:root{font-family:Inter,system-ui,sans-serif;color:#17211b;background:#f3f6f3}*{box-sizing:border-box}body{margin:0}main{max-width:1100px;margin:auto;padding:28px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}h1{margin:0;font-size:2rem}header p{margin:.4rem 0;color:#657067}.badge{background:#1f6b45;color:#fff;padding:8px 12px;border-radius:999px}.card{background:#fff;border:1px solid #dfe7e1;border-radius:16px;padding:18px;margin:14px 0;box-shadow:0 3px 14px #0000000a}.controls{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;align-items:end}.controls label{font-size:.85rem;font-weight:650}.controls input,.controls select{display:block;width:100%;padding:11px;margin-top:6px;border:1px solid #cbd7ce;border-radius:9px;background:#fff}.wide{grid-column:span 3}button{border:0;border-radius:10px;padding:12px 16px;background:#1f6b45;color:#fff;font-weight:750;cursor:pointer}.legend{display:flex;gap:18px;color:#58645b;font-size:.9rem}.day h2{margin:.1rem 0 .7rem}.meals{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.meal{border:1px solid #e1e7e2;border-radius:12px;padding:12px;background:#fafcfb}.meal small{color:#6b746d}.meal h3{font-size:1rem;margin:5px 0}.meal p{font-size:.85rem;margin:5px 0;color:#566159}.swap{background:#e8f2ec;color:#195c3c;padding:7px 9px;font-size:.78rem}.white{border-left:6px solid #b8c0bb}.green{border-left:6px solid #3d9a61}.hidden{display:none}.shopgrid{columns:2}.shopgrid div{break-inside:avoid;padding:4px 0}.note{font-size:.82rem;color:#667068;margin-top:20px}@media(max-width:800px){main{padding:16px}.controls{grid-template-columns:1fr 1fr}.wide{grid-column:span 2}.meals{grid-template-columns:1fr 1fr}.shopgrid{columns:1}}@media(max-width:500px){.controls,.meals{grid-template-columns:1fr}.wide{grid-column:span 1}header{align-items:flex-start}.badge{font-size:.75rem}}
.rules{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}.rulebox{padding:14px;border:1px solid #ddd;border-radius:12px}.rulebox h3{margin-top:0}.ok{color:#176b3a}.no{color:#9b2c2c}.phase-table{width:100%;border-collapse:collapse}.phase-table th,.phase-table td{padding:8px;border-bottom:1px solid #ddd;text-align:left}.muted{opacity:.72}

.daymove{display:flex;gap:.6rem;align-items:end;flex-wrap:wrap;margin:.6rem 0 1rem;padding:.7rem;border:1px solid #ddd;border-radius:10px}.daymove label{display:flex;gap:.4rem;align-items:center}.daymove select{padding:.45rem}

.calendarNav{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin:12px 0}.calendarNav button{padding:9px;border-radius:8px;border:1px solid #b5c5c5;background:#fff;color:#173b41}.calendarGrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.calendarWeekday{text-align:center;font-weight:700;font-size:12px}.calendarDay,.calendarEmpty{min-height:58px;padding:5px 2px;border-radius:7px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:13px;min-width:0}.calendarDay{cursor:pointer;border:1px solid #cad7d4;color:#12333a}.calendarDay small{font-size:10px;line-height:1.25}.calendarDay.white{background:#f3f3f3}.calendarDay.green{background:#d9f3e0}.calendarDay.red{background:#ffe0df}.calendarEmpty{color:#9ca5a5;background:#f8f9f9}.day{scroll-margin-top:15px}@media(max-width:500px){.calendarDay{min-height:48px}.calendarDay small{font-size:9px}.calendarNav button{font-size:12px}}

.dayDateLink{background:#edf5f0;color:#195c3c;padding:7px 10px;margin-right:6px;font-size:.84rem}.selectedPlanDay{outline:3px solid #1f6b45;outline-offset:2px}.selectedCalendarDay{outline:3px solid #1f6b45;outline-offset:-3px}.day{scroll-margin-top:20px}
