/* =====================================================================
   ÁREA DE MEMBROS — sistema visual v2
   Tema claro travado. Uma cor de acento. Leitura em primeiro lugar.
   Mobile-first: base = mobile, min-width para telas maiores.
   ===================================================================== */

/* ---------- FONTES (compartilhadas com a landing) ---------- */
@font-face{font-family:'Saira Semi Condensed';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/saira-600-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Saira Semi Condensed';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/saira-600-latinext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:'Saira Semi Condensed';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/saira-700-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Saira Semi Condensed';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/saira-700-latinext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:'Saira Semi Condensed';font-style:normal;font-weight:800;font-display:swap;src:url(../fonts/saira-800-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Saira Semi Condensed';font-style:normal;font-weight:800;font-display:swap;src:url(../fonts/saira-800-latinext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:'Archivo';font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/archivo-var-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Archivo';font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/archivo-var-latinext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:'Space Mono';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/spacemono-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Space Mono';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/spacemono-700-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Saira Fallback";src:local("Arial");size-adjust:75.6%;ascent-override:114%;descent-override:44%;line-gap-override:0%}
@font-face{font-family:"Archivo Fallback";src:local("Arial");size-adjust:99.2%;ascent-override:88%;descent-override:21%;line-gap-override:0%}
@font-face{font-family:"Space Mono Fallback";src:local("Courier New");size-adjust:102%;ascent-override:112%;descent-override:36%;line-gap-override:0%}

/* =====================================================================
   TOKENS
   Um tema só (claro). Um acento só (azul de engenharia, herdado da marca).
   Um raio só (10px em superfícies, 8px em controles).
   ===================================================================== */
:root{
  /* superfícies */
  --bg:#FCFCFB;            /* off-white levemente quente, nunca #fff puro */
  --surface:#FFFFFF;
  --surface-2:#F4F5F7;
  --surface-3:#ECEEF1;

  /* texto */
  --ink:#14181D;           /* off-black, nunca #000 */
  --ink-2:#4A525C;
  --ink-3:#646E7A;

  /* linhas */
  --line:#E3E6EA;
  --line-2:#CFD4DA;

  /* acento único */
  --accent:#1F6BB0;
  --accent-hover:#175490;
  --accent-soft:#EAF2FA;
  --accent-line:#BAD4EC;

  /* estados */
  --ok:#1E7A52;  --ok-soft:#E7F4ED;
  --warn:#8A5A08; --warn-soft:#FDF3E2;
  --danger:#A32B26; --danger-soft:#FBECEB;

  /* superfície escura (só para código e player) */
  --dark:#171B21;
  --dark-2:#20262E;
  --dark-ink:#DDE3EA;
  --dark-ink-2:#98A3B0;
  --dark-line:#2E3641;

  /* tipos */
  --display:"Saira Semi Condensed","Saira Fallback","Arial Narrow",system-ui,sans-serif;
  --body:"Archivo","Archivo Fallback","Segoe UI",system-ui,sans-serif;
  --mono:"Space Mono","Space Mono Fallback",ui-monospace,monospace;

  /* forma: um sistema só */
  --r:10px;      /* superfícies */
  --r-sm:8px;    /* controles */

  /* elevação: discreta e tingida, nunca preto puro */
  --lift:0 1px 2px rgba(20,24,29,.05), 0 2px 8px -4px rgba(20,24,29,.08);
  --lift-2:0 2px 4px rgba(20,24,29,.06), 0 12px 28px -12px rgba(20,24,29,.16);

  --shell:1120px;
  --read:68ch;
}

/* =====================================================================
   RESET
   ===================================================================== */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--body);
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img,video,svg,iframe{max-width:100%;display:block}
img{height:auto}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:2px}
button{font:inherit;color:inherit;margin:0}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
::selection{background:var(--accent-soft)}

h1,h2,h3,h4{font-family:var(--display);font-weight:700;color:var(--ink);margin:0 0 .4em;letter-spacing:-.015em}
h1{font-size:clamp(30px,7vw,46px);line-height:1.08;font-weight:800}
h2{font-size:clamp(23px,4.4vw,31px);line-height:1.15}
h3{font-size:clamp(19px,3vw,22px);line-height:1.25}
h4{font-size:17px;line-height:1.3}
p{margin:0 0 1.1em}
hr{border:0;border-top:1px solid var(--line);margin:40px 0}

.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* =====================================================================
   LAYOUT
   ===================================================================== */
.wrap{max-width:var(--shell);margin:0 auto;padding:0 20px}
.page{padding:28px 0 100px}
@media (min-width:900px){ .wrap{padding:0 40px} .page{padding:44px 0 130px} }

/* =====================================================================
   CASCA DE PLAYER DE CURSO
   Lateral fixa com o índice + conteúdo. No celular a lateral vira gaveta.
   ===================================================================== */
.app{display:block}
.app__main{min-width:0}

/* botão que abre o índice no celular */
.side-abrir{
  display:flex;align-items:center;gap:9px;
  margin:0 20px 18px;padding:0 14px;height:44px;
  background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-sm);
  color:var(--ink);font-weight:600;font-size:15px;cursor:pointer;
}
.side-abrir:hover{background:var(--surface-2)}
.side-abrir svg{width:18px;height:18px;color:var(--ink-3)}

.side-fundo{
  position:fixed;inset:0;z-index:70;background:rgba(20,24,29,.45);
  opacity:0;pointer-events:none;transition:opacity .2s ease;
}
body.side-aberta .side-fundo{opacity:1;pointer-events:auto}

