@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+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,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+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,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+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,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+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,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+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,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+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,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+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,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+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,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+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,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+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*,:before,:after{box-sizing:border-box}:root{--bg:#edf1f4;--surface:#fff;--ink:#12212d;--muted:#52636f;--rule:#d2dce3;--ice:#cfe2ec;--ice-line:#5f94b0;--signal:#c2214f;--ok:#1c7757;--on-ok:#fff;--warn:#9a610c;--warn-bg:#fbf1dc;--display:"Barlow Condensed", "Arial Narrow", "Helvetica Neue", Arial, sans-serif;--body:"Barlow", "Helvetica Neue", Arial, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;padding-top:env(safe-area-inset-top,0px)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0f171e;--surface:#17222c;--ink:#e4ecf2;--muted:#8fa2b0;--rule:#2a3945;--ice:#1d3746;--ice-line:#5c93b0;--signal:#ff6b93;--ok:#55c79f;--on-ok:#0f171e;--warn:#e8b45c;--warn-bg:#2b2413}}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font:400 16px/1.5 var(--body);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;margin:0}#root{min-height:100svh}h1,h2,h3{margin:0}.nav{z-index:100;background:var(--surface);border-top:1px solid var(--rule);padding-bottom:env(safe-area-inset-bottom,0px);display:flex;position:fixed;bottom:0;left:0;right:0}.nav-item{min-height:52px;font:500 13px/1 var(--body);color:var(--muted);-webkit-tap-highlight-color:transparent;flex:1;justify-content:center;align-items:center;padding:8px 4px;text-decoration:none;display:flex}.nav-item--active{color:var(--ink);font-weight:600}@media (width>=900px){.nav{border-top:none;border-right:1px solid var(--rule);width:200px;padding-bottom:0;padding-top:env(safe-area-inset-top,0px);flex-direction:column;gap:4px;padding:24px 12px;top:0;bottom:0;right:auto}.nav-item{border-radius:6px;justify-content:flex-start;padding:10px 12px;font-size:14px}.nav-item--active{background:var(--ice)}}.today-page{flex-direction:column;gap:24px;padding-bottom:96px;display:flex}.sync-line{color:var(--muted);text-align:right;margin:0;font-size:13px}.sync-line--ok{color:var(--ok)}.sync-line--warn{color:var(--warn)}.sync-line--error{color:var(--signal)}.next-card{background:var(--surface);border-radius:12px;flex-direction:column;gap:8px;padding:20px;display:flex;box-shadow:0 1px 3px #0000000f}.next-card--done{background:var(--ice);color:var(--muted);justify-content:center;align-items:center;padding:32px}.next-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.next-cycle{color:var(--muted);font-size:13px}.next-label{border-radius:4px;padding:2px 8px;font-size:12px;font-weight:600}.next-label--intro{background:var(--ice);color:var(--ice-line)}.next-label--deload{background:var(--warn-bg);color:var(--warn)}.next-name{font:700 24px/1.1 var(--display);color:var(--ink);margin:0}.next-details{color:var(--muted);margin:0;font-size:14px}.next-btn{background:var(--ink);color:var(--bg);font:600 15px var(--body);cursor:pointer;border:none;border-radius:8px;align-self:flex-start;min-height:44px;margin-top:8px;padding:12px 20px}.week-progress{flex-direction:column;gap:8px;display:flex}.week-progress-text{margin:0;font-size:15px}.week-progress-count,.week-progress-target{font:700 18px/1 var(--display)}.week-progress-sep,.week-progress-label{color:var(--muted)}.week-bar{gap:4px;display:flex}.week-bar-pip{background:var(--rule);border-radius:3px;flex:1;height:6px}.week-bar-pip--done{background:var(--ok)}.template-section{flex-direction:column;gap:10px;display:flex}.template-heading{font:600 12px/1 var(--body);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0}.template-list{grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:6px;margin:0;padding:0;list-style:none;display:grid}.template-item{background:var(--surface);border:1px solid var(--rule);border-radius:8px;flex-direction:column;align-items:center;gap:3px;padding:8px 4px;display:flex}.template-item--rest{background:0 0;border-style:dashed}.template-day{color:var(--muted);font-size:11px;font-weight:600}.template-session{color:var(--ink);text-align:center;font-size:12px;font-weight:500;line-height:1.2}.template-item--rest .template-session{color:var(--muted)}.num-field{flex-direction:column;flex:1;gap:4px;display:flex}.num-label{letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:600}.num-input{border:1px solid var(--rule);background:var(--surface);color:var(--ink);font:600 18px/1 var(--display);text-align:center;border-radius:6px;width:100%;min-height:44px;padding:8px 10px}.num-input:focus{outline:2px solid var(--ice-line);outline-offset:0;border-color:#0000}.session-page{flex-direction:column;gap:20px;padding-bottom:96px;display:flex}.session-header{flex-direction:column;gap:8px;display:flex}.session-back{color:var(--muted);font:14px var(--body);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0}.session-title-row{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.session-title{font:700 26px/1.1 var(--display);color:var(--ink);margin:0}.session-cycle{color:var(--muted);font-size:13px}.session-label{border-radius:4px;align-self:flex-start;margin:0;padding:2px 8px;font-size:12px;font-weight:600}.session-label--intro{background:var(--ice);color:var(--ice-line)}.session-label--deload{background:var(--warn-bg);color:var(--warn)}.session-done-badge{color:var(--ok);margin:0;font-size:13px}.general-notes{flex-direction:column;gap:6px;display:flex}.general-notes-toggle{color:var(--muted);font:13px var(--body);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;align-self:flex-start;padding:0;text-decoration:underline}.general-notes-body{background:var(--surface);border-left:3px solid var(--rule);border-radius:8px;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.general-notes-text{color:var(--ink);margin:0;font-size:14px;line-height:1.5}.exercise-list{flex-direction:column;gap:16px;display:flex}.exercise-card{background:var(--surface);border-radius:12px;flex-direction:column;gap:12px;padding:16px;display:flex;box-shadow:0 1px 3px #0000000f}.exercise-header{flex-direction:column;gap:6px;display:flex}.exercise-name{font:700 18px/1.2 var(--display);color:var(--ink);margin:0}.exercise-meta{flex-wrap:wrap;gap:6px;display:flex}.exercise-chip{background:var(--ice);color:var(--ice-line);border-radius:4px;padding:2px 8px;font-size:12px;font-weight:600}.exercise-notes-toggle{color:var(--muted);font:13px var(--body);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;align-self:flex-start;padding:0;text-decoration:underline}.exercise-notes-text{color:var(--muted);background:var(--bg);border-radius:6px;margin:0;padding:8px 10px;font-size:13px;line-height:1.5}.set-list{flex-direction:column;gap:8px;display:flex}.set-row{align-items:flex-end;gap:8px;display:flex}.set-number{font:700 15px/1 var(--display);color:var(--muted);text-align:right;flex-shrink:0;width:18px;padding-bottom:12px}.set-rir{color:var(--muted);flex-shrink:0;padding-bottom:12px;font-size:12px;font-weight:600}.exercise-prev{color:var(--muted);margin:0;font-size:12px}.technique-section{border-top:1px solid var(--rule);flex-direction:column;gap:8px;padding-top:10px;display:flex}.technique-toggle{color:var(--ink);font:600 13px var(--body);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0}.technique-body{flex-direction:column;gap:8px;display:flex}.technique-check{cursor:pointer;align-items:center;gap:8px;font-size:14px;display:flex}.technique-note{border:1px solid var(--rule);background:var(--bg);width:100%;min-height:64px;color:var(--ink);font:14px/1.5 var(--body);resize:vertical;box-sizing:border-box;border-radius:6px;padding:8px 10px}.technique-note:focus{outline:2px solid var(--ice-line);outline-offset:0;border-color:#0000}.session-footer{justify-content:center;padding-top:8px;display:flex}.session-finish-btn{background:var(--ink);color:var(--bg);font:600 16px var(--body);cursor:pointer;border:none;border-radius:10px;min-height:48px;padding:14px 32px}.session-done-msg{color:var(--ok);margin:0;font-size:15px;font-weight:600}.login-wrap{flex-direction:column;justify-content:center;align-items:center;gap:32px;min-height:100svh;padding:24px 16px;display:flex}.login-brand{font:700 32px/1 var(--display);letter-spacing:.01em;color:var(--ink);margin:0}.login-form{flex-direction:column;gap:16px;width:100%;max-width:360px;display:flex}.login-label{color:var(--muted);flex-direction:column;gap:6px;font-size:14px;font-weight:500;display:flex}.login-input{border:1px solid var(--rule);background:var(--surface);color:var(--ink);font:400 16px var(--body);border-radius:6px;min-height:44px;padding:10px 12px}.login-input:focus{outline:2px solid var(--ice-line);outline-offset:0;border-color:#0000}.login-error{color:var(--signal);margin:0;font-size:14px}.login-btn{background:var(--ink);color:var(--bg);font:600 15px var(--body);cursor:pointer;border:none;border-radius:6px;min-height:44px;margin-top:4px;padding:12px}.login-btn:disabled{opacity:.55;cursor:default}.btn-primary{background:var(--ink);color:var(--bg);font:600 14px var(--body);cursor:pointer;border:none;border-radius:6px;min-height:44px;padding:10px 20px}.btn-primary:disabled{opacity:.45;cursor:default}.btn-ghost{color:var(--muted);border:1px solid var(--rule);font:500 14px var(--body);cursor:pointer;background:0 0;border-radius:6px;min-height:44px;padding:10px 20px}.import-idle{flex-direction:column;align-items:flex-start;display:flex}.import-file-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.import-saving,.import-done{margin:0;font-size:14px}.import-done{color:var(--ok)}.import-error{flex-direction:column;gap:12px;display:flex}.import-error-msg{color:var(--signal);margin:0;font-size:14px}.control-screen{flex-direction:column;gap:16px;display:flex}.control-title{font:700 18px/1.2 var(--display);color:var(--ink);margin:0}.control-filename{margin:0;font-size:13px}.control-stats{background:var(--ice);border-radius:8px;grid-template-columns:1fr 1fr;gap:12px;margin:0;padding:16px;display:grid}.control-stat{flex-direction:column;gap:2px;display:flex}.control-stat dt{color:var(--muted);font-size:12px}.control-stat dd{font:600 20px/1 var(--display);color:var(--ink);margin:0}.control-warnings{background:var(--warn-bg);border-left:4px solid var(--warn);border-radius:0 6px 6px 0;padding:12px 16px;font-size:14px}.control-warn-label{color:var(--warn);margin:0 0 8px;font-weight:600}.control-warnings ul{flex-direction:column;gap:4px;margin:0;padding-left:16px;display:flex}.control-actions{flex-wrap:wrap;gap:12px;display:flex}.variant-screen{flex-direction:column;gap:20px;display:flex}.variant-intro{color:var(--muted);margin:0;font-size:14px}.variant-list{flex-direction:column;gap:0;margin:0;padding:0;list-style:none;display:flex}.variant-item{border-bottom:1px solid var(--rule);flex-direction:column;gap:8px;padding:14px 0;display:flex}.variant-item:last-child{border-bottom:none}.variant-name{margin:0;font-size:14px;font-weight:600}.variant-options{flex-direction:column;gap:6px;display:flex}.variant-radio{cursor:pointer;align-items:center;gap:8px;font-size:14px;display:flex}.variant-custom-input{border:1px solid var(--rule);background:var(--surface);color:var(--ink);font:400 14px var(--body);border-radius:6px;min-height:40px;margin-top:4px;padding:8px 12px}.variant-actions{flex-wrap:wrap;gap:12px;padding-top:4px;display:flex}.settings-page{flex-direction:column;gap:32px;max-width:560px;margin:0 auto;padding:24px 16px 96px;display:flex}.settings-section{flex-direction:column;gap:12px;display:flex}.settings-heading{font:600 13px/1 var(--body);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0}.settings-email{margin:0;font-size:15px}.settings-sync-status{margin:0;font-size:14px}.settings-btn,.settings-btn-outline{font:600 14px var(--body);cursor:pointer;border-radius:6px;align-self:flex-start;min-height:44px;padding:10px 16px}.settings-btn{background:var(--ink);color:var(--bg);border:none}.settings-btn:disabled{opacity:.45;cursor:default}.settings-btn-outline{color:var(--signal);border:1px solid var(--signal);background:0 0}.sync-badge{font-size:14px}.sync-badge--ok{color:var(--ok)}.sync-badge--warn{color:var(--warn)}.sync-badge--error{color:var(--signal)}.sync-badge--pending,.sync-badge--busy{color:var(--muted)}.sync-error-msg{color:var(--signal);margin:0;font-size:13px}.muted{color:var(--muted)}.app-body{padding-bottom:calc(52px + env(safe-area-inset-bottom,0px))}.page-content{padding:16px 16px 24px}.empty-state{color:var(--muted);text-align:center;margin:48px 0 0;font-size:15px}@media (width>=900px){.app-body{margin-left:200px;padding-bottom:0}.page-content{max-width:720px;padding:32px 40px}}
