:root {
  color-scheme: light;
  --ink:#172f2b;--muted:#70837d;--line:#e3eae5;--bg:#f6f8f5;--white:#fff;
  --forest:#176e60;--forest-deep:#164b45;--mint:#e2f3e9;--orange:#e98d5a;
  --shadow:0 12px 40px rgba(37,67,57,.045);--r:22px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}
button,input,select{font:inherit}
button{cursor:pointer}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #89cdbc;outline-offset:3px}
a{color:inherit;text-decoration:none}
.hidden{display:none!important}
.site-shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}
.sidebar{background:#fff;display:flex;flex-direction:column;border-right:1px solid var(--line);padding:31px 19px 25px;position:sticky;top:0;height:100vh}
.brand{display:flex;align-items:center;gap:12px;padding:0 11px}
.brand-mark{width:41px;height:41px;display:grid;place-items:center;border-radius:14px;background:var(--forest);color:white;font-size:19px;font-weight:800;transform:rotate(-7deg)}
.brand span:last-child{display:flex;flex-direction:column;gap:1px}.brand strong{font-size:22px;letter-spacing:.1em}.brand small{font-size:9px;color:#92a29b;font-weight:750;letter-spacing:.17em}
.sidebar-kicker{font-size:11px;color:#a5b1ac;font-weight:700;letter-spacing:.16em;padding-left:17px;margin:64px 0 12px}
.side-nav{display:grid;gap:7px}.nav-btn{border:0;background:transparent;text-align:left;display:flex;align-items:center;gap:12px;padding:14px 16px;color:#6d8178;border-radius:13px;font-size:14px;font-weight:650}
.nav-btn span{font-size:21px;width:24px;text-align:center;font-weight:400}.nav-btn:hover{background:#f3f8f4}.nav-btn.active{background:#e8f3ec;color:#175b4e}
.sidebar-bottom{margin-top:auto;display:flex;gap:9px;align-items:center;color:#a0aea7;font-size:12px;padding:0 12px}.small-pulse{background:#80bd94;height:7px;width:7px;border-radius:50%;box-shadow:0 0 0 5px #e8f5ea}
.main-column{min-width:0;max-width:1340px;width:100%;margin:0 auto}
.topbar{height:76px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 clamp(23px,4vw,62px)}
.breadcrumb{font-size:11px;font-weight:800;letter-spacing:.2em;color:#8da099}.topbar-mark{color:var(--forest);font-size:13px;vertical-align:1px;margin-right:5px}
.topbar-actions{display:flex;align-items:center;gap:17px;color:#8b9a93;font-size:12px}
.privacy-pill{display:flex;align-items:center;gap:6px;border:1px solid #dce9e1;border-radius:50px;padding:7px 11px;background:#fff;color:#658078}
.privacy-dot{width:6px;height:6px;background:#70b28e;border-radius:50%}
.page{max-width:1160px;padding:42px clamp(23px,4vw,62px) 90px;margin:auto;min-height:calc(100vh - 145px)}
.loading{padding:40px;color:var(--muted)}
.footer{max-width:1160px;margin:0 auto;color:#a7b4ad;font-size:11px;display:flex;justify-content:space-between;padding:16px clamp(23px,4vw,62px) 40px;gap:10px}
.section-kicker{text-transform:uppercase;letter-spacing:.24em;font-size:11px;font-weight:800;color:var(--forest);margin:0 0 10px}
.page-heading{font-size:clamp(28px,3.7vw,42px);font-weight:800;letter-spacing:-.055em;line-height:1.3;margin:0 0 8px}
.page-subtitle{font-size:14px;color:var(--muted);line-height:1.8;margin:0 0 28px}
.hero{display:grid;grid-template-columns:minmax(0,1fr) 210px;min-height:265px;background:#1d6255;border-radius:27px;overflow:hidden;box-shadow:0 18px 34px rgba(13,73,53,.12);position:relative;margin:0 0 29px}
.hero:before{content:"";position:absolute;width:355px;height:355px;border-radius:50%;background:#277c6b;right:-56px;top:-82px}
.hero:after{content:"";position:absolute;width:215px;height:215px;border:1px solid rgba(255,255,255,.22);border-radius:50%;right:52px;top:30px}
.hero-copy{padding:33px 36px 32px;position:relative;z-index:1;color:#fff}
.hero-kicker{font-size:11px;font-weight:700;letter-spacing:.18em;color:#b4e4d3}
.hero h2{font-size:clamp(26px,3.3vw,39px);margin:15px 0 12px;letter-spacing:-.04em;line-height:1.25}
.hero p{margin:0 0 26px;font-size:13px;max-width:425px;color:#d0ebe0;line-height:1.8}
.hero-art{position:relative;display:flex;align-items:center;justify-content:center;z-index:1;color:#dcf6e9}
.hero-art .large-number{font-size:120px;font-weight:800;opacity:.16;line-height:1;letter-spacing:-.09em}
.hero-art .art-label{position:absolute;top:58%;left:5%;font-size:10px;letter-spacing:.28em;transform:rotate(-90deg)}
.btn{border-radius:12px;border:1px solid transparent;padding:11px 16px;display:inline-flex;gap:8px;align-items:center;justify-content:center;font-size:13px;font-weight:750;transition:.16s ease;text-align:center}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--forest);color:white}.btn-primary:hover{background:#115a4d}
.btn-white{background:#fff;color:#195f51}.btn-white:hover{background:#eaf7ef}
.btn-outline{background:white;border-color:#d9e5df;color:#3f6258}.btn-outline:hover{border-color:#b7d2c3}
.btn-soft{background:#ecf5ef;color:#26705e}
.btn-small{font-size:12px;padding:8px 12px;border-radius:9px}
.btn:disabled{cursor:not-allowed;opacity:.45;transform:none}
.section-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 16px}.section-title{font-size:19px;font-weight:800;letter-spacing:-.025em;margin:0}
.helper{font-size:12px;color:var(--muted);line-height:1.6}
.workout-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.workout-card{background:white;border:1px solid var(--line);border-radius:var(--r);padding:21px;box-shadow:var(--shadow);display:flex;flex-direction:column;min-height:208px;position:relative;overflow:hidden}
.workout-card:after{position:absolute;right:-24px;top:-37px;border:19px solid rgba(21,94,74,.04);height:116px;width:116px;border-radius:50%;content:""}
.workout-card .card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.day-pill{border-radius:9px;font-size:11px;font-weight:750;padding:6px 10px;background:#e7f3eb;color:#386d5a}
.tone-peach .day-pill{background:#fff0e5;color:#b97343}
.tone-sky .day-pill{background:#e9f2fb;color:#5179a0}
.tone-lavender .day-pill{background:#f1effd;color:#8575a7}
.card-symbol{font-size:27px;color:#a9cbbb;font-weight:300}
.workout-card h3{font-size:21px;margin:19px 0 7px;letter-spacing:-.025em}
.card-desc{font-size:12px;color:#91a29a;margin-bottom:16px}
.card-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:auto;gap:10px}
.card-bottom .helper{font-size:11px}
.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin:0 0 31px}
.stat-card{background:white;border:1px solid var(--line);border-radius:17px;padding:20px}
.stat-card .value{font-size:27px;font-weight:800;letter-spacing:-.045em}.stat-card .unit{font-size:11px;color:var(--muted);margin-left:4px}
.stat-card .label{font-size:11px;color:#82968c;margin-top:7px}
.notice{display:flex;gap:12px;align-items:flex-start;background:#eef6ef;border:1px solid #d9e9db;color:#446b56;padding:16px 18px;border-radius:15px;font-size:12px;line-height:1.8;margin:22px 0}
.notice b{font-size:19px;line-height:1}.notice.warn{background:#fff7ec;border-color:#f8e7cc;color:#906b38}
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 25px;flex-wrap:wrap}
.back-btn{border:0;background:transparent;color:#607c70;padding:8px 0;font-size:13px;font-weight:650}
.session-banner{border-radius:22px;background:#e9f3eb;border:1px solid #d7e7d9;padding:23px;margin-bottom:22px}
.session-banner h2{font-size:27px;letter-spacing:-.04em;margin:9px 0}.session-banner p{margin:0;color:#6e8377;font-size:12px;line-height:1.8}
.progress-top{display:flex;align-items:center;justify-content:space-between;margin:19px 0 8px;font-size:12px;color:#587468}
.progress-rail{height:9px;background:#d0e0d4;border-radius:30px;overflow:hidden}.progress-fill{height:100%;background:var(--forest);border-radius:30px;transition:width .3s}
.exercise-list{display:grid;gap:14px}
.exercise-card{border:1px solid var(--line);background:white;border-radius:19px;padding:19px;box-shadow:var(--shadow)}
.exercise-card.completed{border-color:#b9dfce;background:#fcfffd}
.exercise-head{display:flex;align-items:start;gap:13px}
.exercise-glyph{width:46px;height:46px;flex:0 0 46px;display:grid;place-items:center;border-radius:14px;background:#eaf4ec;color:#27735c;font-size:25px;font-weight:700}
.exercise-copy{min-width:0;flex:1}.exercise-copy h3{margin:2px 0 5px;font-size:16px}.exercise-copy .meta{font-size:12px;color:var(--muted);line-height:1.7}
.ghost-icon{border:1px solid #dde9e1;background:white;border-radius:10px;color:var(--forest);font-size:12px;font-weight:700;padding:9px;white-space:nowrap}
.ex-note{font-size:12px;color:#8c9d93;margin:9px 0 0 59px;line-height:1.7}
.sets{margin:17px 0 0 59px;display:grid;gap:9px}.set-row{display:flex;align-items:center;gap:8px}
.set-count{min-width:40px;color:#8a9b91;font-size:12px;font-weight:650}
.rep-input{width:70px;border:1px solid #dbe6de;border-radius:10px;padding:9px 7px;text-align:center;color:#1b4940;background:#fafdfb;font-size:14px}
.set-suffix{font-size:11px;color:#90a298;flex:1;min-width:35px}
.check-set{border:1px solid #cfe0d3;border-radius:10px;background:#fff;color:#4b7866;font-size:12px;font-weight:750;padding:9px 13px;min-width:95px}
.check-set:hover{background:#f0f8f2}.check-set.is-done{background:#e5f5ea;color:#1f7659;border-color:#b8dcc6}
.workout-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin:20px 0;flex-wrap:wrap}
.searchbox{width:100%;border:1px solid #dfe9e1;background:white;border-radius:14px;padding:15px 17px;font-size:14px;color:var(--ink);outline-offset:3px}
.library-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-top:18px}
.lib-card{display:flex;align-items:center;gap:14px;text-align:left;width:100%;border:1px solid var(--line);border-radius:16px;background:#fff;padding:16px;color:var(--ink)}
.lib-card:hover{border-color:#b0d6c3;background:#fdfffd}.lib-card .exercise-glyph{height:42px;width:42px;flex-basis:42px;font-size:21px}
.lib-card h3{font-size:14px;margin:0 0 5px}.lib-card p{font-size:11px;color:var(--muted);margin:0}.lib-card .arrow{margin-left:auto;color:#8dab99}
.empty{border:1px dashed #ceddd3;padding:35px 22px;border-radius:20px;text-align:center;color:#8ca098;font-size:13px;line-height:2}
.history-list{display:grid;gap:11px}.history-row{border:1px solid var(--line);border-radius:16px;background:#fff;padding:17px 19px;display:flex;align-items:center;justify-content:space-between;gap:15px}
.history-row b{font-size:15px}.history-row .sub{font-size:11px;color:#899b91;margin-top:5px}.history-badge{background:#e4f4ea;border-radius:40px;padding:7px 11px;font-size:11px;color:#25684f;font-weight:700}
.settings-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:22px;margin-bottom:15px}
.settings-card h3{margin:0 0 12px;font-size:16px}.settings-card p{color:#83988e;font-size:12px;line-height:1.9;margin:0 0 13px}
.choice-row{display:flex;gap:8px;flex-wrap:wrap}.choice{border:1px solid #d5e4d9;background:white;color:#5a7665;font-size:12px;padding:9px 14px;border-radius:11px}.choice.chosen{background:#e1f3e9;border-color:#b2d8c4;color:#155f4a;font-weight:800}
.modal-backdrop{position:fixed;inset:0;z-index:100;background:rgba(14,39,32,.52);padding:24px;display:flex;align-items:center;justify-content:center}
.modal-dialog{position:relative;background:white;border-radius:25px;width:min(100%,540px);max-height:88vh;overflow-y:auto;box-shadow:0 32px 95px rgba(0,0,0,.19);padding:27px}
.modal-close{position:absolute;right:18px;top:15px;background:#f2f6f3;border:0;border-radius:50%;height:32px;width:32px;font-size:20px;color:#466c5b}
.modal-dialog h2{font-size:25px;margin:16px 0 5px}.modal-dialog .muted{font-size:12px;color:var(--muted)}
.modal-dialog h4{font-size:13px;margin:23px 0 10px;color:#215c4e}
.modal-dialog ol,.modal-dialog ul{padding-left:20px;font-size:13px;line-height:2;color:#536b60}
.modal-dialog .notice{margin-bottom:5px}
.timer-dock{position:fixed;z-index:80;right:25px;bottom:24px;background:#194f43;color:white;border-radius:17px;box-shadow:0 14px 35px rgba(18,67,47,.24);display:flex;align-items:center;gap:12px;padding:13px 15px}
.timer-dock .timer-number{font-size:23px;font-variant-numeric:tabular-nums;font-weight:750;min-width:60px}
.timer-dock .timer-caption{font-size:10px;color:#c8e7d8;line-height:1.7}.timer-dock button{border:1px solid #77a99a;border-radius:8px;color:#fff;background:transparent;padding:8px 10px;font-size:12px}
.toast{position:fixed;z-index:150;bottom:28px;left:50%;transform:translateX(-50%);background:#193d34;border-radius:12px;color:white;padding:12px 17px;font-size:13px;box-shadow:0 10px 30px #0002;max-width:calc(100vw - 24px);text-align:center}
.mobile-nav{display:none}
@media(max-width:1020px){.site-shell{grid-template-columns:210px minmax(0,1fr)}.sidebar{padding-left:12px;padding-right:12px}.page{padding-top:31px}.hero{grid-template-columns:minmax(0,1fr) 100px}.hero-art .large-number{font-size:86px}}
@media(max-width:740px){
  .site-shell{display:block}.sidebar{display:none}.mobile-nav{display:flex;position:fixed;z-index:85;bottom:0;left:0;right:0;justify-content:space-around;align-items:center;border-top:1px solid #e2e9e4;background:rgba(255,255,255,.97);padding:7px 4px calc(7px + env(safe-area-inset-bottom));box-shadow:0 -9px 28px #24422b0a}
  .mobile-nav button{border:0;background:transparent;color:#8ba298;display:flex;align-items:center;flex-direction:column;gap:2px;font-weight:750;min-width:60px;padding:4px 7px}
  .mobile-nav button span{font-size:22px;line-height:1.1}.mobile-nav button small{font-size:10px}.mobile-nav button.active{color:var(--forest)}
  .topbar{height:59px;padding:0 21px}.topbar-actions{gap:8px}.topbar-actions #today-label{display:none}.page{padding:26px 18px 104px;min-height:calc(100vh - 100px)}.footer{padding:0 20px 95px}
  .hero{grid-template-columns:1fr;min-height:225px;border-radius:22px}.hero-copy{padding:27px 25px}.hero h2{font-size:29px;margin:11px 0}.hero p{max-width:320px;margin-bottom:18px}.hero-art{position:absolute;right:1px;bottom:-30px;pointer-events:none}.hero-art .large-number{font-size:132px}.hero-art .art-label{display:none}
  .workout-grid{grid-template-columns:1fr;gap:12px}.workout-card{min-height:156px;padding:17px 19px}.workout-card h3{margin:11px 0 5px}
  .stats-row{gap:7px}.stat-card{padding:13px 11px;border-radius:14px}.stat-card .value{font-size:23px}.stat-card .label{font-size:10px}.stat-card .unit{font-size:9px}
  .library-grid{grid-template-columns:1fr}.section-title{font-size:18px}.exercise-card{padding:15px}.sets{margin-left:0}.ex-note{margin-left:0}.exercise-head{gap:10px}.exercise-glyph{flex:0 0 41px;height:41px;width:41px}.ghost-icon{padding:9px}.session-banner{padding:20px}.timer-dock{bottom:78px;right:12px;left:12px;justify-content:space-between;padding:10px 14px}.toast{bottom:87px}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
