:root{--color-primary: #2d7a4f;--color-primary-light: #3d9b65;--color-primary-dark: #1e5535;--color-bg: #f8faf9;--color-surface: #ffffff;--color-border: #e2e8e4;--color-text: #1a2e24;--color-text-muted: #6b7f72;--color-success: #22c55e;--color-warning: #f59e0b;--color-error: #ef4444;--color-activity: #3b82f6;--color-sleep: #8b5cf6;--color-nutrition: #f59e0b;--color-symptom: #ef4444;--color-medication: #ec4899;--color-biometric: #06b6d4;--color-environment: #84cc16;--color-mood: #f97316;--sidebar-width: 240px;--header-height: 56px;--bottom-nav-height: 60px;--radius: 8px;--radius-lg: 12px;--shadow: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.05);--shadow-md: 0 4px 6px -1px rgba(0,0,0,.07), 0 2px 4px -1px rgba(0,0,0,.04);--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;font-size:15px;line-height:1.5;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh}a{color:inherit;text-decoration:none}button{cursor:pointer;font:inherit;border:none;background:none}input,textarea,select{font:inherit}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.25rem;box-shadow:var(--shadow)}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:100px;font-size:12px;font-weight:500}.badge--activity{background:#dbeafe;color:var(--color-activity)}.badge--sleep{background:#ede9fe;color:var(--color-sleep)}.badge--nutrition{background:#fef3c7;color:var(--color-nutrition)}.badge--symptom{background:#fee2e2;color:var(--color-symptom)}.badge--biometric{background:#cffafe;color:var(--color-biometric)}.badge--environment{background:#ecfccb;color:#4d7c0f}.badge--mood{background:#ffedd5;color:var(--color-mood)}.badge--medication{background:#fce7f3;color:var(--color-medication)}@media(max-width:768px){.mobile-main{padding:1rem!important;padding-bottom:calc(var(--bottom-nav-height) + var(--safe-bottom) + 1rem)!important}.card{padding:1rem}button,[role=button]{min-height:44px}}@media(max-width:480px){:root{font-size:14px}}@keyframes progress-indeterminate{0%{transform:translate(-100%)}to{transform:translate(350%)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