.side{
  position:fixed;top:0;left:0;bottom:0;z-index:80;width:min(88vw,340px);
  background:var(--surface);border-right:1px solid var(--line);
  display:flex;flex-direction:column;
  transform:translateX(-100%);transition:transform .22s cubic-bezier(.16,1,.3,1);
}
body.side-aberta .side{transform:none}

.side__topo{padding:18px 18px 14px;border-bottom:1px solid var(--line)}
.side__prog{display:flex;align-items:center;gap:10px}
.side__prog .prog__bar{flex:1;height:7px;background:var(--surface-3);border-radius:99px;overflow:hidden}
.side__pct{font-size:13.5px;font-weight:600;color:var(--accent);font-variant-numeric:tabular-nums}
.side__meta{font-size:13.5px;color:var(--ink-3);margin:7px 0 0}

.side__busca{position:relative;margin:14px 0 0}
.side__busca svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--ink-3)}
.side__busca input{
  width:100%;height:40px;padding:0 12px 0 34px;font-size:15px;font-family:var(--body);
  background:var(--surface-2);border:1px solid transparent;border-radius:var(--r-sm);color:var(--ink);
}
.side__busca input:focus{background:var(--surface);border-color:var(--accent);outline:none}

.side__lista{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:8px 0 24px}
.side__sec{border-bottom:1px solid var(--line)}
.side__sum{
  list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:13px 18px;font-family:var(--display);font-weight:700;font-size:15px;color:var(--ink);
}
.side__sum::-webkit-details-marker{display:none}
.side__sum:hover{background:var(--surface-2)}
.side__sum-n{font-family:var(--body);font-weight:500;font-size:13px;color:var(--ink-3);font-variant-numeric:tabular-nums}
.side__ul{list-style:none;margin:0;padding:0 0 8px}

.side__item a{
  display:flex;gap:10px;align-items:flex-start;padding:9px 18px;color:var(--ink-2);
}
.side__item a:hover{background:var(--surface-2);text-decoration:none;color:var(--ink)}
.side__ic{
  flex:0 0 20px;height:20px;display:grid;place-items:center;margin-top:1px;
  color:var(--ink-3);
}
.side__ic svg{width:15px;height:15px}
.side__txt{min-width:0}
.side__g{display:block;font-size:11.5px;color:var(--ink-3);line-height:1.3}
.side__t{display:block;font-size:14px;line-height:1.35;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

.side__item.is-feita .side__ic{color:var(--ok)}
.side__item.is-feita .side__t{color:var(--ink-3)}
.side__item.is-bloq{opacity:.55}
.side__item.is-atual a{background:var(--accent-soft);color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}
.side__item.is-atual .side__ic,.side__item.is-atual .side__g{color:var(--accent)}
.side__item.is-atual .side__t{font-weight:600;color:var(--accent)}

.side__vazio{padding:20px 18px;color:var(--ink-3);font-size:14.5px}

.side__fechar{
  position:absolute;top:12px;right:12px;width:34px;height:34px;display:grid;place-items:center;
  background:var(--surface-2);border:0;border-radius:var(--r-sm);color:var(--ink-2);cursor:pointer;
}

/* --- celular/tablet: o botão do índice já orienta; menos espaço antes do título --- */
@media (max-width:1059px){
  .app__main .page{padding-top:12px}
  .app__main .crumb{margin-bottom:14px}
}

/* --- desktop: lateral fixa de verdade, sem gaveta --- */
@media (min-width:1060px){
  .app{display:grid;grid-template-columns:320px minmax(0,1fr);align-items:start}
  .side{
    position:sticky;top:64px;height:calc(100dvh - 64px);width:auto;
    transform:none;border-right:1px solid var(--line);z-index:1;
  }
  .side__fechar,.side-abrir,.side-fundo{display:none}
  .app__main .wrap{max-width:840px;margin:0;padding:0 40px}
  .app__main .page{padding-top:36px}
}

/* =====================================================================
   ANOTAÇÕES DA AULA
   ===================================================================== */
.notas{margin-top:48px;padding-top:28px;border-top:1px solid var(--line);max-width:var(--read)}
.notas h2{margin:0 0 4px;font-size:21px;border:0;padding:0}
.notas__ajuda{font-size:14px;color:var(--ink-3);margin:0 0 12px}
.notas textarea{
  width:100%;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-sm);
  color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.6;padding:12px 14px;resize:vertical;
}
.notas textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft)}
.notas__estado{font-size:13px;color:var(--ink-3);margin:6px 0 0;min-height:1.2em}

/* Coluna de conteúdo. Nada de texto esticado de ponta a ponta em tela larga. */
.col{max-width:860px}
.col h1{max-width:20ch}
.col > section{max-width:100%}

.stack>*+*{margin-top:16px}
.mt{margin-top:32px}
.mt-lg{margin-top:64px}
.center{text-align:center}
.muted{color:var(--ink-3)}
.hide{display:none!important}
.mono{font-family:var(--mono)}

/* =====================================================================
   TOPO
   Uma linha só, 64px, sem barra gigante de agência.
   ===================================================================== */
.top{
  position:sticky;top:0;z-index:60;
  background:rgba(252,252,251,.88);
  backdrop-filter:saturate(180%) blur(12px);
  border-bottom:1px solid var(--line);
}
.top__in{
  max-width:var(--shell);margin:0 auto;
  padding:0 20px;height:60px;
  display:flex;align-items:center;gap:14px;
}
@media (min-width:900px){ .top__in{padding:0 40px;height:64px} }

