.refresh-btn[data-v-11283127]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:50%;background:transparent;color:var(--color-text-secondary, #666);cursor:pointer;transition:background .2s}.refresh-btn[data-v-11283127]:hover{background:#f5f5f5}.refresh-btn[data-v-11283127]:active{background:#e8e8e8}.refresh-btn[data-v-11283127]:disabled{opacity:.5;cursor:not-allowed}.refresh-btn.spinning svg[data-v-11283127]{animation:spin-11283127 .8s linear infinite}@keyframes spin-11283127{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.app-layout[data-v-a8a343d5]{display:flex;min-height:100vh;background:var(--color-bg)}.sidebar[data-v-a8a343d5]{width:220px;background:var(--color-card);border-right:1px solid #f0f0f0;padding:20px 12px;display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100}.sidebar-header[data-v-a8a343d5]{display:flex;align-items:center;gap:8px;padding:0 8px 20px;border-bottom:1px solid #f5f5f5;margin-bottom:16px}.sidebar-logo-img[data-v-a8a343d5]{width:28px;height:28px;border-radius:6px}.sidebar-logo-text[data-v-a8a343d5]{font-size:16px;font-weight:700;color:var(--color-primary);flex:1}.sidebar-nav[data-v-a8a343d5]{display:flex;flex-direction:column;gap:4px}.nav-item[data-v-a8a343d5]{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;color:var(--color-text-secondary);text-decoration:none;font-size:14px;transition:all .2s}.nav-item[data-v-a8a343d5]:hover{background:#fafafa}.nav-item.active[data-v-a8a343d5]{background:#fff0f5;color:var(--color-primary);font-weight:500}.nav-icon[data-v-a8a343d5]{width:18px;height:18px;flex-shrink:0}.main-content[data-v-a8a343d5]{flex:1;margin-left:220px;padding:24px;overflow-x:hidden;max-width:100vw}.mobile-header[data-v-a8a343d5]{display:none;justify-content:flex-end;margin-bottom:12px}.mobile-tab-bar[data-v-a8a343d5]{display:none;position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid rgba(0,0,0,.08);padding-bottom:env(safe-area-inset-bottom);z-index:100}.tab-item[data-v-a8a343d5]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px 0 4px;color:#999;text-decoration:none;transition:color .15s}.tab-item.active[data-v-a8a343d5]{color:#ff6b8a}.tab-icon[data-v-a8a343d5]{width:22px;height:22px;flex-shrink:0}.tab-label[data-v-a8a343d5]{font-size:10px;line-height:1.2}@media(max-width:767px){.sidebar[data-v-a8a343d5]{display:none}.main-content[data-v-a8a343d5]{margin-left:0;padding:12px 16px 60px}.mobile-header[data-v-a8a343d5],.mobile-tab-bar[data-v-a8a343d5]{display:flex}}.user-card[data-v-87de0e3c]{display:flex;align-items:center;gap:14px}.user-avatar[data-v-87de0e3c]{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;overflow:hidden;flex-shrink:0}.user-avatar img[data-v-87de0e3c]{width:100%;height:100%;object-fit:cover}.user-name[data-v-87de0e3c]{font-size:16px;font-weight:600}.user-meta[data-v-87de0e3c]{font-size:13px;color:var(--text-3);margin-top:2px;display:flex;gap:8px}.weight-progress[data-v-90b698b2]{text-align:center}.weight-progress-body[data-v-90b698b2]{display:flex;flex-direction:column;gap:8px}.weight-hero[data-v-90b698b2]{padding:8px 0}.weight-unit[data-v-90b698b2]{font-size:16px;color:var(--text-2);margin-left:4px}.progress-bar-wrapper[data-v-90b698b2]{position:relative;margin:48px 0 12px;overflow:visible;padding:0 8px}.progress-current-marker[data-v-90b698b2]{position:absolute;top:-40px;transform:translate(-50%);display:flex;flex-direction:column;align-items:center}.current-weight-label[data-v-90b698b2]{font-size:12px;font-weight:600;color:var(--brand);white-space:nowrap}.current-dot[data-v-90b698b2]{width:10px;height:10px;background:var(--brand);border:2px solid #fff;border-radius:50%;box-shadow:0 1px 3px #0003;margin-top:2px}.progress-endpoints[data-v-90b698b2]{display:flex;justify-content:space-between;margin-top:8px}.endpoint-left[data-v-90b698b2],.endpoint-right[data-v-90b698b2]{text-align:center}.endpoint-value[data-v-90b698b2]{font-size:12px;color:var(--text-2);display:block}.endpoint-label[data-v-90b698b2]{font-size:11px;color:var(--text-3)}.goal-text[data-v-90b698b2]{font-size:13px;color:var(--text-2);margin-bottom:8px}.badges-row[data-v-90b698b2]{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;align-items:center}.weekly-badge[data-v-90b698b2]{display:inline-flex;align-items:center;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:600}.weekly-loss[data-v-90b698b2]{background:#d1fae5;color:#065f46}.weekly-gain[data-v-90b698b2]{background:#fef3c7;color:#92400e}.health-rate-note[data-v-90b698b2]{font-size:11px;color:var(--text-3);margin-top:6px}@media(min-width:768px){.weight-progress[data-v-90b698b2]{text-align:left}.weight-progress-body[data-v-90b698b2]{flex-direction:row;justify-content:space-between;align-items:center;gap:24px}.weight-progress-left[data-v-90b698b2]{flex-shrink:0}.weight-progress-right[data-v-90b698b2]{flex:1;min-width:0}.badges-row[data-v-90b698b2]{justify-content:flex-start}.weight-hero[data-v-90b698b2]{padding:0 0 4px}}\<style scoped>.current-label-text[data-v-90b698b2]{font-size:10px;color:var(--text-3)}.current-label-text[data-v-90b698b2]{font-size:10px;color:var(--text-3)}.metric-header[data-v-3679e117]{display:flex;align-items:center;gap:6px;margin-bottom:8px}.metric-icon[data-v-3679e117]{width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.icon-bmr[data-v-3679e117]{background:#f97316}.icon-tdee[data-v-3679e117]{background:#3b82f6}.icon-deficit[data-v-3679e117]{background:#10b981}.metric-abbr[data-v-3679e117]{font-size:13px;font-weight:600;color:var(--text-1)}.metric-unit[data-v-3679e117]{font-size:13px;font-weight:400;color:var(--text-3);margin-left:2px}.metric-desc[data-v-3679e117]{font-size:12px;color:var(--text-3);margin-top:4px}.chart-header[data-v-2edc6148]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;gap:12px}.chart-toggles[data-v-2edc6148]{display:flex;gap:16px;margin-bottom:8px}.toggle-item[data-v-2edc6148]{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-2);cursor:pointer;-webkit-user-select:none;user-select:none}.toggle-item.disabled[data-v-2edc6148]{opacity:.4}.toggle-item input[data-v-2edc6148]{display:none}.toggle-dot[data-v-2edc6148]{width:10px;height:10px;border-radius:50%;display:inline-block}.weight-dot[data-v-2edc6148]{background:var(--brand)}.calorie-dot[data-v-2edc6148]{background:#66bb6a}.chart-subtitle[data-v-2edc6148]{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}.current-weight-label[data-v-2edc6148]{font-size:13px;color:var(--text-2)}.current-weight-label strong[data-v-2edc6148]{color:var(--text-1);font-size:15px}.weekly-mini-badge[data-v-2edc6148]{display:inline-flex;align-items:center;gap:2px;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600}.mini-loss[data-v-2edc6148]{background:#d1fae5;color:#065f46}.mini-gain[data-v-2edc6148]{background:#fef3c7;color:#92400e}.chart-container[data-v-2edc6148]{width:100%;height:280px}.body-composition-placeholder[data-v-9e849413]{background:#f9f9f9;border:1px dashed #e0e0e0}.placeholder-content[data-v-9e849413]{display:flex;align-items:center;justify-content:center;gap:8px;padding:24px 0;color:var(--color-text-secondary);font-size:15px}.placeholder-emoji[data-v-9e849413]{font-size:20px}:root{--brand: #F5A0B5;--brand-soft: #FFF0F5;--brand-deep: #E8758A;--surface: #FAFAFA;--card: #FFF;--text-1: #1A1A1A;--text-2: #6B7280;--text-3: #9CA3AF;--success: #10B981;--warning: #F59E0B;--over: #EF4444;--border: #F3F4F6;--radius: 16px;--shadow: 0 1px 3px rgba(0,0,0,.04);--color-primary: var(--brand);--color-primary-light: var(--brand-soft);--color-primary-dark: var(--brand-deep);--color-bg: var(--surface);--color-card: var(--card);--color-text: var(--text-1);--color-text-secondary: var(--text-2);--color-success: var(--success);--color-warning: var(--warning);--color-chart-weight: var(--brand);--color-chart-calorie: #FFB74D;--color-chart-target: #E0E0E0}*{margin:0;padding:0;box-sizing:border-box}html,body{overflow-x:hidden;width:100%}body{font-family:system-ui,PingFang SC,-apple-system,sans-serif;font-feature-settings:"tnum";background:var(--surface);color:var(--text-1);line-height:1.5;min-height:100vh;-webkit-font-smoothing:antialiased}html{scroll-behavior:smooth}::selection{background:var(--brand-soft);color:var(--brand-deep)}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;margin-bottom:0;animation:fadeIn .3s ease both}.card:nth-child(2){animation-delay:.05s}.card:nth-child(3){animation-delay:.1s}.card:nth-child(4){animation-delay:.15s}.card:nth-child(5){animation-delay:.2s}.card:nth-child(6){animation-delay:.25s}.card-title{font-size:14px;color:var(--text-2);margin-bottom:12px;font-weight:500}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@media(hover:hover){.card{transition:box-shadow .2s ease,transform .2s ease}.card:hover{box-shadow:0 4px 12px #0000000f;transform:translateY(-1px)}}.dashboard-grid{display:flex;flex-direction:column;gap:12px;max-width:1100px;margin:0 auto}.progress-bar{height:8px;background:var(--border);border-radius:4px;position:relative;overflow:visible;margin:8px 0}.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--brand),var(--brand-deep));border-radius:4px;transition:width .8s cubic-bezier(.4,0,.2,1)}.progress-labels{display:flex;justify-content:space-between;font-size:12px;color:var(--text-3)}.tabs{display:flex;gap:4px;margin-bottom:16px}.tab{padding:6px 14px;border-radius:8px;font-size:13px;cursor:pointer;border:none;color:var(--text-2);background:var(--surface);transition:all .2s ease}.tab:hover{opacity:.8}.tab.active{background:var(--brand);color:#fff}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.metric-item{text-align:center;padding:12px;background:var(--surface);border-radius:12px;transition:transform .15s ease}.metric-item:hover{transform:scale(1.02)}.metric-value{font-size:22px;font-weight:700;margin-bottom:2px;letter-spacing:-.5px}.metric-label{font-size:12px;color:var(--text-3)}.weight-big{font-size:36px;font-weight:700;color:var(--brand);letter-spacing:-1px;animation:pulse 2s ease infinite}.badge{display:inline-block;padding:2px 8px;border-radius:6px;font-size:12px;font-weight:500}.badge-success{background:#d1fae5;color:#065f46}.badge-warning{background:#fef3c7;color:#92400e}.badge-over{background:#fee2e2;color:#991b1b;animation:pulse 2.5s ease infinite}.streak-badge{display:inline-flex;align-items:center;gap:4px;background:linear-gradient(135deg,#fde68a,#fcd34d);padding:4px 10px;border-radius:12px;font-size:12px;font-weight:600;color:#92400e}.chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.chart-value{font-size:24px;font-weight:700;letter-spacing:-.5px}.chart-sub{font-size:12px;color:var(--text-3)}.body-comp{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.comp-item{padding:14px;background:var(--surface);border-radius:12px;transition:transform .15s ease}.comp-item:hover{transform:translateY(-2px)}.comp-value{font-size:20px;font-weight:700;letter-spacing:-.3px}.comp-label{font-size:12px;color:var(--text-3);margin-bottom:4px}.comp-change{font-size:12px;color:var(--success)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-3)}.nav-item:focus-visible,.tab:focus-visible{outline:2px solid var(--brand);outline-offset:2px}@media(max-width:767px){.card{padding:16px;margin-bottom:0;border-radius:14px}.weight-big{font-size:30px}.chart-value{font-size:20px}.metric-value{font-size:18px}.comp-value{font-size:17px}}@media(min-width:1024px){.body-comp{grid-template-columns:repeat(4,1fr)}}@media(min-width:1440px){.card{padding:24px}}@supports (padding-top: env(safe-area-inset-top)){body{padding-top:env(safe-area-inset-top)}}@media(prefers-color-scheme:dark){:root{--surface: #111;--card: #1a1a1a;--text-1: #f0f0f0;--text-2: #a0a0a0;--text-3: #666;--border: #2a2a2a}}
