:root{--bg: #f6faf8;--surface: #ffffff;--fg: #16221d;--muted: #5c6b64;--border: #dfe8e3;--accent: #1f9d6c;--accent-dark: #16754f;--accent-fg: #ffffff;--warn: #c15b1e;--radius: 14px;--radius-sm: 8px;--shadow: 0 1px 2px rgba(22, 34, 29, .06), 0 8px 24px -12px rgba(22, 34, 29, .18);--font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;line-height:1.5}@media (prefers-reduced-motion: no-preference){.card,button,a{transition:transform .15s ease,box-shadow .15s ease,background .15s ease,border-color .15s ease}}.app-shell{max-width:1080px;margin:0 auto;padding:var(--space-6) var(--space-4) var(--space-7)}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-6);flex-wrap:wrap;gap:var(--space-3)}.brand{display:flex;align-items:center;gap:var(--space-2);font-weight:700;font-size:1.2rem}.brand .mark{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:9px;background:var(--accent);color:var(--accent-fg);font-size:1rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:10px 18px;border-radius:var(--radius-sm);border:1px solid transparent;font-size:.95rem;font-weight:600;cursor:pointer;min-height:40px}.btn-primary{background:var(--accent);color:var(--accent-fg)}.btn-primary:hover{background:var(--accent-dark)}.btn-secondary{background:var(--surface);border-color:var(--border);color:var(--fg)}.btn-secondary:hover{border-color:var(--accent);color:var(--accent-dark)}.btn:focus-visible,input:focus-visible,select:focus-visible,label:has(input:focus-visible){outline:3px solid rgba(31,157,108,.4);outline-offset:2px}.btn:disabled{opacity:.55;cursor:not-allowed}.hero-copy{margin-bottom:var(--space-6);max-width:62ch}.hero-copy h1{font-size:clamp(1.8rem,4vw,2.6rem);margin:0 0 var(--space-2);letter-spacing:-.01em}.hero-copy p{color:var(--muted);margin:0;font-size:1.05rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--space-5)}form .card{display:flex;flex-direction:column;gap:var(--space-5)}fieldset{border:none;padding:0;margin:0;display:grid;gap:var(--space-4)}legend{font-weight:700;font-size:1.05rem;margin-bottom:var(--space-2);padding:0}.field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-4)}.field{display:flex;flex-direction:column;gap:var(--space-1)}.field label{font-size:.85rem;font-weight:600;color:var(--muted)}input[type=number],input[type=text],select{font:inherit;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--fg);min-height:40px}.radio-row,.unit-row{display:flex;gap:var(--space-3);flex-wrap:wrap}.radio-chip{display:flex;align-items:center;gap:var(--space-2);padding:8px 14px;border:1px solid var(--border);border-radius:999px;cursor:pointer;background:var(--bg);min-height:40px}.radio-chip:has(input:checked){border-color:var(--accent);background:#1f9d6c1a;color:var(--accent-dark);font-weight:600}.checkbox-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-2)}.checkbox-chip{display:flex;align-items:center;gap:var(--space-2);padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:var(--bg);min-height:40px}.checkbox-chip:has(input:checked){border-color:var(--accent);background:#1f9d6c1a}.error-banner{background:#fdecea;border:1px solid #f3c4bb;color:var(--warn);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);font-size:.92rem}.form-actions{display:flex;justify-content:flex-end;gap:var(--space-3)}.calorie-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-4);margin:var(--space-5) 0}.calorie-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-4);text-align:center}.calorie-card.is-target{border-color:var(--accent);background:#1f9d6c14}.calorie-card .value{font-size:1.7rem;font-weight:800;display:block;margin-top:var(--space-1)}.calorie-card .label{color:var(--muted);font-size:.85rem;text-transform:uppercase;letter-spacing:.03em}.section-title{font-size:1.3rem;margin:var(--space-7) 0 var(--space-4)}.plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-4)}.day-card h3{margin:0 0 var(--space-2);font-size:1rem}.day-card .focus{color:var(--muted)}.day-card .focus.is-rest{font-style:italic}.meal-row{display:flex;justify-content:space-between;gap:var(--space-2);padding:var(--space-2) 0;border-bottom:1px solid var(--border);font-size:.92rem}.meal-row:last-of-type{border-bottom:none}.meal-row .meal-type{color:var(--muted);text-transform:capitalize;min-width:72px}.meal-total{margin-top:var(--space-2);font-weight:700;text-align:right;font-size:.9rem;color:var(--accent-dark)}footer.app-footer{margin-top:var(--space-7);text-align:center;color:var(--muted);font-size:.85rem}@media (max-width: 480px){.app-shell{padding:var(--space-4) var(--space-3) var(--space-6)}.form-actions{justify-content:stretch}.form-actions .btn{flex:1}}
