body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{color-scheme:light;--font-family-base: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--color-page: #eef2f7;--color-surface: #ffffff;--color-surface-raised: rgba(255, 255, 255, .9);--color-surface-strong: #e8eef6;--color-surface-muted: #f6f8fb;--color-border: rgba(15, 23, 42, .1);--color-border-strong: rgba(15, 23, 42, .16);--color-border-stronger: rgba(15, 23, 42, .2);--color-text-primary: #0f172a;--color-text-secondary: #475569;--color-text-muted: #64748b;--color-success: #22c55e;--color-success-soft: rgba(34, 197, 94, .12);--color-info: #2563eb;--color-brand: #102033;--color-accent: #0f766e;--color-accent-soft: rgba(15, 118, 110, .1);--gradient-primary: linear-gradient(135deg, #102033 0%, #0f766e 100%);--gradient-success: linear-gradient(135deg, #34d399 0%, #22c55e 100%);--shadow-sm: 0 10px 24px rgba(15, 23, 42, .07);--shadow-md: 0 18px 42px rgba(15, 23, 42, .12);--shadow-lg: 0 24px 54px rgba(15, 23, 42, .16);--radius-lg: 12px;--radius-md: 10px;--radius-sm: 8px;--transition-base: .25s ease}[data-theme=dark]{color-scheme:dark;--color-page: #0b1120;--color-surface: rgba(15, 23, 42, .7);--color-surface-raised: rgba(15, 23, 42, .85);--color-surface-strong: rgba(30, 41, 59, .7);--color-surface-muted: rgba(15, 23, 42, .6);--color-border: rgba(148, 163, 184, .08);--color-border-strong: rgba(148, 163, 184, .16);--color-border-stronger: rgba(148, 163, 184, .24);--color-text-primary: #e2e8f0;--color-text-secondary: #cbd5f5;--color-text-muted: #94a3b8;--color-success: #4ade80;--color-success-soft: rgba(74, 222, 128, .12);--shadow-sm: 0 8px 24px rgba(2, 6, 23, .35);--shadow-md: 0 16px 48px rgba(2, 6, 23, .45);--shadow-lg: 0 24px 64px rgba(2, 6, 23, .55)}*{margin:0;padding:0;box-sizing:border-box}html,body{overflow-x:hidden}body{font-family:var(--font-family-base);background:var(--color-page);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background var(--transition-base),color var(--transition-base);scroll-behavior:smooth}button,input,select,textarea{font-family:inherit}button{letter-spacing:0}input,select,textarea{background:var(--color-surface);color:var(--color-text-primary);border-color:var(--color-border-strong)}input:focus,select:focus,textarea:focus{outline:2px solid rgba(15,118,110,.18);border-color:#0f766e8c!important}.App{min-height:100vh;background:linear-gradient(180deg,#10203312,#10203300 280px),var(--color-page)}.app-header{background:var(--color-brand);color:#fff;padding:28px 32px 30px;box-shadow:var(--shadow-md);border-bottom:1px solid rgba(255,255,255,.08);border-bottom-left-radius:0;border-bottom-right-radius:0}.header-bar{max-width:1280px;margin:0 auto 26px;display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.header-actions{display:inline-flex;align-items:center;gap:12px}.action-btn{padding:9px 14px;border-radius:8px;border:1px solid rgba(255,255,255,.22);background:#ffffff1a;color:#fff;font-weight:700;font-size:.9rem;cursor:pointer;transition:transform var(--transition-base),box-shadow var(--transition-base),background var(--transition-base)}.action-btn:hover{transform:translateY(-1px);background:#ffffff29;box-shadow:0 12px 24px #0206173d}.action-btn:active{transform:translateY(0)}.header-content h1{font-size:clamp(1.55rem,2.2vw,2.2rem);margin-bottom:8px;font-weight:800;letter-spacing:0}.subtitle{font-size:1rem;opacity:.92;max-width:420px;line-height:1.5;overflow-wrap:break-word}.progress-container{max-width:1280px;margin:0 auto;padding:0 4px;display:grid;grid-template-columns:1fr;gap:12px}.progress-bar{width:100%;height:12px;background:#ffffff40;border-radius:999px;overflow:hidden;position:relative}.progress-fill{height:100%;background:var(--gradient-success);transition:width .3s ease;box-shadow:0 8px 20px #22c55e59}.progress-text{font-size:.95rem;opacity:.92;display:flex;justify-content:space-between;align-items:center}.app-main{max-width:1280px;margin:22px auto 64px;padding:0 24px 80px;display:flex;flex-direction:column;gap:28px}.insight-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}.insight-strip>*{min-width:0}.insight-card{position:relative;background:var(--color-surface);border-radius:var(--radius-lg);padding:22px 24px;border:1px solid var(--color-border-strong);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform var(--transition-base),box-shadow var(--transition-base),border-color var(--transition-base)}.insight-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#0f766e1f,#2563eb0a);opacity:.65;pointer-events:none}[data-theme=dark] .insight-card:after{background:linear-gradient(135deg,#14b8a624,#2563eb14)}.insight-card:hover{transform:translateY(-2px);border-color:#0f766e52;box-shadow:var(--shadow-md)}.insight-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.16em;color:var(--color-accent)}.insight-card h3{margin-top:12px;font-size:1.4rem;color:var(--color-text-primary)}.insight-card p{margin-top:8px;font-size:.95rem;color:var(--color-text-secondary);line-height:1.5}.dashboard-sections{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:28px}.dashboard-sections>*{min-width:0}.stats-tab-content{display:flex;flex-direction:column}.stats-accordion-list{display:flex;flex-direction:column;gap:16px}.stats-accordion-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:16px}.stats-accordion{min-width:0;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-raised);box-shadow:var(--shadow-sm);overflow:hidden}.stats-accordion-head{width:100%;min-height:62px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 16px;border:0;background:var(--color-surface);color:var(--color-text-primary);text-align:left;cursor:pointer}.stats-accordion-head span{min-width:0;display:flex;flex-direction:column;gap:3px}.stats-accordion-head strong{color:var(--color-text-primary);font-size:1rem;line-height:1.25}.stats-accordion-head small{color:var(--color-text-muted);font-size:.78rem;line-height:1.3}.stats-accordion-head b{display:inline-flex;align-items:center;justify-content:center;min-width:58px;min-height:30px;padding:0 10px;border-radius:999px;background:var(--color-surface-muted);color:var(--color-text-muted);font-size:.75rem;font-weight:800}.stats-accordion.open .stats-accordion-head{border-bottom:1px solid var(--color-border)}.stats-accordion-body{min-width:0;padding:14px}.stats-accordion:not(.open) .stats-accordion-body{display:none}.stats-accordion-body>*{min-width:0;width:100%}.main-sections{display:flex;flex-direction:column;gap:32px}.two-column-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:32px;align-items:start}.calendar-section,.detail-section{background:var(--color-surface);border-radius:var(--radius-lg);padding:22px;box-shadow:var(--shadow-sm);border:1px solid var(--color-border-strong);transition:background var(--transition-base),box-shadow var(--transition-base),border-color var(--transition-base);scroll-margin-top:20px}.calendar-section h2,.detail-section h2{color:var(--color-text-primary);margin-bottom:18px;font-size:1.25rem;letter-spacing:-.2px}.no-selection{display:flex;align-items:center;justify-content:center;min-height:280px;color:var(--color-text-muted);font-size:1.05rem;text-align:center;background:var(--color-surface-muted);border-radius:var(--radius-md);border:1px dashed var(--color-border);transition:background var(--transition-base)}@media (max-width: 1200px){.two-column-grid{grid-template-columns:1fr}}@media (max-width: 900px){.header-bar{flex-direction:column;align-items:stretch}.header-actions{justify-content:space-between}.dashboard-sections,.stats-accordion-grid{grid-template-columns:1fr}}@media (max-width: 768px){.app-header{padding:28px 20px 32px}.header-bar{margin-bottom:20px}.header-actions{flex-wrap:wrap;gap:10px}.action-btn{width:100%;text-align:center}.app-main{padding:0 18px calc(84px + env(safe-area-inset-bottom));margin-top:20px}.insight-strip{grid-template-columns:1fr}.calendar-section,.detail-section{padding:20px;scroll-margin-top:80px}.progress-text{flex-direction:column;align-items:flex-start;gap:4px}.detail-section{transition:background var(--transition-base),box-shadow var(--transition-base),border-color var(--transition-base),transform .3s ease}.tab-navigation{position:fixed;left:0;right:0;bottom:0;z-index:100;max-width:none;width:100%;margin:0;padding:6px 4px calc(6px + env(safe-area-inset-bottom));justify-content:space-around;gap:0;border-bottom:none;border-top:1px solid var(--color-border);background:var(--color-surface);box-shadow:0 -6px 20px #02061714;overflow-x:visible;-webkit-mask-image:none;mask-image:none}.tab-btn{flex:1;min-width:0;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:6px 2px;border-bottom:none;border-radius:var(--radius-sm);margin-bottom:0}.tab-btn-icon{font-size:20px;line-height:1}.tab-btn-label{font-size:11px;font-weight:600;white-space:nowrap}.tab-btn.active{background:#102033;color:#fff}.tab-content{padding:0 16px}}@media (max-width: 480px){.tab-content{padding:0 12px}}@media (min-width: 769px) and (max-width: 1024px){.tab-navigation{padding:0 20px;gap:8px}.tab-btn{font-size:14px;padding:12px 18px}}.tab-navigation{max-width:1280px;width:100%;min-width:0;margin:0 auto 24px;display:flex;gap:12px;padding:0 32px;border:1px solid var(--color-border-strong);border-radius:12px;background:var(--color-surface);box-shadow:var(--shadow-sm);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;scroll-snap-type:x proximity;-webkit-mask-image:linear-gradient(to right,transparent 0,black 20px,black calc(100% - 20px),transparent 100%);mask-image:linear-gradient(to right,transparent 0,black 20px,black calc(100% - 20px),transparent 100%)}.tab-navigation::-webkit-scrollbar{display:none}.tab-btn{display:flex;align-items:center;gap:6px;background:transparent;border:1px solid transparent;padding:10px 16px;font-size:15px;font-weight:750;color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-base);margin:8px 0;white-space:nowrap;flex-shrink:0;scroll-snap-align:start}.tab-btn:hover{color:var(--color-text-primary);background:var(--color-surface-muted);border-radius:8px}.tab-btn.active{color:#fff;background:var(--color-brand);border-color:var(--color-brand);border-radius:8px}.tab-content{max-width:1280px;width:100%;min-width:0;margin:0 auto;padding:0 32px;animation:fadeIn .3s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.today-workout-section{margin-top:32px}.today-workout-section h2{margin-bottom:20px;color:var(--color-text-primary);font-size:24px}.more-menu{display:flex;flex-direction:column;gap:12px}.more-menu-item{display:flex;align-items:center;gap:16px;width:100%;padding:18px 20px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);cursor:pointer;text-align:left;transition:all var(--transition-base)}.more-menu-item:hover{border-color:#0f766e57;transform:translateY(-1px)}.more-menu-icon{font-size:1.75rem;flex-shrink:0}.more-menu-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.more-menu-text strong{color:var(--color-text-primary);font-size:1.05rem}.more-menu-text small{color:var(--color-text-muted);font-size:.85rem}.more-menu-arrow{font-size:1.5rem;color:var(--color-text-muted);flex-shrink:0}.more-back-btn{display:inline-flex;align-items:center;gap:4px;margin-bottom:20px;padding:10px 16px;background:var(--color-surface-muted);border:none;border-radius:var(--radius-md);color:var(--color-text-primary);font-weight:600;font-size:.95rem;cursor:pointer}.login-gate{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--gradient-primary);padding:24px}.login-gate-card{text-align:center;color:#fff}.login-gate-card h1{font-size:2rem;margin-bottom:12px}.login-gate-card p{opacity:.9;font-size:1rem}@media (max-width: 768px){.App{background:linear-gradient(180deg,#1020331f,#10203300 210px),var(--color-page)}.app-header{padding:18px 16px;box-shadow:0 12px 28px #0f172a29}.header-bar{gap:14px;margin-bottom:16px}.header-actions{display:grid;grid-template-columns:1fr auto;width:100%}.action-btn{min-height:42px;padding:9px 12px;font-size:.84rem}.header-content h1{font-size:1.45rem;margin-bottom:4px}.subtitle{font-size:.88rem;line-height:1.35;max-width:100%}.progress-container{gap:8px}.progress-bar{height:8px}.progress-text{font-size:.82rem}.app-main{width:100%;margin:14px auto 0;padding:0 8px calc(96px + env(safe-area-inset-bottom));gap:18px}.tab-content{padding:0;max-width:none}.stats-accordion-list,.stats-accordion-grid{gap:10px}.stats-accordion{border-radius:12px}.stats-accordion-head{min-height:56px;padding:12px;gap:8px}.stats-accordion-head strong{font-size:.94rem}.stats-accordion-head small{font-size:.73rem}.stats-accordion-head b{min-width:50px;min-height:28px;padding:0 8px}.stats-accordion-body{padding:10px}.stats-accordion-body .weight-tracker,.stats-accordion-body .sleep-tracker,.stats-accordion-body .scale-metrics,.stats-accordion-body .body-measurements{padding:14px;border-radius:12px}.tab-navigation{position:fixed;left:10px;right:10px;bottom:10px;z-index:100;width:auto;max-width:none;margin:0;padding:6px;gap:4px;justify-content:space-between;overflow:visible;border:1px solid rgba(15,23,42,.12);border-radius:16px;background:#fffffff0;box-shadow:0 18px 42px #0f172a38;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);-webkit-mask-image:none;mask-image:none}[data-theme=dark] .tab-navigation{background:#0f172aeb;border-color:#94a3b82e}.tab-btn{flex:1;min-width:0;height:56px;margin:0;padding:6px 2px;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-radius:12px;border:1px solid transparent;font-size:.72rem;white-space:normal}.tab-btn-icon{font-size:1.05rem;line-height:1}.tab-btn-label{max-width:100%;font-size:.64rem;font-weight:750;line-height:1.05;white-space:normal;text-align:center}.tab-btn.active{color:#fff;background:var(--color-brand);border-color:var(--color-brand);box-shadow:0 10px 20px #10203338}.insight-strip{gap:10px}.insight-card{padding:14px;border-radius:12px}.insight-label{font-size:.64rem;letter-spacing:.1em}.insight-card h3{margin-top:8px;font-size:1.08rem}.insight-card p{margin-top:5px;font-size:.82rem;line-height:1.35}.dashboard-sections,.main-sections,.two-column-grid{gap:16px}.calendar-section,.detail-section{padding:12px;border-radius:12px}.calendar-section h2,.detail-section h2{margin-bottom:12px;font-size:1.06rem}.more-menu{gap:8px}.more-menu-item{min-height:68px;padding:12px 14px;border-radius:12px}.more-menu-icon{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;background:var(--color-surface-muted);font-size:1.2rem}.more-menu-text strong{font-size:.94rem}.more-menu-text small{font-size:.76rem;line-height:1.25}}@media (max-width: 390px){.app-main{padding-left:6px;padding-right:6px}.stats-accordion-head small{display:none}.stats-accordion-body{padding:8px}.tab-navigation{left:6px;right:6px;bottom:6px}.tab-btn-label{font-size:.58rem}}.lazy-loading-panel{min-height:180px;display:grid;place-items:center;color:var(--color-text-muted);font-weight:750}.theme-toggle{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;border:1px solid var(--color-border-strong);background:var(--color-surface-raised);color:var(--color-text-primary);font-size:.9rem;font-weight:600;cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease;box-shadow:0 2px 8px #11192814}.theme-toggle:hover{background:var(--color-surface-strong);border-color:var(--color-border-stronger);box-shadow:0 6px 16px #1119281f}.theme-toggle:active{transform:translateY(1px)}.theme-toggle__icon{font-size:1.1rem;line-height:1}.theme-toggle__label{white-space:nowrap}@media (max-width: 600px){.theme-toggle{padding:6px 10px;font-size:.8rem}.theme-toggle__label{display:none}}.auth-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .2s ease-in-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.auth-modal{background:#fff;border-radius:16px;max-width:450px;width:100%;max-height:90vh;overflow-y:auto;position:relative;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.auth-modal-close{position:absolute;top:16px;right:16px;background:none;border:none;font-size:24px;cursor:pointer;color:#666;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s}.auth-modal-close:hover{background:#f0f0f0;color:#333}.auth-modal-header{padding:40px 40px 20px;text-align:center;border-bottom:1px solid #eee}.auth-modal-header h2{margin:0 0 10px;color:#333;font-size:28px;font-weight:700}.auth-modal-header p{margin:0;color:#666;font-size:14px;line-height:1.5}.auth-form{padding:30px 40px}.auth-modal-form-group{margin-bottom:20px}.auth-modal-form-group label{display:block;margin-bottom:8px;color:#333;font-weight:600;font-size:14px}.auth-modal-form-group input{width:100%;padding:12px 16px;border:2px solid #e0e0e0;border-radius:8px;font-size:16px;transition:all .2s;box-sizing:border-box}.auth-modal-form-group input:focus{outline:none;border-color:#4caf50;box-shadow:0 0 0 3px #4caf501a}.auth-modal-form-group input::placeholder{color:#999}.auth-error{background:#fee;color:#c33;padding:12px 16px;border-radius:8px;margin-bottom:16px;font-size:14px;border-left:4px solid #c33}.auth-success{background:#efe;color:#2a7c2e;padding:12px 16px;border-radius:8px;margin-bottom:16px;font-size:14px;border-left:4px solid #4CAF50}.auth-submit-btn{width:100%;padding:14px;background:linear-gradient(135deg,#4caf50,#45a049);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s;box-shadow:0 4px 12px #4caf504d}.auth-submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #4caf5066}.auth-submit-btn:active:not(:disabled){transform:translateY(0)}.auth-submit-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.auth-divider{display:flex;align-items:center;margin:24px 40px;color:#999;font-size:14px}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:#e0e0e0}.auth-divider span{padding:0 16px}.google-login-btn{width:calc(100% - 80px);margin:0 40px 20px;padding:12px;background:#fff;color:#333;border:2px solid #e0e0e0;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:12px;transition:all .2s}.google-login-btn:hover:not(:disabled){background:#f8f8f8;border-color:#ccc;box-shadow:0 2px 8px #0000001a}.google-login-btn:disabled{opacity:.6;cursor:not-allowed}.google-login-btn svg{flex-shrink:0}.auth-footer{padding:20px 40px 40px;display:flex;flex-direction:column;gap:12px;align-items:center}.auth-link{background:none;border:none;color:#4caf50;font-size:14px;cursor:pointer;text-decoration:none;transition:all .2s;font-weight:500}.auth-link:hover{color:#45a049;text-decoration:underline}@media (max-width: 600px){.auth-modal{max-width:100%;border-radius:16px 16px 0 0;max-height:95vh}.auth-modal-overlay{padding:0;align-items:flex-end}.auth-modal-header{padding:32px 24px 16px}.auth-modal-header h2{font-size:24px}.auth-form{padding:24px}.auth-divider{margin:20px 24px}.google-login-btn{width:calc(100% - 48px);margin:0 24px 16px}.auth-footer{padding:16px 24px 32px}}
