:root{
  --navy:#00344A;
  --navy-2:#02485F;
  --deep:#001820;
  --gold:#FCA11D;
  --gold-2:#FFC45A;
  --ice:#E8F6FA;
  --mist:rgba(232,246,250,.16);
  --ok:#3DDC97;
  --bad:#FF6B4A;
  --ink:#E8F6FA;
}

html,body.ep-trilha{
  background:var(--deep);
  color:var(--ice);
}

body.ep-trilha{
  background:
    radial-gradient(1200px 600px at 80% -10%, rgba(252,161,29,.14), transparent 55%),
    radial-gradient(800px 500px at -10% 110%, rgba(0,82,104,.55), transparent 50%),
    linear-gradient(180deg,#002433 0%, var(--deep) 42%, #00141C 100%);
  min-height:100vh;
}

body.ep-trilha::before{
  content:"";
  pointer-events:none;
  position:fixed;
  inset:0;
  background-image:linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px);
  background-size:48px 48px;
  mask-image:radial-gradient(circle at 50% 30%, #000 20%, transparent 75%);
  z-index:0;
}

body.ep-trilha .ep-shell-main{
  position:relative;
  z-index:1;
}

body.ep-trilha .ep-sidebar{
  background:linear-gradient(180deg,#00344A,#01212E);
  border-right:1px solid rgba(252,161,29,.18);
  box-shadow:inset -1px 0 0 rgba(255,255,255,.04);
}

body.ep-trilha .ep-sidebar-brand strong,
body.ep-trilha .ep-sidebar-label strong{color:#fff}
body.ep-trilha .ep-sidebar-label small{color:#9ad0de}
body.ep-trilha .ep-sidebar-link{color:#d7eef4}
body.ep-trilha .ep-sidebar-link.active{
  background:rgba(252,161,29,.16);
  color:var(--gold);
}

body.ep-trilha .ep-crumb{color:var(--ice)}
body.ep-trilha .ep-crumb a{color:var(--gold-2)}
body.ep-trilha .ep-crumb [aria-current="page"]{color:var(--ice)}
body.ep-trilha .ep-crumb-sep{color:rgba(232,246,250,.72)}

.trilha-logo{
  width:40px;height:40px;display:block;border-radius:50%;
  box-shadow:0 0 0 2px rgba(252,161,29,.45);
}
.trilha-fala img{
  width:56px;height:56px;border-radius:50%;
  box-shadow:0 0 0 3px rgba(252,161,29,.35), 0 10px 24px rgba(0,0,0,.35);
}

.trilha-page{
  max-width:880px;
  margin:0 auto;
  padding:8px 0 28px;
}

.ep-shell-main > .trilha-fala,
.trilha-fala{
  display:flex;gap:14px;align-items:flex-start;
  max-width:880px;margin:0 auto 18px;
  animation:sobe .45s ease;
}
.trilha-balao{
  background:linear-gradient(180deg, rgba(0,52,74,.82), rgba(0,28,40,.9));
  border:1px solid rgba(252,161,29,.28);
  border-radius:22px 22px 22px 8px;
  padding:14px 18px;
  box-shadow:0 16px 40px rgba(0,0,0,.28);
  font-weight:800;
  color:var(--ice);
}

.trilha-path{display:flex;flex-direction:column;position:relative}
.trilha-step{
  display:grid;grid-template-columns:56px 1fr;gap:14px;align-items:center;
  position:relative;padding:10px 0;
}
.trilha-step + .trilha-step:before{
  content:"";position:absolute;left:27px;top:-14px;width:2px;height:16px;
  background:linear-gradient(#FCA11D, rgba(252,161,29,.15));
}
.trilha-dot{
  width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-weight:900;color:#fff;background:#02485F;
  border:2px solid rgba(255,255,255,.12);
  box-shadow:0 0 20px rgba(0,52,74,.6);
}
.trilha-step.feita .trilha-dot{background:#146C54;border-color:var(--ok);color:#fff}
.trilha-step.atual .trilha-dot{
  background:var(--gold);color:var(--navy);border-color:#fff;
  animation:pulsa 1.4s ease-in-out infinite;
  box-shadow:0 0 24px rgba(252,161,29,.55);
}
.trilha-card{
  background:linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.03));
  border-radius:22px;padding:16px 18px;text-decoration:none;color:var(--ice);
  border:1px solid rgba(255,255,255,.1);display:block;
  backdrop-filter:blur(10px);
  transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.trilha-card:hover{transform:translateY(-2px);border-color:var(--gold)}
.trilha-step.atual .trilha-card{
  border-color:var(--gold);
  box-shadow:0 12px 32px rgba(252,161,29,.18);
}
.trilha-card small{display:block;color:#9ad0de;font-weight:700;margin-top:4px}

.trilha-btn{
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--gold);color:var(--navy);font-weight:900;text-decoration:none;
  border:0;border-radius:999px;padding:12px 18px;cursor:pointer;
  box-shadow:0 8px 22px rgba(252,161,29,.32);
}
.trilha-btn.ghost{
  background:transparent;border:1px solid rgba(252,161,29,.55);color:var(--gold);box-shadow:none;
}
.trilha-home-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:center;
  margin:0 0 18px;
}

.trilha-home-actions .trilha-btn{
  flex:0 0 auto;
}

.trilha-news{
  margin:18px 0 20px;
  padding:18px;
  border-radius:24px;
  background:linear-gradient(180deg,rgba(0,52,74,.82),rgba(0,20,28,.94));
  border:1px solid rgba(252,161,29,.2);
  box-shadow:0 16px 40px rgba(0,0,0,.24);
}

.trilha-config-card{
  margin:14px 0 18px;
  padding:18px;
  border-radius:24px;
  background:linear-gradient(180deg,rgba(0,52,74,.92),rgba(0,20,28,.98));
  border:1px solid rgba(252,161,29,.35);
  box-shadow:0 16px 40px rgba(0,0,0,.28);
}

.trilha-config-close{
  width:34px;
  height:34px;
  border:1px solid rgba(252,161,29,.35);
  border-radius:50%;
  background:transparent;
  color:var(--gold);
  font-size:22px;
  line-height:1;
}

.trilha-config-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:14px 0;
}

.trilha-config-grid label{
  display:grid;
  gap:6px;
}

.trilha-config-grid label > span,
.trilha-config-days > span{
  color:var(--gold);
  font-size:12px;
  font-weight:900;
}

.trilha-config-grid select,
.trilha-config-grid input{
  min-height:42px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:12px;
  padding:8px 10px;
  background:#01212E;
  color:#fff;
}

.trilha-config-days{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:7px;
}

.trilha-config-days > span{
  width:100%;
}

.trilha-config-days button{
  border:1px solid rgba(252,161,29,.4);
  border-radius:999px;
  padding:7px 11px;
  background:transparent;
  color:#9ad0de;
  font-weight:800;
}

.trilha-config-days button.on{
  background:var(--gold);
  color:var(--navy);
}

.trilha-config-help{
  color:#9ad0de;
  font-size:13px;
  margin:14px 0;
}

.trilha-news-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:14px;
  margin-bottom:12px;
}

.trilha-news-head small{
  display:block;
  color:var(--gold);
  font-size:11px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.trilha-news-head strong{
  display:block;
  color:#fff;
  font-size:18px;
  margin-top:3px;
}

.trilha-news-head > span{
  color:#9ad0de;
  font-size:12px;
  font-weight:800;
  white-space:nowrap;
}

.trilha-news-list{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}

.trilha-news-card{
  padding:14px;
  border-radius:18px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.12);
}

.trilha-news-meta{
  display:flex;
  justify-content:space-between;
  gap:8px;
  margin-bottom:8px;
  color:var(--gold);
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
}

.trilha-news-meta time{
  color:#9ad0de;
  text-transform:none;
}

.trilha-news-card > strong{
  display:block;
  color:#fff;
  line-height:1.3;
}

.trilha-news-card p{
  margin:8px 0 12px;
  color:#9ad0de;
  font-size:13px;
  line-height:1.45;
}

.trilha-news-card a{
  color:var(--gold);
  font-size:12px;
  font-weight:900;
  text-decoration:none;
}

.trilha-news-card a:hover{
  color:var(--gold-2);
  text-decoration:underline;
}

@media(max-width:780px){
  .trilha-news-list{
    grid-template-columns:1fr;
  }

  .trilha-news-head{
    flex-direction:column;
  }

  .trilha-config-grid{
    grid-template-columns:1fr;
  }
}
.trilha-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.trilha-chip{
  background:linear-gradient(180deg, rgba(0,52,74,.75), rgba(0,20,28,.86));
  border-radius:20px;padding:16px;border:1px solid rgba(255,255,255,.1);
  animation:sobe .5s ease both;
}
a.trilha-chip{
  display:block;text-decoration:none;color:inherit;cursor:pointer;
  transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
a.trilha-chip:hover{
  transform:translateY(-2px);border-color:var(--gold);
  box-shadow:0 12px 32px rgba(252,161,29,.18);
}
.trilha-chip strong{display:block;color:#fff}
.trilha-chip span{display:block;color:#9ad0de;font-size:13px;font-weight:700}
.trilha-chip .trilha-btn{margin-top:2px;display:inline-flex}

.duelo-timer{
  height:8px;background:rgba(255,255,255,.1);border-radius:999px;overflow:hidden;margin:12px 0 18px;
}
.duelo-timer i{
  display:block;height:100%;width:100%;background:linear-gradient(90deg,var(--gold),#ffd36a);
  transform-origin:left center;
  box-shadow:0 0 12px rgba(252,161,29,.6);
}
.duelo-timer.acabou i{background:var(--bad);box-shadow:none}
.duelo-cartas{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.duelo-carta{
  min-height:180px;border-radius:24px;border:2px solid rgba(255,255,255,.12);
  background:linear-gradient(180deg, rgba(0,52,74,.7), rgba(0,20,28,.88));
  padding:18px;font-weight:800;color:#fff;cursor:pointer;text-align:left;
  transition:transform .15s ease, border-color .15s;
}
.duelo-carta small{display:block;color:var(--gold);margin-bottom:8px;letter-spacing:.12em}
.duelo-carta:hover{transform:scale(1.02);border-color:var(--gold)}
.duelo-carta:active{transform:scale(0.96,1.04);transition-timing-function:cubic-bezier(.34,1.56,.64,1)}
.duelo-carta.certa{border-color:var(--ok);background:rgba(61,220,151,.16);transform:scale(1.04);transition:transform .18s cubic-bezier(.34,1.56,.64,1)}
.duelo-carta.errada{border-color:var(--bad);background:rgba(255,107,74,.14)}
.juice-flash-ok{box-shadow:inset 0 0 0 2px var(--ok), 0 0 28px rgba(61,220,151,.28)}
.juice-flash-bad{box-shadow:inset 0 0 0 2px var(--bad), 0 0 28px rgba(255,107,74,.28)}
.juice-urgente .duelo-timer i{animation:pulsa .45s ease-in-out infinite;background:var(--bad)}
.duelo-enunciado{
  background:linear-gradient(180deg, rgba(0,52,74,.8), rgba(0,20,28,.9));
  border-radius:22px;padding:18px;margin-bottom:16px;
  border:1px solid rgba(252,161,29,.22);color:#fff;font-weight:700;line-height:1.45;
}
.duelo-meta{display:flex;justify-content:space-between;font-weight:800;color:var(--gold)}
.radar-box{
  background:linear-gradient(180deg, rgba(0,52,74,.72), rgba(0,20,28,.9));
  border-radius:24px;padding:18px;border:1px solid rgba(255,255,255,.1);margin-bottom:16px;
}
.radar-leitura{
  margin:0 0 12px;display:flex;flex-wrap:wrap;align-items:center;gap:12px;
}
.radar-leitura p{margin:0;color:var(--gold);font-weight:800;font-size:15px;line-height:1.35;flex:1 1 220px}
.radar-corte{
  margin:8px 0 0;color:rgba(232,246,250,.62);font-weight:700;font-size:12px;text-align:center;
}
.radar-lendo{display:grid;gap:18px}
@media (min-width:880px){
  .radar-lendo{grid-template-columns:minmax(280px,1.1fr) minmax(240px,.9fr);align-items:center}
}
.radar-canvas{
  position:relative;width:100%;height:min(52vw,420px);min-height:280px;max-width:560px;margin:0 auto;
}
.radar-canvas canvas{display:block;width:100%!important;height:100%!important}
.radar-barras{display:flex;flex-direction:column;gap:10px}
.radar-barras small{
  color:rgba(232,246,250,.62);font-weight:800;letter-spacing:.08em;text-transform:uppercase;font-size:11px;
}
.radar-barra{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1.2fr) 44px auto;gap:10px;align-items:center}
.radar-treino{min-height:44px;padding:8px 12px;font-size:13px}
@media (max-width:640px){
  .radar-barra{
    grid-template-columns:minmax(0,1fr) 48px;
    grid-template-areas:"nome pct" "bar bar" "btn btn";
  }
  .radar-barra span{grid-area:nome}
  .radar-barra i{grid-area:bar}
  .radar-barra em{grid-area:pct}
  .radar-treino{grid-area:btn}
}
.radar-barra span{color:#E8F6FA;font-weight:700;font-size:13px;line-height:1.3}
.radar-barra i{display:block;height:10px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden}
.radar-barra b{display:block;height:100%;background:var(--gold);border-radius:999px}
.radar-barra em{font-style:normal;font-weight:900;font-size:13px;text-align:right}

/* Patch visual — todas as telas do aluno usam o mesmo shell da Trilha */
body.ep-trilha .ep-page{
  color:var(--ice);
}

body.ep-trilha .ep-page .ep-panel,
body.ep-trilha .ep-page .ep-card,
body.ep-trilha .ep-page .ep-stat,
body.ep-trilha .ep-page .ep-table-card{
  background:linear-gradient(180deg,rgba(0,52,74,.88),rgba(0,20,28,.94));
  border-color:rgba(252,161,29,.2);
  color:var(--ice);
  box-shadow:0 16px 40px rgba(0,0,0,.24);
}

body.ep-trilha .ep-page .ep-panel h2,
body.ep-trilha .ep-page .ep-panel h3,
body.ep-trilha .ep-page .ep-card h2,
body.ep-trilha .ep-page .ep-card h3,
body.ep-trilha .ep-page .ep-section-title h2,
body.ep-trilha .ep-page .ep-stat strong{
  color:#fff;
}

body.ep-trilha .ep-page .ep-panel p,
body.ep-trilha .ep-page .ep-card p,
body.ep-trilha .ep-page .ep-stat span,
body.ep-trilha .ep-page .ep-muted{
  color:#9ad0de;
}

body.ep-trilha .ep-page .ep-tag{
  background:rgba(255,255,255,.08);
  color:var(--gold);
  border:1px solid rgba(252,161,29,.22);
}

body.ep-trilha .ep-page .ep-empty{
  background:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.18);
  color:#9ad0de;
}

body.ep-trilha .ep-page input,
body.ep-trilha .ep-page select,
body.ep-trilha .ep-page textarea,
body.ep-trilha .ep-page .form-control{
  background:rgba(0,20,28,.78);
  border-color:rgba(255,255,255,.16);
  color:var(--ice);
}

body.ep-trilha .ep-page input::placeholder,
body.ep-trilha .ep-page textarea::placeholder{
  color:rgba(232,246,250,.5);
}

body.ep-trilha .ep-page input:focus,
body.ep-trilha .ep-page select:focus,
body.ep-trilha .ep-page textarea:focus,
body.ep-trilha .ep-page .form-control:focus{
  background:rgba(0,20,28,.92);
  border-color:var(--gold);
  color:#fff;
  box-shadow:0 0 0 3px rgba(252,161,29,.14);
}

body.ep-trilha .ep-page .ep-actions a.soft,
body.ep-trilha .ep-page .ep-btn-soft{
  background:transparent;
  border-color:rgba(252,161,29,.5);
  color:var(--gold);
}

body.ep-trilha .ep-page .ep-actions a.soft:hover,
body.ep-trilha .ep-page .ep-btn-soft:hover{
  background:rgba(252,161,29,.14);
  color:var(--gold-2);
}

body.ep-trilha .ep-page .ep-table-card table thead th{
  color:#9ad0de;
}

body.ep-trilha .ep-page .ep-table-card table tbody tr,
body.ep-trilha .ep-page .ep-table-card table tbody td{
  background:rgba(255,255,255,.04);
  border-color:rgba(255,255,255,.12) !important;
  color:var(--ice);
}

/* Nenhum card Bootstrap claro dentro da experiência do aluno */
body.ep-trilha .ep-shell-main .card,
body.ep-trilha .ep-shell-main .card-body,
body.ep-trilha .ep-shell-main .card-header,
body.ep-trilha .ep-shell-main .list-group-item{
  background:linear-gradient(180deg,rgba(0,52,74,.88),rgba(0,20,28,.94));
  border-color:rgba(252,161,29,.2);
  color:var(--ice);
}

body.ep-trilha .ep-shell-main .card h1,
body.ep-trilha .ep-shell-main .card h2,
body.ep-trilha .ep-shell-main .card h3,
body.ep-trilha .ep-shell-main .card h4,
body.ep-trilha .ep-shell-main .card h5,
body.ep-trilha .ep-shell-main .card strong{
  color:#fff;
}

body.ep-trilha .ep-shell-main .card .text-muted{
  color:#9ad0de !important;
}

body.ep-trilha .ep-shell-main .card .bg-white{
  background:rgba(255,255,255,.06) !important;
}

body.ep-trilha .ep-shell-main .card .bg-light{
  background:rgba(255,255,255,.08) !important;
  color:var(--gold) !important;
}
.radar-barra.fraca em{color:var(--gold)}
.radar-barra.meio em{color:#E8F6FA}
.radar-barra.firme em{color:var(--ok)}
.radar-barra.firme b{background:var(--ok)}
.radar-barra.meio b{background:#9ad0de}
.radar-disc{
  display:flex;gap:8px;margin:12px 0;overflow-x:auto;padding-bottom:6px;
  -webkit-overflow-scrolling:touch;
}
.radar-disc button{
  flex:0 0 auto;min-height:44px;
  border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.04);
  border-radius:999px;padding:8px 14px;font-weight:800;cursor:pointer;color:var(--ice);
}
.radar-disc button.on{background:var(--gold);color:var(--navy);border-color:var(--gold)}
.radar-rank summary{
  cursor:pointer;color:var(--gold);font-weight:800;list-style:none;
}
.radar-rank ol{margin:12px 0 0;font-weight:800;color:#E8F6FA}

.trilha-hint{margin-top:28px;font-weight:800;color:#9ad0de}
.gancho{
  background:linear-gradient(180deg, rgba(252,161,29,.16), rgba(0,52,74,.55));
  border:1px solid rgba(252,161,29,.45);
  border-radius:22px;padding:16px 18px;margin-bottom:18px;
  display:flex;flex-direction:column;align-items:flex-start;gap:10px;
}
.gancho small{color:var(--gold);font-weight:800;letter-spacing:.08em;text-transform:uppercase;font-size:11px}
.gancho strong{color:#fff;font-size:18px;line-height:1.3}
.sessao-fim{margin-top:8px}
.esteira-estudo{
  display:block;margin-top:12px;color:rgba(232,246,250,.72);font-weight:800;font-size:13px;
  font-style:normal;
}
a.trilha-chip:hover .esteira-estudo{color:var(--gold)}
.esteira-mais{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.sessao-fim .trilha-btn{margin-top:4px}

body.ep-aluno-shell .ep-shell-main,
body.ep-aluno-shell.ep-sidebar-collapsed .ep-shell-main{
  margin-left:0;
  padding:76px 24px 104px;
}
.hud-top{
  display:flex;
  position:fixed;top:0;left:0;right:0;z-index:1050;
  align-items:center;gap:10px;
  padding:10px 16px;
  background:linear-gradient(180deg, rgba(0,20,28,.96), rgba(0,20,28,.78));
  border-bottom:1px solid rgba(252,161,29,.2);
  backdrop-filter:blur(14px);
}
.hud-top img{width:36px;height:36px;border-radius:50%}
.hud-top strong{display:block;color:#fff;font-size:15px;line-height:1.1}
.hud-top small{color:var(--gold);font-weight:800;letter-spacing:.12em;text-transform:uppercase;font-size:10px}
.hud-more{position:relative;margin-left:auto}
.hud-more summary{
  display:grid;place-items:center;min-width:42px;min-height:42px;
  border:1px solid rgba(252,161,29,.3);border-radius:50%;
  color:var(--gold);font-weight:900;letter-spacing:2px;cursor:pointer;
  list-style:none;background:rgba(0,52,74,.88);
}
.hud-more summary::-webkit-details-marker{display:none}
.hud-more nav{
  position:absolute;top:48px;right:0;min-width:210px;padding:8px;
  background:rgba(0,20,28,.98);border:1px solid rgba(252,161,29,.28);
  border-radius:16px;box-shadow:0 18px 44px rgba(0,0,0,.5);
}
.hud-more a{
  display:block;padding:10px 12px;border-radius:10px;
  color:#d9f1f7;text-decoration:none;font-weight:750;font-size:13px;
}
.hud-more a:hover,.hud-more a:focus-visible{color:var(--gold);background:rgba(252,161,29,.12)}
.hud-more .hud-more-logout{color:#fecaca;border-top:1px solid rgba(255,255,255,.1);margin-top:4px}
.hud-dock{
  display:grid;grid-template-columns:repeat(5,1fr);
  position:fixed;left:50%;bottom:10px;z-index:1050;
  width:min(560px, calc(100% - 24px));transform:translateX(-50%);
  padding:8px 6px calc(8px + env(safe-area-inset-bottom));
  background:rgba(0,20,28,.92);border:1px solid rgba(252,161,29,.28);
  border-radius:22px;box-shadow:0 12px 40px rgba(0,0,0,.45);
  backdrop-filter:blur(16px);
}
.hud-dock a{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:3px;text-decoration:none;color:#9ad0de;font-weight:800;font-size:10px;
  padding:6px 2px;border-radius:14px;
}
.hud-dock a.on,.hud-dock a:hover{color:var(--gold);background:rgba(252,161,29,.12)}
.hud-dock i{font-style:normal;font-size:16px;line-height:1}
body.ep-aluno-shell .tutor-fab{bottom:96px}
body.ep-aluno-shell .tutor-painel{bottom:148px}

body.ep-trilha .form-select,
body.ep-trilha .form-control{
  background:#01212E;color:#fff;border-color:rgba(255,255,255,.16);
}

.trilha-balao{transition:opacity .2s ease}
.tela-enter-active,.tela-leave-active{transition:opacity .22s ease, transform .22s ease}
.tela-enter-from,.tela-leave-to{opacity:0;transform:translateY(14px)}
.duelo-stage{position:relative}
.duelo-stage.shake{animation:treme .4s ease}
.duelo-pop{
  position:absolute;right:8px;top:36px;z-index:2;
  font-weight:900;font-size:28px;color:var(--ok);
  animation:sobe-ponto .9s ease forwards;
  pointer-events:none;text-shadow:0 0 16px rgba(61,220,151,.6);
}
.duelo-feedback{font-weight:800;min-height:28px;margin-top:14px;color:var(--ice)}
.duelo-carta:disabled{cursor:default}
body.ep-game .trilha-page{min-height:52vh}

@keyframes sobe{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes pulsa{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
@keyframes treme{
  0%,100%{transform:translateX(0)}
  20%{transform:translateX(-8px)}
  40%{transform:translateX(8px)}
  60%{transform:translateX(-5px)}
  80%{transform:translateX(5px)}
}
@keyframes sobe-ponto{
  0%{opacity:0;transform:translateY(8px) scale(.8)}
  25%{opacity:1;transform:translateY(-6px) scale(1.15)}
  100%{opacity:0;transform:translateY(-28px) scale(1)}
}

@media(max-width:1100px){
  body.ep-aluno-shell .ep-shell-main,
  body.ep-aluno-shell.ep-sidebar-collapsed .ep-shell-main{
    margin-left:0;
    padding:72px 16px calc(92px + env(safe-area-inset-bottom));
  }
  .ep-shell-main > .trilha-fala{margin-bottom:14px}
  .hud-top{
    padding:10px 16px;
  }
  .hud-dock{
    left:12px;right:12px;width:auto;transform:none;
  }
}

@media(max-width:720px){
  .trilha-grid,.duelo-cartas{grid-template-columns:1fr}
  .duelo-carta{min-height:140px}
}

@media(min-width:1101px){
  body.ep-trilha .ep-shell-main{
    padding:96px 40px 48px;
  }
  body.ep-aluno-shell .ep-shell-main,
  body.ep-aluno-shell.ep-sidebar-collapsed .ep-shell-main{
    margin-left:0;
    padding-bottom:104px;
  }
  .ep-shell-main > .trilha-fala{
    max-width:880px;
  }
  .trilha-page{
    background:linear-gradient(180deg, rgba(0,52,74,.35), rgba(0,20,28,.2));
    border:1px solid rgba(255,255,255,.08);
    border-radius:32px;
    padding:28px 32px 36px;
    box-shadow:0 24px 60px rgba(0,0,0,.28);
  }
}

.tutor-fab{
  position:fixed;right:18px;bottom:18px;z-index:40;
  border:0;border-radius:999px;padding:12px 16px;
  background:#FCA11D;color:#001820;font-weight:800;cursor:pointer;
  box-shadow:0 10px 28px rgba(0,0,0,.35);
}
.tutor-painel{
  position:fixed;right:18px;bottom:70px;z-index:40;width:min(360px,calc(100vw - 24px));
  background:#001820;color:#E8F6FA;border:1px solid rgba(252,161,29,.35);
  border-radius:18px;padding:12px;box-shadow:0 18px 40px rgba(0,0,0,.4);
  display:flex;flex-direction:column;gap:8px;max-height:70vh;
}
.tutor-cabeca{display:flex;justify-content:space-between;align-items:center}
.tutor-fechar{background:transparent;border:0;color:#E8F6FA;font-size:22px;cursor:pointer}
.tutor-aviso{margin:0;font-size:12px;color:#FFC45A;background:rgba(252,161,29,.12);padding:8px;border-radius:10px}
.tutor-msgs{overflow:auto;min-height:140px;max-height:38vh;display:flex;flex-direction:column;gap:8px}
.tutor-bolha{padding:8px 10px;border-radius:12px;font-size:13px;line-height:1.4;white-space:pre-wrap}
.tutor-bolha.aluno{align-self:flex-end;background:#02485F}
.tutor-bolha.tutor{align-self:flex-start;background:rgba(232,246,250,.08)}
.tutor-form{display:flex;gap:6px}
.tutor-form input{flex:1;border-radius:10px;border:1px solid rgba(255,255,255,.15);background:#002433;color:#E8F6FA;padding:8px}
.tutor-form button,.tutor-link,.tutor-apontar{
  border:0;border-radius:10px;background:#FCA11D;color:#001820;font-weight:800;cursor:pointer;
}
.tutor-form button{padding:8px 10px}
.tutor-link{background:transparent;color:#FFC45A;text-align:left;padding:4px 0;font-size:12px}
.tutor-apontar{margin-top:10px;padding:6px 10px;font-size:12px}
.tutor-modal{
  position:fixed;inset:0;z-index:50;background:rgba(0,0,0,.45);
  display:flex;align-items:center;justify-content:center;padding:16px;
}
.tutor-modal[hidden],.tutor-painel[hidden],#tutor-root[hidden]{display:none !important}
.tutor-modal-caixa{
  width:min(440px,100%);background:#fff;color:#111827;border-radius:16px;padding:18px;
  display:flex;flex-direction:column;gap:10px;
}
.tutor-modal-caixa h3{margin:0}
.tutor-modal-caixa label{display:flex;flex-direction:column;gap:4px;font-size:13px}
.tutor-modal-caixa select,.tutor-modal-caixa textarea{
  border:1px solid #d1d5db;border-radius:10px;padding:8px;font:inherit;
}
.tutor-modal-acoes{display:flex;justify-content:flex-end;gap:8px}
.tutor-modal-acoes button{border:0;border-radius:10px;padding:8px 12px;font-weight:700;cursor:pointer}
.tutor-modal-acoes button[type="submit"]{background:#00344A;color:#fff}
.tutor-modal-ok{margin:0;color:#166534}
@media(max-width:720px){
  .tutor-fab{bottom:86px}
  .tutor-painel{bottom:138px}
}