.brand{display:flex;align-items:center;gap:10px;color:var(--ink);font-family:var(--display);font-weight:700;font-size:16.5px;line-height:1.1}
.brand:hover{text-decoration:none}
.brand__mark{
  width:30px;height:30px;flex:0 0 30px;display:grid;place-items:center;
  background:var(--accent);color:#fff;border-radius:var(--r-sm);
}
.brand__mark svg{width:17px;height:17px}
.brand small{display:block;font-family:var(--body);font-weight:400;font-size:12px;color:var(--ink-3);letter-spacing:0;text-transform:none}
.top__spacer{flex:1}

.top__nav{display:none;gap:2px}
.top__nav a{
  font-family:var(--body);font-weight:500;font-size:15px;color:var(--ink-2);
  padding:7px 12px;border-radius:var(--r-sm);
}
.top__nav a:hover{background:var(--surface-2);color:var(--ink);text-decoration:none}
.top__nav a[aria-current="page"]{background:var(--accent-soft);color:var(--accent)}
@media (min-width:940px){ .top__nav{display:flex} }

.menu-btn{
  display:grid;place-items:center;width:40px;height:40px;
  background:transparent;border:1px solid var(--line-2);border-radius:var(--r-sm);
  cursor:pointer;color:var(--ink);
}
.menu-btn:hover{background:var(--surface-2)}
.menu-btn svg{width:19px;height:19px}
@media (min-width:940px){ .menu-btn{display:none} }

.drawer{display:none;background:var(--surface);border-bottom:1px solid var(--line)}
.drawer.is-open{display:block}
.drawer a{
  display:block;padding:14px 20px;color:var(--ink);font-weight:500;
  border-bottom:1px solid var(--line);
}
.drawer a:last-child{border-bottom:0}
.drawer a:hover{background:var(--surface-2);text-decoration:none}
@media (min-width:940px){ .drawer{display:none!important} }

/* =====================================================================
   TIPOGRAFIA DE APOIO
   ===================================================================== */
.lead{font-size:19px;line-height:1.55;color:var(--ink-2);max-width:var(--read);margin:0 0 1.2em}
@media (min-width:700px){ .lead{font-size:20px} }

/* rótulo pequeno. Usar com parcimônia: no máximo 1 a cada 3 seções. */
.eyebrow{
  display:block;font-family:var(--body);font-weight:600;font-size:13.5px;
  color:var(--accent);margin:0 0 8px;letter-spacing:0;text-transform:none;
}

.crumb{font-size:14px;color:var(--ink-3);margin:0 0 20px}
.crumb a{color:var(--ink-3)}
.crumb a:hover{color:var(--accent)}
.crumb span{margin:0 8px;color:var(--line-2)}

/* =====================================================================
   BOTÕES — um só sistema de forma
   ===================================================================== */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:var(--accent);color:#fff;
  font-family:var(--body);font-weight:600;font-size:16px;line-height:1;
  padding:0 20px;height:46px;min-width:0;white-space:nowrap;
  border:1px solid transparent;border-radius:var(--r-sm);cursor:pointer;
  transition:background .15s ease,transform .08s ease,box-shadow .15s ease;
}
.btn:hover{background:var(--accent-hover);color:#fff;text-decoration:none}
.btn:active{transform:translateY(1px)}
.btn svg{width:17px;height:17px;flex:0 0 17px}

.btn--ghost{background:var(--surface);color:var(--ink);border-color:var(--line-2)}
.btn--ghost:hover{background:var(--surface-2);color:var(--ink)}

.btn--sm{height:38px;padding:0 14px;font-size:14.5px}
.btn--full{width:100%}
.btn[disabled],.btn[aria-disabled="true"]{opacity:.45;pointer-events:none}

/* =====================================================================
   SUPERFÍCIES
   Card só quando a elevação comunica hierarquia real.
   ===================================================================== */
.card{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--r);
  padding:20px;
}
@media (min-width:700px){ .card{padding:26px} }

.panel{
  background:var(--surface-2);
  border-radius:var(--r);
  padding:20px;
}

/* =====================================================================
   ABERTURA DA PÁGINA (era ".hero")
   Sem caixa. O título é a hierarquia.
   ===================================================================== */
.hero{padding:0 0 4px}
.hero h1{margin-bottom:.35em}
.hero__meta{
  display:inline-flex;align-items:center;gap:7px;
  font-size:14px;color:var(--ink-2);
  background:var(--surface-2);border-radius:var(--r-sm);
  padding:5px 11px;margin:0;
}

/* =====================================================================
   PROGRESSO
   ===================================================================== */
/* próxima aula: a única ação principal da página inicial */
.proxima{
  display:flex;align-items:center;gap:16px;max-width:680px;
  background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r);
  padding:16px;color:var(--ink);box-shadow:var(--lift);
  transition:box-shadow .15s ease,border-color .15s ease;
}
.proxima:hover{text-decoration:none;border-color:var(--accent-line);box-shadow:var(--lift-2)}
.proxima:hover .proxima__btn{background:var(--accent-hover)}
.proxima__ic{
  flex:0 0 48px;height:48px;border-radius:var(--r-sm);display:grid;place-items:center;
  background:var(--accent-soft);color:var(--accent);
}
.proxima__ic svg{width:22px;height:22px}
.proxima__body{flex:1;min-width:0}
.proxima__t{display:block;font-family:var(--display);font-weight:700;font-size:19px;line-height:1.25;color:var(--ink)}
.proxima__m{display:block;font-size:14px;color:var(--ink-3);margin-top:3px}
@media (max-width:560px){
  .proxima{flex-wrap:wrap}
  .proxima__btn{flex:1 1 100%}
}

