:root {
  color-scheme: light;
  --background:#f8f8f5; --surface:#fff; --surface-secondary:#eef1ec;
  --text-primary:#1b241f; --text-secondary:#66716a; --text-tertiary:#879189;
  --accent:#355747; --accent-soft:#e8eee9; --border:#dfe5df;
  --success:#355747; --warning:#a17b48; --danger:#a9534c;
  --radius-card:18px; --radius-button:15px; --radius-input:12px;
  --page-pad:20px; --tab-height:68px;
}
*{box-sizing:border-box}html{background:var(--background);-webkit-text-size-adjust:100%}
body{margin:0;color:var(--text-primary);font:400 15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;-webkit-tap-highlight-color:transparent}
button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.42;cursor:default}
button,a,input,select,textarea{touch-action:manipulation}
/* Allow ordinary scrolling, but not pinch/double-tap page zoom. */
html,body{touch-action:pan-x pan-y}
/* Prevent iOS input-focus zoom as well. */
body input,body textarea,body select{font-size:16px!important}
#connection-status{position:sticky;top:0;z-index:50;margin:0;padding:calc(8px + env(safe-area-inset-top)) 16px 8px;background:#fff3d6;color:#73541d;font-size:13px;text-align:center;overflow-wrap:anywhere}
.profile-identity>span:nth-child(2){min-width:0;overflow-wrap:anywhere}
.home-intro p{overflow-wrap:anywhere}
button:active{transform:scale(.98)}button[aria-busy=true]{cursor:progress}
[hidden]{display:none!important}a{color:inherit}svg{display:block}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:600}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.app-shell{max-width:480px;margin:auto;min-height:100dvh;background:var(--background)}
#app{min-height:100dvh;padding:calc(28px + env(safe-area-inset-top)) var(--page-pad) calc(var(--tab-height) + 34px + env(safe-area-inset-bottom));animation:page-in .24s ease both}
#app.focus-mode{padding-bottom:calc(180px + env(safe-area-inset-bottom))}
#app.done-mode{padding-bottom:calc(110px + env(safe-area-inset-bottom))}
@keyframes page-in{from{opacity:.45}to{opacity:1}}
.loading{padding-top:24px}.skeleton{display:block;background:#e9ebe6;border-radius:8px;animation:pulse 1.35s ease-in-out infinite alternate}
.skeleton-title{width:62%;height:30px;margin-bottom:27px}.skeleton-cover{width:100%;height:340px;border-radius:20px;margin-bottom:24px}.skeleton-line{width:72%;height:17px}@keyframes pulse{to{opacity:.55}}
.eyebrow,.overline{color:var(--text-secondary);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
.topline{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:24px}
.topline h1{font-size:30px;line-height:1.2;letter-spacing:-.05em;margin:6px 0 0}
.topline p{color:var(--text-secondary);font-size:14px;margin:5px 0 0}
.avatar,.profile-avatar{border:0;background:#e5e8e1;color:var(--accent);display:grid;place-items:center;font-weight:600;flex:none}
.avatar{width:42px;height:42px;border-radius:50%;font-size:17px}
.page-title{font-size:31px;line-height:1.16;letter-spacing:-.052em;margin:5px 0 9px}
.page-subtitle{color:var(--text-secondary);font-size:14px;line-height:1.55;margin:0 0 25px}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:29px 0 13px}
.section-heading h2{font-size:19px;line-height:1.2;letter-spacing:-.025em;margin:0}
.section-heading .hint{font-size:12px}
.primary,.secondary,.quiet-button{min-height:52px;border-radius:var(--radius-button);padding:12px 18px;font-weight:600;font-size:15px;transition:transform .18s ease,background .18s ease,opacity .18s ease}
.primary{border:1px solid var(--accent);background:var(--accent);color:#fff}.primary:hover{background:#3e604f}
.primary.light{background:#fff;color:var(--accent);border-color:#fff}
.secondary{background:var(--surface);border:1px solid var(--border);color:var(--text-primary)}
.quiet-button{background:transparent;border:0;color:var(--accent)}
.primary:active,.secondary:active,.quiet-button:active,.text-btn:active,.routine-card:active,.bottom-nav button:active{transform:scale(.98)}
.wide{width:100%}.text-btn,.muted-btn{background:none;border:0;min-height:42px;padding:8px 0;font-size:13px;font-weight:600}
.text-btn{color:var(--accent)}.muted-btn{color:var(--text-secondary)}
.bottom-nav{position:fixed;z-index:20;left:50%;bottom:0;transform:translateX(-50%);width:100%;max-width:480px;height:calc(var(--tab-height) + env(safe-area-inset-bottom));padding:6px 12px calc(6px + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--border);background:rgba(250,250,248,.96);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.bottom-nav button{border:0;background:none;color:#929a94;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:11px;font-weight:500;transition:color .18s,transform .18s}
.bottom-nav button.active{color:var(--accent);font-weight:600}.bottom-nav svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.hero-cover,.routine-cover,.focus-visual{position:relative;overflow:hidden;background:#d9dfd5}
.hero-cover{height:365px;border-radius:20px;margin-bottom:20px}
.hero-cover img,.routine-cover img,.focus-visual img{width:100%;height:100%;object-fit:cover;display:block}
.hero-cover img{object-position:center 66%}
.hero-cover::after{content:"";position:absolute;inset:40% 0 0;background:linear-gradient(0deg,rgba(20,28,23,.62),transparent)}
.hero-cover .cover-label,.hero-cover .cover-content{position:absolute;z-index:1;left:21px;color:#fff}
.hero-cover .cover-label{top:20px;font-size:11px;font-weight:600;letter-spacing:.14em}
.hero-cover .cover-content{bottom:22px}
.hero-cover h2{font-size:30px;letter-spacing:-.045em;line-height:1.2;margin:0 0 4px}
.hero-cover p{font-size:12px;letter-spacing:.08em;margin:0;color:#f3f4f0}
.hero-cover.rest{background:#d9ddd6}.hero-cover.rest::after{background:linear-gradient(0deg,#39463dbb,transparent)}
.hero-cover.rest .rest-art{height:100%;background:radial-gradient(circle at 67% 26%,#f6f3e8 0 13%,transparent 13.5%),linear-gradient(150deg,#b9c7b4,#dde2d7 55%,#e9e6dc)}
.hero-action{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:28px}
.hero-action p{color:var(--text-secondary);font-size:14px;margin:0;max-width:150px}.hero-action .primary{min-width:155px}
.hydration{border-top:1px solid var(--border);padding-top:3px}
.hydration-amount{display:flex;align-items:baseline;gap:5px;margin:4px 0 13px}
.hydration-amount strong{font-weight:600;font-size:34px;line-height:1;letter-spacing:-.055em;font-variant-numeric:tabular-nums}
.hydration-amount span{font-size:13px;color:var(--text-secondary)}
.progress{height:5px;background:#e3e7e1;border-radius:10px;overflow:hidden}
.progress span{display:block;height:100%;border-radius:inherit;background:var(--accent);transition:width .28s ease}
.quick-actions{display:flex;gap:9px;margin-top:16px}
.quick-actions button{min-height:39px;min-width:80px;border:1px solid var(--border);background:var(--surface);color:var(--accent);border-radius:11px;font-size:13px;font-weight:600;transition:transform .18s,background .18s}
.quick-actions button:active{transform:scale(.96);background:var(--accent-soft)}
.today-summary{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin:29px 0;padding:18px 0}
.today-summary>div+div{border-left:1px solid var(--border);padding-left:20px}
.today-summary span{display:block;color:var(--text-secondary);font-size:12px}.today-summary strong{display:block;font-size:16px;font-weight:600;margin-top:6px}
.week-activity{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;text-align:center}
.week-activity span{display:grid;justify-items:center;gap:8px;color:var(--text-tertiary);font-size:11px}
.week-activity i{width:7px;height:7px;border-radius:50%;background:#d8ddd6}
.week-activity .done i{background:var(--accent)}.week-activity .today i{box-shadow:0 0 0 4px var(--accent-soft)}
.week-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;border-bottom:1px solid var(--border);padding:11px 0 20px;margin-bottom:4px}
.day{border:0;background:transparent;color:var(--text-tertiary);padding:6px 1px;min-height:58px;font-size:11px;border-radius:12px}
.day strong{display:block;font-size:12px;font-weight:600;color:var(--text-primary);margin-top:5px;overflow:hidden;white-space:nowrap}
.day.today{background:var(--accent-soft);color:var(--accent)}
.routine-card{display:flex;align-items:center;gap:15px;padding:12px 0;border-bottom:1px solid var(--border);background:none;border-left:0;border-right:0;border-top:0;width:100%;text-align:left;transition:transform .18s}
.routine-cover{width:87px;height:95px;border-radius:11px;flex:none}.routine-cover img{object-position:center}
.routine-card .info{flex:1;min-width:0}.routine-card .info h3{font-size:17px;line-height:1.25;margin:0 0 6px}.routine-card small{color:var(--text-secondary);font-size:12px}
.routine-card .chevron{font-size:22px;color:var(--text-tertiary);font-weight:300}
.cover-placeholder{width:100%;height:100%;background:linear-gradient(145deg,#c3cdc0,#e6e8de);position:relative}
.cover-placeholder:before{content:"";position:absolute;width:54%;height:85%;right:5%;bottom:-12%;background:#a4b5a6;border-radius:54% 48% 0 0;transform:rotate(-25deg)}
.cover-placeholder:after{content:"";position:absolute;width:46%;height:56%;left:3%;bottom:-9%;background:#e8ded1;border-radius:50% 55% 0 0;transform:rotate(20deg)}
.routine-detail-cover{height:300px;border-radius:18px;overflow:hidden;margin:22px 0}
.routine-detail-cover img{width:100%;height:100%;object-fit:cover}.routine-detail-cover .cover-placeholder{height:100%}
.routine-meta{font-size:12px;letter-spacing:.08em;color:var(--text-secondary);margin:6px 0 20px}
.exercise-list{border-top:1px solid var(--border)}
.exercise-row{display:flex;gap:14px;align-items:flex-start;padding:17px 0;border-bottom:1px solid var(--border)}
.exercise-num{font-size:12px;color:var(--text-tertiary);font-variant-numeric:tabular-nums;padding-top:2px;min-width:20px}
.exercise-row>div:nth-child(2){min-width:0;flex:1}.exercise-row strong{display:block;font-weight:600;font-size:15px}
.exercise-row small{display:block;color:var(--text-secondary);font-size:12px;line-height:1.5;margin-top:4px}
.exercise-row .right{color:var(--text-secondary);font-size:12px;white-space:nowrap;margin-left:auto}
.bottom-cta{position:sticky;bottom:calc(var(--tab-height) + 10px + env(safe-area-inset-bottom));z-index:5;background:linear-gradient(transparent,var(--background) 22%);padding:18px 0 4px}
.screen-top{display:flex;align-items:center;gap:10px;margin-bottom:23px;min-height:40px}
.screen-top .eyebrow{flex:1;text-align:center;padding-right:30px}
.back{width:40px;height:40px;border:0;background:transparent;color:var(--text-primary);font-size:29px;line-height:1;border-radius:12px}
.screen-top .muted-btn{font-size:12px}
.focus-progress{height:3px;background:#e2e6df;overflow:hidden;margin:0 0 25px}
.focus-progress span{display:block;background:var(--accent);height:100%;transition:width .3s}
.focus-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;color:var(--text-secondary);font-size:12px}
.focus-top strong{color:var(--text-primary);font-weight:600;font-variant-numeric:tabular-nums}
.focus-visual{height:min(35dvh,300px);min-height:220px;border-radius:18px;margin:0 0 25px}
.focus-visual img{object-position:center 67%}.focus-visual .cover-placeholder{height:100%}
.focus-name{font-size:31px;letter-spacing:-.055em;line-height:1.16;margin:0 0 4px}
.focus-cue{font-size:13px;color:var(--text-secondary);margin:0 0 17px;line-height:1.5}
.focus-target{display:flex;align-items:baseline;gap:7px;margin:0 0 20px}
.focus-target strong{font-size:42px;font-weight:600;letter-spacing:-.065em;line-height:1;font-variant-numeric:tabular-nums}
.focus-target span{font-size:15px;color:var(--text-secondary)}
.set-dots{display:flex;gap:8px;margin:0 0 22px}.set-dots i{height:6px;flex:1;border-radius:9px;background:#e2e6df}.set-dots i.done{background:var(--accent)}
.focus-controls{position:fixed;z-index:19;left:50%;bottom:0;transform:translateX(-50%);width:100%;max-width:480px;background:var(--background);border-top:1px solid var(--border);padding:13px var(--page-pad) calc(17px + env(safe-area-inset-bottom))}
.focus-fields{display:flex;gap:12px}.focus-fields .field{flex:1;margin-bottom:12px}.focus-fields input{height:47px}
.focus-actions{display:flex;gap:12px}.focus-actions .primary{flex:1}.focus-actions .secondary{min-width:88px;padding-inline:10px}
.focus-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:8px}.focus-nav button{font-size:12px}
.rest-screen{min-height:calc(100dvh - 230px);display:flex;flex-direction:column;justify-content:center;text-align:center}
.rest-ring{height:210px;width:210px;border-radius:50%;margin:8px auto 28px;display:grid;place-items:center;background:conic-gradient(var(--accent) calc(var(--rest-pct)*1%),#e2e6df 0);transition:background .3s}
.rest-ring-inner{width:195px;height:195px;border-radius:50%;background:var(--background);display:flex;flex-direction:column;justify-content:center}
.rest-ring strong{font-size:54px;font-weight:600;line-height:1;letter-spacing:-.06em;font-variant-numeric:tabular-nums}
.rest-ring span{font-size:11px;color:var(--text-secondary);letter-spacing:.16em;margin-bottom:13px}
.rest-next{font-size:14px;color:var(--text-secondary);margin:0 0 25px}.rest-adjust{display:flex;justify-content:center;gap:14px}.rest-adjust button{min-width:95px}
.done-page{padding-top:8vh;min-height:calc(100dvh - 170px);display:flex;flex-direction:column}
.done-page .done-mark{width:46px;height:46px;border:1px solid var(--accent);border-radius:50%;display:grid;place-items:center;color:var(--accent);font-size:24px;margin-bottom:30px;animation:done-pop .4s ease both}
@keyframes done-pop{from{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}
.done-page h1{font-size:47px;letter-spacing:-.065em;line-height:1;margin-bottom:17px}
.done-page .done-routine{font-size:15px;color:var(--text-secondary);margin-bottom:42px}
.done-duration{font-size:55px;line-height:1;letter-spacing:-.06em;font-weight:600;font-variant-numeric:tabular-nums;margin-bottom:32px}
.done-duration span{font-size:16px;font-weight:400;letter-spacing:0;color:var(--text-secondary)}
.done-stats{display:flex;gap:50px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:19px 0;margin-bottom:24px}
.done-stats strong{display:block;font-size:25px;font-weight:600}.done-stats small{font-size:12px;color:var(--text-secondary)}
.done-note{font-size:13px;color:var(--text-secondary)}.done-page .primary{margin-top:auto}
.tabs{display:flex;background:var(--surface-secondary);border-radius:12px;padding:3px;margin:20px 0 23px}
.tabs button{flex:1;border:0;background:transparent;color:var(--text-secondary);font-size:13px;font-weight:500;padding:10px;border-radius:9px}
.tabs button.selected{background:var(--surface);color:var(--text-primary);font-weight:600;box-shadow:0 1px 4px #1f332415}
.history-row{display:flex;gap:14px;align-items:center;padding:17px 0;border-bottom:1px solid var(--border)}
.history-date{min-width:48px;color:var(--text-secondary);font-size:12px;line-height:1.3}
.history-row .info{flex:1;min-width:0}.history-row strong{display:block;font-weight:600;font-size:15px}
.history-row small{display:block;color:var(--text-secondary);font-size:12px;margin-top:4px}
.history-row button{border:0;background:none;color:var(--accent);font-weight:600;font-size:13px;min-height:36px}
.empty{padding:50px 18px;text-align:center;color:var(--text-secondary);font-size:14px;line-height:1.7}
.weight-number{font-size:57px;line-height:1;letter-spacing:-.07em;font-weight:600;margin:26px 0 5px;font-variant-numeric:tabular-nums}
.weight-number small{font-size:17px;font-weight:400;letter-spacing:0;color:var(--text-secondary)}
.weight-change{font-size:13px;color:var(--text-secondary);margin-bottom:17px}
.weight-chart{display:block;width:100%;height:150px;margin:9px 0}
.weight-chart line{stroke:var(--border)}.weight-chart polyline{fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.weight-chart circle{fill:var(--background);stroke:var(--accent);stroke-width:2}
.weight-chart + .hint{margin-bottom:20px}
.measure-row{display:flex;justify-content:space-between;padding:15px 0;border-bottom:1px solid var(--border);font-size:14px}
.measure-row span{color:var(--text-secondary)}.measure-row strong{font-weight:600}.body-history{margin-top:20px}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:19px;margin-bottom:14px}
.card h3{font-size:16px;margin:0 0 12px}.card p{color:var(--text-secondary);font-size:13px;margin:0 0 13px}
.field{display:flex;flex-direction:column;gap:7px;margin-bottom:17px}.field label{color:var(--text-secondary);font-size:12px;font-weight:500}
.field input,.field select,.field textarea{width:100%;min-height:48px;border:1px solid var(--border);border-radius:var(--radius-input);background:var(--surface);color:var(--text-primary);padding:11px 13px;outline-color:var(--accent)}
.field textarea{min-height:85px;resize:vertical}
.field.inline{flex-direction:row;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);min-height:55px;margin:0;gap:12px}
.field.inline:last-child{border-bottom:0}.field.inline label,.field.inline span{font-size:14px;color:var(--text-primary)}
.field.inline input[type=checkbox]{appearance:none;width:45px;height:27px;min-height:0;padding:0;border:0;border-radius:20px;background:#c6cdc7;position:relative;transition:background .2s}
.field.inline input[type=checkbox]:checked{background:var(--accent)}
.field.inline input[type=checkbox]::after{content:"";position:absolute;top:3px;left:3px;width:21px;height:21px;background:white;border-radius:50%;transition:transform .2s}
.field.inline input[type=checkbox]:checked::after{transform:translateX(18px)}
.field.inline input[type=time],.field.inline select{max-width:142px;min-height:40px;font-size:13px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form-surface{border-top:1px solid var(--border);padding-top:22px;margin-top:22px}
.library-visual{height:270px;margin-top:10px}.settings-group p{font-size:14px;color:var(--text-secondary);line-height:1.65;margin:0}
.divider{border:0;border-top:1px solid var(--border);margin:21px 0}
.hint{font-size:12px;color:var(--text-secondary);line-height:1.5}
.notice{background:var(--accent-soft);color:var(--accent);border-radius:12px;padding:12px 14px;font-size:12px}
.code{display:block;font-size:24px;letter-spacing:.17em;color:var(--accent);margin:8px 0;user-select:all;overflow-wrap:anywhere}
.profile-header{display:flex;align-items:center;gap:14px;margin:21px 0 32px}.profile-avatar{width:59px;height:59px;border-radius:50%;font-size:25px}
.profile-header h1{font-size:25px;letter-spacing:-.04em;margin:0}.profile-header p{font-size:13px;color:var(--text-secondary);margin:2px 0 0}
.settings-group{border-top:1px solid var(--border);padding:19px 0}.settings-group h2{font-size:17px;margin:0 0 13px}
.settings-group .primary,.settings-group .secondary{margin-top:8px}
.settings-link{display:flex;align-items:center;justify-content:space-between;min-height:55px;text-decoration:none;border-bottom:1px solid var(--border);font-size:14px}
.settings-link span:last-child{font-size:20px;color:var(--text-tertiary)}
.auth{min-height:calc(100dvh - 90px);display:flex;flex-direction:column;justify-content:center}
.auth-mark{font-size:25px;font-weight:600;color:var(--accent);border:1px solid var(--accent);border-radius:50%;display:grid;place-items:center;width:49px;height:49px;margin-bottom:27px}
.auth h1{font-size:39px;line-height:1.12;letter-spacing:-.06em;margin:6px 0 13px}.auth p{font-size:14px;color:var(--text-secondary);margin:0 0 30px}
.auth-form{border-top:1px solid var(--border);padding-top:24px}
.auth .subtle-link{border:0;background:none;color:var(--accent);min-height:48px;font-size:13px;font-weight:600}
.install-note{font-size:11px;color:var(--text-tertiary);margin-top:24px;line-height:1.5}.account-warning{color:var(--danger);font-size:12px;margin-top:12px}
.library-filter{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;padding:0 0 13px}
.library-filter button{border:1px solid var(--border);background:var(--surface);border-radius:10px;padding:8px 12px;white-space:nowrap;color:var(--text-secondary);font-size:12px}
.library-filter button.selected{color:var(--accent);border-color:var(--accent)}
.editor-exercise{display:grid;grid-template-columns:minmax(0,1fr) 51px 56px 30px;gap:5px;align-items:center;margin:0 0 8px}
.editor-exercise select,.editor-exercise input{min-width:0;width:100%;height:43px;background:var(--surface);border:1px solid var(--border);border-radius:9px;padding:4px 7px;font-size:12px}
.editor-exercise button{border:0;background:var(--surface-secondary);border-radius:8px;height:40px;color:var(--danger)}
.toast{position:fixed;z-index:40;left:50%;bottom:calc(var(--tab-height) + 18px + env(safe-area-inset-bottom));transform:translate(-50%,10px);background:#26362c;color:#fff;border-radius:11px;padding:10px 16px;max-width:min(90vw,420px);font-size:13px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;text-align:center}
.toast.show{opacity:1;transform:translate(-50%,0)}
.sheet-backdrop{position:fixed;z-index:30;inset:0;background:#18261a66;display:flex;align-items:flex-end;justify-content:center;animation:fade-in .2s}
@keyframes fade-in{from{opacity:0}to{opacity:1}}.sheet{width:100%;max-width:480px;background:var(--background);border-radius:22px 22px 0 0;padding:12px var(--page-pad) calc(25px + env(safe-area-inset-bottom));animation:sheet-in .25s ease}
@keyframes sheet-in{from{transform:translateY(25px);opacity:.6}to{transform:translateY(0);opacity:1}}
.sheet-handle{width:35px;height:4px;background:#cdd2cb;border-radius:5px;margin:0 auto 25px}.sheet h2{font-size:23px;letter-spacing:-.04em;margin:0 0 5px}.sheet p{color:var(--text-secondary);font-size:13px}
.sheet-actions{display:flex;gap:10px;margin-top:18px}.sheet-actions button{flex:1}
@media(max-width:380px){:root{--page-pad:20px}.hero-cover{height:340px}.focus-visual{height:230px}.focus-name{font-size:28px}.hero-action .primary{min-width:145px}.editor-exercise{grid-template-columns:minmax(0,1fr) 47px 52px 28px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* Editorial mobile layout */
#app{padding:calc(24px + env(safe-area-inset-top)) var(--page-pad) calc(var(--tab-height) + 38px + env(safe-area-inset-bottom))}
.bottom-nav{background:var(--background);backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none;padding-inline:8px}
.bottom-nav button{gap:4px;font-size:10px;letter-spacing:.01em}.bottom-nav svg{width:23px;height:23px}
.primary{min-height:56px;font-size:15px;border-radius:15px;background:#274b3a;border-color:#274b3a;box-shadow:none}.primary:hover{background:#274b3a}
.section-kicker{display:flex;justify-content:space-between;align-items:center;color:var(--text-secondary);font-size:11px;font-weight:700;letter-spacing:.11em;line-height:1.4}
.section-kicker span{font-weight:500;letter-spacing:0;color:var(--text-tertiary)}
.home-intro{position:relative;min-height:72px}.home-intro .date-line{color:var(--text-secondary);font-size:12px}.home-intro p{font-size:22px;font-weight:600;letter-spacing:-.04em;margin:4px 0 0}.home-person{position:absolute;right:0;top:1px;width:38px;height:38px;border:1px solid var(--border);border-radius:50%;background:transparent;color:var(--accent);font-size:14px;font-weight:600}
.home-feature{margin-top:9px}.home-feature h1{font-size:38px;line-height:1.15;letter-spacing:-.055em;margin:11px 0 5px}.feature-meta{display:flex;align-items:center;gap:11px;color:var(--text-secondary);font-size:12px;margin:0 0 17px}.feature-meta i,.training-feature-text small i{display:inline-block;width:3px;height:3px;border-radius:50%;background:var(--text-tertiary);vertical-align:middle}
.feature-image{position:relative;height:300px;overflow:hidden;background:#d9dfd5;border-radius:3px}.feature-image img{width:100%;height:100%;object-fit:cover;object-position:center 54%;display:block}.feature-image::after{content:"";position:absolute;inset:48% 0 0;background:linear-gradient(transparent,rgba(12,20,15,.62))}.feature-image-caption{position:absolute;z-index:1;left:20px;bottom:19px;color:#fff;display:flex;flex-direction:column;gap:4px}.feature-image-caption span{font-size:10px;letter-spacing:.14em;font-weight:600}.feature-image-caption strong{font-size:25px;letter-spacing:-.04em;line-height:1.1}
.feature-start{margin-top:14px}.home-today{margin-top:34px}.home-water{display:grid;grid-template-columns:1fr auto;gap:7px;text-decoration:none;margin-top:16px;align-items:baseline}.home-water>span:first-child{font-size:17px;font-weight:600}.water-figure{display:flex;align-items:baseline;gap:4px}.water-figure strong{font-size:25px;line-height:1;font-weight:600;letter-spacing:-.05em;font-variant-numeric:tabular-nums}.water-figure small{font-size:11px;color:var(--text-secondary)}.water-track{grid-column:1/-1;display:block;height:3px;background:var(--border);margin-top:10px}.water-track i{display:block;height:100%;background:var(--accent)}
.home-mini{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin-top:26px;padding:16px 0}.home-mini>div+div{padding-left:20px;border-left:1px solid var(--border)}.home-mini span{display:block;color:var(--text-secondary);font-size:11px}.home-mini strong{display:block;font-size:17px;letter-spacing:-.03em;margin-top:5px}.home-week{margin-top:34px}.week-activity{margin-top:18px}.week-activity span{gap:9px}
.training-head{margin-bottom:26px}.training-head h1,.records-head h1,.profile-title h1{font-size:37px;letter-spacing:-.055em;line-height:1.1;margin:10px 0 0}.training-head p{font-size:13px;color:var(--text-secondary);margin:10px 0 0}.resume-line{width:100%;display:flex;justify-content:space-between;align-items:center;background:var(--accent-soft);border:0;padding:14px 16px;margin:0 0 25px;color:var(--accent);font-size:13px}.resume-line strong{font-weight:600}
.training-feature{display:block;width:100%;padding:0;margin:0 0 32px;border:0;border-bottom:1px solid var(--border);background:none;text-align:left;color:inherit}.training-cover{position:relative;display:block;width:100%;height:238px;overflow:hidden;background:#d9dfd5}.training-cover img{width:100%;height:100%;object-fit:cover;object-position:center 56%;display:block}.cover-count{position:absolute;right:16px;top:15px;color:#fff;background:#1b241f88;padding:5px 8px;font-size:10px;letter-spacing:.08em}.training-feature-text{display:flex;flex-direction:column;align-items:flex-start;padding:16px 0 24px}.training-category{font-size:11px;color:var(--accent);font-weight:700;letter-spacing:.09em}.training-feature-text strong{font-size:25px;letter-spacing:-.045em;line-height:1.25;margin:6px 0}.training-feature-text small{color:var(--text-secondary);font-size:12px;display:flex;align-items:center;gap:8px}.training-week{margin-top:20px}.training-week .section-heading{margin-bottom:5px}.week-strip{margin-top:0}.day.today{background:transparent;color:var(--accent);font-weight:700}.day strong{font-size:9px}.list-link{display:flex;width:100%;justify-content:space-between;align-items:center;padding:18px 0;border:0;border-bottom:1px solid var(--border);background:none;text-align:left;font-weight:600}.list-link span{color:var(--text-tertiary);font-size:24px;font-weight:300}
.routine-detail{margin:-24px calc(-1 * var(--page-pad)) 0}.detail-visual{height:348px;position:relative;background:#d9dfd5}.detail-visual>img,.detail-visual>.cover-placeholder{width:100%;height:100%;object-fit:cover;object-position:center 55%;display:block}.detail-visual::after{content:"";position:absolute;inset:0 0 auto;height:105px;background:linear-gradient(#17201888,transparent);pointer-events:none}.detail-back{position:absolute;z-index:2;left:16px;top:calc(22px + env(safe-area-inset-top));width:40px;height:40px;background:#f8f8f5ee;border:0;border-radius:50%;font-size:27px;line-height:1}.detail-index{position:absolute;z-index:2;right:20px;top:calc(32px + env(safe-area-inset-top));color:#fff;font-size:11px;letter-spacing:.08em}.detail-content{padding:24px var(--page-pad) 0}.detail-content h1{font-size:37px;letter-spacing:-.055em;line-height:1.1;margin:10px 0 18px}.detail-stats{display:flex;gap:0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:13px 0}.detail-stats span{flex:1;text-align:center;font-size:12px;font-weight:600}.detail-stats span+span{border-left:1px solid var(--border)}.detail-content>p{font-size:14px;color:var(--text-secondary);line-height:1.6;margin:20px 0}.detail-list-head{display:flex;justify-content:space-between;align-items:baseline;margin:36px 0 13px}.detail-list-head h2{font-size:20px;letter-spacing:-.03em;margin:0}.detail-list-head span{font-size:12px;color:var(--text-secondary)}.routine-detail .exercise-row{align-items:center;min-height:78px}.routine-detail .exercise-num{font-size:13px;color:var(--accent);font-weight:600}.routine-detail .exercise-row small{margin-top:2px}
#app.workout-mode{padding:0;background:#18231d;color:#f8faf7;min-height:100dvh}.workout-screen{min-height:100dvh;display:flex;flex-direction:column;padding:calc(18px + env(safe-area-inset-top)) 20px calc(14px + env(safe-area-inset-bottom))}.workout-head{height:40px;display:flex;align-items:center;justify-content:space-between}.workout-head button{background:none;border:0;color:#fff;font-size:30px;line-height:1;padding:0;width:36px;height:36px;text-align:left}.workout-head span{font-size:13px;letter-spacing:.11em;color:#d7dfd8}.workout-progress{height:2px;background:#4d6153;margin:10px 0 18px}.workout-progress i{display:block;height:100%;background:#e2e8dc}.workout-visual{height:224px;flex:none;overflow:hidden;background:#536456}.workout-visual img,.workout-visual .exercise-placeholder{width:100%;height:100%;object-fit:cover;object-position:center 67%;display:block}.exercise-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;background:#6b7a6c;color:#f8faf7}.exercise-placeholder span{font-size:10px;letter-spacing:.12em;opacity:.7}.exercise-placeholder strong{font-size:24px;margin-top:7px;font-weight:500}.workout-copy{text-align:center;padding:21px 0 0}.workout-copy .section-kicker{justify-content:center;color:#c2d0c4}.workout-copy h1{font-size:31px;letter-spacing:-.055em;margin:6px 0 4px}.workout-copy p{font-size:12px;line-height:1.45;color:#c1cbc2;margin:0 auto;max-width:310px;min-height:18px}.workout-target{display:flex;align-items:baseline;justify-content:center;gap:7px;margin:13px 0 0}.workout-target strong{font-size:68px;line-height:1;font-weight:600;letter-spacing:-.07em;font-variant-numeric:tabular-nums}.workout-target span{font-size:15px;color:#d4ddd4}.workout-set{font-size:12px;letter-spacing:.05em;color:#d4ddd4;margin:8px 0 11px}.workout-copy .set-dots{justify-content:center;gap:6px;margin:0}.workout-copy .set-dots i{flex:none;width:32px;height:3px;background:#586c5d;border-radius:0}.workout-copy .set-dots i.done{background:#f1f5e8}.workout-controls{margin-top:auto;padding-top:18px}.workout-inputs{display:flex;align-items:center;gap:12px;margin-bottom:12px}.workout-inputs label{font-size:12px;color:#cbd4ca;white-space:nowrap}.workout-inputs input{min-height:42px;min-width:0;width:100%;background:transparent;border:1px solid #718373;border-radius:8px;color:#fff;padding:7px 12px;text-align:right;font-size:17px}.workout-controls .primary{background:#f2f5ed;border-color:#f2f5ed;color:#1d3022}.workout-step{display:flex;justify-content:space-between;margin-top:11px}.workout-step button,.workout-finish{background:none;border:0;color:#d5ded5;min-height:34px;font-size:12px;padding:4px 0}.workout-finish{width:100%;color:#a7b5a7;margin-top:2px}.workout-controls button:disabled{opacity:.35}
.records-head{margin-bottom:28px}.weight-feature{margin-top:0}.weight-number{font-size:72px;line-height:1;letter-spacing:-.07em;margin:22px 0 4px}.weight-number small{font-size:19px}.weight-change{font-size:13px;color:var(--accent);font-weight:600;margin:4px 0 25px}.chart-wrap{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:20px 0 4px}.weight-chart{height:185px;margin:0}.weight-chart line{stroke:#dfe5df}.weight-chart polyline{stroke:#315c45;stroke-width:2.5}.weight-chart circle{fill:var(--background);stroke:#315c45}.body-action{margin:22px 0 32px}.record-switch{display:flex;gap:26px;border-bottom:1px solid var(--border);margin:36px 0 22px}.record-switch button{border:0;border-bottom:2px solid transparent;background:none;padding:0 0 11px;color:var(--text-secondary);font-size:13px}.record-switch button.selected{border-color:var(--accent);color:var(--text-primary);font-weight:600}.measure-row{min-height:55px;align-items:center}.measure-row strong{font-weight:600}.body-history{margin-top:34px}
.profile-title{margin-bottom:31px}.profile-identity{display:flex;align-items:center;width:100%;text-align:left;border:0;border-bottom:1px solid var(--border);background:none;padding:0 0 25px;gap:15px;color:inherit}.profile-avatar{width:56px;height:56px;background:#dfe8df;border-radius:50%;font-size:21px}.profile-identity>span:nth-child(2){flex:1}.profile-identity strong{display:block;font-size:20px;letter-spacing:-.04em}.profile-identity small{display:block;font-size:12px;color:var(--text-secondary);margin-top:2px}.list-arrow{font-size:23px;color:var(--text-tertiary);font-weight:300}.profile-list{margin-top:32px}.profile-list h2{font-size:12px;color:var(--text-secondary);font-weight:600;margin:0 0 8px}.profile-list button,.profile-list a{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:57px;border:0;border-bottom:1px solid var(--border);background:none;text-align:left;text-decoration:none;color:var(--text-primary);font-size:15px;padding:0}.profile-list button span,.profile-list a span{color:var(--text-tertiary);font-size:19px;font-weight:300}.profile-foot{text-align:center;color:var(--text-tertiary);font-size:11px;margin-top:48px}.profile-settings-content{margin-top:30px}.profile-settings-content .settings-group{margin-top:35px}.settings-save{margin-top:24px}
@media(max-width:380px){.feature-image{height:280px}.training-cover{height:224px}.workout-visual{height:210px}}
.home-intro{min-height:60px}.feature-meta{margin-bottom:14px}.feature-image{height:272px}.home-today{margin-top:28px}
.record-add{display:flex;justify-content:space-between;align-items:center;width:100%;min-height:54px;padding:0;border:0;border-bottom:1px solid var(--border);background:none;color:var(--accent);font-size:14px;font-weight:600;text-align:left;margin:8px 0 25px}.record-add span{font-size:23px;font-weight:400;line-height:1}
@media(max-width:380px){.feature-image{height:260px}}
.cover-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;background:#cdd8ce;color:#355342;text-align:center;position:relative}
.cover-placeholder::before,.cover-placeholder::after{display:none}
.cover-placeholder span{font-size:10px;font-weight:700;letter-spacing:.1em}.cover-placeholder strong{font-size:22px;font-weight:600;letter-spacing:-.04em}
.weight-chart{height:158px}
.records-head{margin-bottom:0}.record-switch{margin:22px 0 28px}
