:root{--ink:#f4f1e8;--ink-soft:#b8beb3;--muted:#858d83;--canvas:#141815;--canvas-raised:#1b201c;--canvas-high:#232a24;--line:rgba(244,241,232,0.12);--line-strong:rgba(244,241,232,0.22);--accent:#c6ff3d;--accent-dark:#1a2513;--warn:#f0bd54;--danger:#ff917e}*{box-sizing:border-box}html{color-scheme:dark}body,html{background:var(--canvas)}body{margin:0;color:var(--ink);font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Noto Sans CJK SC,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.62}button:focus-visible,input:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.app-shell{min-height:100dvh;overflow-x:clip;background:radial-gradient(circle at 88% 0,rgba(198,255,61,.08),transparent 28rem),var(--canvas);padding-bottom:calc(88px + env(safe-area-inset-bottom))}.topbar{border-bottom:1px solid var(--line);height:72px;justify-content:space-between;margin:0 auto;max-width:820px;padding:0 18px}.brand-lockup,.topbar{align-items:center;display:flex}.brand-lockup{gap:10px}.brand-mark{align-items:center;background:var(--accent);border-radius:11px;color:#10150e;display:inline-flex;font-size:17px;font-weight:900;height:42px;justify-content:center;letter-spacing:-.08em;line-height:1;width:42px}.brand-lockup div{display:grid;gap:2px}.brand-lockup strong{font-size:16px;letter-spacing:.02em}.brand-lockup small{color:var(--muted);font-size:11px}.connection-pill,.saved-tag,.stage-tag{border:1px solid rgba(198,255,61,.32);border-radius:999px;color:var(--accent);font-size:11px;line-height:1;padding:8px 10px;white-space:nowrap}.connection-pill.has-error{border-color:rgba(255,145,126,.5);color:var(--danger)}.main-content{margin:0 auto;max-width:820px;padding:18px 16px 34px}.plan-view,.records-view,.today-view{display:grid;gap:14px}.eyebrow{color:var(--accent);font-size:10px;font-weight:800;letter-spacing:.17em;margin:0 0 7px}h1,h2,p{margin-top:0}h1,h2{letter-spacing:-.045em}h1{font-size:clamp(32px,8vw,53px);line-height:1.02;margin-bottom:12px}.page-heading em,h1 em{color:var(--accent);font-style:normal}h2{font-size:24px;line-height:1.1;margin-bottom:8px}.page-heading{padding:13px 2px 16px}.page-heading>p:last-child{color:var(--ink-soft);font-size:14px;line-height:1.65;margin-bottom:0;max-width:34em}.day-hero{border-bottom:1px solid var(--line);padding:7px 2px 18px}.day-hero-bottom,.day-hero-top,.section-title-row,.sheet-header,.task-footer{align-items:center;display:flex;justify-content:space-between}.day-hero h1{margin:0}.day-hero h1 strong{color:var(--accent);font-size:1.2em;font-weight:800}.level-badge{align-items:flex-end;display:grid;gap:2px;text-align:right}.level-badge strong{color:var(--accent);font-size:20px}.day-hero-bottom,.goal-caption,.level-badge span{color:var(--muted);font-size:11px}.day-hero-bottom{gap:12px;justify-content:flex-start;margin:15px 0 9px}.day-hero-bottom span:last-child{margin-left:auto;text-align:right}.day-hero-bottom strong{color:var(--ink);font-size:13px}.progress-track{background:rgba(244,241,232,.1);border-radius:999px;height:8px;overflow:hidden;width:100%}.progress-fill{background:var(--accent);border-radius:inherit;display:block;height:100%;min-width:3px;transition:width .42s ease}.goal-caption{margin:8px 0 0}.chart-panel,.checkin-panel,.completion-card,.recent-panel,.task-card,.week-panel,.welcome-card{background:var(--canvas-raised);border:1px solid var(--line);border-radius:20px;padding:19px}.task-card{border-color:rgba(198,255,61,.28);box-shadow:0 18px 46px rgba(0,0,0,.16)}.task-card h2{font-size:clamp(27px,7vw,38px);margin-bottom:8px}.task-kicker{color:var(--accent);font-size:11px;font-weight:800;letter-spacing:.12em;margin-bottom:16px}.task-subtitle{color:var(--ink-soft);font-size:14px;line-height:1.6;margin-bottom:18px}.close-button,.meal-button,.nav-button,.plan-exercise,.primary-button,.secondary-button,.text-button{border:0;transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}.primary-button,.secondary-button{align-items:center;border-radius:999px;display:inline-flex;font-size:14px;font-weight:800;justify-content:center;min-height:48px;padding:0 19px;white-space:nowrap}.primary-button{background:var(--accent);color:#11170d}.meal-button:hover,.plan-exercise:hover,.primary-button:hover,.secondary-button:hover{transform:translateY(-1px)}.meal-button:active,.plan-exercise:active,.primary-button:active,.secondary-button:active{transform:scale(.98)}.wide-button{width:100%}.secondary-button{background:transparent;border:1px solid var(--line-strong);color:var(--ink)}.text-button{background:transparent;color:var(--accent);font-size:12px;font-weight:800;min-height:44px;padding:8px}.helper-copy{margin:12px 0 0}.helper-copy,.safety-note{color:var(--muted);font-size:11px;line-height:1.6}.safety-note{border-top:1px solid var(--line);margin:17px 0 0;padding-top:13px}.safety-note:first-letter{color:var(--warn)}.task-card-recovery{background:linear-gradient(135deg,#29341b,var(--canvas-raised));border-color:rgba(198,255,61,.68)}.recovery-note{background:rgba(198,255,61,.1);border-left:3px solid var(--accent);color:var(--ink);font-size:13px;line-height:1.55;margin:0 0 18px;padding:10px 12px}.rest-card{background:linear-gradient(135deg,#1f2926,var(--canvas-raised))}.run-segments{list-style:none;margin:0 0 16px;padding:0}.run-segments li{align-items:center;border-top:1px solid var(--line);display:flex;gap:12px;min-height:55px}.run-segments li:last-child{border-bottom:1px solid var(--line)}.segment-index,.sequence-number{align-items:center;color:var(--accent);display:inline-flex;flex:0 0 auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;font-weight:800;justify-content:center;width:29px}.talk-test{align-items:center;color:var(--ink-soft);display:flex;font-size:12px;gap:8px;margin-bottom:18px}.dot{background:var(--accent);border-radius:50%;box-shadow:0 0 0 4px rgba(198,255,61,.12);height:7px;width:7px}.warmup-row{align-items:center;background:rgba(198,255,61,.08);border:1px solid rgba(198,255,61,.18);border-radius:13px;display:flex;gap:9px;margin-bottom:10px;min-height:57px;padding:9px 11px}.exercise-copy,.plan-exercise>span:nth-child(2),.warmup-row div{display:grid;gap:3px}.exercise-copy strong,.plan-exercise strong,.warmup-row strong{font-size:14px}.exercise-copy small,.plan-exercise small,.warmup-row span:last-child{color:var(--muted);font-size:11px}.exercise-list{border-top:1px solid var(--line)}.exercise-row{align-items:center;border-bottom:1px solid var(--line);display:flex;gap:6px;min-height:66px}.exercise-row.is-checked .exercise-copy strong{color:var(--accent)}.exercise-check{align-items:center;cursor:pointer;display:flex;flex:1 1;gap:8px;min-height:64px}.exercise-check input{height:1px;opacity:0;position:absolute;width:1px}.fake-check{align-items:center;border:1px solid var(--line-strong);border-radius:7px;color:#11170d;display:inline-flex;flex:0 0 auto;font-size:13px;font-weight:900;height:24px;justify-content:center;width:24px}.exercise-row.is-checked .fake-check{background:var(--accent);border-color:var(--accent)}.task-footer{align-items:center;gap:12px;margin-top:15px}.task-footer>span{color:var(--ink-soft);font-size:12px;white-space:nowrap}.task-footer .primary-button{min-height:44px;padding:0 14px}.checkin-panel{padding:17px 18px}.section-title-row{align-items:flex-start;gap:12px}.section-title-row h2{margin-bottom:0}.saved-tag{border-color:var(--line);color:var(--ink-soft);margin-top:3px}.weight-form{margin-top:16px}.weight-form label{color:var(--ink-soft);display:block;font-size:12px;margin-bottom:7px}.input-action-row{display:flex;gap:8px}.input-action-row input{background:var(--canvas);border:1px solid var(--line-strong);border-radius:12px;color:var(--ink);font-size:19px;min-height:48px;min-width:0;padding:0 13px;width:100%}.input-action-row input:focus{border-color:var(--accent);outline:0}.meal-grid{display:grid;gap:8px;grid-template-columns:repeat(3,1fr);margin-top:16px}.meal-button{background:var(--canvas);border:1px solid var(--line);border-radius:14px;color:var(--ink);display:grid;gap:4px;min-height:70px;padding:12px 8px;text-align:left}.meal-button span{font-size:14px;font-weight:800}.meal-button small{color:var(--muted);font-size:11px}.meal-button.is-checked{background:var(--accent-dark);border-color:rgba(198,255,61,.58);color:var(--accent)}.meal-button.is-checked small{color:var(--ink-soft)}.feedback-strip{align-items:stretch;background:var(--canvas-high);border-radius:18px;display:grid;gap:1px;grid-template-columns:.8fr 1fr 1.3fr;overflow:hidden}.feedback-strip>*{background:var(--canvas-high);min-height:82px;padding:13px 12px}.feedback-strip div{border-left:1px solid var(--line);display:grid;gap:5px}.feedback-strip strong{font-size:13px}.feedback-strip div span{color:var(--muted);font-size:10px;line-height:1.45}.xp-pulse{align-items:center;color:var(--accent);display:flex;font-size:17px;font-weight:900}.notice{border-radius:12px;font-size:12px;line-height:1.5;margin:0;padding:10px 12px}.notice-success{background:rgba(198,255,61,.1);color:var(--accent)}.notice-error{background:rgba(255,145,126,.12);color:var(--danger)}.completion-card,.welcome-card{background:linear-gradient(145deg,#28331d,var(--canvas-raised) 60%);border-color:rgba(198,255,61,.34);box-shadow:0 18px 50px rgba(0,0,0,.18);margin-top:18px;padding:23px 20px}.completion-card h1,.welcome-card h1{font-size:clamp(34px,10vw,54px);max-width:8em}.completion-card>p:not(.eyebrow),.welcome-card>p:not(.eyebrow):not(.helper-copy){color:var(--ink-soft);font-size:15px;line-height:1.7;max-width:27em}.welcome-metrics{border-bottom:1px solid var(--line);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr);margin:24px 0 20px;padding:15px 0}.welcome-metrics span{display:grid;gap:3px}.welcome-metrics span+span{border-left:1px solid var(--line);padding-left:14px}.welcome-metrics strong{color:var(--accent);font-size:25px}.welcome-metrics small{color:var(--muted);font-size:10px}.finish-score{align-items:baseline;display:flex;gap:8px;margin:25px 0 6px}.finish-score strong{color:var(--accent);font-size:46px;letter-spacing:-.07em}.finish-score span{color:var(--ink-soft);font-size:13px}.week-panel{padding:18px 13px 14px}.week-panel .section-title-row{padding:0 6px}.week-grid{display:grid;gap:5px;grid-template-columns:repeat(7,1fr);margin-top:15px}.week-day{background:var(--canvas);border:1px solid transparent;border-radius:12px;min-height:102px;padding:9px 5px;position:relative;text-align:center}.week-day.is-today{border-color:var(--accent)}.week-day>span{color:var(--muted);display:block;font-size:10px}.week-day strong{display:block;font-size:17px;margin:6px 0}.week-day small{color:var(--ink-soft);display:block;font-size:10px;line-height:1.3;min-height:26px}.week-day i{bottom:5px;color:var(--accent);font-size:11px;font-style:normal;left:0;position:absolute;right:0}.plain-section{padding:17px 2px 7px}.stage-list{border-top:1px solid var(--line);margin-top:14px}.stage-row{border-bottom:1px solid var(--line);display:grid;gap:5px;padding:13px 0}.stage-row strong{color:var(--ink-soft);font-size:12px}.stage-row span{color:var(--muted);font-size:12px;line-height:1.55}.stage-row.is-current{border-left:3px solid var(--accent);padding-left:10px}.stage-row.is-current span,.stage-row.is-current strong{color:var(--ink)}.plan-exercise-list,.strength-plan{border-top:1px solid var(--line)}.plan-exercise-list{margin-top:14px}.plan-exercise{align-items:center;background:transparent;border-bottom:1px solid var(--line);color:var(--ink);display:flex;gap:10px;min-height:67px;padding:8px 0;text-align:left;width:100%}.plan-exercise>span:nth-child(2){flex:1 1}.chevron{color:var(--accent);font-size:17px;padding:10px 0 10px 10px}.food-section{border-top:1px solid var(--line)}.avoid-card,.breakfast-card{border-radius:15px;display:grid;gap:7px;margin-top:15px;padding:15px}.breakfast-card{background:var(--accent);color:#11170d}.food-label{font-size:10px;font-weight:900;letter-spacing:.12em;opacity:.7}.breakfast-card strong{font-size:16px;line-height:1.45}.breakfast-card small{font-size:11px;line-height:1.5;opacity:.72}.formula-grid{display:grid;gap:8px;grid-template-columns:repeat(3,1fr);margin-top:9px}.formula-grid div{background:var(--canvas-raised);border:1px solid var(--line);border-radius:14px;display:grid;gap:6px;padding:12px 10px}.formula-grid strong{color:var(--accent);font-size:19px}.avoid-card span,.formula-grid span,.takeout-card span{color:var(--ink-soft);font-size:11px;line-height:1.5}.takeout-list{display:grid;gap:8px;margin-top:9px}.takeout-card{background:var(--canvas-raised);border:1px solid var(--line);border-radius:14px;display:grid;gap:5px;padding:12px}.takeout-card strong{font-size:13px}.avoid-card{background:rgba(240,189,84,.08);border:1px solid rgba(240,189,84,.28)}.avoid-card strong{color:var(--warn);font-size:13px}.record-highlight{display:grid;gap:9px;grid-template-columns:1.2fr .8fr}.record-highlight>div{background:var(--accent);border-radius:18px;color:#11170d;display:grid;gap:5px;min-height:120px;padding:16px}.record-highlight>div+div{background:var(--canvas-high);border:1px solid var(--line);color:var(--ink)}.record-highlight span{font-size:11px;font-weight:800;opacity:.72}.record-highlight strong{font-size:29px;letter-spacing:-.06em}.record-highlight small{align-self:end;font-size:10px;opacity:.65}.safety-warning{background:rgba(240,189,84,.1);border:1px solid rgba(240,189,84,.36);border-radius:14px;display:grid;gap:5px;padding:13px}.safety-warning strong{color:var(--warn);font-size:13px}.safety-warning span{color:var(--ink-soft);font-size:12px;line-height:1.55}.chart-panel,.recent-panel{padding:18px}.chart-wrap{margin-top:15px}.chart-legend{color:var(--muted);display:flex;flex-wrap:wrap;font-size:10px;gap:12px;margin-bottom:5px}.chart-legend span{align-items:center;display:inline-flex;gap:5px}.legend-dot{border-radius:50%;display:inline-block;height:7px;width:7px}.legend-dot.raw{background:var(--ink-soft)}.legend-dot.average{background:var(--accent)}.legend-line{border-top:1px dashed var(--muted);display:inline-block;width:12px}.weight-chart{display:block;height:auto;overflow:visible;width:100%}.chart-grid-line{stroke:rgba(244,241,232,.1);stroke-dasharray:3 4}.chart-target-line{fill:none;stroke:var(--muted);stroke-dasharray:4 5;stroke-width:1}.chart-raw-line{fill:none;opacity:.42;stroke:var(--ink-soft);stroke-width:1.5}.chart-average-line{fill:none;stroke:var(--accent);stroke-linecap:round;stroke-linejoin:round;stroke-width:3}.chart-point{fill:var(--ink);stroke:var(--canvas-raised);stroke-width:2}.chart-axis{color:var(--muted);display:flex;font-size:10px;justify-content:space-between}.chart-empty{align-items:center;border:1px dashed var(--line-strong);border-radius:13px;display:grid;gap:6px;justify-items:center;min-height:150px;padding:20px;text-align:center}.chart-empty strong{font-size:14px}.chart-empty span{color:var(--muted);font-size:12px}.stats-grid{display:grid;gap:1px;grid-template-columns:repeat(4,1fr);overflow:hidden}.stats-grid div{background:var(--canvas-raised);border:1px solid var(--line);display:grid;gap:4px;min-height:87px;padding:13px 9px}.stats-grid div:first-child{border-radius:16px 0 0 0}.stats-grid div:nth-child(4){border-radius:0 16px 0 0}.stats-grid div:nth-child(5){border-radius:0 0 0 16px}.stats-grid div:last-child{border-radius:0 0 16px 0}.stats-grid strong{color:var(--accent);font-size:23px;letter-spacing:-.05em}.stats-grid span{color:var(--muted);font-size:10px;line-height:1.3}.recent-list{border-top:1px solid var(--line);margin-top:13px}.recent-row{align-items:center;border-bottom:1px solid var(--line);display:grid;gap:8px;grid-template-columns:minmax(0,1.5fr) .75fr .7fr auto;min-height:62px}.recent-row>div{display:grid;gap:3px;min-width:0}.recent-row strong{font-size:12px}.recent-row b,.recent-row small,.recent-row span{color:var(--muted);font-size:10px;font-weight:500;line-height:1.4}.recent-row b,.recent-row span{text-align:right}.recent-row b{white-space:nowrap}.recent-row b.status-good{color:var(--accent)}.disclaimer{color:var(--muted);font-size:10px;line-height:1.6;margin:2px 2px 0}.bottom-nav{align-items:stretch;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:rgba(20,24,21,.92);border-top:1px solid var(--line);bottom:0;display:grid;grid-template-columns:repeat(3,1fr);left:0;margin:0 auto;max-width:820px;min-height:68px;padding:5px 12px calc(5px + env(safe-area-inset-bottom));position:fixed;right:0;z-index:20}.nav-button{align-items:center;background:transparent;color:var(--muted);display:flex;flex-direction:column;font-size:12px;gap:5px;justify-content:center;min-height:56px}.nav-button.is-active{color:var(--accent)}.nav-dot{border:1px solid;border-radius:50%;height:7px;width:7px}.nav-button.is-active .nav-dot{background:currentColor;box-shadow:0 0 0 4px rgba(198,255,61,.11)}.sheet-backdrop{align-items:flex-end;background:rgba(4,6,5,.7);display:flex;inset:0;justify-content:center;padding-top:30px;position:fixed;z-index:40}.detail-sheet{background:var(--canvas-raised);border:1px solid var(--line-strong);border-bottom:0;border-radius:22px 22px 0 0;max-height:min(88dvh,720px);max-width:820px;overflow:auto;padding:10px 19px calc(26px + env(safe-area-inset-bottom));width:100%}.sheet-handle{background:var(--line-strong);border-radius:999px;height:4px;margin:0 auto 18px;width:40px}.sheet-header{align-items:flex-start}.sheet-header h2{margin-bottom:4px}.sheet-header span{color:var(--muted);font-size:12px}.close-button{align-items:center;background:var(--canvas-high);border-radius:50%;color:var(--ink);display:inline-flex;font-size:24px;height:44px;justify-content:center;line-height:1;width:44px}.prescription-box{align-items:center;background:var(--accent);border-radius:13px;color:#11170d;display:flex;justify-content:space-between;margin:20px 0 15px;min-height:54px;padding:10px 13px}.prescription-box strong{font-size:15px}.prescription-box span{font-size:11px;font-weight:800}.detail-list{margin:0}.detail-list>div{border-bottom:1px solid var(--line);display:grid;gap:4px;padding:13px 0}.detail-list dt{color:var(--accent);font-size:11px;font-weight:800}.detail-list dd{color:var(--ink-soft);font-size:13px;line-height:1.65;margin:0}.detail-list dd.stop-text{color:var(--warn)}.error-page{margin:0 auto;max-width:430px;padding:80px 24px}.error-page p{color:var(--ink-soft);line-height:1.6}.skeleton-page{margin:0 auto;max-width:760px;padding:24px 18px}.skeleton-block,.skeleton-line{animation:pulse 1.4s ease-in-out infinite;background:var(--canvas-raised);border-radius:14px}.skeleton-brand{height:42px;margin-bottom:34px;width:180px}.skeleton-title{height:42px;margin-bottom:16px;width:62%}.skeleton-block{height:280px;margin-bottom:14px}.skeleton-small{height:120px}@keyframes pulse{0%,to{opacity:.55}50%{opacity:1}}@media (min-width:640px){.topbar{padding-left:24px;padding-right:24px}.main-content{padding:28px 24px 45px}.plan-view,.records-view,.today-view{gap:18px}.chart-panel,.checkin-panel,.completion-card,.recent-panel,.task-card,.week-panel,.welcome-card{padding:24px}.plain-section{padding-left:5px;padding-right:5px}}@media (min-width:820px){.app-shell{padding-bottom:34px}.bottom-nav{border:1px solid var(--line);border-radius:18px;bottom:18px;max-width:390px;min-height:60px;padding-bottom:5px}.nav-button{min-height:48px}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}