@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-vietnamese-400-normal-Dpl4UHAZ.woff2) format("woff2"),url(/assets/barlow-vietnamese-400-normal-BFeobeCK.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-latin-ext-400-normal-HxX4XjxC.woff2) format("woff2"),url(/assets/barlow-latin-ext-400-normal-CvBsJvxq.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-latin-400-normal-qiz4-Cze.woff2) format("woff2"),url(/assets/barlow-latin-400-normal-fsAxiSwU.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-vietnamese-500-normal-zTViEIzf.woff2) format("woff2"),url(/assets/barlow-vietnamese-500-normal-GNfB7rCE.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-latin-ext-500-normal-DOaysfXq.woff2) format("woff2"),url(/assets/barlow-latin-ext-500-normal-CJPcKP2Q.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-latin-500-normal-BPAOfeC8.woff2) format("woff2"),url(/assets/barlow-latin-500-normal-C1h8hMer.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-vietnamese-600-normal-DcjprdFV.woff2) format("woff2"),url(/assets/barlow-vietnamese-600-normal-CA_GiK2e.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-latin-ext-600-normal-B8NK_A3D.woff2) format("woff2"),url(/assets/barlow-latin-ext-600-normal-DMVRjfRT.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-latin-600-normal-DILqtrty.woff2) format("woff2"),url(/assets/barlow-latin-600-normal-CNwfPWQD.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-condensed-vietnamese-500-normal-DjeaNLFD.woff2) format("woff2"),url(/assets/barlow-condensed-vietnamese-500-normal-CsrJDWc5.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-condensed-latin-ext-500-normal-yA5ONLQ9.woff2) format("woff2"),url(/assets/barlow-condensed-latin-ext-500-normal-B1RE8WP7.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-condensed-latin-500-normal-BgYH2mbd.woff2) format("woff2"),url(/assets/barlow-condensed-latin-500-normal-HIEiP5Ov.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-vietnamese-600-normal-A5AYRdjN.woff2) format("woff2"),url(/assets/barlow-condensed-vietnamese-600-normal-CNlPk46_.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-ext-600-normal-18ESti3H.woff2) format("woff2"),url(/assets/barlow-condensed-latin-ext-600-normal-Clv9cIcR.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-600-normal-DepVgxBB.woff2) format("woff2"),url(/assets/barlow-condensed-latin-600-normal-BFJEwTuo.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-vietnamese-700-normal-DYeBwlKR.woff2) format("woff2"),url(/assets/barlow-condensed-vietnamese-700-normal-DhIzd8Tb.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-ext-700-normal-CwuXbfVR.woff2) format("woff2"),url(/assets/barlow-condensed-latin-ext-700-normal-BIHFfxf0.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-700-normal-v1xN8_Wq.woff2) format("woff2"),url(/assets/barlow-condensed-latin-700-normal-Dmwat-ge.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #eceef1;--surface: #ffffff;--surface-2: #e2e5e9;--surface-3: #d6dbe0;--line: #d3d8de;--text: #15181c;--muted: #5d6773;--blue: #1f5fd1;--blue-soft: rgba(31, 95, 209, .12);--on-blue: #ffffff;--yellow: #b98a00;--yellow-soft: rgba(242, 183, 5, .18);--red: #d42a3a;--red-soft: rgba(212, 42, 58, .12);--green: #208a55;--green-soft: rgba(32, 138, 85, .14);--shadow: 0 8px 30px rgba(20, 30, 45, .12);--font: "Barlow", system-ui, -apple-system, sans-serif;--font-num: "Barlow Condensed", "Barlow", system-ui, sans-serif;--tab-h: 62px;--safe-b: env(safe-area-inset-bottom, 0px);--safe-t: env(safe-area-inset-top, 0px);color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #16191d;--surface: #1f2328;--surface-2: #2a2f36;--surface-3: #353b43;--line: #333940;--text: #eef1f4;--muted: #98a1ac;--blue: #3d7ff0;--blue-soft: rgba(61, 127, 240, .16);--yellow: #f2b705;--yellow-soft: rgba(242, 183, 5, .14);--red: #ef5260;--red-soft: rgba(239, 82, 96, .14);--green: #3cbf7c;--green-soft: rgba(60, 191, 124, .14);--shadow: 0 10px 40px rgba(0, 0, 0, .45);color-scheme:dark}}:root[data-theme=dark]{--bg: #16191d;--surface: #1f2328;--surface-2: #2a2f36;--surface-3: #353b43;--line: #333940;--text: #eef1f4;--muted: #98a1ac;--blue: #3d7ff0;--blue-soft: rgba(61, 127, 240, .16);--yellow: #f2b705;--yellow-soft: rgba(242, 183, 5, .14);--red: #ef5260;--red-soft: rgba(239, 82, 96, .14);--green: #3cbf7c;--green-soft: rgba(60, 191, 124, .14);--shadow: 0 10px 40px rgba(0, 0, 0, .45);color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--blue);text-decoration:none}:focus-visible{outline:2px solid var(--blue);outline-offset:2px}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.app{max-width:560px;margin:0 auto;min-height:100dvh;position:relative}.page{padding:calc(var(--safe-t) + 12px) 16px calc(var(--tab-h) + var(--safe-b) + 28px)}.page.no-tabs{padding-bottom:calc(var(--safe-b) + 120px)}.num{font-family:var(--font-num);font-variant-numeric:tabular-nums}h1{font-family:var(--font-num);font-weight:700;font-size:34px;line-height:1.05;margin:8px 0 4px;letter-spacing:-.01em}h2{font-family:var(--font-num);font-weight:600;font-size:22px;line-height:1.15;margin:28px 0 10px}h3{font-size:16px;font-weight:600;margin:0}.sub{color:var(--muted);font-size:14px}.small{font-size:13px}.muted{color:var(--muted)}.row{display:flex;align-items:center;gap:10px}.between{display:flex;align-items:center;justify-content:space-between;gap:10px}.grow{flex:1;min-width:0}.wrap{flex-wrap:wrap}.center{text-align:center}.mt{margin-top:16px}.mt-s{margin-top:8px}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar{display:flex;align-items:center;gap:8px;min-height:44px}.topbar .title{font-family:var(--font-num);font-weight:600;font-size:20px;flex:1;min-width:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border-radius:12px;border:0;background:var(--surface-2);color:var(--text);font-weight:600;font-size:15px;transition:transform .08s ease,background .15s}.btn:active{transform:scale(.97)}.btn.primary{background:var(--blue);color:var(--on-blue)}.btn.danger{background:var(--red-soft);color:var(--red)}.btn.ghost{background:transparent;color:var(--blue);padding:0 10px}.btn.block{width:100%}.btn.big{min-height:56px;font-size:18px;border-radius:14px;font-family:var(--font-num);letter-spacing:.01em}.btn.sm{min-height:34px;padding:0 12px;font-size:14px;border-radius:10px}.btn:disabled{opacity:.45}.icon-btn{width:44px;height:44px;border-radius:12px;border:0;background:transparent;color:var(--text);display:inline-flex;align-items:center;justify-content:center;flex:none}.icon-btn:active{background:var(--surface-2)}.panel{background:var(--surface);border-radius:18px;padding:16px}.panel+.panel{margin-top:12px}.list{background:var(--surface);border-radius:16px;overflow:hidden}.list-item{display:flex;align-items:center;gap:12px;padding:13px 16px;min-height:56px;border:0;background:none;width:100%;text-align:left}.list-item+.list-item{border-top:1px solid var(--line)}button.list-item:active{background:var(--surface-2)}.chev{color:var(--muted);flex:none}.chip{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 14px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-size:14px;font-weight:500;white-space:nowrap}.chip.on{background:var(--text);color:var(--bg);border-color:var(--text)}.chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.tag{display:inline-flex;align-items:center;flex:none;white-space:nowrap;height:22px;padding:0 8px;border-radius:6px;font-size:12px;font-weight:600;background:var(--surface-2);color:var(--muted)}.tag.blue{background:var(--blue-soft);color:var(--blue)}.tag.green{background:var(--green-soft);color:var(--green)}.tag.red{background:var(--red-soft);color:var(--red)}.tag.yellow{background:var(--yellow-soft);color:var(--yellow)}.field{display:block;margin-bottom:14px}.field>span{display:block;font-size:13px;color:var(--muted);margin-bottom:6px;font-weight:500}.input,select.input,textarea.input{width:100%;min-height:46px;padding:10px 14px;border-radius:12px;border:1px solid var(--line);background:var(--surface);font-size:16px;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}textarea.input{min-height:90px;resize:vertical}.input:focus{border-color:var(--blue)}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.toggle{position:relative;width:50px;height:30px;flex:none}.toggle input{opacity:0;width:0;height:0;position:absolute}.toggle span{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:999px;background:var(--surface-3);transition:.2s}.toggle span:after{content:"";position:absolute;width:24px;height:24px;top:3px;left:3px;border-radius:50%;background:#fff;transition:.2s;box-shadow:0 1px 3px #0000004d}.toggle input:checked+span{background:var(--green)}.toggle input:checked+span:after{transform:translate(20px)}.segmented{display:flex;background:var(--surface-2);border-radius:12px;padding:3px;gap:3px}.segmented button{flex:1;border:0;background:transparent;min-height:36px;border-radius:9px;font-weight:600;font-size:14px;color:var(--muted)}.segmented button.on{background:var(--surface);color:var(--text);box-shadow:0 1px 4px #0000001f}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:40;padding-bottom:var(--safe-b);background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(1.6) blur(18px);-webkit-backdrop-filter:saturate(1.6) blur(18px);border-top:1px solid var(--line)}.tabbar nav{max-width:560px;margin:0 auto;display:flex;height:var(--tab-h)}.tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--muted);font-size:11px;font-weight:600}.tabbar a.on{color:var(--blue)}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:80;animation:fade .18s ease}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:81;max-width:560px;margin:0 auto;background:var(--bg);border-radius:22px 22px 0 0;max-height:92dvh;display:flex;flex-direction:column;animation:up .22s cubic-bezier(.2,.8,.2,1);padding-bottom:var(--safe-b)}.sheet-head{display:flex;align-items:center;gap:8px;padding:10px 12px 6px 18px}.sheet-head h3{flex:1;font-family:var(--font-num);font-size:20px;font-weight:600}.sheet-body{overflow-y:auto;padding:4px 16px 20px;-webkit-overflow-scrolling:touch}.grabber{width:38px;height:5px;border-radius:3px;background:var(--surface-3);margin:8px auto 0}@keyframes up{0%{transform:translateY(100%)}to{transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}.toast{position:fixed;left:50%;transform:translate(-50%);top:calc(var(--safe-t) + 12px);z-index:100;background:var(--text);color:var(--bg);padding:10px 16px;border-radius:12px;font-weight:600;font-size:14px;box-shadow:var(--shadow);animation:fade .2s;max-width:calc(100% - 32px)}.hero-next{background:var(--blue);color:var(--on-blue);border-radius:22px;padding:18px;position:relative;overflow:hidden}.hero-next .label{font-size:14px;opacity:.85;font-weight:500}.hero-next .name{font-family:var(--font-num);font-size:40px;font-weight:700;line-height:1;margin:4px 0 12px}.hero-next .ex{display:flex;justify-content:space-between;gap:10px;font-size:14px;padding:5px 0;border-top:1px solid rgba(255,255,255,.16)}.hero-next .ex .num{font-size:16px;font-weight:600}.hero-next .btn{background:#fff;color:#102a5c;margin-top:14px}.hero-plate{position:absolute;right:-42px;top:-42px;width:150px;height:150px;border-radius:50%;border:18px solid rgba(255,255,255,.1);pointer-events:none}.hero-plate:after{content:"";position:absolute;top:38px;right:38px;bottom:38px;left:38px;border-radius:50%;border:6px solid rgba(255,255,255,.08)}.weekstrip{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.weekstrip .d{text-align:center;padding:8px 0 10px;border-radius:12px;background:var(--surface)}.weekstrip .d.today{outline:2px solid var(--blue);outline-offset:-2px}.weekstrip .d .wd{font-size:12px;color:var(--muted);font-weight:600}.weekstrip .d .dn{font-family:var(--font-num);font-size:20px;font-weight:600}.weekstrip .dots{display:flex;gap:3px;justify-content:center;height:6px;margin-top:2px}.dot{width:6px;height:6px;border-radius:50%}.dot.s{background:var(--blue)}.dot.c{background:var(--green)}.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:0;background:var(--surface);border-radius:16px;padding:14px 4px}.stat-row>div{text-align:center}.stat-row>div+div{border-left:1px solid var(--line)}.stat-row .v{font-family:var(--font-num);font-size:26px;font-weight:600;line-height:1.1}.stat-row .l{font-size:12px;color:var(--muted)}.resume{display:flex;align-items:center;gap:12px;background:var(--green-soft);color:var(--green);border-radius:16px;padding:12px 14px;font-weight:600;border:0;width:100%;text-align:left}.mbar{display:grid;grid-template-columns:112px 1fr 38px;align-items:center;gap:10px;padding:5px 0;font-size:14px}.mbar .track{height:10px;border-radius:5px;background:var(--surface-2);position:relative;overflow:hidden}.mbar .fill{position:absolute;left:0;top:0;bottom:0;border-radius:5px;background:var(--blue)}.mbar .fill.low{background:var(--yellow)}.mbar .fill.high{background:var(--red)}.mbar .target{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--text);opacity:.5}.mbar .v{text-align:right;font-family:var(--font-num);font-weight:600;font-size:16px}.wk-head{position:sticky;top:0;z-index:30;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);padding:calc(var(--safe-t) + 6px) 12px 8px;margin:0 -16px 8px;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--line)}.wk-head .clock{font-family:var(--font-num);font-size:22px;font-weight:600;font-variant-numeric:tabular-nums}.wk-progress{height:3px;background:var(--surface-2);margin:0 -16px 12px}.wk-progress>div{height:100%;background:var(--green);transition:width .3s}.ex-card{background:var(--surface);border-radius:18px;padding:14px 12px 10px;margin-bottom:14px}.ex-card.done{box-shadow:inset 4px 0 0 var(--green)}.ex-card .ex-name{font-weight:600;font-size:17px;line-height:1.25}.ex-card .ex-target{font-size:13px;color:var(--muted);margin-top:2px}.ex-reco{margin:10px 0 4px;padding:8px 10px;border-radius:10px;background:var(--blue-soft);color:var(--text);font-size:13px;line-height:1.35}.ex-reco b{color:var(--blue)}.set-grid{display:grid;grid-template-columns:32px minmax(44px,1fr) 70px 58px 50px 44px;gap:6px;align-items:center}.set-grid.no-rir{grid-template-columns:34px 1fr 82px 70px 46px}.set-head{font-size:12px;color:var(--muted);font-weight:600;padding:10px 0 4px}.set-head>div{text-align:center}.set-head>div:nth-child(2){text-align:left}.set-row{padding:4px 0;border-radius:10px;transition:background .2s}.set-row.completed{background:var(--green-soft)}.set-type{width:34px;height:34px;border-radius:9px;border:0;background:var(--surface-2);font-family:var(--font-num);font-weight:700;font-size:16px}.set-type.warmup{background:var(--yellow-soft);color:var(--yellow)}.set-type.drop{background:var(--blue-soft);color:var(--blue)}.set-type.failure{background:var(--red-soft);color:var(--red)}.set-prev{color:var(--muted);font-family:var(--font-num);font-size:14px;line-height:1.15;padding-left:2px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:break-word;border:0;background:none;text-align:left}.set-in{width:100%;height:40px;border-radius:10px;border:1px solid transparent;background:var(--surface-2);text-align:center;font-family:var(--font-num);font-size:20px;font-weight:600;outline:none;padding:0 4px}.set-in::placeholder{color:var(--muted);opacity:.6;font-weight:500}.set-in:focus{border-color:var(--blue);background:var(--surface)}.set-row.completed .set-in{background:transparent}.set-check{width:46px;height:40px;border-radius:10px;border:0;background:var(--surface-2);color:var(--muted);display:inline-flex;align-items:center;justify-content:center}.set-check.on{background:var(--green);color:#fff}.ex-actions{display:flex;gap:8px;margin-top:8px}.rest{position:fixed;left:0;right:0;bottom:0;z-index:60;padding:0 12px calc(var(--safe-b) + 10px);pointer-events:none}.rest-inner{pointer-events:auto;max-width:536px;margin:0 auto;background:var(--text);color:var(--bg);border-radius:20px;padding:10px 10px 10px 18px;box-shadow:var(--shadow);position:relative;overflow:hidden}.rest-bar{position:absolute;left:0;top:0;bottom:0;background:var(--blue);opacity:.35;transition:width .25s linear}.rest-inner.over .rest-bar{background:var(--green);opacity:.5}.rest-content{position:relative;display:flex;align-items:center;gap:8px}.rest-time{font-family:var(--font-num);font-size:44px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums;min-width:104px}.rest-label{font-size:12px;opacity:.7;font-weight:600}.rest-btn{height:42px;min-width:50px;border-radius:12px;border:0;background:#7f7f7f40;color:inherit;font-weight:700;font-family:var(--font-num);font-size:17px}.has-rest .page{padding-bottom:calc(var(--safe-b) + 190px)}.chat{display:flex;flex-direction:column;gap:10px}.bubble{max-width:88%;padding:10px 14px;border-radius:18px;font-size:15px;line-height:1.45;word-wrap:break-word}.bubble.user{align-self:flex-end;background:var(--blue);color:var(--on-blue);border-bottom-right-radius:6px}.bubble.assistant{align-self:flex-start;background:var(--surface);border-bottom-left-radius:6px}.bubble p{margin:0 0 8px}.bubble p:last-child{margin:0}.bubble ul{margin:4px 0 8px;padding-left:20px}.event{align-self:center;font-size:12px;color:var(--muted);background:var(--surface-2);padding:6px 12px;border-radius:12px;max-width:92%;white-space:pre-line}.proposal{align-self:stretch;background:var(--surface);border-radius:16px;padding:14px;border:2px solid var(--blue)}.proposal.applied{border-color:var(--green)}.proposal.rejected{border-color:var(--line);opacity:.7}.proposal li{margin:6px 0;font-size:14px}.composer{position:fixed;left:0;right:0;bottom:calc(var(--tab-h) + var(--safe-b));z-index:35;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding:8px 12px;border-top:1px solid var(--line)}.composer .in{max-width:536px;margin:0 auto;display:flex;gap:8px;align-items:flex-end}.composer textarea{flex:1;min-height:44px;max-height:140px;border-radius:22px;padding:11px 16px;border:1px solid var(--line);background:var(--surface);resize:none;outline:none;font-size:16px}.send{width:44px;height:44px;border-radius:50%;border:0;background:var(--blue);color:#fff;display:inline-flex;align-items:center;justify-content:center;flex:none}.typing span{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--muted);margin:0 2px;animation:blink 1.2s infinite}.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.25}40%{opacity:1}}.chart{width:100%;display:block;overflow:visible}.chart text{fill:var(--muted);font-size:11px;font-family:var(--font)}.chart .grid{stroke:var(--line);stroke-width:1}.chart .line{fill:none;stroke:var(--blue);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}.chart .area{fill:var(--blue-soft)}.chart .pt{fill:var(--surface);stroke:var(--blue);stroke-width:2}.chart .bar{fill:var(--blue)}.chart .bar.alt{fill:var(--green)}.heat{display:grid;grid-auto-flow:column;grid-template-rows:repeat(7,1fr);gap:3px}.heat div{aspect-ratio:1;border-radius:3px;background:var(--surface-2)}.heat .s{background:var(--blue)}.heat .c{background:var(--green)}.heat .b{background:linear-gradient(135deg,var(--blue) 50%,var(--green) 50%)}.empty{text-align:center;padding:40px 20px;color:var(--muted)}.empty h3{color:var(--text);margin-bottom:6px}.pin-dots{display:flex;gap:14px;justify-content:center;margin:24px 0}.pin-dots span{width:14px;height:14px;border-radius:50%;border:2px solid var(--muted)}.pin-dots span.on{background:var(--text);border-color:var(--text)}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-width:300px;margin:0 auto}.keypad button{height:68px;border-radius:50%;border:0;background:var(--surface);font-family:var(--font-num);font-size:30px;font-weight:600;aspect-ratio:1;justify-self:center;width:68px}.keypad button:active{background:var(--surface-3)}.keypad .blank{visibility:hidden}.pr-badge{display:inline-flex;align-items:center;gap:4px;color:var(--red);font-weight:700;font-family:var(--font-num)}.plates{display:flex;align-items:center;justify-content:center;gap:3px;height:110px;margin:16px 0}.plates .bar{width:60px;height:10px;background:var(--muted);border-radius:2px}.plates .sleeve{width:14px;height:18px;background:var(--muted);border-radius:2px}.plates .plate{width:14px;border-radius:3px;display:flex;align-items:center;justify-content:center}.summary-big{font-family:var(--font-num);font-size:56px;font-weight:700;line-height:1}.kbd-spacer{height:40vh}.picker-head{position:sticky;top:-4px;z-index:2;background:var(--bg);padding:4px 0 8px}.search{position:relative}.search>svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}.search .input{padding-left:40px}.search .input::-webkit-search-cancel-button{filter:grayscale(1)}.chip.sm{height:30px;padding:0 12px;font-size:13px}.list-label{font-size:13px;font-weight:600;color:var(--muted);margin:16px 4px 6px}.create-row{background:var(--blue-soft);border-radius:14px;color:var(--blue)}.create-row .sub{color:var(--muted)}.ex-row{gap:12px}.eq-badge{flex:none;width:34px;height:34px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:var(--surface-2);color:var(--muted)}.play-btn{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--line);background:transparent;color:var(--text);display:inline-flex;align-items:center;justify-content:center;flex:none}.play-btn.next{background:var(--blue);border-color:var(--blue);color:var(--on-blue)}.play-btn:active{transform:scale(.94)}.date-tile{flex:none;width:46px;text-align:center;border-radius:12px;padding:6px 0 5px;background:var(--surface-2);border-left:3px solid var(--blue)}.date-tile.c{border-left-color:var(--green)}.date-tile .dn{font-family:var(--font-num);font-size:22px;font-weight:700;line-height:1}.date-tile .wd{font-size:11px;color:var(--muted);font-weight:600;margin-top:2px}.weekstrip .d.s{background:var(--blue-soft)}.weekstrip .d.s .dn{color:var(--blue)}.weekstrip .d.c:not(.s){background:var(--green-soft)}.weekstrip .d.c:not(.s) .dn{color:var(--green)}.onboarding{padding-bottom:calc(var(--safe-b) + 150px)}.ob-top{display:flex;align-items:center;gap:8px;min-height:44px}.ob-progress{flex:1;height:6px;border-radius:3px;background:var(--surface-2);overflow:hidden}.ob-progress>div{height:100%;background:var(--blue);border-radius:3px;transition:width .3s}.ob-step{margin-top:18px;font-size:14px;font-weight:600;color:var(--blue)}.choices{display:flex;flex-direction:column;gap:10px}.choice{display:flex;align-items:center;gap:12px;text-align:left;width:100%;padding:16px;border-radius:16px;border:2px solid transparent;background:var(--surface)}.choice.on{border-color:var(--blue);background:var(--blue-soft)}.choice-title{font-weight:600;font-size:17px}.choice-dot{width:26px;height:26px;border-radius:50%;border:2px solid var(--line);display:inline-flex;align-items:center;justify-content:center;flex:none}.choice.on .choice-dot{background:var(--blue);border-color:var(--blue);color:#fff}.num-steps{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:8px}.num-steps button{height:56px;border-radius:14px;border:2px solid transparent;background:var(--surface);font-family:var(--font-num);font-size:22px;font-weight:600}.num-steps button.on{border-color:var(--blue);background:var(--blue-soft);color:var(--blue)}.ob-reasons{margin:12px 0 4px;padding-left:18px;color:var(--muted);font-size:14px}.ob-reasons li{margin:4px 0}.ob-ex{padding:6px 0;font-size:15px;border-top:1px solid var(--line)}.ob-ex:first-of-type{margin-top:8px}.ob-ex .num{font-size:17px;font-weight:600;white-space:nowrap}.ob-footer{position:fixed;left:0;right:0;bottom:0;padding:12px 16px calc(var(--safe-b) + 12px);z-index:30;background:linear-gradient(to top,var(--bg) 70%,transparent);max-width:560px;margin:0 auto}.rest-chip{display:inline-flex;align-items:center;gap:4px;height:26px;padding:0 10px;border-radius:999px;border:0;background:var(--surface-2);color:var(--text);font-size:13px;font-weight:600;font-family:var(--font-num);vertical-align:middle}.rest-presets{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.rest-presets button{height:52px;border-radius:12px;border:2px solid transparent;background:var(--surface);font-family:var(--font-num);font-size:20px;font-weight:600}.rest-presets button.on{border-color:var(--blue);background:var(--blue-soft);color:var(--blue)}.rest-custom{display:flex;align-items:center;justify-content:center;gap:18px;margin:18px 0}.rest-custom .big{font-family:var(--font-num);font-size:48px;font-weight:700;min-width:120px;text-align:center}.src-badge{font-size:11px;font-weight:700;color:#fc4c02;background:#fc4c021f;padding:1px 6px;border-radius:5px;margin-left:6px}:root{--m-train-a: var(--blue);--m-train-b: #5b9bff;--m-vol-a: var(--yellow);--m-vol-b: #ffd24d;--m-cardio-a: var(--green);--m-cardio-b: #6fe0a5;--ink: var(--blue);--on-ink: #fff}.today-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-top:4px}.today-head h1{margin-top:2px}.today-date{font-size:15px;font-weight:600;color:var(--muted)}.avatar{width:40px;height:40px;border-radius:50%;border:0;background:var(--surface);display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-num);font-weight:700;font-size:18px;color:var(--text);flex:none}.status-chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin-top:10px}.status-chip{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 12px 0 6px;border-radius:999px;background:var(--surface);font-size:14px;font-weight:600;white-space:nowrap;border:0;color:var(--text)}.status-chip .ic{width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#fff}.status-chip .sub2{color:var(--muted);font-weight:500}.rings{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.ring{display:flex;flex-direction:column;align-items:center;gap:6px;border:0;background:none;padding:0;color:var(--text)}.ring-svg{position:relative;width:96px;height:96px}.ring-svg svg{transform:rotate(-90deg);display:block}.ring-svg .track{stroke:var(--surface-2)}.ring-val{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-num);font-weight:700;font-size:28px}.ring-val small{font-size:14px;margin-left:1px;color:var(--muted);font-weight:600}.ring-label{font-family:var(--font-num);font-size:17px;font-weight:600}.ring-sub{font-size:12px;color:var(--muted);margin-top:-4px;font-variant-numeric:tabular-nums}.coach-card{position:relative;color:var(--text);font:inherit}.coach-card .who{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--blue);margin-bottom:6px;text-transform:uppercase;letter-spacing:.04em}.coach-card p{margin:0;font-size:15px;line-height:1.5}.coach-card p+p{margin-top:6px}.card-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.card-head .t{font-family:var(--font-num);font-weight:600;font-size:18px;flex:1}.card-head .ic{width:28px;height:28px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;color:#fff;flex:none}.ic-train{background:var(--blue)}.ic-cardio{background:var(--green)}.ic-vol{background:var(--yellow)}.ic-ink{background:var(--blue);color:#fff!important}.next-name{font-family:var(--font-num);font-size:34px;font-weight:700;line-height:1.05}.next-ex{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-top:1px solid var(--line);font-size:15px}.next-ex .num{font-family:var(--font-num);font-weight:600;font-size:17px;white-space:nowrap}.quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.quick{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:18px;background:var(--surface);border:0;font-weight:600;font-size:15px;text-align:left;color:var(--text)}.quick .ic{width:32px;height:32px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;color:#fff;flex:none}.rec-green{background:var(--green)}.rec-yellow{background:var(--yellow)}.rec-red{background:var(--red)}.weekly-card .md p{margin:0 0 6px;font-size:15px;line-height:1.45}.weekly-card .md p:last-child{margin-bottom:0}.weekly-card .proposal{margin-top:12px}.rec-head{display:flex;align-items:center;gap:10px}.rec-head .dotbig{width:12px;height:12px;border-radius:50%;flex:none}.rec-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.rec-grid .v{font-family:var(--font-num);font-size:24px;font-weight:600;line-height:1.1}.rec-grid .l{font-size:12px;color:var(--muted)}.sleep-bars{display:flex;align-items:flex-end;gap:4px;height:70px;margin-top:14px}.sleep-bars>div{flex:1;border-radius:4px 4px 2px 2px;background:var(--blue);opacity:.85;min-height:2px}.sleep-bars>div.low{background:var(--yellow)}.sleep-bars>div.none{background:var(--surface-2)}:root{--mm-base: var(--surface-2);--mm-off: var(--surface-3);--mm-half: color-mix(in srgb, var(--blue) 55%, var(--surface-3));--mm-on: var(--blue);--mm-line: var(--surface)}.muscle-map{display:flex;gap:4px;justify-content:center;flex:none}.muscle-map svg{height:150px;width:auto;display:block}.muscle-map.sm svg{height:104px}.muscle-map.xs svg{height:52px}.muscle-map.xs{gap:1px;margin-right:8px}.next-top{display:flex;align-items:flex-start;gap:10px}.muscle-panel .muscle-map{margin-top:8px}.muscle-panel .muscle-map svg{height:190px}.mm-legend{display:flex;gap:16px;justify-content:center;margin-top:8px}.mm-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;vertical-align:-1px;margin-right:4px}.mm-legend i.on{background:var(--mm-on)}.mm-legend i.half{background:var(--mm-half)}
