@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: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}:root{--chalk: #f2f4f2;--surface: #ffffff;--surface-2: #e7ebe8;--ink: #1d2422;--steel: #5f6b66;--line: #d3d9d5;--plate-green: #1f7a46;--plate-yellow: #c99700;--plate-blue: #1f5fbf;--plate-red: #c8233a;--plate-grey: #646e69;--on-plate: #ffffff;--ok: #1f7a46;--warn: #b36b00;--danger: #c8233a;--week: var(--plate-blue);--on-week: var(--on-plate);--radius-s: 6px;--radius-m: 10px;--radius-l: 18px;--tap: 48px;--font: "Barlow", system-ui, sans-serif;--font-num: "Barlow Condensed", "Barlow", system-ui, sans-serif;--nav-h: 64px;--shadow: 0 1px 0 rgba(29, 36, 34, .06), 0 6px 18px rgba(29, 36, 34, .07);color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--chalk: #192026;--surface: #222a31;--surface-2: #2b343c;--ink: #e6ebe8;--steel: #9aa7a1;--line: #36414a;--plate-green: #3fb873;--plate-yellow: #f0c02a;--plate-blue: #5a93ec;--plate-red: #f0566b;--plate-grey: #8e9a95;--on-plate: #10171c;--ok: #3fb873;--warn: #f0a63c;--danger: #f7808d;--shadow: 0 1px 0 rgba(0, 0, 0, .3);color-scheme:dark}}:root[data-theme=dark]{--chalk: #192026;--surface: #222a31;--surface-2: #2b343c;--ink: #e6ebe8;--steel: #9aa7a1;--line: #36414a;--plate-green: #3fb873;--plate-yellow: #f0c02a;--plate-blue: #5a93ec;--plate-red: #f0566b;--plate-grey: #8e9a95;--on-plate: #10171c;--ok: #3fb873;--warn: #f0a63c;--danger: #f7808d;--shadow: 0 1px 0 rgba(0, 0, 0, .3);color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;background:var(--chalk);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}body{min-height:100dvh}button,input,select,textarea{font:inherit;color:inherit}a{color:inherit}:focus-visible{outline:3px solid var(--week);outline-offset:2px}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}h1,h2,h3{font-family:var(--font-num);font-weight:600;line-height:1.1;margin:0;letter-spacing:.005em}h1{font-size:2rem}h2{font-size:1.4rem}h3{font-size:1.15rem}p{margin:0}.num{font-family:var(--font-num);font-variant-numeric:tabular-nums}.muted{color:var(--steel)}.small{font-size:.875rem}.stack{display:flex;flex-direction:column;gap:12px}.stack-l{display:flex;flex-direction:column;gap:24px}.row{display:flex;align-items:center;gap:8px}.row-between{display:flex;align-items:center;justify-content:space-between;gap:12px}.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}.shell{min-height:100dvh}.main{max-width:760px;margin:0 auto;padding:16px 16px calc(var(--nav-h) + 32px + env(safe-area-inset-bottom))}.nav{position:fixed;z-index:20;left:0;right:0;bottom:0;height:calc(var(--nav-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);display:grid;grid-template-columns:repeat(5,1fr);background:var(--surface);border-top:1px solid var(--line)}.nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-decoration:none;color:var(--steel);font-size:.75rem;font-weight:600}.nav a svg{width:24px;height:24px}.nav a.active{color:var(--ink)}.nav a.active svg{color:var(--ink)}@media(min-width:900px){.nav{top:0;right:auto;width:96px;height:auto;grid-template-columns:1fr;grid-auto-rows:80px;align-content:start;padding-top:16px;border-top:0;border-right:1px solid var(--line)}.main{padding-left:120px;padding-bottom:48px;max-width:880px}}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:8px 0 20px}.page-head p{margin-top:4px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--tap);padding:0 18px;border-radius:var(--radius-m);border:1px solid var(--line);background:var(--surface);font-weight:600;cursor:pointer;text-decoration:none;white-space:nowrap}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--week);border-color:var(--week);color:var(--on-week)}.btn.ink{background:var(--ink);border-color:var(--ink);color:var(--chalk)}.btn.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 45%,var(--line))}.btn.ghost{background:transparent;border-color:transparent}.btn.small{min-height:36px;padding:0 12px;font-size:.875rem}.btn.block{width:100%}.icon-btn{display:inline-grid;place-items:center;width:var(--tap);height:var(--tap);border-radius:var(--radius-m);border:0;background:transparent;cursor:pointer;color:var(--steel)}.icon-btn svg{width:22px;height:22px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);padding:16px}.list{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);overflow:hidden}.list>*+*{border-top:1px solid var(--line)}.list-item{display:flex;align-items:center;gap:12px;padding:12px 16px;min-height:56px;text-decoration:none;background:none;border-left:0;border-right:0;border-bottom:0;text-align:left;width:100%;cursor:pointer}.list-item:first-child{border-top:0}.plate{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px 0 4px;border-radius:999px;background:color-mix(in srgb,var(--plate-c) 14%,transparent);color:var(--ink);font-family:var(--font-num);font-weight:600;font-size:.95rem}.plate:before{content:"";width:20px;height:20px;border-radius:50%;background:var(--plate-c);box-shadow:inset 0 0 0 5px color-mix(in srgb,var(--plate-c) 70%,#000),inset 0 0 0 7px var(--plate-c)}label.field{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:.9rem}.input,select.input,textarea.input{min-height:var(--tap);padding:0 12px;border-radius:var(--radius-m);border:1px solid var(--line);background:var(--surface);width:100%}textarea.input{padding:10px 12px;min-height:80px;resize:vertical}.seg{display:inline-flex;padding:3px;border-radius:var(--radius-m);background:var(--surface-2);gap:2px;flex-wrap:wrap}.seg button{min-height:40px;padding:0 14px;border:0;border-radius:8px;background:transparent;font-weight:600;color:var(--steel);cursor:pointer}.seg button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{min-height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-weight:600;cursor:pointer}.chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--chalk)}.wk-head{position:sticky;top:0;z-index:10;margin:-16px -16px 16px;padding:12px 16px;background:color-mix(in srgb,var(--chalk) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.progress{height:4px;border-radius:2px;background:var(--surface-2);overflow:hidden;margin-top:10px}.progress>i{display:block;height:100%;background:var(--week);transition:width .3s ease}.exercise{background:var(--surface);border:1px solid var(--line);border-left:5px solid var(--muscle-c, var(--steel));border-radius:var(--radius-m) var(--radius-l) var(--radius-l) var(--radius-m);padding:14px 12px 12px 14px}.exercise.done{border-left-color:var(--ok)}.exercise.skipped{opacity:.6}.ex-title{font-family:var(--font-num);font-size:1.3rem;font-weight:600;line-height:1.15}.muscle-tag{font-size:.8rem;font-weight:600;color:var(--steel)}.sets{display:grid;grid-template-columns:28px 1fr 1fr 52px;gap:8px;align-items:center;margin-top:12px}.sets.with-rir{grid-template-columns:28px 1fr 1fr 52px 48px}.rir-cell{min-height:44px;border-radius:10px;border:1px dashed var(--line);background:transparent;color:var(--steel);font-family:var(--font-num);font-weight:600;font-size:.9rem}.rir-cell.on{border-style:solid;color:var(--ink)}.rir-cell:disabled{opacity:.5}.rir-chips{grid-column:1 / -1;display:flex;flex-direction:column;gap:6px;padding:8px 0 4px}.rir-chips .chip{min-width:44px;min-height:40px;justify-content:center}.sr-hint{font-weight:600}.sets .hdr{font-size:.75rem;color:var(--steel);font-weight:600;text-align:center}.set-no{font-family:var(--font-num);font-weight:600;color:var(--steel);text-align:center;font-size:1.05rem}.set-no.warm{font-size:.8rem}.cell{position:relative}.cell input{width:100%;height:52px;border-radius:var(--radius-m);border:1px solid var(--line);background:var(--chalk);text-align:center;font-family:var(--font-num);font-size:1.45rem;font-weight:600;font-variant-numeric:tabular-nums;padding:0 4px}.cell input::placeholder{color:color-mix(in srgb,var(--steel) 70%,transparent);font-weight:500}.cell input:focus{border-color:var(--week);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--week) 30%,transparent)}.set-row-done .cell input{background:color-mix(in srgb,var(--ok) 10%,var(--surface));border-color:color-mix(in srgb,var(--ok) 40%,var(--line))}.set-row-skipped .cell input{text-decoration:line-through;opacity:.5}.check{width:52px;height:52px;border-radius:50%;border:2px solid var(--line);background:var(--surface);display:grid;place-items:center;cursor:pointer;color:var(--steel)}.check svg{width:26px;height:26px}.check.on{background:var(--ok);border-color:var(--ok);color:#fff}.check:active{transform:scale(.94)}.reason{font-size:.85rem;color:var(--steel);border-left:3px solid var(--week);padding:2px 0 2px 10px}.timer{display:flex;align-items:center;gap:8px;margin-top:10px;padding:6px 6px 6px 16px;border-radius:999px;background:var(--ink);color:var(--chalk)}.timer .num{font-size:1.5rem;min-width:56px;flex:1}.timer button{background:transparent;color:var(--chalk);border:1px solid color-mix(in srgb,var(--chalk) 35%,transparent);border-radius:999px;min-height:40px;padding:0 14px;font-weight:600;cursor:pointer}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#0a0e0d73;display:flex;align-items:flex-end;justify-content:center;animation:fade .15s ease}.sheet{width:100%;max-width:640px;max-height:88dvh;overflow:auto;background:var(--chalk);border-radius:var(--radius-l) var(--radius-l) 0 0;padding:8px 16px calc(20px + env(safe-area-inset-bottom));animation:rise .2s ease}.sheet-grip{width:40px;height:4px;border-radius:2px;background:var(--line);margin:4px auto 12px}@media(min-width:700px){.sheet-backdrop{align-items:center}.sheet{border-radius:var(--radius-l)}}@keyframes rise{0%{transform:translateY(24px);opacity:0}}@keyframes fade{0%{opacity:0}}.opt-grid{display:grid;gap:8px}.opt{min-height:52px;padding:8px 14px;border-radius:var(--radius-m);border:1px solid var(--line);background:var(--surface);text-align:left;font-weight:600;cursor:pointer}.opt[aria-pressed=true]{border-color:var(--week);box-shadow:inset 0 0 0 2px var(--week)}.board{display:grid;gap:8px;overflow-x:auto;padding-bottom:4px}.board-cell{display:block;min-width:0;padding:8px;border-radius:var(--radius-m);border:1px solid var(--line);background:var(--surface);text-decoration:none;font-size:.85rem}.board-cell.completed{background:color-mix(in srgb,var(--ok) 12%,var(--surface));border-color:color-mix(in srgb,var(--ok) 35%,var(--line))}.board-cell.active{border-color:var(--week);box-shadow:inset 0 0 0 2px var(--week)}.board-cell.skipped{opacity:.55;text-decoration:line-through}.empty{text-align:center;padding:40px 16px}.empty p{max-width:36ch;margin:8px auto 20px}.toast{position:fixed;bottom:calc(var(--nav-h) + 16px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);z-index:60;background:var(--ink);color:var(--chalk);padding:10px 16px;border-radius:var(--radius-m);font-weight:600;max-width:calc(100vw - 32px);animation:slide .2s ease}@keyframes slide{0%{transform:translate(-50%,16px)}}@media(min-width:900px){.toast{bottom:24px}}.toast.error{background:var(--danger);color:#fff}.chart text{fill:var(--steel);font-family:var(--font-num);font-size:12px}.stat{display:flex;flex-direction:column}.stat b{font-family:var(--font-num);font-size:1.6rem;font-weight:600;line-height:1.1}table.data{width:100%;border-collapse:collapse;font-size:.9rem}table.data th,table.data td{padding:8px 6px;border-bottom:1px solid var(--line);text-align:left}table.data th{color:var(--steel);font-weight:600;font-size:.8rem}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.chip[aria-selected=true]{background:var(--ink);border-color:var(--ink);color:var(--chalk)}.media-frame{position:relative;width:100%;aspect-ratio:16 / 9;background:#000;border-radius:var(--radius-s);overflow:hidden}.media-frame iframe,.media-frame video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0;background:#000}.media-facade{display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--line);padding:16px;text-align:center}.media-play{display:grid;justify-items:center;gap:8px;min-width:160px;min-height:96px;padding:16px;border:0;border-radius:var(--radius-s);background:var(--ink);color:var(--surface);font:inherit;font-weight:600;cursor:pointer}.media-play:focus-visible{outline:3px solid var(--plate-blue);outline-offset:3px}.media-notes{white-space:pre-wrap;margin:0}.media-attrib{margin:0}.media-badge{display:inline-flex;align-items:center;gap:4px;font-size:.8rem;color:var(--steel)}.icon-btn.has-media{color:var(--plate-blue)}button.list-item{width:100%;font:inherit;color:inherit;cursor:pointer;text-align:left}.list-item[aria-current=page]{box-shadow:inset 4px 0 0 var(--week);font-weight:600}.slot-row{flex-wrap:wrap}@media(max-width:640px){.slot-row .slot-ex{order:1;flex:1 1 100%}.slot-row select{flex:1 1 auto!important}}.policy-pick{border:0;padding:0;margin:0}.policy-option{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:12px;cursor:pointer}.policy-option.on{border-color:var(--ink)}.policy-option input{margin-top:4px;min-width:18px;min-height:18px}.tag{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--steel)}
