:root{--bg:#0d0d10;--panel:#17171c;--panel-2:#1f1f26;--line:#2a2a33;--text:#f2f2f4;--muted:#9a9aa6;--accent:#ff5a1f;--accent-2:#ffb020;--danger:#ff5d5d;--radius:14px}*{box-sizing:border-box}html,body,#root{background:var(--bg);min-height:100%;color:var(--text);margin:0}body{-webkit-tap-highlight-color:transparent;font:16px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}h1{letter-spacing:-.01em;margin:14px 0 8px;font-size:26px;line-height:1.15}h2{margin:22px 0 10px;font-size:19px}h3{margin:0 0 4px;font-size:16px}p{margin:0 0 8px}ul,ol{margin:0;padding:0;list-style:none}.app{max-width:560px;min-height:100vh;margin:0 auto;padding-bottom:84px}.topbar{background:var(--bg);z-index:5;border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:12px 16px;display:flex;position:sticky;top:0}.brand{letter-spacing:.14em;font-size:15px;font-weight:800}.brand b{color:var(--accent)}.lang{gap:4px;display:flex}.lang-btn{background:var(--panel);color:var(--muted);border:1px solid var(--line);border-radius:8px;padding:4px 10px;font-size:12px;font-weight:700}.lang-btn.active{color:var(--text);border-color:var(--accent)}.screen{padding:0 16px 16px;animation:.25s both fade-in}.tabbar{background:var(--panel);border-top:1px solid var(--line);padding:8px 8px calc(8px + env(safe-area-inset-bottom));z-index:10;justify-content:center;gap:4px;display:flex;position:fixed;bottom:0;left:0;right:0}.tab{max-width:110px;color:var(--muted);background:0 0;border:0;border-radius:10px;flex:1;padding:10px 4px;font-size:13px;font-weight:600}.tab.active{color:var(--text);background:var(--panel-2);box-shadow:inset 0 -2px 0 var(--accent)}.hero{border-radius:var(--radius);background:linear-gradient(135deg, #2a1208, var(--panel) 60%);border:1px solid var(--line);margin-top:14px;padding:22px 18px}.hero h1{margin-top:0}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);color:var(--text);text-align:left;width:100%;font:inherit;padding:14px}.card-link{cursor:pointer;transition:transform .15s,border-color .15s;display:block}.card-link:active{border-color:var(--accent);transform:scale(.98)}.list,.steps{gap:10px;display:grid}.steps .card{gap:12px;display:flex}.step-no{background:var(--accent);color:#111;border-radius:50%;flex:none;place-items:center;width:30px;height:30px;font-weight:800;display:grid}.btn{background:var(--panel-2);color:var(--text);border:1px solid var(--line);font:inherit;cursor:pointer;border-radius:12px;padding:12px 18px;font-weight:700;display:inline-block;position:relative;overflow:hidden}.btn.primary{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#160a02;border:0;margin-top:6px}.btn.primary:after{content:"";background:linear-gradient(110deg,#0000 30%,#ffffff73 50%,#0000 70%);animation:5.5s ease-in-out infinite btn-shine;position:absolute;inset:0;transform:translate(-120%)}.btn.ghost{color:var(--muted);background:0 0;border:0;padding:8px 0}.btn:active{transform:scale(.97)}.muted{color:var(--muted)}.small{font-size:13px}.center{text-align:center;padding:40px 0}.meta{color:var(--muted);font-size:13px}.badges{gap:6px;margin-bottom:8px;display:flex}.badge{background:var(--panel-2);border:1px solid var(--line);width:fit-content;color:var(--muted);border-radius:999px;justify-self:start;padding:2px 9px;font-size:12px;font-weight:700;display:inline-block}.badge.free{color:#6fe3a0;border-color:#1f5a3a}.badge.club{color:var(--accent-2);border-color:#6b4a0c}.program.locked{opacity:.85}.filters{grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0;display:grid}.field{min-width:0;display:block}.field span{color:var(--muted);margin-bottom:4px;font-size:12px;display:block}select{background:var(--panel);width:100%;min-width:0;color:var(--text);border:1px solid var(--line);font:inherit;border-radius:10px;padding:10px 8px;font-size:14px}input[type=checkbox]{accent-color:var(--accent);width:18px;height:18px}.check{align-items:center;gap:8px;margin:8px 0;display:flex}.notice{border-radius:var(--radius);background:var(--panel);border:1px solid var(--line);margin-top:14px;padding:14px}.notice.error{border-color:var(--danger)}.notice.lock{border-color:#6b4a0c}.day{gap:6px;display:grid}.exercises{gap:8px;margin-top:6px;display:grid}.exercise{border-top:1px solid var(--line);justify-content:space-between;gap:10px;padding-top:8px;display:flex}.exercise p{margin:2px 0 0}.dose{text-align:right;white-space:nowrap;display:grid}.stats{grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0;display:grid}.stat{text-align:center}.stat b{color:var(--accent);font-size:24px;display:block}.stat span{color:var(--muted);font-size:12px}.admin-row{gap:6px;display:grid}.soon{margin-top:12px}.steps+p{margin-top:16px}@keyframes btn-shine{0%,55%{transform:translate(-120%)}to{transform:translate(120%)}}@keyframes fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes card-in{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:none}}.list>li,.steps>li{animation:.35s both card-in}.list>li:nth-child(2),.steps>li:nth-child(2){animation-delay:50ms}.list>li:nth-child(3),.steps>li:nth-child(3){animation-delay:.1s}.list>li:nth-child(n+4){animation-delay:.15s}@media (prefers-reduced-motion:reduce){.screen,.list>li,.steps>li{animation:none!important}}.btn.wide{text-align:center;width:100%;margin-top:14px;display:block}.btn.danger,.danger{color:var(--danger)}.btn:disabled{opacity:.5}.ex-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.workout-ex p{margin:4px 0}.video-link{color:var(--accent-2);margin:4px 0 6px;font-weight:600;text-decoration:none;display:inline-block}.set-row{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.set-btn{border:1px solid var(--line);background:var(--panel-2);min-width:44px;height:44px;color:var(--muted);font:inherit;border-radius:12px;font-weight:700}.set-btn.on{background:var(--accent);border-color:var(--accent);color:#160a02}.set-btn:active{transform:scale(.94)}.notice.done{border-color:#1f5a3a}.rest-spacer{height:80px}.rest-panel{background:var(--panel-2);border-top:2px solid var(--accent);z-index:9;justify-content:space-between;align-items:center;gap:12px;max-width:560px;margin:0 auto;padding:12px 16px;display:flex;position:fixed;bottom:64px;left:0;right:0}.rest-panel.over{border-top-color:#6fe3a0}.clock{font-variant-numeric:tabular-nums;margin-left:8px;font-size:28px}.editor{gap:10px;margin-top:10px;display:grid}.editor .field{margin:0}input[type=text],input[type=number],input:not([type]),textarea{background:var(--panel);width:100%;min-width:0;color:var(--text);border:1px solid var(--line);font:inherit;border-radius:10px;padding:10px;font-size:15px}textarea{resize:vertical}.row2{grid-template-columns:1fr 1fr;gap:8px;display:grid}.row3{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.editor-day,.editor-ex{gap:8px;display:grid}.editor-ex{background:var(--panel-2)}.article{align-items:flex-start;gap:12px;display:flex}.article h3{margin:0 0 2px}.article p{margin:0}.article-icon{font-size:26px;line-height:1}.article-block{margin-top:10px}.bullets{gap:8px;margin-top:6px;padding-left:20px;list-style:outside;display:grid}.tab{padding:10px 2px;font-size:12px}.insight{background:linear-gradient(135deg, #241707, var(--panel) 70%);border-color:#6b4a0c}.insights{margin-top:12px}.entry-form,.calc{gap:10px;margin-top:14px;display:grid}.entry-form h3,.calc h3,.calc p{margin:0}.seg{gap:6px;display:flex}.seg-btn{background:var(--panel-2);color:var(--muted);border:1px solid var(--line);font:inherit;border-radius:10px;flex:1;padding:9px 4px;font-size:13px;font-weight:600}.seg-btn.active{color:var(--text);border-color:var(--accent)}.progress-row,.history-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.progress-row p,.history-row p{margin:2px 0 0}.spark{color:var(--accent);flex:none}.up{color:#6fe3a0;font-weight:700}.down{color:var(--danger);font-weight:700}.percent-table{text-align:center;grid-template-columns:repeat(5,1fr);gap:6px;font-size:13px;display:grid}.percent-table li{background:var(--panel-2);border-radius:10px;padding:6px 2px;display:grid}.percent-table span{color:var(--muted);font-size:12px}input[type=date]{box-sizing:border-box;min-width:0;max-width:100%}.club-status{gap:4px;margin-top:12px;display:grid}.club-status p{margin:0}.club-status.active{border-color:#1f5a3a}.plans{margin-top:14px}.plan{justify-content:space-between;align-items:center;gap:10px;display:flex}.plan p{margin:2px 0 0}.plan .badge{margin-left:8px}.admin-payments{gap:12px;margin-top:22px;display:grid}.admin-payments h2,.admin-payments h3{margin:0}.payment-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.payment-row p{margin:2px 0 0}.notice.ok{border-color:#1f5a3a}.picker{gap:8px;display:grid}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{background:var(--panel-2);color:var(--muted);border:1px solid var(--line);font:inherit;border-radius:999px;padding:6px 12px;font-size:13px}.chip.active{color:var(--text);border-color:var(--accent)}.pick-list{flex-wrap:wrap;gap:6px;max-height:180px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.pick-item{background:var(--panel-2);color:var(--text);border:1px solid var(--line);font:inherit;text-align:left;border-radius:10px;padding:8px 10px;font-size:14px}.pick-item.active{border-color:var(--accent)}.chosen{color:#6fe3a0;margin:0;font-weight:600}.target{margin:8px 0 0}.quick-log{flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px;display:flex}.quick-log input{width:80px;min-width:0}.chat{gap:8px;margin:14px 0 0;padding:0;list-style:none;display:grid}.bubble{white-space:pre-wrap;overflow-wrap:anywhere;border-radius:14px;max-width:88%;padding:10px 12px;line-height:1.4}.bubble.user{background:#3a1a0c;border:1px solid #6b3a1c;justify-self:end}.bubble.assistant{background:var(--panel);border:1px solid var(--line);justify-self:start}.coach-input{gap:8px;margin-top:14px;display:grid}.coach-input textarea,.admin-payments textarea{box-sizing:border-box;background:var(--panel-2);width:100%;color:var(--text);border:1px solid var(--line);font:inherit;resize:vertical;border-radius:10px;padding:10px}.coach-send{justify-content:space-between;align-items:center;gap:10px;display:flex}.btn.primary{animation:5s ease-in-out infinite btn-glow}@keyframes btn-glow{0%,to{box-shadow:0 0 #ff5a1f00}50%{box-shadow:0 0 18px 2px #ff8c288c}}.btn.primary:disabled{animation:none}.coach-banner{box-sizing:border-box;width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:linear-gradient(var(--panel), var(--panel)) padding-box, linear-gradient(120deg, #ff5a1f, #ffb020, #ff3d81, #ff5a1f) border-box;background-size:100% 100%,300% 300%;border:1px solid #0000;border-radius:16px;align-items:center;gap:12px;margin-top:14px;padding:14px;animation:12s linear infinite coach-border,7.5s ease-in-out infinite coach-pulse;display:flex}.coach-banner:active{transform:scale(.98)}.coach-icon{font-size:30px;line-height:1;animation:4s ease-in-out infinite coach-bob}.coach-banner-text{flex:1;gap:2px;display:grid}.coach-banner-text b{font-size:16px}.coach-banner-text span{color:var(--muted);font-size:13px}.coach-go{color:var(--accent-2);font-size:22px;animation:3.2s ease-in-out infinite coach-nudge}@keyframes coach-border{0%{background-position:0 0,0%}to{background-position:0 0,300%}}@keyframes coach-pulse{0%,to{box-shadow:0 0 #ff5a1f00}50%{box-shadow:0 0 22px 3px #ff782880}}@keyframes coach-bob{0%,to{transform:translateY(0)rotate(-6deg)}50%{transform:translateY(-3px)rotate(6deg)}}@keyframes coach-nudge{0%,to{transform:translate(0)}50%{transform:translate(5px)}}.btn.primary:disabled:after{display:none}.glow{animation:12s linear infinite coach-border,7.5s ease-in-out infinite glow-pulse;animation-delay:calc(var(--i,0) * -2s), calc(var(--i,0) * 1.5s - 7.5s);background-repeat:no-repeat;background-size:100% 100%,300% 300%;border:1px solid #0000}.glow-0{--g1:#ff5a1f;--g2:#ffb020;--g3:#ff3d81;--gs:#ff782873}.glow-1{--g1:#2f7bff;--g2:#22d3ee;--g3:#7c5cff;--gs:#3c96ff73}.glow-2{--g1:#22c55e;--g2:#a3e635;--g3:#14b8a6;--gs:#3cc86e66}.glow-3{--g1:#d946ef;--g2:#8b5cf6;--g3:#fb7185;--gs:#c85af073}.glow-4{--g1:#f59e0b;--g2:#fde047;--g3:#f97316;--gs:#fabe2873}.glow{background-image:linear-gradient(var(--panel), var(--panel)), linear-gradient(120deg, var(--g1), var(--g2), var(--g3), var(--g1));background-origin:padding-box,border-box;background-clip:padding-box,border-box}@keyframes glow-pulse{0%,to{box-shadow:0 0 #0000}50%{box-shadow:0 0 22px 2px var(--gs)}}.source-row{gap:2px;display:grid}.link-out{word-break:break-all;color:var(--accent-2);-webkit-user-select:all;user-select:all;margin:0;font-size:14px}.admin-payments select,.admin-payments input{box-sizing:border-box;width:100%}.community{gap:8px;margin-top:14px;display:grid}.vietqr{gap:10px;margin-top:14px;display:grid}.vqr-plans{flex-wrap:wrap;gap:8px;display:flex}.vqr-img{background:#fff;border-radius:12px;width:100%;max-width:320px;margin:0 auto}.vqr-details{grid-template-columns:auto 1fr;gap:4px 12px;margin:0;display:grid}.vqr-details dt{color:var(--muted)}.vqr-details dd{word-break:break-all;margin:0;font-weight:700}.row-actions{flex-wrap:wrap;gap:6px;display:flex}.rating{gap:8px;margin-top:14px;display:grid}.progress-bar{background:var(--line);border-radius:6px;height:10px;overflow:hidden}.progress-bar span{background:var(--accent);border-radius:6px;height:100%;transition:width .6s;display:block}.rating-list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.rating-list li{border-radius:8px;grid-template-columns:28px 1fr auto;gap:8px;padding:6px 8px;display:grid}.rating-list li.me{background:var(--panel);border:1px solid var(--accent)}