.prog{display:flex;align-items:center;gap:14px;margin:22px 0 0;max-width:520px}
.prog__bar{flex:1;height:8px;background:var(--surface-3);border-radius:999px;overflow:hidden}
.prog__fill{height:100%;width:0;background:var(--accent);border-radius:999px;transition:width .5s cubic-bezier(.16,1,.3,1)}
.prog__num{font-size:14px;color:var(--ink-2);white-space:nowrap;font-variant-numeric:tabular-nums}

/* =====================================================================
   GRIDS
   ===================================================================== */
.grid{display:grid;gap:16px;grid-template-columns:1fr}
@media (min-width:640px){ .grid--2{grid-template-columns:repeat(2,1fr)} }
@media (min-width:900px){ .grid--3{grid-template-columns:repeat(3,1fr)} }

/* =====================================================================
   PASSOS NUMERADOS
   O número é o rótulo. Sem "eyebrow", sem caixa.
   ===================================================================== */
.passos{list-style:none;margin:0;padding:0;counter-reset:passo;display:grid;gap:28px;grid-template-columns:1fr}
@media (min-width:820px){ .passos{grid-template-columns:repeat(3,1fr);gap:36px} }
.passos li{counter-increment:passo;padding-top:14px;border-top:2px solid var(--accent)}
.passos li::before{
  content:counter(passo,decimal-leading-zero);
  display:block;font-family:var(--display);font-weight:700;font-size:14px;
  color:var(--accent);margin-bottom:6px;
}
.passos h3{margin:0 0 6px;font-size:19px}
.passos p{color:var(--ink-2);font-size:15.5px;margin:0}

/* =====================================================================
   AGRUPADOR DE FASE / MÓDULO
   Linha fina e título. Sem rótulo mono, sem traço decorativo.
   ===================================================================== */
.phase{
  display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;
  margin:44px 0 14px;padding-bottom:10px;border-bottom:1px solid var(--line);
}
.phase:first-child{margin-top:0}
.phase__n{
  font-family:var(--body);font-weight:600;font-size:13px;
  color:var(--accent);background:var(--accent-soft);
  padding:3px 9px;border-radius:6px;letter-spacing:0;text-transform:none;
}
.phase__name{font-family:var(--display);font-weight:700;font-size:21px;color:var(--ink);letter-spacing:-.01em}
.phase__line{display:none}

/* =====================================================================
   LISTA DE AULAS / MÓDULOS
   Linhas, não caixas. Com espaço para thumbnail real.
   ===================================================================== */
.mods{list-style:none;margin:0;padding:0;display:grid;gap:10px;grid-template-columns:1fr}
@media (min-width:760px){ .mods{grid-template-columns:repeat(2,1fr)} }
@media (min-width:1040px){ .mods--3{grid-template-columns:repeat(3,1fr)} }

.mod{
  display:flex;gap:14px;align-items:flex-start;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
  padding:14px;color:var(--ink);
  transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease;
}
.mod:hover{border-color:var(--line-2);box-shadow:var(--lift);text-decoration:none;transform:translateY(-1px)}
.mod:hover .mod__t{color:var(--accent)}

.mod__n{
  flex:0 0 38px;height:38px;display:grid;place-items:center;
  background:var(--surface-2);color:var(--ink-2);border-radius:var(--r-sm);
  font-family:var(--display);font-weight:700;font-size:15px;
}
.mod__n svg{width:17px;height:17px}
.mod.is-done .mod__n{background:var(--ok-soft);color:var(--ok)}
.mod.is-done .mod__t{color:var(--ink-3)}

.mod__body{min-width:0;flex:1}
.mod__t{display:block;font-family:var(--display);font-weight:700;font-size:17px;line-height:1.25;color:var(--ink);margin:1px 0 3px;transition:color .15s ease}
.mod__d{display:block;font-size:14.5px;line-height:1.45;color:var(--ink-3);margin:0}
.mod__tag{
  display:inline-block;margin-top:8px;font-size:13px;color:var(--ink-3);
}

/* miniatura real do vídeo */
.mod__thumb{
  flex:0 0 104px;aspect-ratio:16/9;border-radius:var(--r-sm);overflow:hidden;
  background:var(--surface-3);position:relative;
}
.mod__thumb img{width:100%;height:100%;object-fit:cover}
.mod__thumb::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 55%,rgba(20,24,29,.28));
}
@media (min-width:400px){ .mod__thumb{flex-basis:128px} }

.mod.is-locked{opacity:.6}
.lock-note{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--warn);margin-top:8px}
.lock-note svg{width:14px;height:14px}

/* =====================================================================
   CONTEÚDO DE AULA (era ".sheet")
   Agora é só fluxo de leitura na própria página. Sem folha flutuante.
   ===================================================================== */
.sheet{max-width:var(--read);margin:0}
.sheet > *{max-width:100%}
.sheet h2{margin:1.9em 0 .5em;padding-top:.9em;border-top:1px solid var(--line);font-size:clamp(22px,4vw,28px)}
.sheet h2:first-child{margin-top:0;border-top:0;padding-top:0}
.sheet h3{margin:1.7em 0 .45em}
.sheet p,.sheet li{color:var(--ink-2)}
.sheet strong{color:var(--ink);font-weight:600}
.sheet ul,.sheet ol{padding-left:1.3em;margin:0 0 1.2em}
.sheet li{margin-bottom:.5em}
.sheet li::marker{color:var(--ink-3)}

/* medida de leitura maior para blocos que precisam de largura */
.sheet .tbl-wrap,.sheet .code,.sheet .wiring{max-width:none}

