:root{--bg: #070c16;--surface: #101828;--surface-alt: #182233;--text: #f3f8ff;--muted: #94a3b8;--accent: #29d3f7;--border: #223247;--danger: #ff6f7f}*{box-sizing:border-box}body{margin:0;font-family:Avenir Next,Segoe UI,sans-serif;background:radial-gradient(circle at top right,#11203a,var(--bg) 45%);color:var(--text)}textarea{resize:vertical}h1,h2,h3,h4,p{margin:0}a{color:var(--accent)}button,input,select,textarea{font:inherit}input,select,textarea{width:100%;border-radius:10px;border:1px solid var(--border);padding:12px;background:var(--surface-alt);color:var(--text)}button{border:0;border-radius:10px;padding:11px 14px;background:var(--accent);color:#02141a;font-weight:700}.app-shell{min-height:100vh;padding:16px 16px 86px}.page{max-width:900px;margin:0 auto}.centered{min-height:100vh;display:grid;place-items:center}.auth-page{padding:16px}.card{background:color-mix(in oklab,var(--surface) 92%,#000);border:1px solid var(--border);border-radius:16px;padding:16px}.auth-card{width:min(440px,100%)}.stack{display:grid;gap:12px}.stack-lg{display:grid;gap:16px}.muted{color:var(--muted)}.error{color:var(--danger)}.top-bar{max-width:900px;margin:0 auto 14px;display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.top-bar-copy{display:grid;gap:2px}.top-bar-brand{color:var(--accent);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.top-bar-copy h1{font-size:40px;line-height:.95}.top-bar-copy p{color:var(--muted);font-size:16px}.top-actions{display:flex;gap:8px;align-items:center}.ghost-btn,.ghost-link{background:transparent;border:1px solid var(--border);color:var(--text);text-decoration:none;padding:9px 12px;border-radius:10px}.utility-btn{padding:8px 12px;border-radius:14px;min-height:44px}.icon-btn{width:44px;min-width:44px;padding:0;display:inline-grid;place-items:center}.icon-btn svg{width:22px;height:22px}.tab-nav{position:fixed;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:6px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:#070c16eb;border-top:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.tab-nav a{text-decoration:none;text-align:center;color:var(--muted);border-radius:10px;padding:10px}.tab-nav a.active{background:var(--surface-alt);color:var(--text)}.week-header{display:flex;justify-content:space-between;align-items:center}.week-controls{display:flex;gap:8px}.tracker-summary-card{display:grid;gap:16px;padding:18px;background:radial-gradient(circle at top right,color-mix(in oklab,var(--accent) 10%,transparent),transparent 42%),color-mix(in oklab,var(--surface) 92%,#000)}.tracker-summary-top{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px}.summary-kicker{display:inline-block;margin-bottom:6px;color:var(--accent);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.tracker-summary-top h2{font-size:28px;line-height:1.05;margin-bottom:6px}.tracker-week-controls{align-self:start}.tracker-week-btn{width:40px;min-width:40px;min-height:40px;padding:0;border-radius:12px;display:inline-grid;place-items:center}.tracker-summary-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.tracker-summary-metrics>div{display:grid;gap:4px;padding:14px;border-radius:14px;border:1px solid var(--border);background:color-mix(in oklab,var(--surface-alt) 72%,transparent)}.summary-label{color:var(--muted);font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.tracker-summary-metrics strong{font-size:32px;line-height:1}.score-pill{display:flex;justify-content:space-between;padding:12px 14px;border-radius:12px;border:1px solid var(--border);background:var(--surface)}.habit-card{display:grid;gap:12px}.habit-head{display:flex;justify-content:space-between;align-items:baseline}.progress-track{width:100%;height:8px;border-radius:999px;background:var(--surface-alt);overflow:hidden}.progress-track span{display:block;height:100%;background:var(--accent)}.day-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.day-cell{display:grid;justify-items:center;gap:6px;width:100%}.day-toggle{width:100%;height:40px;border-radius:11px;border:1px solid var(--border);background:transparent;color:var(--muted);padding:0;display:grid;place-items:center}.day-toggle.done{background:var(--accent);border-color:transparent;color:#00212a}.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.chart-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:16px}.trend-svg{width:100%;max-width:320px;margin-top:8px}.chart-labels{display:grid;grid-template-columns:repeat(8,1fr);gap:4px;color:var(--muted);font-size:11px}.badge-grid{display:grid;gap:12px}.badge-card{position:relative;overflow:hidden;display:grid;justify-items:center;gap:10px;text-align:center;border:1px solid var(--border);border-radius:18px;padding:18px 16px 16px;background:color-mix(in oklab,var(--surface) 92%,transparent)}.badge-card.locked{opacity:.82}.badge-card.earned{border-color:color-mix(in oklab,var(--accent) 58%,var(--border));background:radial-gradient(circle at top,color-mix(in oklab,var(--accent) 14%,transparent),transparent 56%),color-mix(in oklab,var(--surface) 88%,transparent);box-shadow:0 0 0 1px color-mix(in oklab,var(--accent) 18%,transparent),0 18px 40px color-mix(in oklab,var(--accent) 14%,transparent)}.badge-card.newly-unlocked:after{content:"";position:absolute;inset:-40% auto -40% -55%;width:50%;transform:rotate(18deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent);animation:badge-shimmer 2.8s ease-in-out 1;pointer-events:none}.badge-icon{display:grid;place-items:center;width:84px;height:84px;border-radius:24px;font-size:42px;line-height:1;background:color-mix(in oklab,var(--surface-alt) 76%,transparent);border:1px solid var(--border)}.badge-card.earned .badge-icon{background:color-mix(in oklab,var(--accent) 18%,var(--surface-alt));border-color:color-mix(in oklab,var(--accent) 55%,var(--border));box-shadow:0 0 24px color-mix(in oklab,var(--accent) 26%,transparent)}.badge-card.locked .badge-icon{filter:grayscale(.25);opacity:.72}.badge-copy{display:grid;gap:4px}.badge-copy h4{margin:0}.badge-copy p{margin:0;color:var(--muted)}.badge-pill{display:inline-flex;align-items:center;justify-content:center;min-width:96px;padding:8px 12px;border-radius:999px;font-size:13px;font-weight:800;letter-spacing:.02em;border:1px solid var(--border)}.badge-pill.earned{color:var(--text);border-color:color-mix(in oklab,var(--accent) 60%,var(--border));background:color-mix(in oklab,var(--accent) 20%,transparent)}.badge-pill.locked{color:var(--muted);background:color-mix(in oklab,var(--surface-alt) 72%,transparent)}@keyframes badge-shimmer{0%{transform:translate(0) rotate(18deg);opacity:0}20%{opacity:1}60%{transform:translate(340%) rotate(18deg);opacity:0}to{transform:translate(340%) rotate(18deg);opacity:0}}.plain-list,.leaderboard-list{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:8px}.plain-list li,.leaderboard-list li{display:flex;justify-content:space-between;gap:8px;padding:10px;border-radius:10px;border:1px solid var(--border)}.leaderboard-list li.current-user{border-color:color-mix(in oklab,var(--accent) 60%,var(--border));background:color-mix(in oklab,var(--accent) 10%,transparent)}.toggle-row{display:flex;align-items:center;gap:8px}.toggle-row input{width:auto}@media (min-width: 768px){.app-shell{padding-bottom:20px}.tab-nav{position:static;max-width:900px;margin:16px auto 0;grid-template-columns:repeat(4,max-content);justify-content:start;background:transparent;border:0;padding:0;-webkit-backdrop-filter:none;backdrop-filter:none}.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.habit-settings-list{display:grid;gap:10px}.habit-setting-row{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid var(--border);border-radius:12px;padding:10px 12px}.habit-target-input{width:90px;text-align:center;font-weight:700}.today-dot{width:6px;height:6px;border-radius:999px;background:transparent}.today-dot.visible{background:var(--accent)}.cardio-card{gap:14px}.cardio-summary-trigger{background:transparent;padding:0;color:inherit;display:grid;gap:12px;text-align:left}.cardio-summary-actions{display:flex;align-items:center;gap:10px}.cardio-expand-icon{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:10px;border:1px solid var(--border);color:var(--text);font-size:18px;line-height:1}.cardio-details{display:grid;gap:12px;padding-top:4px;border-top:1px solid color-mix(in oklab,var(--border) 85%,transparent)}.cardio-stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.cardio-stat-card{display:grid;gap:6px;padding:12px;border-radius:12px;border:1px solid var(--border);background:color-mix(in oklab,var(--surface-alt) 75%,transparent)}.cardio-stat-card strong{font-size:24px}.cardio-day-list{display:grid;gap:8px}.cardio-day-row{background:transparent;color:inherit;border:1px solid var(--border);border-radius:12px;padding:12px;display:flex;justify-content:space-between;align-items:flex-start;gap:10px;text-align:left}.cardio-day-row.active{border-color:color-mix(in oklab,var(--accent) 45%,var(--border));background:color-mix(in oklab,var(--accent) 8%,transparent)}.cardio-day-summary{margin-top:6px;color:var(--text)}.cardio-day-action{color:var(--accent);font-weight:700}.cardio-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.cardio-form-grid label:last-child{grid-column:1 / -1}.cardio-form-actions{display:flex;flex-wrap:wrap;gap:8px}.stack-sm{display:grid;gap:6px}@media (max-width: 520px){.cardio-form-grid{grid-template-columns:1fr}}.trend-chart-layout{display:grid;grid-template-columns:44px minmax(0,1fr);gap:8px;align-items:stretch;margin-top:8px}.trend-y-axis{display:grid;grid-template-rows:repeat(5,1fr);color:var(--muted);font-size:11px;text-align:right;padding:4px 0 20px}.trend-y-axis span{display:flex;align-items:center;justify-content:flex-end}.trend-grid-line{stroke:color-mix(in oklab,var(--border) 85%,transparent);stroke-width:1}.cardio-recap-list{display:grid;gap:10px;max-height:300px;overflow-y:auto;padding-right:4px}.cardio-recap-list li{align-items:center}.cardio-recap-meta{display:grid;justify-items:end;gap:4px}.badge-unlock-banner{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px;border-radius:18px;border:1px solid color-mix(in oklab,var(--accent) 58%,var(--border));background:radial-gradient(circle at top left,color-mix(in oklab,var(--accent) 18%,transparent),transparent 52%),color-mix(in oklab,var(--surface) 90%,transparent);box-shadow:0 18px 40px color-mix(in oklab,var(--accent) 12%,transparent)}.badge-unlock-copy{display:grid;gap:6px}.badge-unlock-kicker{color:var(--accent);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.badge-unlock-copy h3,.badge-unlock-copy p{margin:0}.badge-unlock-copy p{color:var(--muted)}@media (max-width: 520px){.badge-unlock-banner{grid-template-columns:1fr;align-items:start;display:grid}}@media (max-width: 520px){.top-bar{align-items:stretch}.top-bar-copy h1{font-size:34px}.tracker-summary-top{grid-template-columns:minmax(0,1fr) auto;align-items:start}.tracker-week-controls{justify-self:end}.tracker-summary-metrics{grid-template-columns:1fr}}.profile-signout-row{margin-top:16px;padding-top:16px;border-top:1px solid color-mix(in oklab,var(--border) 85%,transparent)}
