:root{--bg:#f4efe9;--bg-surface:#fff;--bg-elevated:#ece7e0;--bg-input:#fff;--bg-hover:#1e140a0a;--bg-active:#1e140a14;--surface:#fff;--surface-2:#f9f6f2;--border:#ddd7cf;--border-strong:#c8c0b5;--border-focus:#2563eb59;--text:#0f172a;--text-muted:#64748b;--text-faint:#94a3b8;--text-inverse:#fff;--indigo:#2563eb;--indigo-dark:#1d4ed8;--indigo-dim:#2563eb14;--indigo-glow:#2563eb24;--emerald:#059669;--emerald-dark:#047857;--emerald-dim:#05966914;--emerald-glow:#05966924;--amber:#d97706;--amber-dim:#d977061a;--red:#dc2626;--red-dim:#dc262614;--green:var(--emerald);--font-display:"Barlow Condensed", sans-serif;--font-heading:"Plus Jakarta Sans", sans-serif;--font-body:"Inter", sans-serif;--font-mono:"JetBrains Mono", monospace;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--sp-16:64px;--r-sm:6px;--r-md:10px;--r-lg:16px;--r-xl:24px;--r-full:9999px;--shadow-xs:0 1px 3px #1e14081a;--shadow-sm:0 2px 6px #1e14081f, 0 1px 2px #1e140814;--shadow-md:0 4px 16px #1e140824, 0 2px 6px #1e140814;--shadow-lg:0 8px 32px #1e140829, 0 4px 10px #1e14081a;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--dur-fast:.12s;--dur-base:.2s;--dur-slow:.35s;--nav-top-h:56px;--nav-bottom-h:68px;--page-max:860px;--page-pad:var(--sp-4);--nav-bg:#f4efe9eb}@media (width>=640px){:root{--page-pad:var(--sp-6)}}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0f1117;--bg-surface:#1a1f2e;--bg-elevated:#222840;--bg-input:#1e243a;--bg-hover:#f1f5f90f;--bg-active:#f1f5f91a;--surface:#1a1f2e;--surface-2:#1e243a;--border:#2d3554;--border-strong:#3d4770;--border-focus:#3b82f666;--text:#f1f5f9;--text-muted:#94a3b8;--text-faint:#64748b;--text-inverse:#0f172a;--indigo:#3b82f6;--indigo-dark:#2563eb;--indigo-dim:#3b82f624;--indigo-glow:#3b82f633;--emerald:#10b981;--emerald-dark:#059669;--emerald-dim:#10b9811f;--emerald-glow:#10b9812e;--amber:#f59e0b;--amber-dim:#f59e0b21;--red:#ef4444;--red-dim:#ef44441f;--shadow-xs:0 1px 3px #0006;--shadow-sm:0 2px 6px #00000073, 0 1px 2px #0000004d;--shadow-md:0 4px 16px #00000080, 0 2px 6px #00000059;--shadow-lg:0 8px 32px #0009, 0 4px 10px #0006;--nav-bg:#0f1117eb}}:root[data-theme=dark]{--bg:#0f1117;--bg-surface:#1a1f2e;--bg-elevated:#222840;--bg-input:#1e243a;--bg-hover:#f1f5f90f;--bg-active:#f1f5f91a;--surface:#1a1f2e;--surface-2:#1e243a;--border:#2d3554;--border-strong:#3d4770;--border-focus:#3b82f666;--text:#f1f5f9;--text-muted:#94a3b8;--text-faint:#64748b;--text-inverse:#0f172a;--indigo:#3b82f6;--indigo-dark:#2563eb;--indigo-dim:#3b82f624;--indigo-glow:#3b82f633;--emerald:#10b981;--emerald-dark:#059669;--emerald-dim:#10b9811f;--emerald-glow:#10b9812e;--amber:#f59e0b;--amber-dim:#f59e0b21;--red:#ef4444;--red-dim:#ef44441f;--shadow-xs:0 1px 3px #0006;--shadow-sm:0 2px 6px #00000073, 0 1px 2px #0000004d;--shadow-md:0 4px 16px #00000080, 0 2px 6px #00000059;--shadow-lg:0 8px 32px #0009, 0 4px 10px #0006;--nav-bg:#0f1117eb}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scrollbar-gutter:stable;height:100%}body{font-family:var(--font-body);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none;min-height:100%;font-size:15px;line-height:1.5}img,svg{max-width:100%;display:block}button{cursor:pointer;font-family:inherit}input,textarea,select{font-family:inherit}a{color:inherit}.font-display{font-family:var(--font-display)}.font-heading{font-family:var(--font-heading)}.font-mono{font-family:var(--font-mono)}.stat-num{font-family:var(--font-display);letter-spacing:-.01em;font-weight:900;line-height:1}.stat-num-xl{font-size:clamp(56px,14vw,88px)}.stat-num-lg{font-size:clamp(44px,10vw,64px)}.stat-num-md{font-size:clamp(28px,7vw,40px)}.stat-num-sm{font-size:24px}.label{font-family:var(--font-heading);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:12px;font-weight:600}.label-lg{letter-spacing:.1em;font-size:13px}.page-title{font-family:var(--font-heading);color:var(--text);font-size:22px;font-weight:800}.page{max-width:var(--page-max);padding:var(--sp-6) var(--page-pad);padding-bottom:calc(var(--nav-bottom-h) + var(--sp-8));margin:0 auto}@media (width>=768px){.page{padding-top:var(--sp-8)}}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-5);box-shadow:var(--shadow-md)}.card-sm{padding:var(--sp-4);border-radius:var(--r-md)}.card-lg{padding:var(--sp-6)}.btn{justify-content:center;align-items:center;gap:var(--sp-2);padding:0 var(--sp-5);height:44px;font-family:var(--font-heading);letter-spacing:.02em;border-radius:var(--r-md);transition:opacity var(--dur-fast), transform var(--dur-fast) var(--ease-spring), background var(--dur-fast), box-shadow var(--dur-fast);-webkit-user-select:none;user-select:none;white-space:nowrap;-webkit-tap-highlight-color:transparent;border:none;font-size:14px;font-weight:700;text-decoration:none;display:inline-flex}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;pointer-events:none}.btn-primary{background:var(--indigo);color:#fff;box-shadow:0 2px 6px #2563eb59,0 1px 2px #2563eb33}.btn-primary:hover{background:var(--indigo-dark);box-shadow:0 4px 12px #2563eb66,0 2px 4px #2563eb40}.btn-emerald{background:var(--emerald);color:#fff;box-shadow:0 1px 3px #0596694d}.btn-emerald:hover{background:var(--emerald-dark)}.btn-ghost{color:var(--text-muted);border:1px solid var(--border-strong);background:0 0}.btn-ghost:hover{background:var(--bg-elevated);color:var(--text);border-color:var(--border-strong)}.btn-surface{background:var(--bg-surface);color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow-sm)}.btn-surface:hover{background:var(--surface-2);box-shadow:var(--shadow-md)}.btn-sm{height:34px;padding:0 var(--sp-4);border-radius:var(--r-sm);font-size:12px}.btn-full{width:100%}.input{width:100%;height:44px;padding:0 var(--sp-4);background:var(--bg-input);border:1px solid var(--border-strong);border-radius:var(--r-md);color:var(--text);font-family:var(--font-body);transition:border-color var(--dur-base), box-shadow var(--dur-base);appearance:none;font-size:15px}.input:focus{border-color:var(--indigo);box-shadow:0 0 0 3px var(--indigo-dim);outline:none}.input::placeholder{color:var(--text-faint)}textarea.input{height:auto;padding:var(--sp-3) var(--sp-4);resize:vertical;min-height:80px}.input-label{font-family:var(--font-heading);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--sp-2);font-size:12px;font-weight:600;display:block}.form-field{gap:var(--sp-2);flex-direction:column;display:flex}.badge{align-items:center;gap:var(--sp-1);font-family:var(--font-heading);letter-spacing:.06em;text-transform:uppercase;border-radius:var(--r-full);padding:3px 9px;font-size:12px;font-weight:600;display:inline-flex}.badge-indigo{background:var(--indigo-dim);color:var(--indigo)}.badge-emerald{background:var(--emerald-dim);color:var(--emerald)}.badge-amber{background:var(--amber-dim);color:var(--amber)}.badge-muted{background:var(--bg-elevated);color:var(--text-muted);border:1px solid var(--border)}.progress-track{background:var(--bg-elevated);border-radius:var(--r-full);border:1px solid var(--border);height:4px;overflow:hidden}.progress-fill{border-radius:var(--r-full);height:100%;transition:width .6s var(--ease-out)}.divider{background:var(--border);height:1px;margin:var(--sp-4) 0}.toggle-group{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-md);gap:2px;padding:3px;display:inline-flex}.toggle-btn{height:40px;padding:0 var(--sp-4);font-family:var(--font-heading);letter-spacing:.04em;border-radius:calc(var(--r-md) - 3px);color:var(--text-muted);transition:all var(--dur-fast);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;font-size:12px;font-weight:700}.toggle-btn.active{background:var(--bg-surface);color:var(--text);box-shadow:var(--shadow-sm)}.toggle-btn:active{opacity:.7}.avatar{border-radius:var(--r-full);object-fit:cover;background:var(--bg-elevated);flex-shrink:0}.stat-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-5);gap:var(--sp-2);min-width:0;box-shadow:var(--shadow-md);flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.stat-card:before{content:"";background:radial-gradient(ellipse at top left, var(--glow,transparent) 0%, transparent 65%);pointer-events:none;position:absolute;inset:0}.stat-card:after{content:"";background:var(--accent,transparent);border-radius:var(--r-lg) var(--r-lg) 0 0;height:3px;position:absolute;top:0;left:0;right:0}.stat-card-indigo{--glow:#2563eb0d;--accent:var(--indigo)}.stat-card-emerald{--glow:#0596690d;--accent:var(--emerald)}.loading-screen{background:var(--bg);justify-content:center;align-items:center;min-height:100dvh;display:flex}@keyframes shimmer{0%{background-position:-600px 0}to{background-position:600px 0}}.skeleton{border-radius:var(--r-md);background:linear-gradient(90deg, var(--bg-elevated) 25%, var(--bg-input) 50%, var(--bg-elevated) 75%);background-size:600px 100%;animation:1.4s ease-in-out infinite shimmer}.empty-state{text-align:center;padding:var(--sp-12) var(--sp-6);color:var(--text-muted);font-size:14px}@media (width<=480px){.empty-state{padding:var(--sp-8) var(--sp-4)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.animate-fadeUp{animation:fadeUp var(--dur-slow) var(--ease-out) both}.animate-fadeIn{animation:fadeIn var(--dur-base) ease both}.stagger>:first-child{animation-delay:0s}.stagger>:nth-child(2){animation-delay:60ms}.stagger>:nth-child(3){animation-delay:.12s}.stagger>:nth-child(4){animation-delay:.18s}.stagger>:nth-child(5){animation-delay:.24s}:focus-visible{outline:2px solid var(--indigo);outline-offset:2px}button:focus-visible,a:focus-visible{outline:2px solid var(--indigo);outline-offset:2px;border-radius:var(--r-sm)}.section-title{font-family:var(--font-heading);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:13px;font-weight:700}.btn-signout{color:var(--text-faint);font-size:12px;font-family:var(--font-heading);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border-radius:var(--r-sm);transition:color var(--dur-fast), background var(--dur-fast);background:0 0;border:none;padding:6px 8px;font-weight:600}.btn-signout:hover{color:var(--text);background:var(--bg-hover)}.quick-link{gap:var(--sp-3);padding:var(--sp-5);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);color:var(--text-muted);box-shadow:var(--shadow-sm);transition:border-color var(--dur-fast), background var(--dur-fast), box-shadow var(--dur-fast), transform var(--dur-fast);flex-direction:column;text-decoration:none;display:flex}.quick-link:hover{border-color:var(--border-strong);background:var(--bg-elevated);box-shadow:var(--shadow-md);transform:translateY(-1px)}.quick-link:active{transform:translateY(0)}.quick-link-label{font-family:var(--font-heading);color:var(--text);margin-bottom:2px;font-size:14px;font-weight:700}.quick-link-sub{color:var(--text-muted);font-size:12px}.streak-badge{align-items:center;gap:var(--sp-1);background:var(--amber-dim);border-radius:var(--r-full);font-family:var(--font-heading);letter-spacing:.06em;color:var(--amber);border:1px solid #d9770633;padding:3px 10px;font-size:11px;font-weight:700;display:inline-flex}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:2px}.safe-bottom{padding-bottom:env(safe-area-inset-bottom)}@media (hover:none){.btn:active{opacity:.75;transform:scale(.97)}.card-link:active{opacity:.8}a:active{opacity:.75}}.hover-row{transition:opacity var(--dur-fast)}.hover-row:hover{opacity:.75}.menu-item{text-align:left;cursor:pointer;width:100%;color:var(--text);font-size:13px;font-family:var(--font-body);transition:background var(--dur-fast);background:0 0;border:none;padding:10px 16px;display:block}.menu-item:hover{background:var(--bg-elevated)}.menu-item-danger{color:var(--red)}.lb-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}@media (width<=480px){.lb-situps{display:none}.lb-scroll table{font-size:12px}.lb-scroll td,.lb-scroll th{padding:10px 6px}.progress-track{height:6px}}