/* tabela */
.tbl-wrap{overflow-x:auto;margin:0 0 1.4em;border:1px solid var(--line);border-radius:var(--r)}
table{border-collapse:collapse;width:100%;min-width:420px;font-size:15px}
th,td{padding:11px 14px;text-align:left;border-bottom:1px solid var(--line);color:var(--ink-2)}
th{background:var(--surface-2);font-family:var(--body);font-weight:600;color:var(--ink);white-space:nowrap}
tr:last-child td{border-bottom:0}
tbody tr:hover{background:var(--surface-2)}

/* =====================================================================
   CÓDIGO — única superfície escura da página, e é proposital
   ===================================================================== */
.code{margin:0 0 1.5em;border-radius:var(--r);overflow:hidden;border:1px solid var(--dark-line)}
.code__head{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  background:var(--dark-2);padding:9px 14px;
}
.code__name{font-family:var(--mono);font-size:12.5px;color:var(--dark-ink-2)}
.code__copy{
  background:transparent;border:1px solid var(--dark-line);border-radius:6px;
  color:var(--dark-ink-2);font-family:var(--body);font-size:13px;font-weight:500;
  padding:5px 11px;cursor:pointer;white-space:nowrap;transition:all .15s ease;
}
.code__copy:hover{border-color:var(--dark-ink-2);color:var(--dark-ink)}
.code__copy.is-ok{color:#6BD7A0;border-color:#6BD7A0}
.code pre{
  margin:0;background:var(--dark);color:var(--dark-ink);
  padding:16px;overflow-x:auto;
  font-family:var(--mono);font-size:13px;line-height:1.7;
}
.code code{font-family:inherit}
:not(pre) > code{
  font-family:var(--mono);font-size:.87em;
  background:var(--surface-2);border:1px solid var(--line);
  border-radius:5px;padding:1px 5px;color:var(--ink);
}

/* =====================================================================
   AVISOS
   ===================================================================== */
.note{
  border:1px solid var(--accent-line);background:var(--accent-soft);
  border-radius:var(--r);padding:16px 18px;margin:0 0 1.5em;
}
.note p:last-child{margin-bottom:0}
.note__t{
  display:flex;align-items:center;gap:8px;
  font-family:var(--display);font-weight:700;font-size:16px;color:var(--ink);margin:0 0 6px;
}
.note__t svg{width:17px;height:17px;flex:0 0 17px}
.note--warn{background:var(--warn-soft);border-color:#EBD5A8}
.note--danger{background:var(--danger-soft);border-color:#F0C9C6}
.note--ok{background:var(--ok-soft);border-color:#BFE0CE}

/* =====================================================================
   BLOCOS DE AULA
   ===================================================================== */
.wiring{background:var(--dark);border-radius:var(--r);padding:18px;margin:0 0 1.5em}
.wiring svg{width:100%;height:auto}
.wiring__cap{font-size:13px;color:var(--dark-ink-2);text-align:center;margin:12px 0 0}

.bom{list-style:none;padding:0;margin:0 0 1.5em;display:grid;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.bom li{display:flex;gap:12px;align-items:flex-start;background:var(--surface);padding:12px 15px;margin:0}
.bom__q{font-family:var(--display);font-weight:700;font-size:15px;color:var(--accent);flex:0 0 34px;padding-top:1px}
.bom__n{color:var(--ink);font-weight:600;font-size:15.5px;display:block}
.bom__h{color:var(--ink-3);font-size:14px;display:block}

.check{list-style:none;padding:0;margin:0 0 1.5em;display:grid;gap:10px}
.check li{display:flex;gap:11px;align-items:flex-start;color:var(--ink-2);margin:0}
.check li::before{
  content:"";flex:0 0 18px;height:18px;margin-top:3px;
  border:1.5px solid var(--line-2);border-radius:5px;background:var(--surface);
}

/* =====================================================================
   NAVEGAÇÃO ENTRE AULAS
   ===================================================================== */
.aula-nav{display:grid;gap:10px;grid-template-columns:1fr;margin-top:48px;padding-top:28px;border-top:1px solid var(--line)}
@media (min-width:640px){ .aula-nav{grid-template-columns:1fr 1fr} }
.aula-nav a{
  display:block;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r);padding:15px 17px;color:var(--ink);
  transition:border-color .15s ease,box-shadow .15s ease;
}
.aula-nav a:hover{border-color:var(--line-2);box-shadow:var(--lift);text-decoration:none}
.aula-nav a:hover .ttl{color:var(--accent)}
.aula-nav .lbl{display:block;font-size:13.5px;color:var(--ink-3);margin-bottom:4px}
.aula-nav .ttl{display:block;font-family:var(--display);font-weight:700;font-size:16px;line-height:1.25;transition:color .15s ease}
.aula-nav .nxt{text-align:right}

/* barra de conclusão */
.done-bar{
  position:sticky;bottom:0;z-index:50;margin:36px -20px 0;
  background:rgba(252,252,251,.92);backdrop-filter:blur(12px);
  border-top:1px solid var(--line);padding:12px 20px;
  display:flex;align-items:center;gap:14px;
}
@media (min-width:900px){
  .done-bar{position:static;margin:36px 0 0;border:0;border-top:1px solid var(--line);
            border-radius:0;padding:24px 0 0;background:transparent;backdrop-filter:none}
}
.done-bar .btn{flex:1}
@media (min-width:640px){ .done-bar .btn{flex:0 0 auto} }
.done-bar__st{display:none;align-items:center;gap:7px;font-size:14.5px;font-weight:600;color:var(--ok)}
.done-bar__st svg{width:17px;height:17px}
.done-bar.is-done .done-bar__st{display:flex}

/* =====================================================================
   FAQ
   ===================================================================== */
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{
  list-style:none;cursor:pointer;padding:18px 34px 18px 0;position:relative;
  font-family:var(--display);font-weight:700;font-size:17.5px;color:var(--ink);
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"";position:absolute;right:6px;top:50%;width:9px;height:9px;
  border-right:2px solid var(--ink-3);border-bottom:2px solid var(--ink-3);
  transform:translateY(-70%) rotate(45deg);transition:transform .2s ease;
}
.faq details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.faq summary:hover{color:var(--accent)}
.faq details > div{padding:0 0 20px;color:var(--ink-2);max-width:var(--read)}

/* =====================================================================
   ABAS / FILTROS
   ===================================================================== */
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 22px}
.tab{
  background:transparent;border:1px solid var(--line-2);border-radius:var(--r-sm);
  padding:0 14px;height:38px;font-size:14.5px;font-weight:500;color:var(--ink-2);cursor:pointer;
  transition:all .15s ease;
}
.tab:hover{background:var(--surface-2);color:var(--ink)}
.tab[aria-selected="true"]{background:var(--accent);border-color:var(--accent);color:#fff}

/* =====================================================================
   BUSCA E FORMULÁRIO
   ===================================================================== */
.search{position:relative;margin:0 0 18px}
.search input{
  width:100%;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-sm);
  color:var(--ink);font-family:var(--body);font-size:16px;padding:0 14px 0 42px;height:48px;
}
.search input::placeholder{color:var(--ink-3)}
.search input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft)}
.search svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--ink-3)}

