:root {
  --bg: #0E1013;
  --card: #171A1F;
  --field: #20242B;
  --line: #2A2F37;
  --line2: #3A414C;
  --text: #F4F5F7;
  --muted: #A3A9B3;
  --accent: #C8F03C;
  --warn: #FFB454;
  --danger: #FF7A70;
}
* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; background: var(--bg); color: var(--text); font-family: 'Barlow', system-ui, -apple-system, 'Segoe UI', sans-serif; -webkit-text-size-adjust: 100%; }
body { min-height: 100vh; min-height: 100dvh; }
#app { max-width: 480px; margin: 0 auto; min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; }
noscript { display: block; padding: 24px; }

.screen { flex: 1; display: flex; flex-direction: column; gap: 18px; padding: calc(16px + env(safe-area-inset-top)) 24px calc(32px + env(safe-area-inset-bottom)); }
.screen.center { padding-top: calc(40px + env(safe-area-inset-top)); gap: 28px; }
.hero { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px; text-align: center; }
.logo { width: 104px; height: 104px; border-radius: 28px; overflow: hidden; display: flex; align-items: center; justify-content: center; box-shadow: 0 0 0 1px rgba(200,240,60,.25), 0 10px 40px rgba(200,240,60,.18); }
.logo img { display: block; width: 100%; height: 100%; }
.brand { font-family: 'Barlow Condensed', sans-serif; font-size: 44px; line-height: 1; font-weight: 700; letter-spacing: .5px; }
.brand span { color: var(--accent); }
.lead { font-size: 17px; line-height: 1.4; color: var(--muted); }
.stack { display: flex; flex-direction: column; gap: 12px; }
.kicker { font-size: 13px; font-weight: 600; letter-spacing: .12em; color: var(--accent); }
.kicker.muted { color: var(--muted); font-size: 12px; text-align: center; }
h1 { margin: 0; font-family: 'Barlow Condensed', sans-serif; font-size: 44px; line-height: 1; font-weight: 700; text-transform: uppercase; }
.head { display: flex; flex-direction: column; gap: 6px; }
.sub { font-size: 16px; line-height: 1.4; color: var(--muted); }

label.f { display: flex; flex-direction: column; gap: 6px; font-size: 14px; color: var(--muted); }
input[type=text], input[type=email], input[type=password], input[type=tel] {
  width: 100%; height: 52px; padding: 0 14px; border-radius: 10px; border: 1px solid var(--line); background: var(--field); color: var(--text); font-family: inherit; font-size: 17px;
}
input::placeholder { color: #8B929D; }
input:focus { outline: 2px solid var(--accent); outline-offset: 1px; }
button:focus-visible, a:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

button { font-family: inherit; cursor: pointer; }
button:disabled { opacity: .55; cursor: default; }
.btn { min-height: 56px; border: none; border-radius: 14px; background: var(--accent); color: var(--bg); font-size: 17px; font-weight: 600; }
.btn.big { min-height: 60px; font-size: 18px; }
.btn.ghost { background: transparent; color: var(--text); border: 1.5px solid var(--accent); }
.btn.line { background: transparent; color: var(--text); border: 1px solid var(--line2); }
.link { min-height: 44px; padding: 0; border: none; background: transparent; color: var(--text); font-size: 15px; font-weight: 600; text-decoration: underline; }
.link.small { align-self: flex-start; font-size: 14px; }
.back { align-self: flex-start; display: flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 12px 0 0; border: none; background: transparent; color: var(--text); font-size: 16px; font-weight: 500; }

.card { display: flex; flex-direction: column; gap: 8px; padding: 16px; border-radius: 14px; background: var(--card); border: 1px solid var(--line); }
.card h2 { margin: 0; font-size: 16px; font-weight: 600; }
.card p { margin: 0; font-size: 14px; line-height: 1.4; color: var(--muted); }
.rules { display: flex; flex-direction: column; gap: 6px; padding: 12px 14px; border-radius: 12px; background: var(--card); border: 1px solid var(--line); }
.rule { display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--muted); }
.rule.ok { color: var(--accent); }
.rule b { width: 18px; text-align: center; }
.err { font-size: 15px; font-weight: 600; color: var(--warn); }
.ok-msg { font-size: 15px; font-weight: 600; color: var(--accent); }

