:root{--bg:#0f0f14;--bg-elevated:#17171f;--surface:#1e1e29;--surface-hover:#262633;--border:#2c2c3a;--text:#f2f2f5;--text-muted:#9a9aab;--text-faint:#64646f;--accent:#6ee7b7;--accent-strong:#34d399;--accent-contrast:#0f0f14;--danger:#f87171;--warning:#fbbf24;--success:#6ee7b7;--radius-sm:8px;--radius-md:14px;--radius-lg:22px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--font-sans:-apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", Roboto, sans-serif;--shadow-md:0 8px 24px #00000059}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font:16px/1.5 var(--font-sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{flex-direction:column;max-width:480px;min-height:100svh;margin:0 auto;display:flex}.app-main{flex-direction:column;flex:1;min-height:0;display:flex}h1,h2,h3{letter-spacing:-.02em;margin:0;font-weight:600}h1{font-size:28px}h2{font-size:20px}h3{font-size:16px}p{margin:0}a{color:inherit}button{font:inherit}.page{padding:var(--space-5);gap:var(--space-4);flex-direction:column;display:flex}.dashboard-header{justify-content:space-between;align-items:center;display:flex}.dashboard-header h1{margin:0}.score-card{text-align:center}.score-value{color:var(--accent);font-size:56px;font-weight:700;line-height:1}.score-hint{margin-top:var(--space-3);color:var(--text-muted);font-size:14px}.score-trend{margin-top:var(--space-4)}.bmi-card{color:var(--warning);justify-content:space-between;align-items:center;font-size:14px;display:flex}.bmi-disclaimer{color:var(--text-faint);font-size:11px}.components-list{margin:var(--space-2) 0 0;gap:var(--space-2);color:var(--text-muted);text-align:left;flex-direction:column;padding:0;font-size:14px;list-style:none;display:flex}.component-row{padding:var(--space-2) 0;border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.component-row:last-child{border-bottom:none}.component-value{color:var(--accent);font-weight:600}.component-empty{color:var(--text-faint);font-size:12px}.chat{flex-direction:column;flex:1;min-height:0;display:flex}.chat-history{gap:var(--space-3);margin-top:var(--space-4);flex-direction:column;flex:1;display:flex;overflow-y:auto}.chat-empty{color:var(--text-faint);text-align:center;margin-top:var(--space-6);font-size:14px}.chat-bubble{padding:var(--space-3) var(--space-4);white-space:pre-wrap;text-align:left;font-size:15px}.chat-bubble-user{background:var(--accent);color:var(--accent-contrast);border-color:#0000;align-self:flex-end}.chat-bubble-assistant{align-self:flex-start}.chat-typing,.chat-error{color:var(--text-faint);font-size:13px}.chat-error{color:var(--danger)}.chat-input-row{gap:var(--space-2);padding:var(--space-4) 0;display:flex}.slider{gap:var(--space-1);flex-direction:column;display:flex}.slider-row{align-items:center;gap:var(--space-3);display:flex}.slider-value{text-align:center;min-width:28px;color:var(--accent);font-size:16px;font-weight:700}.slider-input{appearance:none;background:var(--bg-elevated);height:6px;accent-color:var(--accent);border-radius:999px;outline:none;flex:1}.slider-input::-webkit-slider-thumb{appearance:none;background:var(--accent);border:3px solid var(--accent-contrast);cursor:pointer;width:22px;height:22px;box-shadow:0 0 0 1px var(--accent);border-radius:50%}.slider-input::-moz-range-thumb{background:var(--accent);border:3px solid var(--accent-contrast);cursor:pointer;width:22px;height:22px;box-shadow:0 0 0 1px var(--accent);border-radius:50%}.slider-labels{color:var(--text-faint);justify-content:space-between;font-size:11px;display:flex}.slider-description{margin:var(--space-1) 0 0;color:var(--text-muted);text-align:center;font-size:13px}.checkin-form{gap:var(--space-4);margin-top:var(--space-4);text-align:left;flex-direction:column;display:flex}.checkin-field label{color:var(--text-muted);margin-bottom:var(--space-2);font-size:13px;display:block}.mood-row,.pain-row{gap:var(--space-2);display:flex}.mood-btn{padding:var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elevated);cursor:pointer;flex:1;font-size:24px}.mood-btn.active{border-color:var(--accent);background:var(--surface-hover)}.pain-btn{padding:var(--space-2) var(--space-3);border:1px solid var(--border);background:var(--bg-elevated);color:var(--text-muted);cursor:pointer;border-radius:999px;font-size:13px}.pain-btn.active{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.pain-custom{margin-top:var(--space-2)}.checkin-error{color:var(--danger);font-size:13px}.checkin-hint{color:var(--text-muted);margin-top:var(--space-2);font-size:14px}.plan-header{justify-content:space-between;align-items:center;display:flex}.plan-toggle{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);padding:var(--space-1) var(--space-2);cursor:pointer;background:0 0;font-size:12px}.plan-content{margin-top:var(--space-3);white-space:pre-wrap;text-align:left;color:var(--text);font-size:14px;line-height:1.6}.water-total{color:var(--accent);margin:var(--space-2) 0;font-size:28px;font-weight:700}.water-buttons{gap:var(--space-2);display:flex}.log-form{gap:var(--space-2);margin:var(--space-3) 0;flex-wrap:wrap;align-items:center;display:flex}.log-form .input{flex:1;min-width:140px}.on-plan-toggle{align-items:center;gap:var(--space-1);color:var(--text-muted);white-space:nowrap;font-size:13px;display:flex}.log-list{gap:var(--space-2);text-align:left;flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.log-item{padding:var(--space-2);background:var(--bg-elevated);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;font-size:14px;display:flex}.off-plan{color:var(--warning)}.log-remove{color:var(--text-faint);cursor:pointer;background:0 0;border:none;font-size:14px}.workout-item{align-items:flex-start;gap:var(--space-2);flex-direction:column}.workout-status{color:var(--text-muted)}.workout-actions{gap:var(--space-2);display:flex}.workout-actions button{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);cursor:pointer;font-size:12px}.profile-form{gap:var(--space-4);margin-top:var(--space-2);text-align:left;flex-direction:column;display:flex}.profile-saved{color:var(--success);font-size:13px}.goal-active{text-align:left;gap:var(--space-2);margin-top:var(--space-2);flex-direction:column;display:flex}.goal-deadline{color:var(--text-muted);font-size:13px}.goal-hint{color:var(--text-faint);font-size:12px}.plan-actions{gap:var(--space-2);margin-top:var(--space-3);display:flex}.bmi-hint{text-align:left;color:var(--warning);font-size:14px}.login{padding:var(--space-5);flex:1;justify-content:center;align-items:center;display:flex}.login-card{text-align:center;width:100%}.login-subtitle{color:var(--text-muted);margin-top:var(--space-1);font-size:14px}.login-form{gap:var(--space-3);margin-top:var(--space-5);flex-direction:column;display:flex}.login-error{color:var(--danger);text-align:left;font-size:13px}.bottom-nav{border-top:1px solid var(--border);background:var(--bg-elevated);padding:var(--space-2) 0 calc(var(--space-2) + env(safe-area-inset-bottom));display:flex}.bottom-nav-item{padding:var(--space-2);color:var(--text-faint);flex-direction:column;flex:1;align-items:center;gap:2px;font-size:12px;text-decoration:none;display:flex}.bottom-nav-item.active{color:var(--accent)}.bottom-nav-icon{font-size:18px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-md)}.btn{border-radius:var(--radius-md);padding:var(--space-3) var(--space-5);cursor:pointer;border:none;font-size:15px;font-weight:600;transition:background .15s,opacity .15s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--accent-contrast)}.btn-primary:hover:not(:disabled){background:var(--accent-strong)}.btn-secondary{background:var(--surface-hover);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--border)}.btn-ghost{color:var(--text-muted);background:0 0}.btn-ghost:hover:not(:disabled){color:var(--text)}.input{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;padding:var(--space-3);color:var(--text);outline:none;font-size:15px}.input:focus{border-color:var(--accent)}.input::placeholder{color:var(--text-faint)}