.field{margin:0 0 16px}
.field label{display:block;font-weight:600;font-size:15px;margin:0 0 6px;color:var(--ink)}
.field input,.field select,.field textarea{
  width:100%;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-sm);
  color:var(--ink);font-family:var(--body);font-size:16px;padding:0 13px;height:48px;
}
.field textarea{height:auto;padding:12px 13px}
.field input:focus,.field select:focus,.field textarea:focus{
  border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft);
}
.field input::placeholder{color:var(--ink-3)}
.field small{display:block;color:var(--ink-3);font-size:13.5px;margin-top:6px}

/* =====================================================================
   FICHAS DE COMPONENTE
   ===================================================================== */
.ficha{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:20px;break-inside:avoid}
.ficha h3{margin:0 0 2px;font-size:20px}
.ficha__sub{font-size:14px;color:var(--ink-3);margin:0 0 14px}
.ficha dl{display:grid;grid-template-columns:auto 1fr;gap:7px 14px;margin:0 0 14px;font-size:14.5px}
.ficha dt{font-weight:600;color:var(--ink);padding-top:1px}
.ficha dd{margin:0;color:var(--ink-2)}
.ficha__pins{
  font-family:var(--mono);font-size:13px;background:var(--dark);color:var(--dark-ink);
  border-radius:var(--r-sm);padding:12px 14px;margin:0 0 14px;overflow-x:auto;white-space:pre;line-height:1.6;
}

/* =====================================================================
   PLAYER DE VÍDEO
   Interface própria. O YouTube entra só como servidor do arquivo:
   sem logo, sem título clicável, sem sugestões no fim.
   ===================================================================== */
.player{
  position:relative;background:var(--dark);border-radius:var(--r);overflow:hidden;
  aspect-ratio:16/9;box-shadow:var(--lift-2);
}
.player__vazio{
  position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:24px;
  color:var(--dark-ink-2);
}
.player__vazio svg{width:34px;height:34px;margin:0 auto 12px;color:var(--dark-line)}

/* aula na liberação gradual */
.lib__vazio svg{color:var(--dark-ink-2)}
.player__vazio .lib__t{margin:0;font-family:var(--display);font-weight:700;font-size:clamp(20px,3.6vw,26px);color:var(--dark-ink)}
.player__vazio .lib__s{margin:6px 0 0;font-family:var(--mono);font-size:14px}
.lib p{color:var(--ink-2);max-width:var(--read)}
.lib__cond{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:10px}
.lib__cond li{display:flex;gap:10px;align-items:flex-start;font-size:15.5px;color:var(--ink-2)}
.lib__cond svg{width:18px;height:18px;flex:0 0 18px;margin-top:3px;color:var(--warn)}
.lib__cond li.is-ok svg{color:var(--ok)}
.lib__cond a{font-weight:600}

.pl{position:absolute;inset:0;background:var(--dark);outline:none}
.pl:focus-visible{box-shadow:inset 0 0 0 2px var(--accent)}

/* Enquadramento: o iframe é montado com 240% da largura em altura e fica
   centralizado. O título (topo do iframe) e a marca (rodapé do iframe) caem
   fora da janela visível; o vídeo, que o YouTube centraliza, sobra inteiro.
   Sem isso o cromo aparece, porque showinfo e modestbranding foram
   desativados pelo YouTube em 2018 e 2023. */
.pl__video{position:absolute;inset:0;cursor:pointer;overflow:hidden}
.pl__crop{
  position:absolute;left:0;right:0;top:50%;height:0;
  transform:translateY(-50%);padding-bottom:240%;pointer-events:none;
}
.pl__crop > iframe,.pl__crop > div{
  position:absolute;inset:0;width:100%;height:100%;border:0;
}
/* no primeiro toque em celular a camada precisa deixar o dedo passar */
.pl.is-liberado .pl__crop{pointer-events:auto}

.pl__video > video{
  position:absolute;inset:0;width:100%;height:100%;border:0;
  object-fit:contain;background:#000;pointer-events:none;
}

