:root {
  --bg: #faf8f3;
  --bg2: #f2eee4;
  --card: #ffffff;
  --ink: #1b2430;
  --muted: #5d6874;
  --line: #e3ddcf;
  --brand: #0e5b49;
  --brand-ink: #ffffff;
  --brand-soft: #dcefe8;
  --acc: #b9770e;
  --acc-soft: #fbefd5;
  --bom: #12704f;
  --mau: #b3312c;
  --c-grafico-1: #0e7a5f;
  --c-grafico-2: #b9770e;
  --c-grafico-3: #b3312c;
  --sombra: 0 1px 2px rgba(27, 36, 48, .06), 0 8px 24px rgba(27, 36, 48, .06);
  --serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
  --sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --r: 14px;
  --mh: 160;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #10161c; --bg2: #151d25; --card: #19222b; --ink: #e9e6dd; --muted: #9aa5b1; --line: #2a3541;
    --brand: #4cc2a0; --brand-ink: #08241c; --brand-soft: #14352c; --acc: #e3a73a; --acc-soft: #3a2d12;
    --bom: #55d1a2; --mau: #ff857d; --c-grafico-1: #4cc2a0; --c-grafico-2: #e3a73a; --c-grafico-3: #ff857d;
    --sombra: 0 1px 2px rgba(0,0,0,.4), 0 8px 24px rgba(0,0,0,.25);
  }
}
:root[data-theme="dark"] {
  --bg: #10161c; --bg2: #151d25; --card: #19222b; --ink: #e9e6dd; --muted: #9aa5b1; --line: #2a3541;
  --brand: #4cc2a0; --brand-ink: #08241c; --brand-soft: #14352c; --acc: #e3a73a; --acc-soft: #3a2d12;
  --bom: #55d1a2; --mau: #ff857d; --c-grafico-1: #4cc2a0; --c-grafico-2: #e3a73a; --c-grafico-3: #ff857d;
  --sombra: 0 1px 2px rgba(0,0,0,.4), 0 8px 24px rgba(0,0,0,.25);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--bg); color: var(--ink);
  font: 17px/1.6 var(--sans); min-height: 100vh; display: flex; flex-direction: column;
}
main { flex: 1; }
a { color: var(--brand); text-underline-offset: 3px; }
a:hover { text-decoration-thickness: 2px; }
img, svg { max-width: 100%; }
:focus-visible { outline: 3px solid var(--acc); outline-offset: 2px; border-radius: 4px; }
.wrap { width: min(1120px, 100% - 32px); margin-inline: auto; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.salto { position: absolute; left: -999px; top: 8px; background: var(--brand); color: var(--brand-ink); padding: 8px 14px; border-radius: 8px; z-index: 100; }
.salto:focus { left: 8px; }

/* ---------- cabeçalho ---------- */
.topo { position: sticky; top: 0; z-index: 40; background: color-mix(in srgb, var(--bg) 88%, transparent); backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); }
.topo .wrap { display: flex; align-items: center; gap: 18px; height: 60px; }
.marca { display: flex; align-items: center; gap: 10px; font: 700 1.12rem/1 var(--serif); color: var(--ink); text-decoration: none; letter-spacing: .1px; }
.marca svg { width: 30px; height: 30px; flex: none; }
.nav { display: flex; gap: 4px; margin-left: 12px; }
.nav a { padding: 8px 12px; border-radius: 9px; color: var(--muted); text-decoration: none; font-size: .95rem; font-weight: 500; }
.nav a:hover { background: var(--bg2); color: var(--ink); }
.nav a[aria-current="page"] { color: var(--brand); background: var(--brand-soft); }
.acoes { margin-left: auto; display: flex; align-items: center; gap: 6px; }
.icone { border: 1px solid var(--line); background: var(--card); color: var(--ink); height: 38px; min-width: 38px; padding: 0 10px; border-radius: 10px; cursor: pointer; font: inherit; font-size: .9rem; display: inline-flex; align-items: center; gap: 7px; justify-content: center; }
.icone:hover { border-color: var(--brand); }
.icone kbd { font: .75rem var(--sans); border: 1px solid var(--line); border-radius: 5px; padding: 0 5px; color: var(--muted); }
#progresso-geral { white-space: nowrap; font-variant-numeric: tabular-nums; font-weight: 600; font-size: .85rem; color: var(--brand); background: var(--brand-soft); padding: 7px 11px; border-radius: 999px; }
#menu { display: none; }
[hidden] { display: none !important; }
@media (max-width: 860px) {
  #menu { display: inline-flex; }
  .nav { position: absolute; inset: 60px 0 auto 0; flex-direction: column; background: var(--bg); border-bottom: 1px solid var(--line); padding: 8px 16px 14px; margin: 0; display: none; }
  .menu-aberto .nav { display: flex; }
  .icone kbd, .icone .tx { display: none; }
}

