*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--umd-red:#e21833;--umd-red-dark:#c0142b;--umd-gold:#ffd200;--umd-black:#1a1a1a;--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-500:#6b7280;--gray-600:#4b5563;--gray-700:#374151;--gray-800:#1f2937;--gray-900:#111827;--blue:#3b82f6;--green:#22c55e;--orange:#f59e0b;--radius:12px;--radius-sm:8px;--shadow-sm:0 1px 2px #0000000d;--shadow:0 4px 6px -1px #00000012, 0 2px 4px -2px #0000000d;--shadow-lg:0 10px 15px -3px #00000014, 0 4px 6px -4px #0000000a}body{background:var(--gray-50);color:var(--gray-800);-webkit-font-smoothing:antialiased;font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.6}#root{flex-direction:column;min-height:100vh;display:flex}.navbar{border-bottom:1px solid var(--gray-200);z-index:100;background:#fff;justify-content:space-between;align-items:center;padding:16px 32px;display:flex;position:sticky;top:0}.nav-brand{color:var(--gray-900);letter-spacing:-.5px;font-size:22px;font-weight:800;text-decoration:none}.nav-brand .accent{color:var(--umd-red)}.nav-links{gap:24px;display:flex}.nav-links a{color:var(--gray-500);font-size:15px;font-weight:500;text-decoration:none;transition:color .2s}.nav-links a:hover,.nav-links a.active{color:var(--umd-red)}.main-content{flex:1;width:100%;max-width:960px;margin:0 auto;padding:40px 24px 80px}.btn-primary{background:var(--umd-red);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;padding:14px 36px;font-size:16px;font-weight:600;transition:background .2s,transform .1s}.btn-primary:hover{background:var(--umd-red-dark)}.btn-primary:active{transform:scale(.98)}.btn-secondary{color:var(--gray-700);border:1px solid var(--gray-300);border-radius:var(--radius-sm);cursor:pointer;background:#fff;padding:10px 20px;font-size:14px;font-weight:500;transition:border-color .2s}.btn-secondary:hover{border-color:var(--gray-400)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.home-page{max-width:520px;margin:0 auto}.home-hero{text-align:center;padding:20px 0 32px}.home-hero h1{letter-spacing:-2px;color:var(--gray-900);margin-bottom:4px;font-size:48px;font-weight:800}.home-hero .accent{color:var(--umd-red)}.home-hero .tagline{color:var(--gray-500);font-size:18px}.form-section-label{text-transform:uppercase;letter-spacing:.05em;color:var(--gray-400);border-bottom:1px solid var(--gray-200);padding-bottom:4px;font-size:13px;font-weight:700}.page-desc{color:var(--gray-500);margin-bottom:32px;font-size:15px}.profile-form{flex-direction:column;gap:24px;display:flex}.form-row{gap:16px;display:flex}.form-row .form-group{flex:1}.form-group{flex-direction:column;gap:6px;display:flex}.form-group label{color:var(--gray-700);font-size:14px;font-weight:600}.form-group input[type=number],.form-group select{border:1px solid var(--gray-300);border-radius:var(--radius-sm);color:var(--gray-800);background:#fff;outline:none;width:100%;padding:12px 14px;font-family:inherit;font-size:16px;transition:border-color .2s}.form-group input[type=number]:focus,.form-group select:focus{border-color:var(--umd-red);box-shadow:0 0 0 3px #e218331a}.field-error{color:var(--umd-red);font-size:13px}.toggle-group{gap:8px;display:flex}.toggle-btn{border:1px solid var(--gray-300);border-radius:var(--radius-sm);color:var(--gray-600);cursor:pointer;background:#fff;flex:1;padding:10px;font-size:15px;font-weight:500;transition:all .2s}.toggle-btn.active{border-color:var(--umd-red);color:var(--umd-red);background:#e218330d;font-weight:600}.height-inputs{gap:12px;display:flex}.height-field{flex:1;position:relative}.height-field input{border:1px solid var(--gray-300);border-radius:var(--radius-sm);width:100%;color:var(--gray-800);background:#fff;outline:none;padding:12px 40px 12px 14px;font-family:inherit;font-size:16px}.height-field input:focus{border-color:var(--umd-red);box-shadow:0 0 0 3px #e218331a}.height-field .unit{color:var(--gray-400);pointer-events:none;font-size:14px;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.goal-cards{gap:10px;display:flex}.goal-card{border:1px solid var(--gray-300);border-radius:var(--radius-sm);cursor:pointer;text-align:center;background:#fff;flex-direction:column;flex:1;gap:4px;padding:16px 12px;transition:all .2s;display:flex}.goal-card strong{color:var(--gray-800);font-size:14px}.goal-card span{color:var(--gray-400);font-size:12px}.goal-card.active{border-color:var(--umd-red);background:#e218330d}.goal-card.active strong{color:var(--umd-red)}.meal-checkboxes{gap:16px;display:flex}.checkbox-label{cursor:pointer;color:var(--gray-700);align-items:center;gap:8px;font-size:15px;font-weight:500;display:flex}.checkbox-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--umd-red);cursor:pointer}.profile-form .btn-primary{margin-top:8px}.meal-plan-page h2{color:var(--gray-900);margin-bottom:4px;font-size:28px;font-weight:700}.plan-header{justify-content:space-between;align-items:flex-start;margin-bottom:28px;display:flex}.plan-header-actions{gap:8px;display:flex}.macro-summary{border:1px solid var(--gray-200);border-radius:var(--radius);background:#fff;margin-bottom:28px;padding:24px}.macro-summary h3{color:var(--gray-900);margin-bottom:4px;font-size:16px;font-weight:600}.macro-summary-desc{color:var(--gray-400);margin-bottom:16px;font-size:13px}.macro-bar-row{margin-bottom:14px}.macro-bar-row:last-child{margin-bottom:0}.macro-bar-label{color:var(--gray-600);justify-content:space-between;margin-bottom:5px;font-size:13px;font-weight:500;display:flex}.macro-bar-track{background:var(--gray-100);border-radius:999px;height:10px;overflow:hidden}.macro-bar-fill{border-radius:999px;height:100%;transition:width .6s}.meals-grid{flex-direction:column;gap:20px;display:flex}.meal-card{border:1px solid var(--gray-200);border-radius:var(--radius);background:#fff;overflow:hidden}.meal-card-header{border-bottom:1px solid var(--gray-100);justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.meal-card-header h3{color:var(--gray-900);font-size:18px;font-weight:700}.meal-cals{color:var(--umd-red);font-size:14px;font-weight:600}.meal-items{padding:0 24px}.meal-item{border-bottom:1px solid var(--gray-100);padding:14px 0}.meal-item:last-child{border-bottom:none}.meal-item-top{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.item-name{color:var(--gray-800);font-size:15px;font-weight:600}.item-station{color:var(--gray-400);background:var(--gray-100);border-radius:999px;padding:2px 8px;font-size:12px}.meal-item-macros{color:var(--gray-500);gap:16px;font-size:13px;display:flex}.macro-p{color:var(--blue);font-weight:500}.macro-c{color:var(--orange);font-weight:500}.macro-f{color:var(--green);font-weight:500}.meal-subtotals{background:var(--gray-50);color:var(--gray-600);justify-content:center;gap:24px;padding:14px 24px;font-size:13px;font-weight:600;display:flex}.plan-reasoning{border:1px solid var(--gray-200);border-radius:var(--radius);color:var(--gray-500);background:#fff;margin-bottom:28px;padding:16px 24px;font-size:14px;line-height:1.5}.plan-footer{text-align:center;color:var(--gray-400);padding:32px 0;font-size:13px}.plan-footer a{color:var(--umd-red);text-decoration:none}.plan-footer a:hover{text-decoration:underline}.loading-state{text-align:center;padding:80px 0}.spinner{border:4px solid var(--gray-200);border-top-color:var(--umd-red);border-radius:50%;width:40px;height:40px;margin:0 auto 16px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-state p{color:var(--gray-500);font-size:15px}.error-state{text-align:center;padding:60px 0}.error-state p{color:var(--umd-red);margin-bottom:16px}.empty-state{text-align:center;padding:80px 0}.empty-state h2{color:var(--gray-900);margin-bottom:8px;font-size:24px}.empty-state p{color:var(--gray-500);margin-bottom:24px}@media (width<=768px){.navbar{padding:14px 16px}.nav-brand{font-size:18px}.nav-links{gap:16px}.main-content{padding:24px 16px 60px}.home-hero h1{letter-spacing:-1px;font-size:36px}.form-row{flex-direction:column;gap:24px}.goal-cards{flex-direction:column}.meal-checkboxes{flex-direction:column;gap:10px}.plan-header{flex-direction:column;gap:12px}.plan-header-actions{width:100%}.plan-header-actions .btn-secondary{flex:1}.meal-item-macros{gap:10px;font-size:12px}.meal-subtotals{gap:14px;font-size:12px}}