/* Pôster: cobre o vídeo sempre que ele não está tocando.
   É o que impede a barra de título e o logo do YouTube de aparecerem
   no estado pausado (nenhum parâmetro da API remove isso desde 2023). */
.pl__capa{
  position:absolute;inset:0;display:grid;place-items:center;cursor:pointer;
  border:0;padding:0;transition:opacity .18s ease;
  background-color:var(--dark);background-size:cover;background-position:center;
}
.pl__capa::before{content:"";position:absolute;inset:0;background:rgba(12,15,20,.42)}
.pl[data-estado="tocando"] .pl__capa,
.pl[data-estado="buscando"] .pl__capa{opacity:0;pointer-events:none}
.pl__play{
  width:66px;height:66px;border-radius:999px;display:grid;place-items:center;
  background:rgba(255,255,255,.94);box-shadow:0 6px 24px rgba(0,0,0,.35);
  transition:transform .15s ease;
}
.pl__capa:hover .pl__play{transform:scale(1.06)}
.pl__play svg{width:26px;height:26px;color:var(--dark);margin-left:3px;fill:currentColor;stroke:none}

/* carregando */
.pl__carregando{position:absolute;inset:0;display:none;place-items:center;pointer-events:none}
.pl[data-estado="carregando"] .pl__carregando{display:grid}
.pl__spin{
  width:34px;height:34px;border-radius:999px;
  border:3px solid rgba(255,255,255,.22);border-top-color:#fff;
  animation:pl-gira .7s linear infinite;
}
@keyframes pl-gira{to{transform:rotate(360deg)}}

