.progress{display:flex;gap:6px;align-items:center;margin-bottom:28px}.progress__bar{height:4px;flex:1;border-radius:4px;background:var(--mist);transition:background .3s}.progress__bar--done{background:var(--sage)}.progress__bar--current{background:var(--sage-m)}.progress__count{font-size:12px;color:var(--muted);white-space:nowrap;margin-left:6px}.loader{text-align:center;padding:60px 20px}.loader__icon{font-size:40px;margin-bottom:20px;animation:spin 2s linear infinite}.loader__msg{font-size:16px;color:var(--sage);font-weight:500}.loader__sub{font-size:13px;color:var(--muted);margin-top:8px}.error{text-align:center;padding:40px 20px}.error__icon{font-size:36px;margin-bottom:12px}.error__title{font-size:16px;font-weight:500;color:var(--ink);margin-bottom:8px}.error__msg{font-size:13px;color:var(--muted);margin-bottom:20px}.error__btn{padding:12px 28px;border-radius:10px;background:var(--sage);color:#fff;border:none;cursor:pointer;font-size:14px}.card-option{padding:16px 14px;border-radius:14px;border:1.5px solid var(--border);background:#fff;cursor:pointer;text-align:center;transition:all .15s;outline:none}.card-option:hover{background:var(--mist);transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.card-option--active,.card-option--active:hover{border:2px solid var(--sage);background:var(--sage-l);transform:none;box-shadow:0 0 0 3px #4a7c5921}.card-option__emoji{font-size:22px;margin-bottom:5px}.card-option__label{font-size:13px;font-weight:500;color:var(--ink)}.card-option__label--with-sub{margin-bottom:3px}.card-option--active .card-option__label{color:var(--sage)}.card-option__sub{font-size:11px;color:var(--muted)}.pill{padding:10px 16px;border-radius:40px;border:1.5px solid var(--border);background:#fff;color:var(--ink);font-weight:400;font-size:14px;cursor:pointer;transition:all .15s ease;outline:none;-webkit-user-select:none;user-select:none}.pill:hover{background:var(--mist);transform:translateY(-1px);box-shadow:0 2px 8px #00000012}.pill--active,.pill--active:hover{border:2px solid var(--sage);background:var(--sage-l);color:var(--sage);font-weight:500;transform:none;box-shadow:none}.s-label{margin-bottom:10px}.s-label__text{font-size:15px;font-weight:500;color:var(--ink)}.s-label__text--with-note{margin-bottom:3px}.s-label__note{font-size:13px;color:var(--muted)}.nav-buttons{display:grid;grid-template-columns:1fr;gap:10px;margin-top:28px}.nav-buttons--with-back{grid-template-columns:1fr 2fr}.nav-back{padding:14px;border-radius:10px;background:transparent;border:1.5px solid var(--border);cursor:pointer;font-size:14px;color:var(--muted)}.nav-next{padding:14px;border-radius:10px;cursor:pointer;background:var(--sage);color:#fff;border:none;font-size:15px;font-weight:500;transition:all .15s;box-shadow:0 4px 14px #4a7c5945}.nav-next:disabled{cursor:not-allowed;background:var(--mist);color:var(--muted);box-shadow:none}.option-grid{display:grid;gap:8px}.option-grid--age{grid-template-columns:repeat(5,1fr)}@media (max-width: 480px){.option-grid--age{grid-template-columns:repeat(5,minmax(96px,1fr));grid-auto-flow:column;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:4px;-webkit-overflow-scrolling:touch}.option-grid--age .card-option{scroll-snap-align:start}}.option-grid--auto{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.option-grid--auto-sm{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.option-grid--two{grid-template-columns:1fr 1fr;gap:10px}.option-grid--three{grid-template-columns:repeat(3,1fr);gap:10px}.pill-row{display:flex;flex-wrap:wrap;gap:8px}.egg-pref{margin-top:14px;padding-top:14px;border-top:1px dashed var(--border)}.obs-msg{font-size:13px;color:var(--muted);margin:4px 0}.obs-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}.obs-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;border:1.5px solid var(--border);background:#fff;cursor:pointer;text-align:left;transition:all .15s}.obs-item--active{border:2px solid var(--sage);background:var(--sage-l)}.obs-item__emoji{font-size:20px}.obs-item__body{display:flex;flex-direction:column;flex:1}.obs-item__name{font-size:13px;font-weight:500;color:var(--ink)}.obs-item--active .obs-item__name{color:var(--sage)}.obs-item__date{font-size:11px;color:var(--muted);margin-top:1px}.obs-item__check{color:var(--sage);font-weight:700}.obs-note{font-size:11px;color:var(--muted);margin-top:8px;font-style:italic}.goal{padding:13px 10px;border-radius:12px;text-align:center;cursor:pointer;outline:none;border:1.5px solid var(--border);background:#fff;transition:all .15s}.goal--active{border:2px solid var(--sage);background:var(--sage-l)}.goal__emoji{font-size:20px;margin-bottom:4px}.goal__label{font-size:13px;font-weight:500;color:var(--ink)}.goal--active .goal__label{color:var(--sage)}.goal__desc{font-size:11px;color:var(--muted);margin-top:2px}.plan-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;flex-wrap:wrap;gap:10px}.plan-title{font-size:22px;font-weight:500;color:var(--ink);margin-bottom:4px}.plan-tags{display:flex;gap:6px;flex-wrap:wrap}.plan-tag{font-size:12px;padding:3px 10px;border-radius:20px;background:var(--sage-l);color:var(--sage);border:.5px solid var(--sage-m)}.plan-actions{display:flex;gap:8px}.btn-print{padding:10px 18px;border-radius:10px;cursor:pointer;background:var(--sage);color:#fff;border:none;font-size:13px;font-weight:500;display:flex;align-items:center;gap:6px;box-shadow:0 4px 12px #4a7c5945}.btn-reset{padding:10px 16px;border-radius:10px;cursor:pointer;background:transparent;border:1.5px solid var(--border);font-size:13px;color:var(--muted);transition:border-color .15s,color .15s}.btn-reset:hover{border-color:#2f5238;color:#2f5238}.grocery-actions{display:flex;justify-content:flex-start;margin-top:16px}.grocery{margin-top:14px}.grocery__head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.grocery__title{font-size:16px;font-weight:600;color:var(--sage)}.grocery__msg{font-size:14px;color:var(--muted)}.grocery__retry{background:none;border:none;color:var(--sage);font-weight:600;cursor:pointer;text-decoration:underline;padding:0}.grocery__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.grocery__cat-title{font-size:13px;font-weight:600;color:var(--ink);margin-bottom:6px;padding-bottom:4px;border-bottom:1px solid var(--border)}.grocery__list{list-style:none;padding:0;margin:0}.grocery__list li{font-size:13px;color:var(--muted);padding:3px 0 3px 16px;position:relative}.grocery__list li:before{content:"•";color:var(--sage);position:absolute;left:2px}.day-tabs{display:flex;gap:4px;margin-top:20px;margin-bottom:20px;overflow-x:auto;padding-bottom:4px}.day-tab{padding:8px 14px;border-radius:8px;border:none;cursor:pointer;white-space:nowrap;background:var(--mist);color:var(--muted);font-weight:400;font-size:13px;transition:all .15s}.day-tab--active{background:var(--sage);color:#fff;font-weight:500}.meals{display:grid;gap:12px}.meal{border-radius:14px;padding:16px 18px;border:1px solid}.meal--breakfast{background:#fff8ed;border-color:#f5d9a8}.meal--lunch{background:#edf5ff;border-color:#b8d4f5}.meal--snack{background:var(--sage-l);border-color:var(--sage-m)}.meal--dinner{background:#f5edff;border-color:#d4b8f5}.meal__label{font-size:13px;font-weight:500;color:var(--muted);margin-bottom:6px}.meal__text{font-size:14px;color:var(--ink);line-height:1.6}.tip{background:var(--clay-l);border:1px solid #ECC4AB;border-radius:14px;padding:14px 18px;display:flex;gap:10px;align-items:flex-start}.tip__icon{font-size:18px}.tip__text{font-size:13px;color:var(--clay);line-height:1.6}.season{margin-top:16px;background:var(--sage-l);border-color:var(--sage-m)}.season__title{font-size:14px;font-weight:500;color:var(--sage);margin-bottom:8px}.season__fruits{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.season__fruit{font-size:13px;padding:5px 12px;border-radius:20px;background:#fff;border:1px solid var(--sage-m);color:var(--sage)}.season__note{font-size:12px;color:var(--muted)}.day-nav{display:flex;justify-content:space-between;margin-top:16px}.day-nav__btn{padding:10px 20px;border-radius:10px;font-size:13px;cursor:pointer}.day-nav__btn--prev{border:1.5px solid var(--border);background:transparent;color:var(--muted)}.day-nav__btn--prev:disabled{cursor:not-allowed;color:var(--mist)}.day-nav__btn--next{border:none;background:var(--sage);color:#fff;font-weight:500}.day-nav__btn--next:disabled{cursor:not-allowed;background:var(--mist);color:var(--muted)}:root{--sage: #4A7C59;--sage-l: #EAF3EC;--sage-m: #B8D9BF;--clay: #C96B3A;--clay-l: #FBF0EA;--cream: #FDFAF6;--ink: #1C1C1C;--mist: #F2EFE9;--muted: #7A7670;--border: rgba(74, 124, 89, .18);--font: "Segoe UI", system-ui, sans-serif}*{box-sizing:border-box}body{margin:0;font-family:var(--font)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.app{background:var(--cream);min-height:100vh;font-family:var(--font)}.topbar{border-bottom:1px solid var(--border);background:#fff;padding:0 20px}.topbar__inner{max-width:680px;margin:0 auto;padding:14px 0;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:10px}.brand__logo{font-size:22px}.brand__name{font-size:16px;font-weight:600;color:var(--sage);letter-spacing:-.3px}.brand__tag{font-size:11px;color:var(--muted);margin-top:-1px}.topbar__note{font-size:12px;color:var(--muted)}.container{max-width:680px;margin:0 auto;padding:28px 20px 60px}.card{background:#fff;border-radius:16px;border:1px solid var(--border);padding:20px 22px;margin-bottom:20px}.card--alert{border-color:#e8b4a0;background:#fbf3ef}.section-title{font-size:22px;font-weight:500;color:var(--ink);margin-bottom:4px}.section-sub{font-size:14px;color:var(--muted);margin-bottom:24px}
