:root{
  --bg:#0a0c0a;--bg2:#0c0f0c;--card:rgba(20,24,20,.85);--line:rgba(92,122,92,.28);--line2:rgba(143,179,143,.4);
  --green:#5c7a5c;--acc:#8fb38f;--txt:#e0e2e0;--mut:#9aa49a;--dim:#6c776c;--cta:#5fbf4a;--cta-ink:#07110a;--err:#e08a7a;
  --f-t:'Barlow Condensed','Bahnschrift','Roboto Condensed','Arial Narrow','Helvetica Neue',sans-serif;--f-b:'Barlow',system-ui,-apple-system,'Segoe UI',sans-serif;
  --f-m:'JetBrains Mono',ui-monospace,Consolas,monospace;--f-s:'Saira Stencil One','Stencil','Bahnschrift','Arial Narrow',sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html{background:#050605}
body{font-family:var(--f-b);color:var(--txt);background:#050605;min-height:100vh;min-height:100dvh;-webkit-font-smoothing:antialiased}
button,input{font:inherit;color:inherit}
#app{position:relative;width:100%;max-width:430px;min-height:100vh;min-height:100dvh;margin:0 auto;overflow-x:hidden;
  background:radial-gradient(120% 60% at 50% -10%,rgba(92,122,92,.28),transparent 60%),var(--bg);
  box-shadow:0 0 0 1px rgba(92,122,92,.12),0 0 80px rgba(0,0,0,.6)}
.screen{min-height:100vh;min-height:100dvh;padding-bottom:96px}
.screen.notab{padding-bottom:28px}
h1,h2{font-family:var(--f-t);font-weight:800;text-transform:uppercase;color:#fff;letter-spacing:.01em}
.pad{padding:0 20px}
.mono{font-family:var(--f-m)}
.small{font-size:13px;color:var(--mut)}
.eyebrow{font-family:var(--f-m);font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--mut)}
.top{display:flex;align-items:center;gap:10px;padding:22px 20px 8px}
.emb{width:34px;height:34px;flex:none}
.logo{font-family:var(--f-s);font-size:17px;letter-spacing:.06em;color:#fff;white-space:nowrap}
.demo{margin-left:auto;font:700 11px var(--f-m);color:var(--acc);border:1px solid var(--line2);border-radius:99px;padding:3px 9px}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px}
.btn{display:block;width:100%;border:0;border-radius:14px;padding:17px;font:800 20px var(--f-t);letter-spacing:.08em;text-transform:uppercase;text-align:center;
  background:var(--cta);color:var(--cta-ink);box-shadow:0 0 28px rgba(95,191,74,.35);cursor:pointer;transition:transform .08s,filter .15s}
.btn:active{transform:scale(.985)}
.btn:hover{filter:brightness(1.06)}
.btn:disabled{opacity:.55;cursor:default}
.btn.sec{background:transparent;color:var(--acc);border:1px solid var(--line2);box-shadow:none}
.btn.slim{padding:13px;font-size:17px}
.btn:focus-visible,.tab button:focus-visible,.cell:focus-visible,.link:focus-visible,input:focus-visible,.x:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.link{background:none;border:0;color:var(--acc);text-decoration:underline;cursor:pointer;font-size:13px}
.tab{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:430px;height:68px;display:flex;border-top:1px solid rgba(92,122,92,.25);background:var(--bg2);z-index:5}
.tab button{flex:1;background:none;border:0;border-top:2px solid transparent;font:600 14px var(--f-t);letter-spacing:.1em;text-transform:uppercase;color:var(--dim);cursor:pointer;margin-top:-1px}
.tab button.on{color:var(--acc);border-top-color:var(--acc)}
.plate{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;flex:none;border-radius:10px;background:#1b221b;border:1px solid var(--green);font:800 24px var(--f-s);color:var(--txt)}
.bar{height:8px;border-radius:9px;background:#1c241c;margin-top:9px;overflow:hidden}
.bar i{display:block;height:100%;background:linear-gradient(90deg,#5c7a5c,#8fb38f)}

/* login */
.login{padding:56px 20px 28px}
.login .emb{width:56px;height:56px}
.login .logo{font-size:22px}
.field{display:block;margin-top:26px}
.field span{display:block;font:600 12px var(--f-m);letter-spacing:.04em;text-transform:uppercase;color:var(--mut);margin-bottom:8px}
.field input{width:100%;background:#101410;border:1px solid var(--line2);border-radius:12px;padding:15px 14px;font-size:17px}
.field input::placeholder{color:#55605a}
.err{margin-top:12px;color:var(--err);font-size:14px;line-height:1.4;min-height:0}

/* nivel */
.lv{display:flex;align-items:center;gap:14px;padding:16px;cursor:pointer;width:100%;text-align:left}
.lv.sel{border-color:var(--acc);box-shadow:0 0 22px rgba(143,179,143,.3);background:rgba(34,46,34,.9)}
.rad{width:22px;height:22px;border-radius:50%;border:2px solid #4a574a;flex:none}
.sel .rad{border-color:var(--acc);background:radial-gradient(var(--acc) 45%,transparent 50%)}
.lvn{font:800 22px var(--f-t);text-transform:uppercase;color:#fff}

/* inicio */
.grid7{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;margin-top:22px}
.cell{aspect-ratio:1;border-radius:8px;border:1px solid var(--line);background:#101410;display:flex;align-items:center;justify-content:center;font:600 14px var(--f-m);color:var(--dim);cursor:pointer;padding:0}
.cell.done{background:var(--green);border-color:var(--acc);color:#fff}
.cell.hoje{background:var(--green);color:#fff;border-color:var(--acc);box-shadow:0 0 16px rgba(143,179,143,.55)}
.cell.lock{cursor:default}
.hero{font-size:64px;line-height:.95;margin-top:6px}
.hero span{color:var(--acc);display:block}

/* lista del dia */
.row{display:flex;gap:12px;padding:16px;align-items:flex-start}
.min{font:700 15px var(--f-m);color:var(--acc);border:1px solid var(--line2);border-radius:99px;padding:4px 10px;white-space:nowrap}
.exl{display:grid;gap:9px;margin-top:12px}
.er{display:flex;align-items:center;gap:12px}
.thumb{flex:none;width:80px;height:54px;border-radius:9px;border:1px solid var(--line);background:#111611 center/cover no-repeat;overflow:hidden;position:relative}
.er b{display:block;font:700 15px var(--f-b);color:#fff}
.er span{font-size:12px;color:var(--mut)}
.tot{display:flex;justify-content:space-between;margin-top:14px;padding:0 4px;font:600 15px var(--f-m);color:var(--mut)}
.tot b{color:#fff}
.chip{display:inline-block;font:700 11px var(--f-m);color:var(--acc);border:1px solid var(--line2);border-radius:99px;padding:3px 9px;margin-top:10px}

/* video / placeholder */
.vid{position:relative;margin-top:14px;aspect-ratio:16/10;border-radius:16px;border:1px solid rgba(92,122,92,.3);background:#111611 center/cover no-repeat;overflow:hidden}
.vid video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .3s}
.vid video.ok{opacity:1}
.vid::after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 55%,rgba(10,12,10,.55));pointer-events:none}
.ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:
  repeating-linear-gradient(135deg,rgba(92,122,92,.07) 0 10px,transparent 10px 22px),radial-gradient(70% 90% at 50% 40%,rgba(92,122,92,.22),transparent 70%),#0f130f}
.ph svg{width:30%;max-width:120px;opacity:.9}
.play{position:absolute;left:50%;top:50%;z-index:2;width:54px;height:54px;margin:-27px 0 0 -27px;border-radius:50%;background:rgba(10,12,10,.62);border:1.5px solid #cfe3cf;color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;padding-left:4px;pointer-events:none}
.thumb .ph svg{width:46%}

/* ejecucion */
.runtop{display:flex;align-items:center;gap:12px;padding:16px 20px 4px}
.x{background:none;border:1px solid var(--line);border-radius:10px;width:38px;height:38px;flex:none;color:var(--mut);font-size:18px;cursor:pointer}
.segs{flex:1;display:flex;gap:3px}
.segs i{flex:1;height:4px;border-radius:3px;background:#1c241c}
.segs i.on{background:var(--acc)}
.segs i.cur{background:var(--cta)}
.timer{font-family:var(--f-m);font-weight:700;font-size:92px;line-height:1;text-align:center;color:#fff;letter-spacing:-.02em;margin-top:14px;text-shadow:0 0 30px rgba(95,191,74,.45)}
.timer.rest{color:var(--acc);text-shadow:0 0 30px rgba(143,179,143,.35)}
.timer.reps{font-size:84px}
.timer small{display:block;font:600 14px var(--f-m);letter-spacing:.06em;text-transform:uppercase;color:var(--mut);text-shadow:none;margin-top:6px}
.cue{text-align:center;margin:12px 6px 0;font-size:14px;color:var(--mut);line-height:1.45}
.setline{text-align:center;font-size:13px;color:var(--mut);margin-top:4px}
.setline b{color:#fff}
.nextl{text-align:center;margin-top:8px;font-size:15px;color:var(--txt)}
.ctl{display:grid;gap:10px;margin-top:16px}
.ctl.two{grid-template-columns:1fr 1fr}
.flash{animation:fl .5s}
@keyframes fl{0%{background:rgba(95,191,74,.25)}100%{background:transparent}}

/* concluido */
.chk{width:92px;height:92px;margin:0 auto;border-radius:50%;border:3px solid var(--cta);color:var(--cta);font-size:52px;line-height:86px;box-shadow:0 0 40px rgba(95,191,74,.4);text-align:center}

/* mapa */
.mg{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:20px}
.m{height:44px;border-radius:10px;border:1px solid var(--line);background:#101410;display:flex;align-items:center;justify-content:center;font:600 15px var(--f-m);color:var(--dim);cursor:pointer;padding:0}
.m.done{background:var(--green);color:#fff;border-color:var(--acc);box-shadow:0 0 14px rgba(143,179,143,.5)}
.m.next{border-color:var(--acc);color:var(--acc)}
.m.lock{cursor:default}
.leg{display:flex;gap:16px;margin-top:14px;font-size:12px;color:var(--mut);flex-wrap:wrap}
.d{display:inline-block;width:10px;height:10px;border-radius:3px;border:1px solid var(--green);margin-right:5px}
.d.done{background:var(--green)}
.d.next{border-color:var(--acc)}
.rk{display:flex;align-items:center;gap:14px;padding:14px 16px}
.rk.off{opacity:.5}
.rk.now{border-color:var(--acc);box-shadow:0 0 18px rgba(143,179,143,.25)}
.rk b{display:block;font:800 20px var(--f-t);text-transform:uppercase;color:#fff;letter-spacing:.02em}
.sw{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px}
.stat{display:flex;justify-content:space-between;padding:10px 4px;border-bottom:1px solid rgba(92,122,92,.15);font-size:14px}
.stat b{font-family:var(--f-m);color:#fff}
.sect{margin-top:26px}
.toast{position:fixed;left:50%;bottom:92px;transform:translateX(-50%);background:#1b221b;border:1px solid var(--line2);color:#fff;padding:10px 16px;border-radius:12px;font-size:14px;z-index:20;max-width:88%;text-align:center}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;padding:24px;z-index:30}
.modal .box{background:#121712;border:1px solid var(--line2);border-radius:18px;padding:22px;max-width:360px;width:100%}
.modal h2{font-size:28px}
.modal p{margin:8px 0 18px;color:var(--mut);font-size:15px;line-height:1.45}
.splash{display:flex;align-items:center;justify-content:center;min-height:100vh}
.splash .emb{width:64px;height:64px;opacity:.7}
@media(min-width:431px){#app{margin-top:0}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.mg4{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:20px}
.mg4 .m{height:44px}