/* fim da aula: nossa tela, não a do YouTube */
.pl__fim{
  position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:14px;
  background:rgba(15,18,23,.9);text-align:center;padding:24px;
}
.pl__fim[hidden]{display:none}
.pl__fim-t{font-family:var(--display);font-weight:700;font-size:20px;color:#fff;margin:0}
.pl__fim-acoes{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.pl__fim .btn--ghost{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.32)}
.pl__fim .btn--ghost:hover{background:rgba(255,255,255,.2);color:#fff}

/* barra de controle */
.pl__barra{
  position:absolute;left:0;right:0;bottom:0;padding:0 12px 10px;
  background:linear-gradient(transparent,rgba(10,13,17,.82) 42%);
  opacity:0;transform:translateY(6px);transition:opacity .18s ease,transform .18s ease;
}
.pl:hover .pl__barra,.pl:focus-within .pl__barra,
.pl[data-estado="pausado"] .pl__barra,.pl[data-estado="pronto"] .pl__barra{opacity:1;transform:none}

.pl__linha{position:relative;height:16px;display:flex;align-items:center;cursor:pointer;touch-action:none}
.pl__linha::before{content:"";position:absolute;left:0;right:0;height:4px;border-radius:99px;background:rgba(255,255,255,.26)}
.pl__buffer{position:absolute;left:0;height:4px;width:0;border-radius:99px;background:rgba(255,255,255,.34)}
.pl__prog{position:absolute;left:0;height:4px;width:0;border-radius:99px;background:var(--accent)}
.pl__bolinha{
  position:absolute;right:-6px;top:50%;width:12px;height:12px;margin-top:-6px;
  background:#fff;border-radius:999px;box-shadow:0 1px 4px rgba(0,0,0,.4);
  opacity:0;transition:opacity .15s ease;
}
.pl__linha:hover .pl__bolinha,.pl__linha:focus-visible .pl__bolinha{opacity:1}
.pl__linha:hover::before,.pl__linha:hover .pl__prog,.pl__linha:hover .pl__buffer{height:6px}

.pl__ctrl{display:flex;align-items:center;gap:2px;margin-top:2px}
.pl__sp{flex:1}
.pl__b{
  width:36px;height:36px;display:grid;place-items:center;
  background:transparent;border:0;border-radius:6px;color:#fff;cursor:pointer;opacity:.88;
}
.pl__b:hover{background:rgba(255,255,255,.14);opacity:1}
.pl__b svg{width:19px;height:19px}
.pl__b--txt{width:auto;padding:0 9px;font-size:13.5px;font-weight:600;font-family:var(--body)}
.pl__b.is-off{opacity:.45}
.pl__t{font-size:13px;color:rgba(255,255,255,.86);font-variant-numeric:tabular-nums;padding:0 8px;white-space:nowrap}

@media (max-width:520px){
  .pl__b[data-menos],.pl__b[data-mais]{display:none}
  .pl__t{font-size:12px;padding:0 4px}
}

.partes{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 0}
.parte{
  background:transparent;border:1px solid var(--line-2);border-radius:var(--r-sm);
  padding:0 15px;height:40px;font-size:14.5px;font-weight:500;color:var(--ink-2);cursor:pointer;
  transition:all .15s ease;
}
.parte:hover{background:var(--surface-2);color:var(--ink)}
.parte[aria-selected="true"]{background:var(--accent);border-color:var(--accent);color:#fff}

/* aviso curto: uma linha, não uma caixa vazia */
.aviso-inline{
  display:flex;align-items:center;gap:10px;
  font-size:15.5px;color:var(--ink-2);
  background:var(--surface-2);border-radius:var(--r-sm);
  padding:12px 15px;margin:0;width:fit-content;max-width:100%;
}
.aviso-inline--solto{margin:14px 0 0}
.aviso-inline svg{width:18px;height:18px;flex:0 0 18px;color:var(--ink-3)}

.links-aula{padding-left:1.2em;margin:0;color:var(--ink-2)}
.links-aula li{margin-bottom:.4em}

/* materiais: largura pelo conteúdo, não pela tela */
.mats{display:grid;gap:10px;grid-template-columns:1fr;max-width:560px}
@media (min-width:700px){ .mats{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))} }

/* material para baixar */
.mat{
  display:flex;align-items:center;gap:13px;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
  padding:14px 16px;color:var(--ink);
  transition:border-color .15s ease,box-shadow .15s ease;
}
.mat:hover{border-color:var(--line-2);box-shadow:var(--lift);text-decoration:none}
.mat svg{width:20px;height:20px;flex:0 0 20px;color:var(--accent)}
.mat b{display:block;font-family:var(--display);font-weight:700;font-size:15.5px}
.mat span{font-size:13.5px;color:var(--ink-3)}

.desc-aula{max-width:var(--read)}
.desc-aula p{color:var(--ink-2)}
.desc-aula p:last-child{margin-bottom:0}

/* =====================================================================
   CERTIFICADO
   ===================================================================== */
.cert{
  background:var(--surface);color:var(--ink);
  border:1px solid var(--line);border-radius:var(--r);
  padding:34px 24px;text-align:center;position:relative;overflow:hidden;
  box-shadow:var(--lift-2);
}
.cert::before{content:"";position:absolute;inset:12px;border:1px solid var(--accent-line);border-radius:6px;pointer-events:none}
.cert__in{position:relative;z-index:1}
.cert__eyebrow{font-size:14px;font-weight:600;color:var(--accent);margin:0 0 12px;letter-spacing:0;text-transform:none}
.cert__t{font-family:var(--display);font-weight:700;font-size:clamp(19px,4vw,26px);color:var(--ink-2);margin:0 0 20px;line-height:1.2}
.cert__name{
  font-family:var(--display);font-weight:800;font-size:clamp(26px,7vw,42px);color:var(--ink);
  margin:0 0 14px;padding-bottom:16px;border-bottom:1px solid var(--line);
  line-height:1.1;word-break:break-word;letter-spacing:-.02em;
}
.cert__body{font-size:15.5px;color:var(--ink-2);max-width:54ch;margin:0 auto 20px}
.cert__foot{display:flex;flex-wrap:wrap;justify-content:center;gap:18px 40px;margin-top:24px;font-size:13px;color:var(--ink-3)}
.cert__foot b{display:block;font-family:var(--body);font-size:14.5px;color:var(--ink);font-weight:600;margin-top:3px}

/* =====================================================================
   APP DE AUTOMAÇÃO
   ===================================================================== */
.dev-state{display:flex;align-items:center;gap:10px;font-size:14.5px;color:var(--ink-2);margin:0 0 16px}
.dev-dot{width:9px;height:9px;border-radius:999px;background:var(--danger);flex:0 0 9px}
.dev-state.is-on .dev-dot{background:var(--ok);box-shadow:0 0 0 4px var(--ok-soft)}

.switches{display:grid;gap:12px;grid-template-columns:repeat(2,1fr)}
@media (min-width:700px){ .switches{grid-template-columns:repeat(4,1fr)} }
.sw{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
  padding:18px 12px;text-align:center;cursor:pointer;min-height:112px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;
  transition:all .15s ease;color:var(--ink);
}
.sw:hover{border-color:var(--line-2);box-shadow:var(--lift)}
.sw svg{width:26px;height:26px;color:var(--ink-3);transition:color .15s ease}
.sw__l{font-family:var(--display);font-weight:700;font-size:15.5px}
.sw__s{font-size:13px;color:var(--ink-3)}
.sw.is-on{background:var(--accent-soft);border-color:var(--accent-line)}
.sw.is-on svg,.sw.is-on .sw__s{color:var(--accent)}
.sw[disabled]{opacity:.45;pointer-events:none}

.log{
  background:var(--dark);border-radius:var(--r);padding:14px;
  font-family:var(--mono);font-size:12.5px;color:var(--dark-ink-2);
  max-height:200px;overflow-y:auto;line-height:1.8;
}
.log div{padding:1px 0}

/* =====================================================================
   RODAPÉ
   ===================================================================== */
.foot{border-top:1px solid var(--line);margin-top:80px;padding:28px 0 48px;color:var(--ink-3);font-size:14.5px}
.foot a{color:var(--ink-2)}

/* =====================================================================
   IMPRESSÃO
   ===================================================================== */
@media print{
  body{background:#fff;font-size:12pt}
  .top,.drawer,.done-bar,.aula-nav,.foot,.no-print,.crumb,.prog{display:none!important}
  .card,.ficha,.cert{box-shadow:none;border-color:#ccc}
  .code pre{background:#f6f6f6;color:#111}
  .code__head{background:#eee}
  .code__name{color:#333}
  .code__copy{display:none}
  .sheet{max-width:none}
  a{color:#000;text-decoration:none}
  .page{padding:0}
}

/* =====================================================================
   MOVIMENTO REDUZIDO
   ===================================================================== */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* ícone em linha com o título de um card (ex.: Suporte por WhatsApp) */
svg.ic{width:22px;height:22px;vertical-align:-4px;margin-right:4px;color:var(--accent)}

/* =====================================================================
   ACESSIBILIDADE
   ===================================================================== */
/* só para leitor de tela */
.sr-only{
  position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}
/* "Pular para o conteúdo": invisível até receber o foco do teclado */
.pular{
  position:fixed;left:12px;top:-60px;z-index:200;
  background:var(--ink);color:#fff;font-weight:600;font-size:15px;
  padding:12px 16px;border-radius:var(--r-sm);transition:top .15s ease;
}
.pular:focus{top:12px;color:#fff;text-decoration:none}
main:focus{outline:none}
/* marca no topo: área de toque de 44 px */
.brand{min-height:44px}