.check { display: flex; align-items: flex-start; gap: 12px; min-height: 44px; padding: 0; border: none; background: transparent; color: var(--text); text-align: left; }
.box { flex-shrink: 0; width: 24px; height: 24px; border-radius: 6px; border: 2px solid var(--line2); display: flex; align-items: center; justify-content: center; font-size: 15px; font-weight: 700; color: var(--bg); }
.check[aria-checked=true] .box { background: var(--accent); border-color: var(--accent); }
.check span.t { font-size: 14px; line-height: 1.4; color: var(--muted); }

.badge { width: 72px; height: 72px; border-radius: 36px; background: var(--accent); display: flex; align-items: center; justify-content: center; }
.badge.warn { background: var(--warn); }
.title2 { font-family: 'Barlow Condensed', sans-serif; font-size: 36px; line-height: 1.05; font-weight: 700; text-transform: uppercase; }
.row { display: flex; justify-content: space-between; gap: 12px; font-size: 14px; }
.row span:first-child { color: var(--muted); }
.row span:last-child { font-weight: 600; text-align: right; word-break: break-word; }
.spinner { width: 28px; height: 28px; border-radius: 50%; border: 3px solid var(--line2); border-top-color: var(--accent); animation: spin .8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .spinner { animation: none; } }

/* Etapa 2: alunos */
.stu-list{display:flex;flex-direction:column;gap:10px}
.stu{background:#171A20;border:1px solid #262B33;border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:10px}
.stu-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.stu-name{font-weight:600;font-size:16px}
.stu-mail{font-size:13px;opacity:.65;word-break:break-all}
.stu-actions{display:flex;gap:8px;flex-wrap:wrap}
.mini{min-height:38px;padding:0 14px;border-radius:10px;border:1px solid #333A44;background:transparent;color:#F4F5F7;font:inherit;font-size:14px;display:inline-flex;align-items:center;text-decoration:none;cursor:pointer}
.tag{font-size:12px;padding:4px 8px;border-radius:999px;white-space:nowrap}
.tag.good{background:#12301F;color:#6BE39A}.tag.wait{background:#3A2F12;color:#F2C45A}.tag.bad{background:#3A1717;color:#FF8A8A}
.muted-note{opacity:.65;text-align:center;padding:16px}
.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:600;letter-spacing:.5px}
a.btn{display:flex;align-items:center;justify-content:center;text-decoration:none}

/* Etapa 3: treinos */
.ex{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-top:1px solid #262B33}
.ex-name{font-weight:600}.ex-sub{font-size:13px;opacity:.65}
.mini.danger{color:#FF8A8A;border-color:#4a2626}
.wbtn{width:100%;text-align:left;color:inherit;font:inherit;cursor:pointer}
.setrow{display:grid;grid-template-columns:24px 1fr 1fr;gap:8px;align-items:center}
.setrow input{min-height:44px;border-radius:10px;border:1px solid #333A44;background:#0E1013;color:#F4F5F7;font:inherit;font-size:16px;padding:0 10px;width:100%;box-sizing:border-box}
.setn{opacity:.6;font-weight:600;text-align:center}
.hint{grid-column:2 / 4;font-size:12px;opacity:.55;margin:-2px 0 4px}

/* Etapa 4 */
.rate{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.rate-b{min-height:56px;border-radius:14px;border:1px solid #333A44;background:#171A20;color:#F4F5F7;font:inherit;font-size:16px;font-weight:600;cursor:pointer}
.rate-b.on{background:var(--accent);color:#0E1013;border-color:var(--accent)}

/* Pacote: abas, filtro, medidas */
.tabs{position:sticky;bottom:0;display:flex;gap:6px;padding:10px 0 calc(10px + env(safe-area-inset-bottom));background:#0E1013;margin-top:auto}
.tab{flex:1;min-height:48px;border-radius:12px;border:1px solid #333A44;background:#171A20;color:#F4F5F7;font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.tab.on{background:var(--accent);color:#0E1013;border-color:var(--accent)}
.seg{display:flex;gap:8px}
.seg .segb{flex:0 0 auto;padding:0 20px}
.segb{flex:1;min-height:44px;border-radius:999px;border:1px solid #333A44;background:#171A20;color:#F4F5F7;font:inherit;font-size:15px;font-weight:600;cursor:pointer}
.segb.on{background:var(--accent);color:#0E1013;border-color:var(--accent)}
small.up{color:#6BE39A}small.dn{color:#F2C45A}
input[type=date]{min-height:48px}

/* Navegação do personal */
.screen.has-tabs{padding-bottom:0}
.ptabs{position:sticky;bottom:0;margin:auto -24px 0;display:flex;background:#0E1013;border-top:1px solid #262B33;padding-bottom:env(safe-area-inset-bottom)}
.ptab{flex:1;min-height:64px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:none;background:transparent;color:#A3A9B3;font:inherit;font-size:11px;font-weight:600;cursor:pointer}
.ptab.on{color:var(--accent)}
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tile{background:#171A20;border:1px solid #262B33;border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:6px}
.tile-l{font-size:11px;font-weight:600;letter-spacing:.12em;color:#A3A9B3}
.tile-v{font-family:'Barlow Condensed',sans-serif;font-size:44px;line-height:1;font-weight:700}
.tile-v.g{color:#6BE39A}.tile-v.r{color:#FF8A8A}
.bar{height:8px;border-radius:4px;background:#20242B;overflow:hidden;margin:8px 0}
.bar>div{height:8px;background:var(--accent)}

/* Alinhamento com o protótipo */
.av{width:44px;height:44px;border-radius:50%;background:#20242B;color:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;flex-shrink:0}
.av.big{width:84px;height:84px;font-size:30px;border:3px solid var(--accent);font-family:'Barlow Condensed',sans-serif}
.grow{flex:1;min-width:0}
.row-s{flex-direction:row;align-items:center;gap:12px}
.stu.row-s{padding:12px 14px}
.row-main{display:flex;align-items:center;gap:12px;flex:1;min-width:0;background:transparent;border:none;color:inherit;font:inherit;text-align:left;cursor:pointer;padding:0}
.wa{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--accent);color:var(--accent);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.chev{background:transparent;border:none;padding:6px;cursor:pointer;display:flex}
.sec{font-size:13px;font-weight:600;letter-spacing:.12em;color:#A3A9B3;margin-top:4px}
.card.alert{border-color:#FFB454}
.alert-h{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;letter-spacing:.12em;color:#FFB454}
.arow{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;box-sizing:border-box;min-height:52px;padding:8px 12px;border:1px solid #2A2F37;border-radius:12px;background:#0E1013;color:inherit;font:inherit;text-align:left;cursor:pointer;margin-top:8px}
.note{font-size:13px;line-height:1.4;color:#A3A9B3;margin-top:8px}
.tile-v.o{color:#FFB454}
.fbcard{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;border-radius:14px;border:1.5px solid var(--accent);background:#171A20;color:inherit;font:inherit;text-align:left;cursor:pointer}
.fb-t{font-size:20px;font-weight:600;margin-top:4px}
.lrow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-radius:14px;background:#171A20;border:1px solid #262B33;color:inherit;font:inherit;text-align:left}
.pill-b{min-height:40px;padding:0 14px;border-radius:12px;border:1.5px solid var(--accent);color:var(--accent);font-weight:600;font-size:14px;display:inline-flex;align-items:center;text-decoration:none;white-space:nowrap}
.tag.orange{background:#3A2A10;color:#FFB454}.tag.gray{background:#262B33;color:#C3C8D0}
.folder{width:44px;height:44px;border-radius:12px;background:#20242B;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.mrow{display:flex;align-items:center;gap:12px;width:100%;padding:14px 4px;background:transparent;border:none;border-top:1px solid #262B33;color:inherit;font:inherit;text-align:left;cursor:pointer}
.card.menu{padding:6px 16px}.card.menu .mrow:first-child{border-top:none}
.mic{width:44px;height:44px;border-radius:50%;background:#20242B;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}
.chip{flex-shrink:0;min-height:44px;padding:0 16px;border-radius:12px;border:1px solid #333A44;background:#171A20;color:#F4F5F7;font:inherit;font-size:15px;font-weight:600;cursor:pointer}
.chip.on{background:var(--accent);color:#0E1013;border-color:var(--accent)}
.chip.add{border-style:dashed}
.linko{background:transparent;border:none;color:#FFB454;font:inherit;font-size:15px;font-weight:600;cursor:pointer;padding:6px 0}
.excard{background:#171A20;border:1px solid #262B33;border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:8px}
.badge-s{background:#20242B;color:var(--accent);border-radius:8px;padding:4px 10px;font-weight:700;font-size:14px;white-space:nowrap}
.big-o{font-size:26px;font-weight:700;margin:6px 0}.big-o.o{color:#FFB454}.big-o.g{color:var(--accent)}
.seg2{display:flex;background:#0E1013;border:1px solid #262B33;border-radius:12px;padding:4px;gap:4px;margin-top:10px}
.segb2{flex:1;min-height:44px;border:none;border-radius:9px;background:transparent;color:#F4F5F7;font:inherit;font-weight:600;cursor:pointer}
.segb2.on{background:var(--accent);color:#0E1013}
.cmp{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-top:1px solid #262B33}
.cmp-r{text-align:right;display:flex;flex-direction:column}
.cmp-r b{font-size:18px}
.card.alert .arow .stu-name{font-size:16px}

.screen:not(form) .head .kicker{color:#A3A9B3}
.stu-top .stu-mail{white-space:nowrap}

/* Lado do aluno */
.hi{display:flex;align-items:center;justify-content:space-between;gap:10px}
.chipx{display:flex;align-items:center;gap:6px;border:1px solid #333A44;background:#171A20;border-radius:999px;padding:6px 12px;font-size:14px;font-weight:600}
.today{border:1.5px solid var(--accent);border-radius:20px;background:#171A20;padding:18px;display:flex;flex-direction:column;gap:10px}
.today-t{font-family:'Barlow Condensed',sans-serif;font-size:44px;line-height:1;font-weight:700;text-transform:uppercase}
.today-s{color:#A3A9B3;font-size:16px}
.linku{background:transparent;border:none;color:#F4F5F7;text-decoration:underline;font:inherit;font-weight:600;font-size:15px;padding:10px;cursor:pointer}
.exrow{display:flex;align-items:center;gap:14px;background:#171A20;border:1px solid #262B33;border-radius:14px;padding:12px}
.exn{width:36px;height:36px;border-radius:50%;background:#20242B;color:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}
.exn.big{width:42px;height:42px;border:1px solid #333A44;background:transparent;color:#A3A9B3;font-size:18px}
.more{text-align:center;color:#A3A9B3;font-size:14px}
.days{display:flex;justify-content:space-between}
.day{display:flex;flex-direction:column;align-items:center;gap:6px}
.dc{width:34px;height:34px;border-radius:50%;border:1px solid #333A44;display:flex;align-items:center;justify-content:center;font-weight:700;color:#0E1013}
.dc.ok{background:var(--accent);border-color:var(--accent)}.dc.now{border-color:#F4F5F7}
.dl{font-size:12px;color:#A3A9B3;font-weight:600}
.btnlike{width:100%;text-align:left;color:inherit;font:inherit;cursor:pointer;border:1px solid #262B33}
.nexta{flex-direction:row;align-items:center;gap:12px}
.prog{display:flex;justify-content:space-between;color:#A3A9B3;font-size:14px}
.exh{display:flex;align-items:center;justify-content:space-between}
.exT{margin:0;font-family:'Barlow Condensed',sans-serif;font-size:46px;line-height:1;font-weight:700;text-transform:uppercase}
.shead,.srow{display:grid;grid-template-columns:42px 1fr 84px 84px;gap:8px;align-items:center}
.shead{font-size:11px;font-weight:600;letter-spacing:.1em;color:#A3A9B3}
.sn{font-size:22px;font-weight:700}.sp{color:#A3A9B3;font-size:14px}
.srow input{min-height:52px;border-radius:12px;border:1px solid #333A44;background:#171A20;color:#F4F5F7;font:inherit;font-size:18px;font-weight:600;text-align:center;width:100%;box-sizing:border-box}
.srow input::placeholder{color:#6B7280}
.tiles3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.tiles3 .tile{padding:12px}
.tile-v.l{color:var(--accent)}
.r-l{color:var(--accent);font-weight:700}.r-o{color:#FFB454;font-weight:700}.r-g{color:#A3A9B3;font-weight:700}
.bigw{font-family:'Barlow Condensed',sans-serif;font-size:56px;line-height:1;font-weight:700;margin:6px 0}
.empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:14px;padding:20px 0}
.folder.big{width:74px;height:74px;border-radius:20px}

.screen.has-tabs>:nth-last-child(2){margin-bottom:14px}

.obs{margin-top:6px;font-size:13px;line-height:1.35;color:var(--accent)}

/* Séries individuais */
.aset{background:#171A20;border:1px solid #262B33;border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:8px}
.aset-h{display:flex;justify-content:space-between;align-items:center}
.aset input{min-height:48px;border-radius:10px;border:1px solid #333A44;background:#0E1013;color:#F4F5F7;font:inherit;font-size:16px;padding:0 12px;width:100%;box-sizing:border-box}
.setl{font-size:14px;color:#F4F5F7;padding:4px 0;border-top:1px solid #262B33}
.obs2{display:block;color:var(--accent);font-size:13px;margin-top:2px}
.sblock{display:flex;flex-direction:column;gap:6px;background:#171A20;border:1px solid #262B33;border-radius:14px;padding:10px 12px}
.sline{display:grid;grid-template-columns:30px 1fr 78px 78px;gap:8px;align-items:center}
.smeta{font-size:13px;color:#A3A9B3;line-height:1.35}.smeta b{color:#F4F5F7;font-size:14px}
.sline input{min-height:48px;border-radius:12px;border:1px solid #333A44;background:#0E1013;color:#F4F5F7;font:inherit;font-size:18px;font-weight:600;text-align:center;width:100%;box-sizing:border-box}
.sline input::placeholder{color:#6B7280}
.shead{grid-template-columns:30px 1fr 78px 78px;padding:0 12px}

.btn.dangerb{background:transparent;border:1px solid #5a2a2a;color:#FF8A8A}

/* Dias da semana */
.dchips{display:flex;gap:6px;flex-wrap:wrap}
.dchip{flex:1;min-width:44px;min-height:44px;border-radius:10px;border:1px solid #333A44;background:#171A20;color:#F4F5F7;font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.dchip.on{background:var(--accent);color:#0E1013;border-color:var(--accent)}
.dc.plan{border-color:var(--accent);border-style:dashed}
.today.rest{border-color:#333A44}
.weekc{padding:6px 16px}
.wrow{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid #262B33;font-size:15px}
.wrow:first-child{border-top:none}.wrow.now{font-weight:700}
.wrow .wt{color:var(--accent);text-align:right}.wrow .wr{color:#6B7280}

.restbar{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#15181D;border:1px solid #262B33;border-radius:14px;padding:10px 14px}
.restbar .rt{font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--accent)}
.restbar .rt.idle{font-size:15px;font-weight:600;color:#A3A9B3}
.restbar .rt.done{font-size:15px;color:var(--accent)}

.fbcard:not(.new){border-color:#262B33}
.fbcard.new .fb-t{color:var(--accent)}

.selfbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:4px}
.mini.on{background:var(--accent);color:#0E1013;border-color:var(--accent);font-weight:700}

select[data-field],textarea[data-field]{width:100%;font:inherit;font-size:16px;color:var(--text);background:#15181D;border:1px solid #333A44;border-radius:12px;padding:12px}

.teamline{margin:-2px 0 10px;font-size:13px;font-weight:700;letter-spacing:.04em;color:var(--accent)}
