:root{--bg:#060909;--bg-elevated:#0d1413;--bg-elevated-2:#111a19;--border:#e8f5f014;--border-strong:#e8f5f029;--text:#eef4f2;--text-dim:#8ea19c;--text-faint:#566462;--green:#35e893;--green-dim:#35e89324;--amber:#ffb443;--amber-dim:#ffb44324;--red:#ff5c72;--red-dim:#ff5c7224;--violet:#9b8cff;--violet-dim:#9b8cff24;--blue:#5ec8ff;--blue-dim:#5ec8ff24;--orange:#ff8a3d;--orange-dim:#ff8a3d24;--display:"Chakra Petch", ui-sans-serif, sans-serif;--mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;margin:0}body{font:15px/1.5 var(--mono);color:var(--text);background-image:radial-gradient(900px 500px at 12% -10%,#35e89312,#0000 60%),radial-gradient(700px 500px at 100% 10%,#9b8cff0d,#0000 55%),repeating-linear-gradient(#ffffff05 0 1px,#0000 1px 3px)}#root{min-height:100svh}h1,h2,h3{font-family:var(--display);color:var(--text);margin:0;font-weight:600}p{margin:0}::selection{background:var(--green);color:#06110b}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:6px}::-webkit-scrollbar-thumb:hover{background:var(--text-faint)}a{color:inherit}button{font-family:inherit}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1;box-shadow:0 0 #35e89380}50%{opacity:.6;box-shadow:0 0 0 5px #35e89300}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes growBar{0%{height:0%}}.app{flex-direction:column;min-height:100svh;display:flex}.app-content{width:100%;max-width:720px;padding:20px 16px calc(88px + env(safe-area-inset-bottom,0px));box-sizing:border-box;flex:1;margin:0 auto}@media (width>=860px){.app-content{max-width:1180px;padding:28px 28px calc(96px + env(safe-area-inset-bottom,0px))}}.topbar{z-index:40;padding:14px 16px;padding-top:calc(14px + env(safe-area-inset-top,0px));background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;display:flex;position:sticky;top:0}@media (width>=860px){.topbar{padding:16px 28px;padding-top:calc(16px + env(safe-area-inset-top,0px))}}.topbar-brand{font-family:var(--display);align-items:baseline;gap:8px;display:flex}.brand-mark{letter-spacing:1px;color:var(--text);font-size:16px;font-weight:700}.brand-sep{color:var(--green);opacity:.7;font-size:13px}.brand-sub{letter-spacing:2.5px;color:var(--text-dim);font-size:11px}.topbar-right{align-items:center;gap:14px;display:flex}.live-dot{background:var(--green);border-radius:50%;width:7px;height:7px;animation:2.2s ease-in-out infinite pulse}.profile-avatar-btn{width:34px;height:34px;font-family:var(--display);background:var(--bg-elevated-2);border:1px solid var(--border-strong);color:var(--green);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:13px;font-weight:600;transition:border-color .2s;display:flex}.profile-avatar-btn:hover,.profile-avatar-btn[aria-expanded=true]{border-color:var(--green)}.profile-sheet-backdrop{z-index:45;background:#00000059;animation:.15s both fadeUp;position:fixed;inset:0}.profile-sheet{z-index:46;background:var(--bg-elevated-2);border:1px solid var(--border-strong);border-radius:16px;flex-direction:column;gap:12px;width:230px;padding:16px;animation:.18s cubic-bezier(.16,1,.3,1) both fadeUp;display:flex;position:absolute;top:calc(100% + 8px);right:16px;box-shadow:0 16px 40px #00000080}@media (width>=860px){.profile-sheet{right:28px}}.profile-sheet-name{font-family:var(--display);color:var(--text);font-size:14px;font-weight:600}.profile-sheet-clock{color:var(--text-faint);margin-top:-8px;font-size:11px}.profile-sheet-body{border-top:1px solid var(--border);border-bottom:1px solid var(--border);flex-direction:column;gap:6px;padding:10px 0;display:flex}.profile-sheet-body>div{justify-content:space-between;font-size:12px;display:flex}.profile-sheet-body span{color:var(--text-faint)}.profile-sheet-body strong{color:var(--text-dim);font-weight:500}.profile-sheet-logout{font-family:var(--mono);letter-spacing:.3px;color:var(--red);background:var(--red-dim);cursor:pointer;border:1px solid #ff5c724d;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:9px;font-size:12px;transition:background .2s;display:flex}.profile-sheet-logout svg{width:15px;height:15px}.profile-sheet-logout:hover:not(:disabled){background:#ff5c723d}.profile-sheet-logout:disabled{opacity:.5;cursor:default}.bottom-nav{z-index:40;background:color-mix(in srgb, var(--bg) 86%, transparent);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom,0px);position:fixed;bottom:0;left:0;right:0}.bottom-nav-inner{max-width:720px;margin:0 auto;display:flex}@media (width>=860px){.bottom-nav-inner{max-width:480px}}.bn-tab{color:var(--text-faint);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;padding:9px 4px 10px;text-decoration:none;transition:color .2s;display:flex}.bn-icon{width:22px;height:22px}.bn-icon svg{width:100%;height:100%}.bn-label{letter-spacing:.3px;font-size:10px}.bn-tab.active{color:var(--green)}.bn-tab.active .bn-icon{filter:drop-shadow(0 0 6px color-mix(in srgb, var(--green) 55%, transparent))}.hero{grid-template-columns:auto 1fr;align-items:stretch;gap:48px;margin-bottom:44px;display:grid}.hero-ring{flex-direction:column;align-items:center;gap:22px;animation:.6s both fadeUp;display:flex}.ring-wrap{filter:drop-shadow(0 0 26px color-mix(in srgb, var(--glow) 35%, transparent));justify-content:center;align-items:center;display:flex;position:relative}.ring-svg{transform:rotate(-90deg)}.ring-track{stroke:var(--border)}.ring-progress{transition:stroke-dashoffset 1.1s cubic-bezier(.16,1,.3,1)}.ring-center{flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex;position:absolute}.ring-number{font-family:var(--display);font-size:64px;font-weight:700;line-height:1}.ring-percent{font-family:var(--display);color:var(--text-faint);margin-top:-4px;font-size:16px}.ring-label{letter-spacing:2.5px;margin-top:8px;font-size:11px}.hero-ring-substats{gap:22px;display:flex}.hero-ring-substats>div{flex-direction:column;align-items:center;gap:4px;display:flex}.hero-ring-substats span{letter-spacing:1.5px;color:var(--text-faint);font-size:10px}.hero-ring-substats strong{color:var(--text-dim);font-size:14px;font-weight:500}.hero-right{flex-direction:column;gap:16px;min-width:0;display:flex}.hero-stats-row{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.stat-card{background:var(--bg-elevated);border:1px solid var(--border);animation:.6s cubic-bezier(.16,1,.3,1) both fadeUp;animation-delay:var(--d,0s);border-radius:14px;flex-direction:column;gap:10px;padding:18px 18px 16px;transition:border-color .2s,transform .2s;display:flex}.stat-card:hover{border-color:var(--border-strong);transform:translateY(-2px)}.stat-top{justify-content:space-between;align-items:center;display:flex}.stat-label{letter-spacing:1.6px;color:var(--text-faint);font-size:10.5px}.stat-dot{background:var(--accent);width:6px;height:6px;box-shadow:0 0 8px var(--accent);border-radius:50%}.stat-value{font-family:var(--display);color:var(--text);align-items:baseline;gap:6px;font-size:30px;font-weight:600;display:flex}.stat-unit{font-family:var(--mono);color:var(--text-faint);font-size:12px;font-weight:400}.stat-sub{color:var(--text-faint);font-size:11px}.stat-bar-track{background:var(--border);border-radius:2px;height:4px;overflow:hidden}.stat-bar-fill{background:var(--accent);border-radius:2px;height:100%;transition:width 1s cubic-bezier(.16,1,.3,1)}.spark-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:14px;flex-direction:column;flex:1;gap:12px;padding:18px 20px 14px;animation:.6s .26s both fadeUp;display:flex}.spark-title{letter-spacing:1.6px;color:var(--text-faint);font-size:10.5px}.sparkline{flex:1;align-items:flex-end;gap:10px;height:70px;display:flex}.spark-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:6px;height:100%;display:flex}.spark-bar{width:100%;max-width:20px;animation:.9s cubic-bezier(.16,1,.3,1) both growBar;animation-delay:var(--d,0s);border-radius:3px 3px 1px 1px}.spark-day{color:var(--text-faint);text-transform:uppercase;font-size:9px}.panel{margin-bottom:40px}.panel-head{justify-content:space-between;align-items:baseline;display:flex}.panel-link{color:var(--text-faint);font-size:11px;text-decoration:none;transition:color .2s}.panel-link:hover{color:var(--green)}.panel-title{letter-spacing:3px;text-transform:uppercase;color:var(--text-dim);margin-bottom:14px;padding-left:2px;font-size:13px}.page-head{margin-bottom:28px}.page-title{color:var(--text);text-transform:capitalize;font-size:30px;font-weight:600}.page-sub{color:var(--text-faint);margin-top:8px;font-size:13px}.page-sub strong{color:var(--text-dim);font-weight:600}.back-link{font-family:var(--display);color:var(--text-faint);margin-bottom:20px;font-size:12px;font-weight:600;text-decoration:none;transition:color .2s;display:inline-block}.back-link:hover{color:var(--green)}.log-list,.wk-list{flex-direction:column;gap:10px;display:flex}.trend-grid{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.trend-card{background:var(--bg-elevated);border:1px solid var(--border);animation:.6s cubic-bezier(.16,1,.3,1) both fadeUp;animation-delay:var(--d,0s);border-radius:14px;flex-direction:column;gap:10px;padding:16px 18px;transition:border-color .2s,transform .2s;display:flex}.trend-card:hover{border-color:var(--border-strong);transform:translateY(-2px)}.trend-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.trend-term{font-family:var(--display);color:var(--text-dim);letter-spacing:.5px;font-size:13px;font-weight:600}.trend-badge{letter-spacing:1px;white-space:nowrap;border:1px solid;border-radius:999px;padding:3px 8px;font-size:9px}.trend-value{font-family:var(--display);color:var(--text);align-items:baseline;gap:5px;font-size:26px;font-weight:600;display:flex}.trend-unit{font-family:var(--mono);color:var(--text-faint);font-size:11px;font-weight:400}.trend-svg{width:100%;height:52px;overflow:visible}.trend-baseline-line{stroke:var(--border-strong);stroke-width:1px;stroke-dasharray:3 3}.trend-baseline-label{color:var(--text-faint);font-size:10px}.trend-note{color:var(--text-faint);margin:0;font-size:11px;line-height:1.4}.trend-empty{height:52px;color:var(--text-faint);align-items:center;font-size:11px;display:flex}.log-row{background:var(--bg-elevated);border:1px solid var(--border);animation:.5s both fadeUp;animation-delay:var(--d,0s);border-radius:12px;grid-template-columns:96px repeat(5,1fr) 60px;align-items:center;gap:14px;padding:14px 18px;transition:border-color .2s;display:grid}.log-row:hover{border-color:var(--border-strong)}.log-row-link{color:inherit;cursor:pointer;text-decoration:none}.log-row-link:hover{border-color:var(--green);transform:translateY(-1px)}.log-date{align-items:center;gap:8px;display:flex}.log-day{color:var(--text-dim);text-transform:capitalize;font-size:12px}.log-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.log-metric{flex-direction:column;gap:2px;display:flex}.log-metric-value{font-family:var(--display);color:var(--text);font-size:16px;font-weight:600}.log-metric-value small{font-family:var(--mono);color:var(--text-faint);margin-left:1px;font-size:10px;font-weight:400}.log-metric-label{letter-spacing:1.2px;color:var(--text-faint);text-transform:uppercase;font-size:9px}.log-recovery .log-metric-value{font-size:19px}.log-stages{border-radius:4px;gap:1px;height:26px;display:flex;overflow:hidden}.stage-bar{flex-basis:0}.wk-row{background:var(--bg-elevated);border:1px solid var(--border);animation:.5s both fadeUp;animation-delay:var(--d,0s);border-radius:12px;align-items:center;gap:18px;padding:14px 18px;transition:border-color .2s;display:flex}.wk-row:hover{border-color:var(--border-strong)}.wk-row-link{color:inherit;cursor:pointer;text-decoration:none}.wk-row-link:hover{border-color:var(--violet);transform:translateY(-1px)}.wk-strain-chip{width:44px;height:44px;font-family:var(--display);background:conic-gradient(var(--violet) var(--pct,0%), var(--border) 0);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:flex;position:relative}.wk-strain-chip:before{content:"";background:var(--bg-elevated);border-radius:50%;position:absolute;inset:4px}.wk-strain-chip span{z-index:1;position:relative}.wk-info{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.wk-sport{color:var(--text);font-size:14px;font-weight:500}.wk-meta{color:var(--text-faint);font-size:11px}.wk-numbers{color:var(--text-dim);flex-direction:column;align-items:flex-end;gap:4px;font-size:12px;display:flex}.wk-numbers small{color:var(--text-faint)}.empty{color:var(--text-faint);padding:20px 0;font-size:13px}.error-banner{background:var(--red-dim);color:var(--red);border:1px solid #ff5c7259;border-radius:10px;margin-bottom:24px;padding:10px 16px;font-size:12px}.boot-screen{min-height:100svh;font-family:var(--display);letter-spacing:3px;color:var(--text-faint);justify-content:center;align-items:center;font-size:13px;display:flex}.skel{background:linear-gradient(90deg, var(--bg-elevated) 25%, var(--bg-elevated-2) 50%, var(--bg-elevated) 75%);background-size:200% 100%;border-radius:8px;animation:1.6s ease-in-out infinite shimmer}.login-screen{justify-content:center;align-items:center;min-height:100svh;padding:24px;display:flex;position:relative;overflow:hidden}.login-grid{background-image:linear-gradient(var(--border) 1px, transparent 1px), linear-gradient(90deg, var(--border) 1px, transparent 1px);opacity:.6;background-size:64px 64px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(60% 60% at 50% 40%,#000,#0000);mask-image:radial-gradient(60% 60% at 50% 40%,#000,#0000)}.login-content{z-index:1;text-align:center;flex-direction:column;align-items:center;gap:22px;max-width:520px;display:flex;position:relative}.login-kicker{letter-spacing:3px;color:var(--green);font-size:11px}.login-title{font-family:var(--display);letter-spacing:1px;background:linear-gradient(180deg, var(--text) 0%, var(--text-dim) 100%);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:52px;font-weight:700;line-height:1.05}.login-sub{color:var(--text-dim);font-size:14px;line-height:1.6}.login-cta{background:var(--green);color:#06110b;font-family:var(--display);letter-spacing:.5px;border-radius:999px;align-items:center;gap:10px;margin-top:10px;padding:15px 28px;font-size:14px;font-weight:600;text-decoration:none;transition:transform .2s,box-shadow .2s;display:inline-flex;box-shadow:0 0 0 1px #35e8934d,0 12px 30px -8px #35e89380}.login-cta:hover{transform:translateY(-2px);box-shadow:0 0 0 1px #35e89366,0 16px 34px -6px #35e89399}.login-cta-arrow{transition:transform .2s}.login-cta:hover .login-cta-arrow{transform:translate(3px)}@media (width<=860px){.hero{grid-template-columns:1fr}.hero-ring{align-self:center}.hero-stats-row{grid-template-columns:1fr 1fr}.log-row{grid-template-columns:1fr 1fr;row-gap:10px}.log-stages{grid-column:1/-1}.login-title{font-size:38px}}@media (width<=520px){.hero-stats-row{grid-template-columns:1fr}.topbar-profile{justify-content:space-between;width:100%}.profile-meta{display:none}.trend-grid{grid-template-columns:1fr}}@media (width<=860px){.trend-grid{grid-template-columns:1fr 1fr}}.term{cursor:help;border-bottom:1px dotted var(--text-faint);position:relative}.term-plain{border-bottom-style:dotted}.term-tip{background:var(--bg-elevated-2);border:1px solid var(--border-strong);color:var(--text-dim);font-family:var(--mono);text-transform:none;letter-spacing:normal;opacity:0;visibility:hidden;pointer-events:none;z-index:30;border-radius:8px;width:max-content;max-width:230px;padding:9px 11px;font-size:11px;line-height:1.45;transition:opacity .15s,transform .15s;position:absolute;bottom:100%;left:50%;transform:translate(-50%)translateY(-4px);box-shadow:0 10px 26px #00000073}.term:hover .term-tip,.term:focus-visible .term-tip{opacity:1;visibility:visible;transform:translate(-50%)translateY(-8px)}.sleep-list{flex-direction:column;gap:10px;display:flex}.sleep-row{background:var(--bg-elevated);border:1px solid var(--border);color:inherit;border-radius:12px;align-items:center;gap:20px;padding:16px 20px;text-decoration:none;transition:border-color .2s,transform .2s;display:flex}.sleep-row:hover{border-color:var(--green);transform:translateY(-1px)}.sleep-row-date{flex-direction:column;flex-shrink:0;gap:3px;width:150px;display:flex}.sleep-row-day{color:var(--text);text-transform:capitalize;font-size:14px}.sleep-row-time{color:var(--text-faint);font-size:11px}.sleep-row-duration{font-family:var(--display);color:var(--text-dim);flex-shrink:0;width:100px;font-size:15px}.sleep-nap-badge{letter-spacing:1px;text-transform:uppercase;color:var(--violet);border:1px solid var(--violet);border-radius:999px;flex-shrink:0;padding:3px 8px;font-size:9px}.sleep-row-perf{flex:1;align-items:center;gap:12px;display:flex}.sleep-row-perf-track{background:var(--border);border-radius:3px;flex:1;height:6px;overflow:hidden}.sleep-row-perf-fill{border-radius:3px;height:100%;transition:width .6s}.sleep-row-perf-value{font-family:var(--display);text-align:right;width:44px;font-size:14px;font-weight:600}.sleep-row-arrow{color:var(--text-faint);flex-shrink:0}.load-more-btn{border:1px dashed var(--border-strong);width:100%;color:var(--text-dim);font-family:var(--mono);letter-spacing:.5px;cursor:pointer;background:0 0;border-radius:12px;margin-top:16px;padding:12px;font-size:12px;transition:border-color .2s,color .2s}.load-more-btn:hover:not(:disabled){border-color:var(--green);color:var(--green)}.load-more-btn:disabled{opacity:.5;cursor:default}.ring-stat-row{flex-wrap:wrap;justify-content:center;gap:32px;display:flex}.ring-stat{flex-direction:column;align-items:center;gap:10px;display:flex}.ring-stat-svg-wrap{justify-content:center;align-items:center;display:flex;position:relative}.ring-stat-svg-wrap svg{transform:rotate(-90deg)}.ring-stat-value{font-family:var(--display);font-size:18px;font-weight:600;position:absolute}.ring-stat-label{letter-spacing:1px;color:var(--text-faint);text-transform:uppercase;font-size:11px}.stage-detail-bar{border-radius:6px;gap:2px;height:16px;margin-bottom:16px;display:flex;overflow:hidden}.stage-legend{flex-direction:column;gap:8px;display:flex}.stage-legend-item{align-items:center;gap:10px;font-size:13px;display:flex}.stage-legend-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.stage-legend-label{color:var(--text-dim);flex:1}.stage-legend-value{color:var(--text-faint);font-size:12px}.stage-legend-pct{color:var(--text);text-align:right;width:40px;font-weight:600}.need-bars{flex-direction:column;gap:10px;display:flex}.need-bar-row{color:var(--text-dim);grid-template-columns:90px 1fr 90px;align-items:center;gap:12px;font-size:12px;display:grid}.need-bar-track{background:var(--border);border-radius:4px;height:8px;overflow:hidden}.need-bar-fill{border-radius:4px;height:100%;transition:width .8s cubic-bezier(.16,1,.3,1)}.need-bar-val{text-align:right;color:var(--text-faint)}.cycle-row-kcal{color:var(--text-faint);text-align:right;flex-shrink:0;width:70px;font-size:12px}.cycle-hero{flex-wrap:wrap;justify-content:center;align-items:center;gap:40px;display:flex}.cycle-hero-stats{flex-wrap:wrap;gap:28px;display:flex}.cycle-hero-stat{flex-direction:column;gap:8px;display:flex}.cycle-hero-value{font-family:var(--display);color:var(--text);align-items:baseline;gap:5px;font-size:26px;font-weight:600;display:flex}.cycle-hero-value small{font-family:var(--mono);color:var(--text-faint);font-size:11px;font-weight:400}.cycle-sub-card{background:var(--bg-elevated);border:1px solid var(--border);color:inherit;border-radius:14px;align-items:center;gap:28px;padding:18px 22px;text-decoration:none;display:flex}.cycle-sub-card-link{transition:border-color .2s,transform .2s}.cycle-sub-card-link:hover{border-color:var(--blue);transform:translateY(-1px)}.cycle-sub-score{font-family:var(--display);flex-shrink:0;font-size:32px;font-weight:700}.cycle-sub-metrics{flex-wrap:wrap;flex:1;gap:24px;display:flex}.cycle-sub-metrics>div{flex-direction:column;gap:4px;display:flex}.cycle-sub-metrics span{letter-spacing:1px;color:var(--text-faint);text-transform:uppercase;font-size:10px}.cycle-sub-metrics strong{color:var(--text-dim);font-size:14px;font-weight:500}@media (width<=640px){.sleep-row{flex-wrap:wrap}.sleep-row-perf{order:3;width:100%}.need-bar-row{grid-template-columns:70px 1fr 70px}.cycle-row-kcal{display:none}.cycle-sub-card{flex-wrap:wrap}}