@media (max-width: 520px) { .topo .wrap { gap: 10px; } .marca { font-size: 1rem; } .marca svg { width: 26px; height: 26px; } .acoes { gap: 5px; } }
@media (max-width: 440px) { #progresso-geral { display: none; } }
.graf svg { max-height: 260px; }

/* ---------- botões / etiquetas ---------- */
.btn { display: inline-flex; align-items: center; gap: 8px; border: 0; background: var(--brand); color: var(--brand-ink); font: 600 1rem var(--sans); padding: 13px 22px; border-radius: 12px; cursor: pointer; text-decoration: none; }
.btn:hover { filter: brightness(1.08); }
.btn.sec { background: transparent; color: var(--brand); border: 1.5px solid var(--brand); }
.pill { display: inline-block; font-size: .78rem; font-weight: 600; padding: 3px 10px; border-radius: 999px; background: var(--bg2); color: var(--muted); letter-spacing: .2px; }
.pill.breve { background: var(--acc-soft); color: var(--acc); }

/* ---------- hero ---------- */
.hero { padding: 64px 0 40px; position: relative; overflow: hidden; }
.hero .wrap { display: grid; grid-template-columns: 1.15fr .85fr; gap: 40px; align-items: center; }
.hero h1 { font: 700 clamp(2.4rem, 5.4vw, 4rem)/1.04 var(--serif); margin: 0 0 18px; letter-spacing: -.5px; }
.hero h1 em { font-style: normal; color: var(--brand); }
.hero p.lead { font-size: 1.22rem; color: var(--muted); max-width: 34ch; margin: 0 0 28px; }
.hero .cta { display: flex; gap: 12px; flex-wrap: wrap; }
.hero-arte { aspect-ratio: 1.15; border-radius: 28px; background: linear-gradient(160deg, var(--brand-soft), var(--acc-soft)); border: 1px solid var(--line); position: relative; overflow: hidden; box-shadow: var(--sombra); }
.hero-arte svg { position: absolute; inset: 0; width: 100%; height: 100%; }
@media (max-width: 860px) { .hero { padding-top: 36px; } .hero .wrap { grid-template-columns: 1fr; } .hero-arte { max-height: 220px; aspect-ratio: 2.2; } }

.numeros { display: flex; gap: 34px; flex-wrap: wrap; padding: 26px 0; border-block: 1px solid var(--line); margin-top: 26px; }
.numeros div b { display: block; font: 700 2rem/1 var(--serif); color: var(--brand); }
.numeros div span { color: var(--muted); font-size: .92rem; }

.seccao { padding: 54px 0; }
.seccao h2 { font: 700 clamp(1.7rem, 3.4vw, 2.3rem)/1.15 var(--serif); margin: 0 0 8px; }
.seccao .sub { color: var(--muted); margin: 0 0 28px; max-width: 60ch; }

.tres { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.tres > div { background: var(--card); border: 1px solid var(--line); border-radius: var(--r); padding: 22px; }
.tres h3 { font: 700 1.15rem var(--serif); margin: 0 0 6px; }
.tres p { margin: 0; color: var(--muted); font-size: .98rem; }
@media (max-width: 760px) { .tres { grid-template-columns: 1fr; } }

/* ---------- cartões de módulo ---------- */
.modulos { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 20px; }
.mod { --acento: hsl(var(--mh) 55% 32%); --suave: hsl(var(--mh) 45% 92%); background: var(--card); border: 1px solid var(--line); border-radius: 18px; padding: 22px; display: flex; flex-direction: column; gap: 10px; position: relative; overflow: hidden; box-shadow: var(--sombra); transition: transform .15s; }
:root[data-theme="dark"] .mod { --acento: hsl(var(--mh) 55% 66%); --suave: hsl(var(--mh) 30% 18%); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .mod { --acento: hsl(var(--mh) 55% 66%); --suave: hsl(var(--mh) 30% 18%); } }
.mod::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 5px; background: var(--acento); }
.mod:hover { transform: translateY(-2px); }
.mod .num { font: 700 .85rem var(--sans); color: var(--acento); background: var(--suave); width: fit-content; padding: 4px 11px; border-radius: 999px; letter-spacing: .3px; }
.mod h3 { font: 700 1.3rem/1.2 var(--serif); margin: 0; }
.mod h3 a { color: var(--ink); text-decoration: none; }
.mod h3 a::after { content: ""; position: absolute; inset: 0; }
.mod p { margin: 0; color: var(--muted); font-size: .96rem; }
.mod .meta { margin-top: auto; padding-top: 6px; display: flex; justify-content: space-between; font-size: .85rem; color: var(--muted); }
.barra { height: 6px; border-radius: 6px; background: var(--bg2); overflow: hidden; }
.barra i { display: block; height: 100%; width: 0; background: var(--acento, var(--brand)); border-radius: 6px; transition: width .4s; }

/* ---------- página de módulo ---------- */
.mod-topo { --acento: hsl(var(--mh) 55% 32%); --suave: hsl(var(--mh) 45% 92%); background: var(--suave); border-bottom: 1px solid var(--line); padding: 44px 0 36px; }
:root[data-theme="dark"] .mod-topo { --acento: hsl(var(--mh) 55% 66%); --suave: hsl(var(--mh) 30% 16%); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .mod-topo { --acento: hsl(var(--mh) 55% 66%); --suave: hsl(var(--mh) 30% 16%); } }
.mod-topo .k { font-weight: 700; color: var(--acento); letter-spacing: .6px; text-transform: uppercase; font-size: .82rem; }
.mod-topo h1 { font: 700 clamp(2rem, 4.6vw, 3rem)/1.1 var(--serif); margin: 6px 0 12px; }
.mod-topo p { max-width: 62ch; color: var(--muted); font-size: 1.1rem; margin: 0 0 18px; }
.migalhas { font-size: .88rem; color: var(--muted); margin-bottom: 14px; }
.migalhas a { color: var(--muted); }
.video-mod { margin: 30px 0 0; max-width: 880px; }
.video-mod video { display: block; width: 100%; aspect-ratio: 16 / 9; background: #06100d; border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--sombra); }
.video-mod figcaption { margin-top: 8px; color: var(--muted); font-size: .88rem; }
.video-licao { margin: 22px 0 6px; }
.lista-licoes { list-style: none; padding: 0; margin: 30px 0; display: grid; gap: 10px; }
.lista-licoes li a { display: grid; grid-template-columns: 44px 1fr auto; align-items: center; gap: 14px; padding: 16px 18px; background: var(--card); border: 1px solid var(--line); border-radius: 14px; color: var(--ink); text-decoration: none; }
.lista-licoes li a:hover { border-color: var(--brand); }
.lista-licoes .n { width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; background: var(--bg2); font-weight: 700; color: var(--muted); font-variant-numeric: tabular-nums; }
.lista-licoes .feita .n { background: var(--brand); color: var(--brand-ink); }
.lista-licoes .feita .n::before { content: "✓"; }
.lista-licoes .feita .n span { display: none; }
.lista-licoes b { display: block; font-family: var(--serif); font-size: 1.12rem; line-height: 1.25; }
.lista-licoes small { color: var(--muted); font-size: .88rem; }
.lista-licoes .t { color: var(--muted); font-size: .85rem; white-space: nowrap; }
.lista-licoes li.breve a { opacity: .6; pointer-events: none; }

/* ---------- lição ---------- */
article.texto { max-width: 70ch; min-width: 0; }
.kicker { font-weight: 700; letter-spacing: .6px; text-transform: uppercase; font-size: .8rem; color: var(--muted); }
article.texto h1 { font: 700 clamp(2rem, 4.4vw, 2.9rem)/1.1 var(--serif); margin: 8px 0 12px; letter-spacing: -.3px; }
.lead { font-size: 1.14rem; color: var(--muted); margin: 0 0 8px; }
.meta-l { display: flex; gap: 14px; color: var(--muted); font-size: .88rem; margin-bottom: 26px; flex-wrap: wrap; }
.corpo { font-family: var(--serif); font-size: 1.2rem; line-height: 1.75; }
.corpo p { margin: 0 0 1.15em; }
.corpo h2 { font: 700 1.55rem/1.25 var(--serif); margin: 2.1em 0 .6em; letter-spacing: -.2px; }
.corpo h3 { font: 700 1.25rem/1.3 var(--serif); margin: 1.6em 0 .5em; }
.corpo ul, .corpo ol { padding-left: 1.3em; margin: 0 0 1.2em; }
.corpo li { margin-bottom: .45em; }
.corpo strong { font-weight: 700; color: var(--ink); background: linear-gradient(transparent 62%, var(--acc-soft) 62%); }
.corpo code { font: .9em ui-monospace, Consolas, monospace; background: var(--bg2); padding: 1px 6px; border-radius: 5px; }
.bloco { font-family: var(--sans); font-size: 1.03rem; line-height: 1.65; border-radius: 14px; padding: 16px 20px 6px; margin: 1.6em 0; border: 1px solid var(--line); background: var(--card); }
.bloco p { margin: 0 0 1em; }
.bloco-rotulo { font: 700 .74rem var(--sans); letter-spacing: .8px; text-transform: uppercase; margin-bottom: 8px; color: var(--muted); }
.bloco-exemplo { background: var(--brand-soft); border-color: transparent; border-left: 5px solid var(--brand); }
.bloco-exemplo .bloco-rotulo { color: var(--brand); }
.bloco-atencao { background: var(--acc-soft); border-color: transparent; border-left: 5px solid var(--acc); }
.bloco-atencao .bloco-rotulo { color: var(--acc); }
.bloco-nota { border-left: 5px solid var(--muted); }
.bloco strong { background: none; }
.so-ecra { font-family: var(--sans); font-size: .95rem; margin: 1.4em 0; }
.tabela { overflow-x: auto; border: 1px solid var(--line); border-radius: 12px; background: var(--card); }
table { border-collapse: collapse; width: 100%; font-size: .94rem; }
th, td { text-align: left; padding: 10px 14px; border-bottom: 1px solid var(--line); vertical-align: top; }
th { background: var(--bg2); font-size: .82rem; text-transform: uppercase; letter-spacing: .4px; color: var(--muted); }
tr:last-child td { border-bottom: 0; }

.dado { border-bottom: 2px dotted var(--acc); cursor: help; white-space: nowrap; }
.dado-em-falta { background: #ffd2d0; color: #6b0f0a; }

.caixa { font-family: var(--sans); background: var(--card); border: 1px solid var(--line); border-radius: 16px; padding: 22px 24px; margin: 2.2em 0; box-shadow: var(--sombra); }
.caixa h2 { font: 700 1.25rem var(--serif); margin: 0 0 12px; }
.caixa ul { margin: 0; padding-left: 1.2em; }
.caixa li { margin-bottom: .5em; }
.caixa.ideias { border-top: 5px solid var(--brand); }
.termos dl { margin: 0; display: grid; gap: 12px; }
.termos dt { font-weight: 700; }
.termos dd { margin: 2px 0 0; color: var(--muted); font-size: .96rem; }

/* quiz */
.quiz h2 { margin-bottom: 4px; }
.quiz > p.sub { color: var(--muted); margin: 0 0 18px; font-size: .95rem; }
.q { padding: 16px 0; border-top: 1px solid var(--line); }
.q:first-of-type { border-top: 0; }
.q-p { font-weight: 600; margin: 0 0 12px; }
.opcoes, .caixa .opcoes { list-style: none; padding-left: 0; padding: 0; margin: 0; display: grid; gap: 8px; }
.opc { width: 100%; text-align: left; font: inherit; font-size: .98rem; color: var(--ink); background: var(--bg); border: 1.5px solid var(--line); border-radius: 12px; padding: 12px 16px; cursor: pointer; }
.opc:hover:not(:disabled) { border-color: var(--brand); }
.opc:disabled { cursor: default; }
.opc.certa { border-color: var(--bom); background: color-mix(in srgb, var(--bom) 14%, var(--card)); }
.opc.errada { border-color: var(--mau); background: color-mix(in srgb, var(--mau) 12%, var(--card)); }
.q-exp { margin: 12px 0 0; padding: 12px 14px; border-radius: 10px; background: var(--bg2); font-size: .95rem; }
.q-exp[data-ok="true"] { border-left: 4px solid var(--bom); }
.q-exp[data-ok="false"] { border-left: 4px solid var(--mau); }
.quiz-final { margin: 14px 0 0; font-weight: 600; color: var(--brand); }

.concluir-linha { display: flex; justify-content: center; margin: 30px 0; }
#concluir[aria-pressed="true"] { background: var(--bom); color: #fff; }
.navlic { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 30px; }
.navlic a { display: block; border: 1px solid var(--line); background: var(--card); border-radius: 14px; padding: 14px 18px; text-decoration: none; color: var(--ink); }
.navlic a:hover { border-color: var(--brand); }
.navlic small { display: block; color: var(--muted); font-size: .8rem; text-transform: uppercase; letter-spacing: .5px; }
.navlic b { font-family: var(--serif); font-size: 1.05rem; }
.navlic .prox { text-align: right; grid-column: 2; }

/* ---------- calculadoras ---------- */
.calc { font-family: var(--sans); background: var(--card); border: 1px solid var(--line); border-radius: 18px; padding: 20px 22px; margin: 2em 0; box-shadow: var(--sombra); }
.calc-t { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.calc-t h3 { margin: 0; font: 700 1.1rem var(--serif); }
.calc-ic { width: 32px; height: 32px; border-radius: 9px; background: var(--brand); color: var(--brand-ink); display: grid; place-items: center; font: italic 700 1.05rem var(--serif); }
.calc-f { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px 16px; }
.cf { display: grid; gap: 4px; align-content: start; }
.cf-r { font-size: .85rem; font-weight: 600; color: var(--muted); }
.cf-i { display: flex; align-items: center; border: 1.5px solid var(--line); border-radius: 10px; background: var(--bg); padding-right: 12px; }
.cf-i:focus-within { border-color: var(--brand); }
.cf-i input { border: 0; background: transparent; color: var(--ink); font: 600 1.05rem var(--sans); padding: 10px 12px; width: 100%; min-width: 0; outline: none; }
.cf-i i { font-style: normal; color: var(--muted); font-size: .88rem; }
.cf small { color: var(--muted); font-size: .78rem; line-height: 1.35; }
.cf-check { grid-column: 1 / -1; display: flex; gap: 10px; align-items: center; font-size: .92rem; }
.calc-o { margin-top: 16px; }
.res { margin: 0 0 .7em; font-size: 1rem; line-height: 1.55; }
.res b { color: var(--brand); }
.passos { display: flex; align-items: stretch; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.passos > div { flex: 1 1 140px; border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; background: var(--bg); }
.passos small { display: block; color: var(--muted); font-size: .78rem; }
.passos b { font: 700 1.5rem var(--serif); }
.passos span { align-self: center; color: var(--muted); }
.passos .bom b { color: var(--bom); } .passos .mau b { color: var(--mau); }
.graf { margin-top: 10px; color: var(--muted); }
.graf svg { width: 100%; height: auto; display: block; }
.leg { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: .82rem; margin-top: 4px; }
.leg i { display: inline-block; width: 12px; height: 12px; border-radius: 3px; margin-right: 6px; vertical-align: -1px; }

/* ---------- glossário / fontes / sobre ---------- */
.pag { padding: 44px 0 70px; }
.pag h1 { font: 700 clamp(2rem, 4.6vw, 3rem)/1.1 var(--serif); margin: 0 0 10px; }
.pag > .wrap > p.lead { max-width: 60ch; }
.pag .estreito { max-width: 70ch; }
.pag .estreito h2 { font: 700 1.5rem var(--serif); margin: 1.8em 0 .4em; }
.gl-filtro { margin: 18px 0 8px; }
.gl-filtro input { width: min(440px, 100%); font: 1rem var(--sans); padding: 12px 16px; border-radius: 12px; border: 1.5px solid var(--line); background: var(--card); color: var(--ink); }
.gl { display: grid; gap: 12px; margin-top: 18px; }
.gl article { background: var(--card); border: 1px solid var(--line); border-radius: 14px; padding: 16px 20px; }
.gl h2 { font: 700 1.15rem var(--serif); margin: 0 0 2px; }
.gl .tb { color: var(--muted); font-size: .85rem; margin-bottom: 4px; }
.gl p { margin: 0; }
.ferr { display: grid; gap: 20px; }
.fontes-lista { display: grid; gap: 10px; }
.fonte { background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 14px 18px; display: grid; grid-template-columns: 1fr auto; gap: 4px 16px; }
.fonte b { font-family: var(--serif); }
.fonte .v { font-weight: 700; color: var(--brand); text-align: right; }
.fonte small { color: var(--muted); grid-column: 1 / -1; }

/* ---------- teste final ---------- */
#teste { background: var(--card); border: 1px solid var(--line); border-radius: 18px; padding: 26px; box-shadow: var(--sombra); max-width: 740px; }
.teste-topo { display: grid; gap: 8px; color: var(--muted); font-size: .9rem; margin-bottom: 18px; }
.teste-p { font: 700 1.3rem/1.35 var(--serif); margin: 0 0 16px; }
#seguinte { margin-top: 14px; }
.teste-res .nota { font: 700 4rem/1 var(--serif); color: var(--brand); } .teste-res .nota small { font-size: 1.6rem; color: var(--muted); }
.rever { padding-left: 1.2em; }

/* ---------- pesquisa ---------- */
dialog#pesquisa { width: min(640px, 100% - 24px); border: 1px solid var(--line); border-radius: 18px; background: var(--card); color: var(--ink); padding: 0; box-shadow: 0 20px 70px rgba(0,0,0,.35); margin-top: 8vh; }
dialog#pesquisa::backdrop { background: rgba(10, 16, 22, .55); }
.pq-topo { display: flex; gap: 8px; padding: 14px; border-bottom: 1px solid var(--line); }
.pq-topo input { flex: 1; font: 1.05rem var(--sans); border: 0; background: transparent; color: var(--ink); padding: 8px 6px; outline: none; }
#resultados { list-style: none; margin: 0; padding: 8px; max-height: 60vh; overflow: auto; }
#resultados a { display: grid; gap: 2px; padding: 11px 14px; border-radius: 10px; text-decoration: none; color: var(--ink); }
#resultados a:hover, #resultados a:focus { background: var(--bg2); }
#resultados small { color: var(--brand); font-weight: 600; }
#resultados span { color: var(--muted); font-size: .88rem; }
#resultados .vazio { padding: 16px; color: var(--muted); }

/* ---------- rodapé ---------- */
.rodape { border-top: 1px solid var(--line); background: var(--bg2); padding: 30px 0; color: var(--muted); font-size: .9rem; }
.rodape .wrap { display: grid; gap: 10px; }
.rodape a { color: var(--muted); }
.aviso-curto { max-width: 80ch; }

@media print {
  .topo, .lat, .rodape, .navlic, .concluir-linha, .quiz, .calc { display: none !important; }
  body { background: #fff; color: #000; }
  .licao { display: block; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; scroll-behavior: auto !important; } }

/* ====================== área pública e área do curso ====================== */
.btn.peq { padding: 8px 16px; font-size: .92rem; border-radius: 10px; }
.publico .acoes { gap: 8px; }
@media (max-width: 860px) {
  .publico .acoes .btn.sec { display: none; }
  .publico .acoes .btn.peq { padding: 8px 12px; }
}

/* ---------- autenticação ---------- */
.auth { min-height: calc(100vh - 220px); display: grid; place-items: center; padding: 40px 16px; }
.auth-card { width: min(440px, 100%); background: var(--card); border: 1px solid var(--line); border-radius: 20px; padding: 32px 30px; box-shadow: var(--sombra); }
.auth-card h1 { font: 700 2rem/1.1 var(--serif); margin: 0 0 8px; }
.auth-card .lead { font-size: 1.02rem; margin: 0 0 22px; }
.form { display: grid; gap: 16px; }
.campo { display: grid; gap: 6px; }
.campo > span { font-size: .88rem; font-weight: 600; color: var(--muted); }
.campo input[type=email], .campo input[type=password], .campo input[type=text], .campo input:not([type]) { font: 1rem var(--sans); padding: 12px 14px; border: 1.5px solid var(--line); border-radius: 11px; background: var(--bg); color: var(--ink); width: 100%; }
.campo input:focus { outline: none; border-color: var(--brand); box-shadow: 0 0 0 3px var(--brand-soft); }
.campo small { color: var(--muted); font-size: .8rem; line-height: 1.4; }
.campo-check { grid-template-columns: auto 1fr; align-items: start; gap: 10px; font-size: .92rem; }
.campo-check > span { font-weight: 400; color: var(--ink); }
.campo-check input { margin-top: 4px; width: 18px; height: 18px; accent-color: var(--brand); }
.erro { margin: 0; padding: 10px 14px; border-radius: 10px; background: color-mix(in srgb, var(--mau) 12%, var(--card)); color: var(--mau); border: 1px solid color-mix(in srgb, var(--mau) 40%, transparent); font-size: .92rem; }
.ok { margin: 0; padding: 10px 14px; border-radius: 10px; background: color-mix(in srgb, var(--bom) 12%, var(--card)); color: var(--bom); font-size: .92rem; }
.auth-nota { margin: 18px 0 0; text-align: center; color: var(--muted); font-size: .95rem; }
.auth-nota.peq { font-size: .82rem; margin-top: 10px; }
.btn:disabled { opacity: .6; cursor: wait; }

/* ---------- estrutura da área do curso ---------- */
.privado .topo .wrap { width: 100%; padding: 0 16px; max-width: none; }
.app { display: grid; grid-template-columns: 310px minmax(0, 1fr); align-items: start; flex: 1; min-height: calc(100vh - 60px); }
.app-corpo { min-width: 0; display: flex; flex-direction: column; min-height: calc(100vh - 60px); }
.app-corpo > main { flex: 1; padding-bottom: 40px; }
.app-fundo { display: none; }
.conteudo-pag { width: min(860px, 100% - 40px); margin: 0 auto; padding: 34px 0 10px; }
article.conteudo-pag.texto { max-width: 70ch; width: min(70ch, 100% - 40px); }
.conteudo-pag > h1 { font: 700 clamp(2rem, 4.2vw, 2.8rem)/1.1 var(--serif); margin: 0 0 10px; letter-spacing: -.3px; }
.saudacao { margin-bottom: 4px !important; }
.sec-t { font: 700 1.5rem var(--serif); margin: 36px 0 16px; }
.mod-topo .conteudo-pag { padding-top: 0; padding-bottom: 0; }
.rodape .wrap { width: min(860px, 100% - 40px); }

/* lista de módulos à esquerda */
.menu-lateral { position: sticky; top: 60px; height: calc(100vh - 60px); overflow-y: auto; border-right: 1px solid var(--line); background: var(--bg2); padding: 18px 12px 28px; font-size: .93rem; scrollbar-width: thin; }
.ml-inicio, .ml-ferr a { display: block; padding: 8px 12px; border-radius: 9px; color: var(--ink); text-decoration: none; font-weight: 500; }
.ml-inicio:hover, .ml-ferr a:hover { background: var(--card); }
.ml-inicio[aria-current="page"], .ml-ferr a[aria-current="page"], .ml-todo[aria-current="page"] { background: var(--brand-soft); color: var(--brand); font-weight: 700; }
.ml-tit { margin: 20px 12px 8px; font: 700 .72rem var(--sans); text-transform: uppercase; letter-spacing: .8px; color: var(--muted); }
.ml-modulos, .ml-ferr, .ml-licoes { list-style: none; margin: 0; padding: 0; }
.ml-modulos > li { --acento: hsl(var(--mh) 55% 32%); --suave: hsl(var(--mh) 45% 90%); margin-bottom: 4px; }
:root[data-theme="dark"] .ml-modulos > li { --acento: hsl(var(--mh) 55% 68%); --suave: hsl(var(--mh) 30% 20%); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .ml-modulos > li { --acento: hsl(var(--mh) 55% 68%); --suave: hsl(var(--mh) 30% 20%); } }
.ml-modulos details { border-radius: 11px; }
.ml-modulos details[open] { background: var(--card); box-shadow: 0 0 0 1px var(--line); }
.ml-modulos summary { display: grid; grid-template-columns: 26px 1fr auto; gap: 10px; align-items: center; padding: 9px 10px; border-radius: 11px; cursor: pointer; list-style: none; line-height: 1.3; font-weight: 600; }
.ml-modulos summary::-webkit-details-marker { display: none; }
.ml-modulos summary:hover { background: var(--card); }
.ml-n { width: 26px; height: 26px; border-radius: 8px; background: var(--suave); color: var(--acento); display: grid; place-items: center; font-weight: 700; font-size: .82rem; }
.ml-p { color: var(--muted); font-weight: 500; font-size: .76rem; font-variant-numeric: tabular-nums; }
.completo .ml-n { background: var(--acento); color: var(--bg); }
.completo .ml-n::after { content: "✓"; }
.completo .ml-n { font-size: 0; } .completo .ml-n::after { font-size: .85rem; }
.ml-licoes { padding: 0 6px 6px 10px; margin-left: 24px; border-left: 2px solid var(--suave); }
.ml-l { display: grid; grid-template-columns: 14px 1fr; gap: 9px; padding: 7px 8px; border-radius: 8px; color: var(--ink); text-decoration: none; line-height: 1.3; font-weight: 400; align-items: start; }
.ml-l i { width: 12px; height: 12px; border-radius: 50%; border: 2px solid var(--line); margin-top: 3px; }
a.ml-l:hover { background: var(--bg2); }
a.ml-l[aria-current="page"] { background: var(--brand-soft); font-weight: 700; }
a.ml-l[aria-current="page"] i { border-color: var(--brand); }
.feita .ml-l i { background: var(--bom); border-color: var(--bom); }
.breve .ml-l { opacity: .55; }
.breve .ml-l em { display: block; font-size: .75rem; font-style: normal; color: var(--muted); }
.ml-todo { display: block; margin: 0 6px 8px 34px; padding: 5px 10px; font-size: .82rem; color: var(--muted); text-decoration: none; border-radius: 7px; }
.ml-todo:hover { color: var(--brand); background: var(--bg2); }

/* menu do utilizador */
.util { position: relative; }
.util-b { padding: 0 10px 0 5px; }
.avatar { width: 28px; height: 28px; border-radius: 50%; background: var(--brand); color: var(--brand-ink); display: grid; place-items: center; font-weight: 700; font-size: .88rem; }
.util-m { position: absolute; right: 0; top: 46px; min-width: 220px; background: var(--card); border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 12px 40px rgba(0,0,0,.2); padding: 8px; z-index: 50; }
.util-m > * { display: block; width: 100%; text-align: left; padding: 9px 12px; border-radius: 9px; border: 0; background: none; font: inherit; font-size: .94rem; color: var(--ink); text-decoration: none; cursor: pointer; }
.util-m a:hover, .util-m button:hover { background: var(--bg2); }
.util-email { color: var(--muted) !important; font-size: .82rem !important; cursor: default !important; word-break: break-all; border-bottom: 1px solid var(--line); border-radius: 0 !important; margin-bottom: 4px; }

/* painel */
.continuar { display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap; background: linear-gradient(135deg, var(--brand-soft), var(--acc-soft)); border: 1px solid var(--line); border-radius: 18px; padding: 22px 26px; margin-top: 22px; }
.continuar b { display: block; font: 700 1.25rem var(--serif); }
.continuar small { color: var(--muted); }

.caixa.perigo { border-color: color-mix(in srgb, var(--mau) 40%, var(--line)); }
.perigo-b { background: var(--mau); color: #fff; }

/* telemóvel e tablet: a lista de módulos passa a gaveta */
@media (max-width: 960px) {
  .app { display: block; }
  .privado #menu { display: inline-flex; }
  .menu-lateral { position: fixed; z-index: 60; top: 60px; left: 0; bottom: 0; height: auto; width: min(340px, 88vw); transform: translateX(-102%); transition: transform .22s ease; box-shadow: 0 0 40px rgba(0,0,0,.3); background: var(--bg2); }
  .menu-aberto .menu-lateral { transform: none; }
  .menu-aberto .app-fundo { display: block; position: fixed; inset: 60px 0 0 0; background: rgba(8, 14, 20, .5); z-index: 55; }
  .privado .topo .marca span { font-size: .98rem; }
}
@media (min-width: 961px) { .privado #menu { display: none; } }
@media (prefers-reduced-motion: reduce) { .menu-lateral { transition: none; } }

/* ---------- portal: sino, perguntas, mensagens e área da equipa ---------- */
.campo textarea, .campo select { font: 1rem var(--sans); padding: 12px 14px; border: 1.5px solid var(--line); border-radius: 11px; background: var(--card); color: var(--ink); width: 100%; }
.campo textarea { resize: vertical; min-height: 96px; line-height: 1.5; }
.campo textarea:focus, .campo select:focus, .campo input:focus { outline: none; border-color: var(--brand); box-shadow: 0 0 0 3px var(--brand-soft); }
.campo input[type=number], .campo input[type=search] { font: 1rem var(--sans); padding: 12px 14px; border: 1.5px solid var(--line); border-radius: 11px; background: var(--card); color: var(--ink); width: 100%; }
.check { display: inline-flex; align-items: center; gap: 8px; font-size: .92rem; }
.check input { width: 18px; height: 18px; accent-color: var(--brand); }
.link { background: none; border: 0; padding: 0; font: inherit; font-size: .82rem; color: var(--brand); text-decoration: underline; cursor: pointer; }
.nota { color: var(--muted); font-size: .88rem; }
.vazio { color: var(--muted); }

/* sino */
.sino { position: relative; }
.sino-b-tem, #sino-b.tem { border-color: var(--acc); }
.sino-n { position: absolute; top: -6px; right: -6px; min-width: 19px; height: 19px; padding: 0 5px; border-radius: 999px; background: var(--mau); color: #fff; font: 700 .72rem/19px var(--sans); text-align: center; box-shadow: 0 0 0 2px var(--bg); }
#sino-b { position: relative; }
.sino-m { min-width: min(360px, calc(100vw - 24px)); padding: 0; right: -60px; }
.sino-m > * { padding: 0; }
.sino-topo { display: flex !important; justify-content: space-between; align-items: center; padding: 12px 16px !important; border-bottom: 1px solid var(--line); }
.sino-m ul { list-style: none; margin: 0; max-height: 360px; overflow-y: auto; }
.sino-m li, .msg-lista li { border-bottom: 1px solid var(--line); }
.sino-m li a, .msg-lista li a { display: grid !important; gap: 3px; padding: 12px 16px !important; color: var(--ink); text-decoration: none; border-radius: 0 !important; }
.sino-m li a:hover, .msg-lista li a:hover { background: var(--bg2); }
li.nao-lida a { background: color-mix(in srgb, var(--brand) 9%, var(--card)); box-shadow: inset 3px 0 0 var(--brand); }
.ml-t { display: flex; justify-content: space-between; gap: 10px; align-items: baseline; }
.ml-t small { color: var(--muted); white-space: nowrap; font-size: .76rem; }
.ml-x { color: var(--muted); font-size: .88rem; line-height: 1.4; }
.sino-ver { display: block !important; text-align: center !important; padding: 11px !important; font-weight: 600; color: var(--brand) !important; }
.sino-m .vazio { padding: 16px; }
.msg-lista { list-style: none; margin: 0; padding: 0; border: 1px solid var(--line); border-radius: 14px; background: var(--card); overflow: hidden; max-width: 760px; }
.msg-lista li:last-child { border-bottom: 0; }

/* dúvida na lição */
.duvida { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; margin: 2em 0 1em; padding: 16px 20px; border: 1px dashed var(--line); border-radius: 14px; background: var(--card); font-family: var(--sans); }
.duvida span { flex: 1 1 260px; color: var(--muted); font-size: .94rem; }

/* conversas */
.pergunta { background: var(--card); border: 1px solid var(--line); border-radius: 16px; padding: 18px 20px; margin: 0 0 16px; max-width: 760px; font-family: var(--sans); box-shadow: var(--sombra); }
.pergunta header { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.pergunta h3 { margin: 0; font: 700 1.1rem/1.3 var(--serif); }
.pg-meta { margin: 4px 0 12px; color: var(--muted); font-size: .84rem; }
.fio { display: grid; gap: 10px; margin: 8px 0 14px; }
.bolha { max-width: 92%; padding: 10px 14px; border-radius: 14px; background: var(--bg2); }
.bolha small { display: block; color: var(--muted); font-size: .75rem; margin-bottom: 2px; }
.bolha p { margin: 0; line-height: 1.5; overflow-wrap: anywhere; }
.bolha.eq { background: var(--brand-soft); justify-self: end; }
.bolha.interna { background: var(--acc-soft); border: 1px dashed var(--acc); justify-self: end; }
.pill.est-nova { background: var(--acc-soft); color: var(--acc); }
.pill.est-em_curso { background: var(--brand-soft); color: var(--brand); }
.pill.est-respondida { background: color-mix(in srgb, var(--bom) 16%, var(--card)); color: var(--bom); }
.pill.est-fechada { background: var(--bg2); color: var(--muted); }
.pill.risco { background: color-mix(in srgb, var(--mau) 14%, var(--card)); color: var(--mau); }
.pg-resp textarea { min-height: 64px; }
.botoes { display: flex; flex-wrap: wrap; gap: 10px; margin: 16px 0; }

/* portal da equipa */
.admin-corpo .topo .wrap { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.admin-nav { display: flex; gap: 4px; margin-left: 8px; position: static; flex-direction: row; background: none; border: 0; padding: 0; }
.admin-nav a { padding: 8px 12px; border-radius: 9px; color: var(--ink); text-decoration: none; font-weight: 600; font-size: .94rem; }
.admin-nav a[aria-current=page] { background: var(--brand-soft); color: var(--brand); }
.admin-nav a[hidden] { display: none; }
.admin-main { padding: 28px 0 60px; font-family: var(--sans); }
.admin-main h1 { font: 700 clamp(1.7rem, 3.4vw, 2.3rem)/1.15 var(--serif); margin: 0 0 14px; }
.cartoes { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 14px; margin: 16px 0; }
.cartao { background: var(--card); border: 1px solid var(--line); border-radius: 14px; padding: 16px 18px; box-shadow: var(--sombra); }
.cartao b { display: block; font: 700 2rem/1.1 var(--serif); color: var(--brand); }
.cartao span { display: block; font-weight: 600; margin-top: 2px; }
.cartao small { color: var(--muted); font-size: .8rem; line-height: 1.35; display: block; margin-top: 4px; }
.funil { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.funil li { display: grid; grid-template-columns: minmax(150px, 230px) 1fr 56px; gap: 12px; align-items: center; }
.f-t { font-size: .92rem; }
.f-b { background: var(--bg2); border-radius: 6px; height: 14px; overflow: hidden; display: block; }
.f-b i { display: block; height: 100%; background: var(--brand); border-radius: 6px; }
.f-b.mini { width: 90px; height: 8px; display: inline-block; vertical-align: middle; margin-right: 6px; }
.funil b { text-align: right; }
#t-licoes th[data-o] { cursor: pointer; text-decoration: underline dotted; }
.admin-main td small { color: var(--muted); }
.filtros { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 12px 0; }
.filtros input[type=search], .filtros select { font: 1rem var(--sans); padding: 10px 12px; border: 1.5px solid var(--line); border-radius: 10px; background: var(--card); color: var(--ink); min-width: 200px; }
.cx-perguntas { display: grid; grid-template-columns: minmax(280px, 380px) 1fr; gap: 20px; align-items: start; }
.cx-lista, .cx-detalhe { background: var(--card); border: 1px solid var(--line); border-radius: 14px; padding: 14px; }
.cx-lista .filtros { margin-top: 0; }
.cx-lista .item { display: grid; gap: 3px; width: 100%; text-align: left; padding: 11px 12px; border: 0; border-bottom: 1px solid var(--line); background: none; font: inherit; color: var(--ink); cursor: pointer; border-radius: 8px; }
.cx-lista .item:hover, .cx-lista .item.sel { background: var(--bg2); }
.cx-lista .item .pill { width: fit-content; }
.cx-lista .item small { color: var(--muted); }
@media (max-width: 860px) {
  .cx-perguntas { grid-template-columns: 1fr; }
  .funil li { grid-template-columns: 1fr 56px; }
  .funil .f-b { grid-column: 1 / -1; order: 3; }
  .sino-m { right: -90px; }
}
@media (max-width: 560px) {
  .sino-m { position: fixed; left: 8px; right: 8px; top: 62px; min-width: 0; width: auto; }
}

/* gestão de contas (ficha do aluno) */
.pill.bloq { background: color-mix(in srgb, var(--mau) 14%, var(--card)); color: var(--mau); }
#alunos th[data-o] { cursor: pointer; text-decoration: underline dotted; }
.ficha-topo h2 { margin: 0 0 4px; }
.lista-simples { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.lista-simples small { color: var(--muted); margin-left: 6px; }
.acao { padding: 14px 0; border-top: 1px solid var(--line); }
.acao:first-of-type { border-top: 0; }
.acao h3 { margin: 0 0 4px; font-size: 1.02rem; }
.acao .linha { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.acao .linha input { flex: 1 1 220px; font: 1rem var(--sans); padding: 10px 12px; border: 1.5px solid var(--line); border-radius: 10px; background: var(--card); color: var(--ink); }
.acao.perigo { border-top-color: color-mix(in srgb, var(--mau) 40%, var(--line)); }
.acao details { margin-top: 10px; }
.acao details summary { cursor: pointer; color: var(--muted); }
.temp { margin-top: 12px; padding: 14px; border-radius: 12px; background: var(--acc-soft); }
.temp .cod { font: 700 1.5rem/1.3 ui-monospace, Menlo, Consolas, monospace; letter-spacing: .04em; margin: 6px 0 10px; user-select: all; word-break: break-all; }
.aviso-ficha { padding: 10px 14px; border-radius: 10px; margin: 0 0 8px; }
.aviso-ficha.ok { background: color-mix(in srgb, var(--bom) 14%, var(--card)); color: var(--ink); }
.aviso-ficha.erro { background: color-mix(in srgb, var(--mau) 12%, var(--card)); color: var(--ink); }
.aviso-troca { padding: 14px 16px; border-radius: 12px; background: var(--acc-soft); margin: 0 0 18px; }

.aviso-email { padding: 10px 16px; margin: 0 0 16px; border-radius: 10px; background: var(--acc-soft); font-size: .95rem; }
.aviso-email .ligacao { font: inherit; background: none; border: 0; padding: 0; color: var(--brand); text-decoration: underline; cursor: pointer; }
.auth-card code { background: var(--bg2); padding: 1px 5px; border-radius: 4px; }

/* vários cursos: biblioteca, montra, seletor e página de venda */
.privado .app.sem-menu { display: block; }
.privado .app.sem-menu .app-corpo { max-width: 1180px; margin: 0 auto; width: 100%; }
.cursos-grelha { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 20px; margin: 18px 0 30px; }
.curso-card { display: flex; flex-direction: column; gap: 14px; background: var(--card); border: 1px solid var(--line); border-radius: 16px; padding: 24px; box-shadow: var(--sombra); }
.curso-card h3 { font: 700 1.25rem/1.25 var(--sans); margin: 6px 0 8px; letter-spacing: -.01em; }
.curso-card h3 a { color: inherit; text-decoration: none; }
.curso-card h3 a:hover { text-decoration: underline; }
.curso-card p { margin: 0; color: var(--muted); font-size: .92rem; line-height: 1.55; }
.curso-etiqueta { font: 700 .68rem/1 var(--sans); letter-spacing: .14em; color: var(--muted); }
.curso-meta { color: var(--muted); font-size: .85rem; }
.curso-rodape { margin-top: auto; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; }
.curso-preco { font-size: 1.15rem; }
.curso-preco small { display: block; font-weight: 500; font-size: .75rem; color: var(--muted); }
.curso-acesso { font-size: .85rem; color: var(--muted); }
.curso-acesso.fim { color: #b23a3a; font-weight: 600; }
.curso-prog .barra { height: 8px; margin-bottom: 6px; }
.curso-prog small { color: var(--muted); }
.trocar-curso { position: relative; margin-left: 8px; }
.trocar-b { display: flex; gap: 8px; align-items: center; background: transparent; border: 1px solid var(--line); border-radius: 999px; padding: 7px 14px; font: 600 .85rem var(--sans); color: var(--ink); cursor: pointer; max-width: 260px; }
.trocar-b:hover { background: var(--bg2); }
.trocar-nome { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.trocar-m { left: 0; right: auto; min-width: 270px; }
.trocar-tit { margin: 4px 10px 8px; font-size: .72rem; font-weight: 700; letter-spacing: .1em; color: var(--muted); text-transform: uppercase; }
.trocar-m ul { list-style: none; margin: 0; padding: 0; }
.trocar-m li a { display: flex; justify-content: space-between; gap: 14px; padding: 9px 10px; border-radius: 10px; text-decoration: none; color: var(--ink); }
.trocar-m li a:hover, .trocar-m li a[aria-current] { background: var(--bg2); }
.trocar-m li small { color: var(--muted); }
.trocar-todos { display: block; border-top: 1px solid var(--line); margin-top: 6px; padding: 10px 10px 4px; font-size: .85rem; }
.venda { padding: 40px 0 70px; }
.venda-grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(280px, 1fr); gap: 50px; align-items: start; }
.venda-texto h1 { font: 400 clamp(34px, 4vw, 52px)/1.1 var(--serif); margin: 14px 0; letter-spacing: -.02em; }
.venda-fatos { display: flex; gap: 22px; flex-wrap: wrap; margin: 20px 0 30px; color: var(--muted); }
.venda-fatos b { color: var(--ink); font-size: 1.3rem; }
.venda-modulos { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.venda-modulos li { display: grid; gap: 2px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--card); }
.venda-modulos span, .venda-modulos small { color: var(--muted); font-size: .9rem; }
.venda-caixa { position: sticky; top: 100px; background: var(--card); border: 1px solid var(--line); border-radius: 18px; padding: 26px; display: grid; gap: 14px; box-shadow: var(--sombra); }
.venda-preco { font: 700 1.9rem/1.2 var(--sans); margin: 0; }
.venda-preco small { display: block; font-size: .8rem; font-weight: 500; color: var(--muted); }
.venda-lista { margin: 0; padding-left: 18px; color: var(--muted); font-size: .92rem; }
.venda-caixa .nota.fim { color: #b23a3a; }
@media (max-width: 860px) { .venda-grid { grid-template-columns: 1fr; } .venda-caixa { position: static; } .trocar-b { max-width: 150px; } }

/* administração de cursos e acessos */
.curso-admin { margin-bottom: 18px; }
.curso-admin-topo { display: flex; justify-content: space-between; gap: 14px; align-items: flex-start; flex-wrap: wrap; }
.curso-admin-topo h2 { margin: 0 0 2px; }
.curso-admin-topo small { color: var(--muted); }
.cartoes.mini { margin: 12px 0; }
.curso-form .linha { display: flex; flex-wrap: wrap; gap: 14px; align-items: end; }
.curso-form .campo { min-width: 150px; flex: 1 1 150px; }
.acesso-curso { padding: 12px 0; border-top: 1px solid var(--line); display: grid; gap: 6px; }
.acesso-curso:first-of-type { border-top: 0; }
.acesso-topo { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.acesso-topo .btn { margin-left: auto; }
.campo-linha { display: inline-flex; gap: 10px; align-items: center; font-weight: 600; }

/* compra */
.aviso-teste { padding: 12px 16px; border-radius: 12px; background: #fff4d6; color: #5a4300; margin: 0 0 18px; font-size: .92rem; }
:root[data-theme='dark'] .aviso-teste { background: #3a2f10; color: #f3dfa0; }
.checkout-resumo { position: static; max-width: 560px; }
.checkout-resumo h2 { margin: 0 0 4px; font: 700 1.3rem var(--sans); }
.campo-check { display: flex; gap: 12px; align-items: flex-start; padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--bg2); }
.campo-check input { margin-top: 4px; width: 18px; height: 18px; accent-color: var(--brand); flex: none; }
