.layout{min-height:100vh;display:flex;flex-direction:column}.navbar{background:var(--surface);border-bottom:1px solid var(--border);padding:1rem 0;position:sticky;top:0;z-index:100}.navbar-content{display:flex;align-items:center;justify-content:space-between;gap:2rem}.navbar-brand{display:flex;align-items:center;gap:.5rem}.logo{font-size:1.5rem}.brand-name{font-size:1.25rem;font-weight:700;color:var(--text)}.navbar-links{display:flex;gap:.5rem}.nav-link{padding:.5rem 1rem;border-radius:.5rem;color:var(--text-muted);font-weight:500;transition:all .2s}.nav-link:hover{color:var(--text);background:var(--surface-light);text-decoration:none}.nav-link.active{color:var(--primary);background:#6366f11a}.navbar-user{display:flex;align-items:center;gap:1rem}.username{color:var(--text-muted);font-weight:500}.main-content{flex:1;padding:2rem 0}@media (max-width: 768px){.navbar-content{flex-wrap:wrap}.navbar-links{order:3;width:100%;justify-content:center;margin-top:1rem}.username{display:none}}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:1rem;padding:2.5rem;width:100%;max-width:400px}.auth-header{text-align:center;margin-bottom:2rem}.auth-logo{font-size:3rem;display:block;margin-bottom:1rem}.auth-header h1{font-size:1.75rem;margin-bottom:.5rem}.auth-header p{color:var(--text-muted)}.auth-error{background:#ef44441a;border:1px solid var(--danger);color:var(--danger);padding:.75rem 1rem;border-radius:.5rem;margin-bottom:1rem;font-size:.9rem}.btn-full{width:100%;margin-top:.5rem}.auth-footer{text-align:center;margin-top:1.5rem;color:var(--text-muted)}.macro-card{background:var(--surface);border:1px solid var(--border);border-radius:1rem;padding:1.25rem}.macro-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.macro-label{font-weight:600;color:var(--text)}.macro-goal{font-size:.85rem;color:var(--text-muted)}.macro-value{font-size:2rem;font-weight:700;margin-bottom:.75rem}.macro-unit{font-size:1rem;font-weight:400;margin-left:.25rem;opacity:.7}.progress-bar{height:8px;background:var(--surface-light);border-radius:4px;overflow:hidden;margin-bottom:.5rem}.progress-fill{height:100%;border-radius:4px;transition:width .3s ease}.macro-remaining{font-size:.85rem;color:var(--text-muted)}.macro-remaining .over{color:var(--danger)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:1000}.modal{background:var(--surface);border:1px solid var(--border);border-radius:1rem;width:100%;max-width:500px;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border)}.modal-header h2{font-size:1.25rem}.close-btn{background:none;border:none;font-size:1.5rem;color:var(--text-muted);cursor:pointer;padding:0;line-height:1}.close-btn:hover{color:var(--text)}.modal form{padding:1.5rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.macro-inputs{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}@media (max-width: 500px){.form-row{grid-template-columns:1fr}.macro-inputs{grid-template-columns:repeat(2,1fr)}}.modal-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border)}.food-list{display:flex;flex-direction:column;gap:1.5rem}.meal-group{background:var(--surface);border:1px solid var(--border);border-radius:1rem;overflow:hidden}.meal-header{display:flex;align-items:center;gap:.5rem;padding:1rem 1.25rem;background:var(--surface-light);font-weight:600}.meal-icon{font-size:1.25rem}.food-item{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;border-top:1px solid var(--border)}.food-info{flex:1;min-width:0}.food-name{font-weight:500;margin-bottom:.25rem}.food-serving{font-size:.85rem;color:var(--text-muted)}.food-macros{display:flex;gap:1rem;flex-wrap:wrap}.macro{font-size:.875rem;font-weight:500;white-space:nowrap}.food-actions{display:flex;gap:.5rem}.action-btn{background:none;border:none;font-size:1rem;padding:.25rem;opacity:.6;transition:opacity .2s;cursor:pointer}.action-btn:hover{opacity:1}@media (max-width: 600px){.food-item{flex-direction:column;align-items:flex-start}.food-macros{width:100%}.food-actions{width:100%;justify-content:flex-end;margin-top:.5rem}}.food-search-modal{max-width:600px;max-height:85vh;display:flex;flex-direction:column}.search-input-wrapper{padding:1rem 1.5rem;display:flex;gap:.5rem}.search-input{flex:1;font-size:1.1rem;padding:1rem 1.25rem}.search-btn{padding:0 1.25rem;background:var(--primary);color:#fff;border:none;border-radius:.5rem;font-weight:500;font-size:.95rem;cursor:pointer;transition:background .2s;white-space:nowrap}.search-btn:hover:not(:disabled){background:var(--primary-dark)}.search-btn:disabled{opacity:.5;cursor:not-allowed}.search-hint{padding:0 1.5rem;font-size:.8rem;color:var(--text-muted);margin-bottom:.5rem}.search-results{flex:1;overflow-y:auto;padding:.5rem 1rem;min-height:200px;max-height:400px}.no-results{text-align:center;padding:2rem;color:var(--text-muted)}.food-result{display:flex;justify-content:space-between;align-items:center;width:100%;padding:1rem;margin-bottom:.5rem;background:var(--surface-light);border:1px solid var(--border);border-radius:.75rem;cursor:pointer;transition:all .2s;text-align:left;color:var(--text)}.food-result:hover{border-color:var(--primary);background:#6366f11a}.food-result-info{flex:1;min-width:0}.food-result-name{display:block;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:.25rem}.food-result-brand{display:block;font-size:.8rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.food-result-serving{display:block;font-size:.75rem;color:var(--primary);margin-top:.25rem}.food-result-macros{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:flex-end;margin-left:1rem}.macro-pill{font-size:.75rem;font-weight:600;padding:.25rem .5rem;border-radius:.25rem;white-space:nowrap}.macro-pill.cal{background:#10b98133;color:var(--calories)}.macro-pill.pro{background:#ef444433;color:var(--protein)}.macro-pill.carb{background:#3b82f633;color:var(--carbs)}.macro-pill.fat{background:#eab30833;color:var(--fat)}.search-footer{display:flex;gap:1rem;justify-content:flex-end;padding:1rem 1.5rem;border-top:1px solid var(--border)}@media (max-width: 500px){.food-result{flex-direction:column;align-items:flex-start}.food-result-macros{margin-left:0;margin-top:.75rem;justify-content:flex-start}}.dashboard-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;gap:1rem;flex-wrap:wrap}.dashboard-header h1{font-size:1.75rem;margin-bottom:.25rem}.dashboard-actions{display:flex;gap:1rem;align-items:center}.date-picker{width:auto;cursor:pointer}.macro-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:2rem}@media (max-width: 900px){.macro-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 480px){.macro-grid{grid-template-columns:1fr}.dashboard-actions{width:100%;flex-direction:column}.dashboard-actions .btn,.date-picker{width:100%}}.food-section{margin-top:2rem}.food-section h2{font-size:1.25rem;margin-bottom:1rem}.empty-state{background:var(--surface);border:1px dashed var(--border);border-radius:1rem;padding:3rem;text-align:center}.empty-state p{color:var(--text-muted);margin-bottom:1rem}.history-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;gap:1rem;flex-wrap:wrap}.history-header h1{font-size:1.75rem;margin-bottom:.25rem}.period-select{width:auto;min-width:150px}.averages-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:2rem}.average-card{background:var(--surface);border:1px solid var(--border);border-radius:1rem;padding:1.25rem;text-align:center}.average-label{display:block;font-size:.875rem;color:var(--text-muted);margin-bottom:.5rem}.average-value{font-size:1.5rem;font-weight:700}@media (max-width: 768px){.averages-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 480px){.averages-grid{grid-template-columns:1fr}}.chart-card{margin-bottom:2rem}.chart-card h3{font-size:1.125rem;margin-bottom:1rem}.chart-container{width:100%;height:300px}.loading{text-align:center;padding:3rem;color:var(--text-muted)}.history .empty-state{text-align:center;padding:3rem}.history-table h3{font-size:1.125rem;margin-bottom:1rem}.table-wrapper{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.75rem 1rem;border-bottom:1px solid var(--border)}th{font-weight:600;color:var(--text-muted);font-size:.875rem;text-transform:uppercase;letter-spacing:.05em}tbody tr:hover{background:var(--surface-light)}tbody tr:last-child td{border-bottom:none}.goals-header{margin-bottom:2rem}.goals-header h1{font-size:1.75rem;margin-bottom:.25rem}.goals-content{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-bottom:2rem}@media (max-width: 900px){.goals-content{grid-template-columns:1fr}}.goals-form-section h2,.presets-section h2{font-size:1.25rem;margin-bottom:1.5rem}.goal-input-group{margin-bottom:1.25rem}.goal-input-group label{display:flex;justify-content:space-between;margin-bottom:.5rem}.goal-label{font-weight:500}.goal-unit{color:var(--text-muted);font-size:.875rem}.presets-list{display:flex;flex-direction:column;gap:.75rem}.preset-card{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:var(--surface-light);border:1px solid var(--border);border-radius:.75rem;cursor:pointer;transition:all .2s;text-align:left;color:var(--text)}.preset-card:hover{border-color:var(--primary);background:#6366f11a}.preset-name{font-weight:600}.preset-macros{display:flex;gap:1rem;font-size:.85rem;color:var(--text-muted)}@media (max-width: 600px){.preset-card{flex-direction:column;align-items:flex-start;gap:.5rem}.preset-macros{flex-wrap:wrap;gap:.5rem}}.goals-info h3{font-size:1.125rem;margin-bottom:1rem}.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}@media (max-width: 768px){.info-grid{grid-template-columns:1fr}}.info-item h4{font-size:1rem;margin-bottom:.5rem}.info-item p{font-size:.9rem;color:var(--text-muted);line-height:1.5}*{margin:0;padding:0;box-sizing:border-box}:root{--primary: #6366f1;--primary-dark: #4f46e5;--secondary: #10b981;--warning: #f59e0b;--danger: #ef4444;--background: #0f172a;--surface: #1e293b;--surface-light: #334155;--text: #f1f5f9;--text-muted: #94a3b8;--border: #475569;--protein: #ef4444;--carbs: #3b82f6;--fat: #eab308;--calories: #10b981}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--background);color:var(--text);min-height:100vh;line-height:1.6}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;cursor:pointer}input,select{font-family:inherit}.container{max-width:1200px;margin:0 auto;padding:0 1rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:.5rem;font-weight:500;font-size:.95rem;transition:all .2s;border:none}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-secondary{background:var(--surface-light);color:var(--text)}.btn-secondary:hover{background:var(--border)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:#dc2626}.btn-sm{padding:.5rem 1rem;font-size:.875rem}.card{background:var(--surface);border-radius:1rem;padding:1.5rem;border:1px solid var(--border)}.input{width:100%;padding:.75rem 1rem;background:var(--surface);border:1px solid var(--border);border-radius:.5rem;color:var(--text);font-size:1rem;transition:border-color .2s}.input:focus{outline:none;border-color:var(--primary)}.input::placeholder{color:var(--text-muted)}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--text-muted)}.text-center{text-align:center}.text-muted{color:var(--text-muted)}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}.grid{display:grid;gap:1rem}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}@media (max-width: 768px){.grid-4{grid-template-columns:repeat(2,1fr)}}@media (max-width: 480px){.grid-2,.grid-4{grid-template-columns:1fr}}
