/* Fontes auto-hospedadas (antes: Google Fonts) */
@font-face{font-family:'Caveat';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/caveat-600-normal-latin-ext.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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Caveat';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/caveat-600-normal-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:'Poppins';font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/poppins-400-italic-latin-ext.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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Poppins';font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/poppins-400-italic-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:'Poppins';font-style:normal;font-weight:300;font-display:swap;src:url(../fonts/poppins-300-normal-latin-ext.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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Poppins';font-style:normal;font-weight:300;font-display:swap;src:url(../fonts/poppins-300-normal-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:'Poppins';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/poppins-400-normal-latin-ext.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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Poppins';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/poppins-400-normal-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:'Poppins';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/poppins-500-normal-latin-ext.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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Poppins';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/poppins-500-normal-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:'Poppins';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/poppins-600-normal-latin-ext.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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Poppins';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/poppins-600-normal-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:'Source Serif 4';font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/source-serif-4-400-italic-latin-ext.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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Source Serif 4';font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/source-serif-4-400-italic-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:'Source Serif 4';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/source-serif-4-400-normal-latin-ext.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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/source-serif-4-400-normal-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:'Source Serif 4';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/source-serif-4-500-normal-latin-ext.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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/source-serif-4-500-normal-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:'Source Serif 4';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/source-serif-4-600-normal-latin-ext.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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/source-serif-4-600-normal-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}

/* =========================================================
   O Veterano — estilos
   Azul e branco: a caneta BIC sobre a folha de papel.
   ========================================================= */
:root {
  /* Cor da marca: muda aqui (e nos tons claros abaixo) para mudar a cor do site todo */
  --marca: #1E40E6; --marca-2: #1733C2; --marca-escura: #1530B8;
  --bic: var(--marca); --bic-2: var(--marca-2); --sobre-bic: #FFFFFF;
  --tinta: #101633; --tinta-2: #4A5275; --tinta-3: #7C84A3;
  --vermelho: #D92F43; --verde: #1E40E6;
  --mesa: #F3F5FB; --sup: #FFFFFF; --sup-2: #F6F7FC; --sup-3: #ECEFF7;
  --linha: #E3E6F0; --linha-2: #CBD1E2;
  --azul-claro: #E6ECFF; --azul-suave: #EEF2FF; --rosa-claro: #FFE7EA; --verde-claro: #E6ECFF;
  --texto-suave: #1733C2;
  --ins-cal-bg: #E9ECF5; --ins-cal: #7C84A3; --ins-dec-bg: #101633;
  --th-provas: #FFE1E5; --th-pratica: #D7DDF4; --th-teoria: #E2E9FF;
  --papel: #FFFFFF; --papel-tinta: #1A2040; --papel-sub: #6A7290; --papel-linha: #DDE3F1; --caneta: var(--marca); --caneta-vermelha: #D92F43;
  --sombra-papel: 0 1px 2px rgba(16, 22, 51, .08), 0 10px 22px -10px rgba(16, 22, 51, .28);
  --sombra-pop: 0 28px 70px -24px rgba(16, 22, 51, .42);
  --sombra-leve: 0 1px 2px rgba(16, 22, 51, .06);
  --f: "Poppins", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; /* (226.ª parte) Poppins em todo o site */
  --mao: "Caveat", "Segoe Print", "Bradley Hand", "Comic Sans MS", cursive;
  --topo-h: 68px; --lat-w: 252px;
  color-scheme: light;
  box-sizing: border-box;
  padding-top: env(safe-area-inset-top, 0px);
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bic: #7891FF; --bic-2: #93A7FF; --sobre-bic: #0B1024;
    --tinta: #EEF0FA; --tinta-2: #B0B6D2; --tinta-3: #7F87AA;
    --vermelho: #FF6E7E; --verde: #AFC0FF;
    --mesa: #0B1024; --sup: #131A35; --sup-2: #19213F; --sup-3: #222B4E;
    --linha: #252E55; --linha-2: #36406E;
    --azul-claro: #1D2757; --azul-suave: #182049; --rosa-claro: #3A1B26; --verde-claro: #1D2550;
    --texto-suave: #AFC0FF;
    --ins-cal-bg: #232A4C; --ins-cal: #8C93B7; --ins-dec-bg: #2C3566;
    --th-provas: #4A2531; --th-pratica: #141D44; --th-teoria: #222D60;
    --sombra-papel: 0 1px 2px rgba(0, 0, 0, .3), 0 12px 26px -10px rgba(0, 0, 0, .6);
    --sombra-pop: 0 28px 70px -20px rgba(0, 0, 0, .7);
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --bic: #7891FF; --bic-2: #93A7FF; --sobre-bic: #0B1024;
  --tinta: #EEF0FA; --tinta-2: #B0B6D2; --tinta-3: #7F87AA;
  --vermelho: #FF6E7E; --verde: #AFC0FF;
  --mesa: #0B1024; --sup: #131A35; --sup-2: #19213F; --sup-3: #222B4E;
  --linha: #252E55; --linha-2: #36406E;
  --azul-claro: #1D2757; --azul-suave: #182049; --rosa-claro: #3A1B26; --verde-claro: #1D2550;
  --texto-suave: #AFC0FF;
  --ins-cal-bg: #232A4C; --ins-cal: #8C93B7; --ins-dec-bg: #2C3566;
  --th-provas: #4A2531; --th-pratica: #141D44; --th-teoria: #222D60;
  --sombra-papel: 0 1px 2px rgba(0, 0, 0, .3), 0 12px 26px -10px rgba(0, 0, 0, .6);
  --sombra-pop: 0 28px 70px -20px rgba(0, 0, 0, .7);
  color-scheme: dark;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-padding-top: calc(env(safe-area-inset-top, 0px) + var(--topo-h) + 12px); -webkit-text-size-adjust: 100%; height: 100%; }
body {
  margin: 0; min-height: 100%; background: var(--mesa); color: var(--tinta);
  font-family: var(--f); font-optical-sizing: auto; font-size: 16px; line-height: 1.5;
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
}
h1, h2, h3, h4 { line-height: 1.12; letter-spacing: -.02em; font-weight: 760; margin: 0; text-wrap: balance; }
p { margin: 0; text-wrap: pretty; }
a { color: inherit; }
img, svg { max-width: 100%; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 3px solid var(--bic); outline-offset: 2px; border-radius: 8px; }
.sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.sr:focus { position: fixed !important; top: 10px; left: 10px; width: auto; height: auto; clip: auto; z-index: 200; background: var(--sup); padding: 10px 14px; border-radius: 10px; box-shadow: var(--sombra-pop); }
.so-mob { display: none !important; }
[hidden] { display: none !important; }

/* ---------- Topo ---------- */
.topo {
  position: sticky; top: 0; z-index: 40; height: var(--topo-h);
  display: grid; grid-template-columns: var(--lat-w) minmax(0, 1fr) auto; align-items: center; gap: 16px;
  padding: 0 20px 0 0; background: var(--sup); border-bottom: 1px solid var(--linha);
}
.marca {
  display: inline-flex; align-items: center; gap: 10px; padding-left: 24px; text-decoration: none; color: var(--tinta);
  font-weight: 800; font-size: 1.28rem; letter-spacing: -.035em; font-stretch: 92%;
}
.marca svg { width: 34px; height: 34px; flex: none; }
.busca-topo {
  position: relative; max-width: 640px; width: 100%; height: 46px; display: flex; align-items: center;
  background: var(--sup-2); border: 1.5px solid var(--linha); border-radius: 999px; transition: border-color .15s, background .15s;
}
.busca-topo:focus-within { border-color: var(--bic); background: var(--sup); }
.busca-topo > svg { position: absolute; left: 16px; width: 20px; height: 20px; color: var(--tinta-3); pointer-events: none; }
.busca-topo input { width: 100%; height: 100%; border: 0; background: none; padding: 0 18px 0 46px; font-size: .97rem; outline: none; }
.busca-topo input::placeholder { color: var(--tinta-3); }
.acoes { display: flex; align-items: center; gap: 8px; justify-self: end; }

/* ---------- Casca: lateral + conteúdo ---------- */
.casca { display: grid; grid-template-columns: var(--lat-w) minmax(0, 1fr); min-height: calc(100vh - var(--topo-h)); }
body.sem-lateral .casca { grid-template-columns: minmax(0, 1fr); }
body.sem-lateral .lateral { display: none; }
.lateral {
  position: sticky; top: var(--topo-h); height: calc(100vh - var(--topo-h)); overflow-y: auto; overscroll-behavior: contain;
  display: flex; flex-direction: column; gap: 2px; padding: 16px 12px 22px; background: var(--sup); border-right: 1px solid var(--linha);
}
.nav-l { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 12px; color: var(--tinta-2); text-decoration: none; font-weight: 640; font-size: .96rem; }
.nav-l svg { width: 22px; height: 22px; flex: none; }
.nav-l:hover { background: var(--sup-2); color: var(--tinta); }
.nav-l[aria-current="page"] { background: var(--azul-claro); color: var(--bic); }
.nav-l .conta { margin-left: auto; min-width: 24px; height: 22px; padding: 0 7px; border-radius: 99px; background: var(--rosa-claro); color: var(--vermelho); font-size: .8rem; font-weight: 750; display: grid; place-items: center; }
.nav-grupo { padding: 18px 12px 6px; font-size: .8rem; font-weight: 650; color: var(--tinta-3); }
.lat-fim { margin-top: auto; display: flex; flex-direction: column; gap: 12px; padding-top: 18px; }
.lat-convite { background: var(--azul-suave); border-radius: 18px; padding: 16px; }
.lat-convite strong { display: block; font-size: .98rem; line-height: 1.25; margin-bottom: 4px; }
.lat-convite p { font-size: .84rem; color: var(--tinta-2); margin-bottom: 12px; }
.veu { position: fixed; inset: 0; z-index: 55; background: rgba(8, 12, 30, .5); }

main { min-width: 0; padding: 28px clamp(16px, 3vw, 40px) 90px; outline: none; }
body.sem-lateral main { padding: 0; }
.pag { max-width: 1180px; margin: 0 auto; }
.wrap { max-width: 1200px; margin: 0 auto; padding-inline: clamp(18px, 4vw, 40px); }

/* ---------- Botões ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 44px; padding: 0 18px;
  border-radius: 999px; border: 1.5px solid transparent; font-weight: 700; font-size: .95rem; line-height: 1;
  text-decoration: none; white-space: nowrap; transition: background .15s, border-color .15s, color .15s; -webkit-tap-highlight-color: transparent;
}
.btn svg { width: 18px; height: 18px; flex: none; }
.btn:active { transform: translateY(1px); }
.btn:disabled, .btn[aria-disabled="true"] { opacity: .5; cursor: not-allowed; transform: none; }
.btn-pri { background: var(--bic); color: var(--sobre-bic); }
.btn-pri:hover { background: var(--bic-2); }
.btn-sec { background: var(--sup); border-color: var(--linha-2); color: var(--tinta); }
.btn-sec:hover { border-color: var(--tinta-3); }
.btn-marca { background: var(--bic); color: var(--sobre-bic); }
.btn-marca:hover { background: var(--bic-2); }
.saldo-mini .btn-marca, .saldo-bloco .btn-marca, .faixa-cta .btn-marca { background: #fff; color: var(--marca); }
.saldo-mini .btn-marca:hover, .saldo-bloco .btn-marca:hover, .faixa-cta .btn-marca:hover { background: #E6ECFF; }
.btn-branco { background: #fff; color: #101633; }
.btn-branco:hover { background: #EEF1FF; }
.btn-contorno { border-color: rgba(255, 255, 255, .55); color: #fff; background: transparent; }
.btn-contorno:hover { border-color: #fff; background: rgba(255, 255, 255, .08); }
.btn-ghost { background: transparent; color: var(--tinta-2); }
.btn-ghost:hover { background: var(--sup-2); color: var(--tinta); }
.btn-ok { background: var(--verde); color: #fff; }
.btn-lg { height: 52px; padding: 0 24px; font-size: 1.02rem; }
.btn-sm { height: 36px; padding: 0 14px; font-size: .86rem; }
.btn-full { width: 100%; }
.ib { width: 40px; height: 40px; display: inline-grid; place-items: center; border-radius: 50%; border: 0; background: transparent; color: var(--tinta-2); flex: none; }
.ib:hover { background: var(--sup-2); color: var(--tinta); }
.ib svg { width: 22px; height: 22px; }
.link { background: none; border: 0; padding: 0; color: var(--bic); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1.5px; }

/* Pontos e avatar */
.pts {
  display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 14px 0 6px; border-radius: 999px;
  background: var(--azul-claro); color: var(--tinta); text-decoration: none; font-weight: 780; font-size: .98rem; font-variant-numeric: tabular-nums;
}
.pts:hover { box-shadow: inset 0 0 0 1.5px var(--bic); }
.pts small { font-weight: 650; color: var(--texto-suave); font-size: .8rem; }
.moeda { width: 28px; height: 28px; flex: none; }
.av {
  width: 36px; height: 36px; border-radius: 50%; display: inline-grid; place-items: center; flex: none;
  font-weight: 750; font-size: .82rem; letter-spacing: .01em;
}
.av-eu { background: var(--bic); color: var(--sobre-bic); }
a.av-link { border-radius: 50%; text-decoration: none; }
.av-g { width: 72px; height: 72px; font-size: 1.5rem; }
.ins { width: 32px; height: 32px; flex: none; display: block; }

/* Etiquetas */
.etiquetas { display: flex; flex-wrap: wrap; gap: 6px; }
.et { display: inline-flex; align-items: center; height: 24px; padding: 0 8px; border-radius: 7px; background: var(--sup-3); color: var(--tinta-2); font-size: .8rem; font-weight: 700; white-space: nowrap; }
.et-provas { background: var(--rosa-claro); color: var(--vermelho); }
.et-pratica { background: var(--verde-claro); color: var(--verde); }
.et-teoria { background: var(--azul-claro); color: var(--texto-suave); }
.et-ok { background: var(--verde-claro); color: var(--verde); }

/* Chips */
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip {
  display: inline-flex; align-items: center; gap: 6px; height: 38px; padding: 0 15px; border-radius: 999px;
  border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta); font-weight: 650; font-size: .9rem; text-decoration: none; white-space: nowrap;
}
.chip:hover { border-color: var(--tinta-3); }
.chip[aria-pressed="true"], .chip.ativo { background: var(--tinta); border-color: var(--tinta); color: var(--sup); }
.chip-sm { height: 32px; padding: 0 12px; font-size: .84rem; }

/* Abas */
.abas { display: flex; gap: 4px; border-bottom: 1px solid var(--linha); margin-bottom: 22px; overflow-x: auto; scrollbar-width: none; }
.abas::-webkit-scrollbar { display: none; }
.aba { border: 0; background: none; padding: 12px 14px; font-weight: 700; color: var(--tinta-3); border-bottom: 3px solid transparent; margin-bottom: -1px; white-space: nowrap; }
.aba:hover { color: var(--tinta); }
.aba[aria-selected="true"] { color: var(--tinta); border-bottom-color: var(--bic); }
.aba .n { margin-left: 6px; font-size: .82rem; color: var(--tinta-3); font-weight: 650; }

/* ---------- Miniaturas de papel ---------- */
.th { position: relative; aspect-ratio: 4 / 3; border-radius: 12px; overflow: hidden; background: var(--th-teoria); font-size: 10.5px; }
.th-provas { background: var(--th-provas); }
.th-pratica { background: var(--th-pratica); }
.th-pg {
  position: absolute; left: 13%; right: 13%; top: 11%; height: 125%; overflow: hidden;
  background: var(--papel); color: var(--papel-tinta); box-shadow: var(--sombra-papel); border-radius: 3px; padding: 1.5em 1.5em;
  transition: transform .25s cubic-bezier(.2, .8, .2, 1);
}
.papel { position: relative; background: var(--papel); color: var(--papel-tinta); box-shadow: var(--sombra-papel); border-radius: 3px; padding: 1.6em 1.6em; overflow: hidden; }
.th-cab { display: flex; align-items: center; gap: .7em; border-bottom: .13em solid var(--papel-tinta); padding-bottom: .65em; margin-bottom: .8em; }
.th-selo { width: 2.6em; height: 2.6em; border-radius: 50%; border: .1em solid currentColor; display: grid; place-items: center; font-size: .66em; font-weight: 800; letter-spacing: .02em; flex: none; }
.th-l { display: flex; flex-direction: column; gap: .5em; flex: 1; margin-bottom: .7em; }
.th-l i { display: block; height: .42em; background: var(--papel-linha); border-radius: 1em; }
.th-l.centro { align-items: center; }
.th-l.marca i { height: .85em; background: #C9D6FF; border-radius: .15em; opacity: .9; }
.th-tit { font-size: 1.05em; font-weight: 800; line-height: 1.15; letter-spacing: -.01em; margin: 0 0 .2em; }
.th-tit.grande { font-size: 1.4em; margin: .7em 0 .25em; }
.th-sub { font-size: .74em; color: var(--papel-sub); margin: 0 0 .9em; line-height: 1.3; }
.th-q { margin: 0; padding-left: 1.3em; font-size: .78em; font-weight: 800; }
.th-q li { margin-bottom: 1.1em; }
.th-q li i { display: block; height: .5em; background: var(--papel-linha); border-radius: 1em; margin: 0 0 .55em; }
.th-q li::marker { color: var(--papel-tinta); }
.th-nota {
  position: absolute; top: .7em; right: .8em; font-family: var(--mao); color: var(--caneta-vermelha); font-size: 2.3em; line-height: 1;
  border: .09em solid var(--caneta-vermelha); border-radius: 55% 45% 50% 50% / 50% 55% 45% 50%; padding: .12em .28em .02em; transform: rotate(-10deg);
}
.th-mao { display: block; font-family: var(--mao); color: var(--caneta); font-size: 1.5em; line-height: 1; margin: -.2em 0 .5em .6em; transform: rotate(-3deg); }
.th-capa { display: flex; flex-direction: column; align-items: center; text-align: center; padding-top: .3em; }
.th-capa .th-sub { margin-bottom: .2em; }
.th-graf { width: 78%; height: 3.6em; color: var(--caneta); margin: .7em auto .9em; }
.th-graf svg { width: 100%; height: 100%; display: block; }
.th-livro { position: absolute; inset: 0; background: var(--marca); color: #fff; padding: 2em 1.6em; }
.th-livro .th-sub { color: rgba(255, 255, 255, .75); }
.th-livro .th-selo { position: absolute; bottom: 3.6em; left: 1.6em; }
.th-faixa { display: block; width: 45%; height: .6em; background: #fff; border-radius: .1em; margin-bottom: 1.2em; }

/* ---------- Cartão de material ---------- */
.grelha-docs { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(212px, 100%), 1fr)); gap: 22px 18px; }
.cartao {
  position: relative; display: flex; flex-direction: column; min-width: 0;
  background: var(--sup); border: 1px solid var(--linha); border-radius: 18px; padding: 10px 10px 12px;
  transition: border-color .15s;
}
.cartao:hover { border-color: var(--linha-2); }
.cartao:hover .th-pg { transform: translateY(-4px) rotate(-.7deg); }
.cartao-th { position: relative; }
.pags { position: absolute; right: 8px; bottom: 8px; background: rgba(16, 22, 51, .84); color: #fff; font-size: .76rem; font-weight: 720; padding: 3px 8px; border-radius: 7px; }
.estado-th { position: absolute; left: 8px; top: 8px; display: inline-flex; align-items: center; gap: 4px; height: 24px; padding: 0 8px; border-radius: 7px; font-size: .76rem; font-weight: 750; background: var(--sup); color: var(--tinta-2); box-shadow: var(--sombra-leve); }
.estado-th svg { width: 14px; height: 14px; }
.estado-th.aberto { color: var(--verde); }
.cartao h3 { font-size: 1rem; font-weight: 740; margin: 12px 4px 2px; line-height: 1.25; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.cartao h3 a { text-decoration: none; }
.cartao h3 a::after { content: ""; position: absolute; inset: 0; border-radius: 18px; }
.cartao h3 a:focus-visible { outline: none; }
.cartao:has(h3 a:focus-visible) { outline: 3px solid var(--bic); outline-offset: 2px; }
.cartao .onde { font-size: .85rem; color: var(--tinta-2); margin: 0 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cartao .etiquetas { margin: 9px 4px 0; }
.cartao-pe { display: flex; align-items: center; gap: 8px; margin-top: auto; padding: 12px 2px 0 4px; }
.quem { display: flex; align-items: center; gap: 7px; min-width: 0; flex: 1; font-size: .82rem; color: var(--tinta-2); }
.quem .av { width: 24px; height: 24px; font-size: .66rem; }
.quem .ins { width: 18px; height: 18px; }
.quem span.n { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.votos-mini { display: inline-flex; align-items: center; gap: 3px; font-size: .82rem; font-weight: 700; color: var(--tinta-2); font-variant-numeric: tabular-nums; }
.votos-mini svg { width: 15px; height: 15px; }
.marcar { position: relative; z-index: 2; width: 34px; height: 34px; margin: -6px -4px -6px 0; }
.marcar svg { width: 20px; height: 20px; }
.marcar[aria-pressed="true"] { color: var(--bic); }

/* Linha compacta (listas do perfil e painel) */
.lista-docs { display: flex; flex-direction: column; }
.linha-doc { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--linha); text-decoration: none; }
.linha-doc .th { aspect-ratio: 1; border-radius: 10px; font-size: 4.5px; }
.linha-doc strong { display: block; font-weight: 720; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.linha-doc small { color: var(--tinta-2); font-size: .84rem; }
.linha-doc:hover strong { color: var(--bic); }

/* ---------- Início (visitantes) ---------- */
.hero { padding: clamp(36px, 6vw, 72px) 0 clamp(48px, 7vw, 88px); overflow: hidden; }
.hero .wrap { display: grid; grid-template-columns: minmax(0, 1.02fr) minmax(0, .98fr); gap: clamp(28px, 5vw, 64px); align-items: center; }
.hero h1 { font-size: clamp(2.7rem, 5.6vw, 4.8rem); line-height: .96; letter-spacing: -.045em; font-weight: 800; font-stretch: 84%; max-width: 11ch; }
.hero .sub { margin: 22px 0 30px; font-size: clamp(1.06rem, 1.5vw, 1.22rem); color: var(--tinta-2); max-width: 31em; }
.busca-hero { display: flex; align-items: center; height: 62px; background: var(--sup); border: 2px solid var(--tinta); border-radius: 999px; padding: 6px 6px 6px 22px; max-width: 580px; }
.busca-hero svg.lupa { width: 22px; height: 22px; color: var(--tinta-3); flex: none; }
.busca-hero input { flex: 1; min-width: 0; border: 0; background: none; outline: none; font-size: 1.04rem; padding: 0 12px; height: 100%; }
.busca-hero .btn { height: 100%; }
.busca-hero:focus-within { box-shadow: 0 0 0 4px var(--azul-claro); }
.atalhos { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 18px; }
.atalhos > span { color: var(--tinta-2); font-size: .92rem; margin-right: 2px; }

.vitrine { position: relative; aspect-ratio: 1 / .94; border-radius: 34px; background: var(--azul-claro); }
.vitrine .papel { position: absolute; width: 50%; aspect-ratio: 1 / 1.3; font-size: clamp(10.5px, 1.15vw, 14px); transition: transform 1.1s cubic-bezier(.2, .8, .2, 1); }
.vitrine .p1 { left: 25%; top: 13%; z-index: 3; transform: rotate(-2deg); }
.vitrine .p2 { left: 47%; top: 17%; z-index: 2; transform: rotate(8deg); }
.vitrine .p3 { left: 5%; top: 19%; z-index: 1; transform: rotate(-10deg); }
.vitrine.fechada .papel { transform: none; left: 25%; top: 15%; }
.vitrine.sem-leque .papel, .vitrine.sem-leque .flut { transition: none !important; }
.flut {
  position: absolute; z-index: 4; display: inline-flex; align-items: center; gap: 10px; padding: 9px 14px 9px 9px;
  background: var(--sup); color: var(--tinta); border-radius: 16px; box-shadow: var(--sombra-pop); font-size: .9rem; line-height: 1.2;
  transition: opacity .5s .7s, transform .6s .7s cubic-bezier(.2, 1.3, .4, 1);
}
.flut strong { display: block; font-weight: 760; }
.flut small { color: var(--tinta-2); }
.flut .moeda { width: 34px; height: 34px; }
.flut .ins { width: 36px; height: 36px; }
.flut.f1 { left: -4%; bottom: 14%; }
.flut.f2 { right: -3%; bottom: 6%; }
.flut.f3 { right: 6%; top: 5%; }
.vitrine.fechada .flut { opacity: 0; transform: translateY(10px) scale(.94); }

.sec { padding-block: clamp(56px, 8vw, 104px); }
.sec + .sec { padding-top: 0; }
.sec-tit { font-size: clamp(1.9rem, 3.6vw, 2.9rem); line-height: 1.02; letter-spacing: -.035em; font-weight: 800; font-stretch: 88%; max-width: 17ch; }
.sec-sub { color: var(--tinta-2); font-size: 1.08rem; max-width: 36em; margin-top: 14px; }
.passos { list-style: none; margin: 40px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; }
.passo { padding: 4px 28px 0 0; }
.passo + .passo { padding-left: 28px; border-left: 1px solid var(--linha-2); }
.passo .n { display: block; font-size: 3rem; font-weight: 800; font-stretch: 80%; line-height: 1; color: var(--bic); margin-bottom: 14px; }
.passo h3 { font-size: 1.2rem; margin-bottom: 6px; }
.passo p { color: var(--tinta-2); }

.duo { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 72px); align-items: center; }
.duo + .duo { margin-top: clamp(56px, 8vw, 104px); }
.duo.inverso .duo-txt { order: 2; }
.duo-txt .btn { margin-top: 24px; }
.painel-cor { border-radius: 30px; padding: clamp(18px, 3vw, 32px); }
.pc-suave { background: var(--azul-suave); }
.pc-cinza { background: var(--sup-3); }
.pc-rosa { background: var(--rosa-claro); }
.pc-azul { background: var(--azul-claro); }
.pc-verde { background: var(--verde-claro); }
.pc-suave .linha-doc, .pc-azul .linha-doc { background: var(--sup); border: 0; border-radius: 16px; padding: 10px 14px 10px 10px; margin-bottom: 10px; }
.pc-suave .linha-doc:last-child, .pc-azul .linha-doc:last-child { margin-bottom: 0; }

.escada { display: flex; flex-direction: column; gap: 10px; }
.degrau { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; gap: 14px; align-items: center; background: var(--sup); border-radius: 18px; padding: 12px 16px 12px 12px; }
.degrau .ins { width: 52px; height: 52px; }
.degrau strong { display: block; font-size: 1.04rem; }
.degrau small { color: var(--tinta-2); font-size: .86rem; display: block; line-height: 1.35; }
.degrau .req { font-size: .8rem; font-weight: 700; color: var(--tinta-2); text-align: right; white-space: nowrap; }
.degrau.atual { box-shadow: inset 0 0 0 2px var(--bic); }

.unis { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; margin-top: 36px; }
.uni { text-align: left; border: 1px solid var(--linha); background: var(--sup); border-radius: 20px; padding: 18px; display: flex; flex-direction: column; gap: 4px; min-height: 150px; }
.uni:hover { border-color: var(--tinta-3); }
.uni b { font-size: 1.5rem; font-weight: 800; font-stretch: 86%; letter-spacing: -.03em; }
.uni span { font-size: .86rem; color: var(--tinta-2); line-height: 1.3; }
.uni em { margin-top: auto; font-style: normal; font-weight: 700; font-size: .88rem; color: var(--bic); }

.faq { margin: 28px 0 0; border-top: 1px solid var(--linha-2); }
.faq details { border-bottom: 1px solid var(--linha-2); }
.faq summary { list-style: none; cursor: pointer; padding: 20px 40px 20px 0; font-weight: 720; font-size: 1.08rem; position: relative; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; position: absolute; right: 4px; top: 50%; transform: translateY(-50%); font-size: 1.6rem; font-weight: 400; color: var(--tinta-3); line-height: 1; }
.faq details[open] summary::after { content: "–"; }
.faq details p { padding: 0 0 20px; color: var(--tinta-2); max-width: 64ch; }

.faixa-cta { background: var(--bic); color: #fff; border-radius: 32px; padding: clamp(28px, 5vw, 56px); display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; position: relative; overflow: hidden; }
.faixa-cta h2 { font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 800; font-stretch: 88%; letter-spacing: -.03em; max-width: 18ch; position: relative; }
.faixa-cta p { color: rgba(255, 255, 255, .82); margin-top: 8px; position: relative; }
.faixa-cta .btn { position: relative; }
.galoes { position: absolute; right: -54px; top: -44px; width: 230px; opacity: .1; pointer-events: none; }

.rodape { border-top: 1px solid var(--linha); padding: 36px 0 44px; margin-top: 72px; font-size: .92rem; color: var(--tinta-2); }
body:not(.sem-lateral) .rodape { margin-inline: calc(-1 * clamp(16px, 3vw, 40px)); padding-inline: clamp(16px, 3vw, 40px); margin-bottom: -90px; padding-bottom: 110px; }
.rodape-g { display: grid; grid-template-columns: minmax(0, 1.3fr) repeat(2, minmax(0, 1fr)); gap: 28px; }
.rodape .marca { padding: 0; margin-bottom: 10px; font-size: 1.1rem; }
.rodape .marca svg { width: 28px; height: 28px; }
.rodape h4 { font-size: .9rem; color: var(--tinta); margin-bottom: 10px; letter-spacing: 0; }
.rodape ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.rodape a { text-decoration: none; }
.rodape a:hover { color: var(--tinta); text-decoration: underline; }
.rodape p { max-width: 40ch; }

/* ---------- Cabeçalhos de página ---------- */
.cab-pag { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; flex-wrap: wrap; margin-bottom: 24px; }
.cab-pag h1 { font-size: clamp(1.8rem, 3vw, 2.5rem); font-weight: 800; font-stretch: 90%; letter-spacing: -.035em; }
.cab-pag p { color: var(--tinta-2); margin-top: 6px; max-width: 44em; }
.bloco { margin-top: 40px; }
.bloco-cab { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.bloco-cab h2 { font-size: 1.32rem; font-weight: 760; }
.bloco-cab a, .bloco-cab button { font-weight: 700; color: var(--bic); text-decoration: none; font-size: .94rem; background: none; border: 0; padding: 0; }
.bloco-cab a:hover { text-decoration: underline; }
.trilho { list-style: none; display: flex; flex-wrap: wrap; gap: 4px; margin: 0 0 10px; padding: 0; font-size: .9rem; color: var(--tinta-2); }
.trilho li + li::before { content: "/"; margin-right: 4px; color: var(--tinta-3); }
.trilho button, .trilho a { background: none; border: 0; padding: 0; color: inherit; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--linha-2); }
.trilho button:hover, .trilho a:hover { color: var(--tinta); }

/* ---------- Painel (com sessão) ---------- */
.saudacao h1 { font-size: clamp(1.7rem, 3vw, 2.4rem); font-weight: 800; font-stretch: 90%; letter-spacing: -.035em; }
.saudacao p { color: var(--tinta-2); margin-top: 4px; }
.resumo { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr) minmax(0, 1fr); gap: 16px; margin-top: 24px; }
.saldo-mini { background: var(--bic); color: #fff; border-radius: 24px; padding: 22px; display: flex; flex-direction: column; gap: 14px; position: relative; overflow: hidden; }
.saldo-mini .rot { font-size: .92rem; color: rgba(255, 255, 255, .8); font-weight: 600; }
.saldo-mini .val { display: flex; align-items: center; gap: 12px; font-size: 2.7rem; font-weight: 800; line-height: 1; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.saldo-mini .val .moeda { width: 40px; height: 40px; }
.saldo-mini .val small { font-size: .95rem; font-weight: 650; color: rgba(255, 255, 255, .8); letter-spacing: 0; }
.saldo-mini .linha-btn { display: flex; gap: 8px; flex-wrap: wrap; margin-top: auto; position: relative; }
:root[data-theme="dark"] .saldo-mini, :root[data-theme="dark"] .saldo-bloco { background: var(--marca); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .saldo-mini, :root:not([data-theme="light"]) .saldo-bloco { background: var(--marca); } }
.caixa { background: var(--sup); border: 1px solid var(--linha); border-radius: 24px; padding: 20px; }
.patente-mini { display: flex; flex-direction: column; gap: 12px; }
.patente-mini .top { display: flex; align-items: center; gap: 12px; }
.patente-mini .ins { width: 48px; height: 48px; }
.patente-mini strong { font-size: 1.15rem; display: block; }
.patente-mini small, .caixa small.det { color: var(--tinta-2); font-size: .86rem; line-height: 1.35; display: block; }
.barra { height: 8px; border-radius: 99px; background: var(--sup-3); overflow: hidden; }
.barra i { display: block; height: 100%; border-radius: 99px; background: var(--bic); transition: width .6s cubic-bezier(.2, .8, .2, 1); }
.convite-mini { background: var(--azul-suave); border-radius: 24px; padding: 20px; display: flex; flex-direction: column; gap: 10px; }
.convite-mini strong { font-size: 1.12rem; line-height: 1.2; }
.convite-mini p { font-size: .88rem; color: var(--tinta-2); }
.convite-mini .btn { margin-top: auto; align-self: flex-start; }

/* ---------- Formulários ---------- */
.campo { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.campo label, .campo .rotulo { font-size: .86rem; font-weight: 680; }
.campo label small, .campo .rotulo small { font-weight: 500; color: var(--tinta-3); }
.campo input, .campo select, .campo textarea {
  width: 100%; height: 46px; border: 1.5px solid var(--linha-2); border-radius: 12px; background: var(--sup); padding: 0 14px; font-size: .96rem;
  transition: border-color .15s, box-shadow .15s;
}
.campo textarea { height: auto; min-height: 90px; padding: 12px 14px; resize: vertical; }
.campo select {
  appearance: none; padding-right: 38px; text-overflow: ellipsis;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237C84A3' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 12px center; background-size: 18px;
}
.campo select:disabled { opacity: .55; }
.campo input:focus, .campo select:focus, .campo textarea:focus { outline: none; border-color: var(--bic); box-shadow: 0 0 0 4px var(--azul-claro); }
.campo .ajuda { font-size: .8rem; color: var(--tinta-3); }
.erro { color: var(--vermelho); font-size: .88rem; font-weight: 650; }
.grelha-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.verif { display: flex; gap: 12px; align-items: flex-start; font-size: .92rem; cursor: pointer; }
.verif input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--bic); flex: none; }
input[type="range"] { width: 100%; accent-color: var(--bic); height: 28px; }

/* ---------- Explorar ---------- */
.filtros-barra { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)) minmax(0, 1.1fr); gap: 10px; background: var(--sup); border: 1px solid var(--linha); border-radius: 20px; padding: 14px; }
.filtros-barra .campo label { font-size: .82rem; color: var(--tinta-2); }
.filtros-barra .campo select, .filtros-barra .campo input { height: 42px; font-size: .92rem; }
.busca-mob { margin-bottom: 14px; }
.barra-res { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin: 18px 0 18px; }
.barra-res .chips { gap: 6px; }
.ordem { display: flex; align-items: center; gap: 8px; font-size: .9rem; color: var(--tinta-2); }
.ordem select { height: 38px; border-radius: 999px; padding: 0 34px 0 14px; border: 1.5px solid var(--linha-2); background-color: var(--sup); }
.contagem { font-size: .94rem; color: var(--tinta-2); margin-bottom: 14px; }
.contagem strong { color: var(--tinta); }
.consulta { display: inline-flex; align-items: center; gap: 6px; margin-left: 8px; height: 28px; padding: 0 6px 0 12px; border-radius: 99px; background: var(--azul-claro); color: var(--bic); font-weight: 700; font-size: .84rem; }
.consulta button { width: 22px; height: 22px; border: 0; border-radius: 50%; background: transparent; color: inherit; display: grid; place-items: center; padding: 0; }
.consulta svg { width: 14px; height: 14px; }
.nota-ocultos { font-size: .86rem; color: var(--tinta-3); margin-top: 22px; }
.vazio { text-align: center; padding: 48px 20px; border: 1.5px dashed var(--linha-2); border-radius: 24px; background: var(--sup); }
.vazio h3 { font-size: 1.2rem; margin-bottom: 6px; }
.vazio p { color: var(--tinta-2); margin: 0 auto 18px; max-width: 40ch; }

/* ---------- Documento ---------- */
.doc-vista { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr); gap: 36px; align-items: start; }
.leitor { background: var(--sup-3); border-radius: 24px; padding: clamp(14px, 3vw, 32px); display: flex; flex-direction: column; gap: 20px; align-items: center; }
.pagina {
  width: 100%; max-width: 560px; aspect-ratio: 1 / 1.414; background: var(--papel); color: var(--papel-tinta);
  box-shadow: var(--sombra-papel); border-radius: 3px; padding: 7% 8%; position: relative; overflow: hidden;
  font-size: clamp(.76rem, 1.25vw, .9rem); line-height: 1.5;
}
.pagina .th-cab { font-size: .82em; }
.pagina .th-cab strong { display: block; font-size: 1.05em; }
.pagina .th-cab .th-selo { font-size: .7em; width: 3.4em; height: 3.4em; }
.pagina h4 { font-size: 1.32em; margin: 0 0 2px; font-weight: 800; }
.pagina h5 { font-size: 1em; margin: 1.3em 0 .5em; font-weight: 750; }
.pagina ol { padding-left: 1.3em; margin: 0; }
.pagina ol li { margin-bottom: .7em; }
.pagina .pg-sub { color: var(--papel-sub); margin: 0 0 1em; font-size: .9em; }
.pagina .v { color: var(--papel-sub); white-space: nowrap; }
.pg-linhas { height: 9em; background: repeating-linear-gradient(transparent 0 1.45em, var(--papel-linha) 1.45em calc(1.45em + 1px)); }
.pg-linhas.alta { height: 22em; }
.pg-capa { text-align: center; padding-top: 14%; }
.pg-capa p { color: var(--papel-sub); margin: 0 0 .6em; }
.pg-capa h4 { font-size: 1.75em; margin: 2em 0 .4em; }
.pg-capa .pg-t { font-size: 1.1em; color: var(--papel-tinta); font-weight: 700; }
.pg-aviso { position: absolute; left: 8%; right: 8%; bottom: 6%; border: 1.5px dashed var(--caneta-vermelha); color: var(--caneta-vermelha); padding: .7em .9em; font-weight: 650; font-size: .85em; text-align: center; border-radius: 4px; }
.pagina.bloq > :not(.cadeado) { filter: blur(5px); opacity: .55; }
.cadeado { position: absolute; inset: 0; display: grid; place-items: center; padding: 20px; background: linear-gradient(transparent, rgba(255, 255, 255, .7) 40%); }
.cadeado > div { background: #fff; color: #101633; border-radius: 20px; padding: 22px; text-align: center; box-shadow: var(--sombra-pop); max-width: 300px; }
.cadeado svg { width: 28px; height: 28px; color: var(--marca); }
.cadeado strong { display: block; font-size: 1.15rem; margin: 6px 0 4px; }
.cadeado p { color: #4A5275; font-size: .9rem; margin-bottom: 14px; }
.cadeado .btn-pri { background: var(--marca); color: #fff; }
.pg-nota { font-size: .88rem; color: var(--tinta-2); text-align: center; }
.painel-doc { position: sticky; top: calc(var(--topo-h) + 24px); display: flex; flex-direction: column; gap: 18px; }
.painel-doc h1 { font-size: clamp(1.7rem, 2.6vw, 2.25rem); font-weight: 800; font-stretch: 90%; letter-spacing: -.035em; }
.ficha { display: grid; grid-template-columns: auto 1fr; gap: 8px 18px; margin: 0; padding: 16px 0; border-block: 1px solid var(--linha); font-size: .94rem; }
.ficha dt { color: var(--tinta-2); }
.ficha dd { margin: 0; font-weight: 650; }
.acao-doc .det { font-size: .88rem; color: var(--tinta-2); text-align: center; margin-top: 10px; }
.linha-votos { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.vbtn { display: inline-flex; align-items: center; gap: 6px; height: 42px; padding: 0 14px; border-radius: 999px; border: 1.5px solid var(--linha-2); background: var(--sup); font-weight: 750; font-variant-numeric: tabular-nums; }
.vbtn svg { width: 18px; height: 18px; }
.vbtn:hover { border-color: var(--tinta-3); }
.vbtn.up[aria-pressed="true"] { background: var(--verde-claro); border-color: var(--verde); color: var(--verde); }
.vbtn.down[aria-pressed="true"] { background: var(--rosa-claro); border-color: var(--vermelho); color: var(--vermelho); }
.linha-votos .esp { flex: 1; }
.aviso { font-size: .9rem; background: var(--rosa-claro); color: var(--tinta); border-radius: 14px; padding: 12px 14px; }
.autor-doc { display: flex; align-items: center; gap: 12px; padding: 14px; border-radius: 18px; background: var(--sup); border: 1px solid var(--linha); }
.autor-doc .ins { width: 40px; height: 40px; }
.autor-doc small { color: var(--tinta-2); display: block; font-size: .84rem; }

/* ---------- Partilhar ---------- */
.partilhar { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); gap: 32px; align-items: start; }
.form-sec { background: var(--sup); border: 1px solid var(--linha); border-radius: 24px; padding: clamp(18px, 3vw, 28px); display: flex; flex-direction: column; gap: 22px; }
.form-sec h2 { font-size: 1.1rem; font-weight: 760; margin-bottom: -8px; }
.dropzone {
  position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; text-align: center;
  border: 2px dashed var(--bic); border-radius: 20px; background: var(--azul-claro); padding: 30px 18px; cursor: pointer; transition: background .15s;
}
.dropzone:hover, .dropzone.sobre { background: var(--sup); }
.dropzone svg { width: 34px; height: 34px; color: var(--bic); }
.dropzone strong { font-size: 1.04rem; }
.dropzone small { color: var(--tinta-2); }
.dropzone.ok { border-style: solid; border-color: var(--verde); background: var(--verde-claro); }
.dropzone.ok svg { color: var(--verde); }
.dropzone input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.tipos { display: flex; flex-direction: column; gap: 12px; }
.tipos .rotulo-g { font-size: .8rem; font-weight: 700; color: var(--tinta-3); margin-bottom: 6px; }
.nota-livro { font-size: .86rem; color: var(--tinta-2); background: var(--azul-suave); border-radius: 12px; padding: 10px 12px; }
.recibo {
  position: sticky; top: calc(var(--topo-h) + 24px); background: var(--papel); color: var(--papel-tinta); padding: 22px 22px 30px;
  box-shadow: var(--sombra-papel); border-radius: 6px 6px 0 0;
  -webkit-mask: radial-gradient(9px at 50% 100%, transparent 98%, #000) 50% / 22px 100%;
  mask: radial-gradient(9px at 50% 100%, transparent 98%, #000) 50% / 22px 100%;
}
.recibo h3 { font-size: 1.05rem; margin-bottom: 12px; }
.recibo .lin { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-top: 1px dashed #CBD1E2; font-size: .93rem; }
.recibo .lin strong { font-variant-numeric: tabular-nums; }
.recibo .lin.total { border-top: 2px solid #1A2040; font-weight: 750; }
.recibo .lin.pedido { color: #0F298F; font-weight: 700; }
.recibo p { font-size: .86rem; color: #6A7290; margin: 14px 0 10px; }
.recibo .barra { background: #E6E9F2; }
.recibo .barra i { background: var(--marca); }
.enviado { border-radius: 20px; padding: 18px 20px; display: flex; gap: 14px; align-items: flex-start; background: var(--verde-claro); }
.enviado .ic { width: 40px; height: 40px; border-radius: 50%; background: var(--verde); color: #fff; display: grid; place-items: center; flex: none; }
.enviado .ic svg { width: 22px; height: 22px; }
.enviado.revisao { background: var(--azul-claro); }
.enviado.revisao .ic { background: var(--bic); color: var(--sobre-bic); }
.enviado h3 { font-size: 1.08rem; margin-bottom: 2px; }
.enviado p { color: var(--tinta-2); font-size: .94rem; }
.enviado .linha-btn { display: flex; gap: 8px; margin-top: 12px; flex-wrap: wrap; }
.do-pedido { display: flex; gap: 14px; align-items: center; background: var(--azul-suave); border-radius: 18px; padding: 14px 16px; }
.do-pedido .moeda { width: 34px; height: 34px; }
.do-pedido p { font-size: .93rem; }
.do-pedido strong { display: block; }

/* ---------- Carteira ---------- */
.cart-topo { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 18px; }
.saldo-bloco { background: var(--bic); color: #fff; border-radius: 28px; padding: clamp(22px, 3vw, 30px); position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 18px; }
.saldo-bloco .rot { color: rgba(255, 255, 255, .8); font-weight: 600; }
.saldo-bloco .val { display: flex; align-items: center; gap: 14px; font-size: clamp(2.8rem, 6vw, 4rem); font-weight: 800; line-height: .95; letter-spacing: -.04em; font-variant-numeric: tabular-nums; position: relative; }
.saldo-bloco .val .moeda { width: 52px; height: 52px; }
.saldo-bloco .val small { font-size: 1.1rem; font-weight: 600; letter-spacing: 0; color: rgba(255, 255, 255, .8); }
.mini-contas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-top: 1px solid rgba(255, 255, 255, .22); padding-top: 16px; position: relative; }
.mini-contas div + div { padding-left: 16px; border-left: 1px solid rgba(255, 255, 255, .22); }
.mini-contas b { display: block; font-size: 1.35rem; font-variant-numeric: tabular-nums; }
.mini-contas span { font-size: .82rem; color: rgba(255, 255, 255, .8); line-height: 1.25; display: block; }
.saldo-bloco .linha-btn { display: flex; gap: 10px; flex-wrap: wrap; position: relative; }
.fluxo h3 { font-size: 1rem; margin-bottom: 10px; }
.fluxo + .fluxo { margin-top: 22px; }
.pilha { display: flex; height: 14px; border-radius: 99px; overflow: hidden; background: var(--sup-3); gap: 2px; }
.pilha i { display: block; height: 100%; }
.legenda { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 6px; font-size: .86rem; }
.legenda li { display: flex; align-items: center; gap: 8px; }
.legenda li i { width: 10px; height: 10px; border-radius: 3px; flex: none; }
.legenda li span { flex: 1; color: var(--tinta-2); }
.legenda li b { font-variant-numeric: tabular-nums; }
.sem-dados { font-size: .88rem; color: var(--tinta-3); }

.missoes { background: var(--sup); border: 1px solid var(--linha); border-radius: 24px; padding: 6px 20px; }
.missao { display: grid; grid-template-columns: 46px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 16px 0; border-bottom: 1px solid var(--linha); }
.missao:last-child { border-bottom: 0; }
.missao .ic { width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; background: var(--azul-claro); color: var(--bic); }
.missao .ic svg { width: 22px; height: 22px; }
.missao .ic.suave { background: var(--azul-suave); color: var(--texto-suave); }
.missao .ic.rosa { background: var(--rosa-claro); color: var(--vermelho); }
.missao .ic.verde { background: var(--verde-claro); color: var(--verde); }
.missao strong { display: block; font-size: 1rem; }
.missao p { font-size: .88rem; color: var(--tinta-2); line-height: 1.4; }
.missao .dir { display: flex; align-items: center; gap: 12px; }
.ganho { display: inline-flex; align-items: center; height: 26px; padding: 0 9px; border-radius: 8px; background: var(--azul-claro); color: var(--texto-suave); font-weight: 780; font-size: .82rem; white-space: nowrap; font-variant-numeric: tabular-nums; }
.feito { display: inline-flex; align-items: center; gap: 6px; color: var(--verde); font-weight: 700; font-size: .88rem; }
.feito svg { width: 18px; height: 18px; }
.dias { display: flex; gap: 6px; margin-top: 8px; }
.dias i { width: 26px; height: 8px; border-radius: 99px; background: var(--sup-3); }
.dias i.on { background: var(--bic); }
.dias i.extra { background: repeating-linear-gradient(45deg, var(--sup-3) 0 3px, transparent 3px 6px); box-shadow: inset 0 0 0 1px var(--bic); }

.extrato { background: var(--sup); border: 1px solid var(--linha); border-radius: 24px; padding: 8px 20px 12px; }
.dia { font-size: .82rem; font-weight: 700; color: var(--tinta-3); padding: 16px 0 6px; }
.mov { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 10px 0; border-top: 1px solid var(--linha); }
.dia + .mov { border-top: 0; }
.mov .ic { width: 36px; height: 36px; border-radius: 11px; display: grid; place-items: center; background: var(--sup-3); color: var(--tinta-2); }
.mov .ic svg { width: 18px; height: 18px; }
.mov.mais .ic { background: var(--verde-claro); color: var(--verde); }
.mov.menos .ic { background: var(--rosa-claro); color: var(--vermelho); }
.mov p { font-size: .93rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mov small { font-size: .8rem; color: var(--tinta-3); }
.mov .v { text-align: right; font-weight: 780; font-variant-numeric: tabular-nums; }
.mov.mais .v { color: var(--verde); }
.mov.menos .v { color: var(--vermelho); }
.mov .v small { display: block; font-weight: 550; }

/* ---------- Pedidos: quadro de avisos ---------- */
.quadro { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(250px, 100%), 1fr)); gap: 26px 22px; padding: 6px 2px 10px; }
.nota {
  --r: 0deg; position: relative; display: flex; flex-direction: column; gap: 6px; padding: 26px 18px 16px; min-height: 250px;
  background: #DCE5FF; color: #1A2040; border-radius: 3px 3px 18px 3px; transform: rotate(var(--r));
  box-shadow: 0 1px 1px rgba(16, 22, 51, .08), 0 14px 22px -14px rgba(16, 22, 51, .45);
}
.nota.c1 { background: #FFE1E6; } .nota.c2 { background: #EEF2FF; } .nota.c3 { background: #DAE0F6; }
.nota::before { content: ""; position: absolute; top: 9px; left: 50%; width: 14px; height: 14px; margin-left: -7px; border-radius: 50%; background: #D92F43; box-shadow: inset -2px -2px 0 rgba(0, 0, 0, .18), 0 2px 3px rgba(0, 0, 0, .25); }
.nota.c2::before { background: var(--marca); } .nota.c3::before { background: #0F298F; }
.nota .mao { font-family: var(--mao); font-size: 1.45rem; line-height: 1; color: var(--marca); }
.nota h3 { font-size: 1.15rem; font-weight: 780; line-height: 1.2; }
.nota .tipo { font-weight: 700; font-size: .9rem; }
.nota .onde { font-size: .84rem; color: #4A5275; }
.nota .por { font-size: .8rem; color: #6A7290; margin-top: 2px; }
.nota-pe { margin-top: auto; padding-top: 12px; display: flex; flex-direction: column; gap: 10px; }
.premio { display: flex; align-items: center; gap: 8px; }
.premio b { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 12px 0 5px; border-radius: 99px; background: #fff; font-weight: 800; font-size: .95rem; font-variant-numeric: tabular-nums; }
.premio .moeda { width: 24px; height: 24px; }
.premio small { font-size: .8rem; color: #4A5275; }
.nota .linha-btn { display: flex; gap: 6px; flex-wrap: wrap; }
.nota .btn-sec { background: rgba(255, 255, 255, .7); border-color: rgba(16, 22, 51, .2); color: #101633; }
.nota .btn-sec[aria-pressed="true"] { background: #101633; color: #fff; border-color: #101633; }
.nota .btn-pri { background: var(--marca); color: #fff; }
.nota.resolvida { opacity: .8; }
.carimbo-ok { position: absolute; right: 14px; top: 34px; transform: rotate(-12deg); border: 2.5px solid #0F298F; color: #0F298F; border-radius: 8px; padding: 3px 9px; font-weight: 800; font-size: .82rem; }
.nota .link { color: var(--marca); }
.nota.minha { box-shadow: 0 0 0 2.5px var(--marca), 0 14px 22px -14px rgba(16, 22, 51, .45); }
.premio-alvo { display: flex; align-items: baseline; justify-content: space-between; font-weight: 700; }
.premio-alvo output { font-size: 1.5rem; font-weight: 800; color: var(--bic); font-variant-numeric: tabular-nums; }

/* ---------- Mural ---------- */
.podio { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-bottom: 30px; }
.podio-c { border-radius: 24px; padding: 20px; background: var(--sup); border: 1px solid var(--linha); display: flex; flex-direction: column; gap: 10px; }
.podio-c.primeiro { background: #101633; color: #fff; border-color: #101633; }
.podio-c .top { display: flex; align-items: center; gap: 12px; }
.podio-c .ins { width: 48px; height: 48px; }
.podio-c .pos { margin-left: auto; font-size: 2rem; font-weight: 800; font-stretch: 80%; color: var(--tinta-3); line-height: 1; }
.podio-c.primeiro .pos { color: #8EA6FF; }
.podio-c strong { font-size: 1.1rem; display: block; }
.podio-c small { font-size: .86rem; color: var(--tinta-2); }
.podio-c.primeiro small { color: rgba(255, 255, 255, .75); }
.podio-c .nums { display: flex; gap: 20px; padding-top: 10px; border-top: 1px solid var(--linha); }
.podio-c.primeiro .nums { border-color: rgba(255, 255, 255, .18); }
.podio-c .nums b { display: block; font-size: 1.4rem; font-variant-numeric: tabular-nums; }
.tabela-rank { background: var(--sup); border: 1px solid var(--linha); border-radius: 24px; padding: 4px 20px; }
.rank-lin { display: grid; grid-template-columns: 34px 40px minmax(0, 1fr) 96px 96px; gap: 14px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--linha); }
.rank-lin:last-child { border-bottom: 0; }
.rank-lin.cab { font-size: .8rem; font-weight: 700; color: var(--tinta-3); }
.rank-lin .p { font-weight: 800; color: var(--tinta-3); font-variant-numeric: tabular-nums; }
.rank-lin .ins { width: 40px; height: 40px; }
.rank-lin strong { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rank-lin small { color: var(--tinta-2); font-size: .84rem; display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rank-lin .num { text-align: right; font-weight: 750; font-variant-numeric: tabular-nums; }
.rank-lin.eu { background: var(--azul-suave); margin: 0 -20px; padding-inline: 20px; }
.nota-mural { font-size: .88rem; color: var(--tinta-2); margin-top: 14px; }

/* ---------- Perfil ---------- */
.perfil-cab { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.perfil-cab h1 { font-size: clamp(1.7rem, 3vw, 2.3rem); font-weight: 800; font-stretch: 90%; letter-spacing: -.035em; }
.perfil-cab p { color: var(--tinta-2); }
.perfil-cab .btn { margin-left: auto; }
.perfil-g { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 18px; margin-top: 24px; }
.patente-box { display: flex; flex-direction: column; gap: 14px; }
.patente-box .top { display: flex; gap: 14px; align-items: center; }
.patente-box .ins { width: 64px; height: 64px; }
.patente-box h2 { font-size: 1.4rem; }
.medalhas { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(220px, 100%), 1fr)); gap: 12px; }
.medalha { display: flex; gap: 12px; align-items: center; padding: 14px; border-radius: 18px; background: var(--sup); border: 1px solid var(--linha); }
.medalha .ic { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--bic); color: var(--sobre-bic); flex: none; }
.medalha .ic svg { width: 22px; height: 22px; }
.medalha strong { display: block; font-size: .96rem; }
.medalha small { color: var(--tinta-2); font-size: .84rem; line-height: 1.3; display: block; }
.medalha.bloq { border-style: dashed; background: transparent; }
.medalha.bloq .ic { background: var(--sup-3); color: var(--tinta-3); }
.def { max-width: 560px; display: flex; flex-direction: column; gap: 16px; }
.def .linha-btn { display: flex; gap: 10px; flex-wrap: wrap; padding-top: 10px; }

/* ---------- Modal ---------- */
.fundo { position: fixed; inset: 0; z-index: 260; background: rgba(8, 12, 30, .55); display: grid; place-items: center; padding: 16px; animation: fade .18s ease-out; }
.modal {
  background: var(--sup); color: var(--tinta); width: min(500px, 100%); max-height: calc(100% - 20px); overflow: auto;
  border-radius: 26px; padding: 28px; box-shadow: var(--sombra-pop); position: relative; animation: sobe .26s cubic-bezier(.2, .8, .2, 1);
}
.modal.largo { width: min(580px, 100%); }
.modal.sem-anim { animation: none; }
.modal h2 { font-size: 1.6rem; font-weight: 800; font-stretch: 90%; letter-spacing: -.03em; margin: 0 40px 6px 0; }
.modal .intro { color: var(--tinta-2); margin-bottom: 20px; }
.modal .fechar { position: absolute; top: 14px; right: 14px; }
.modal form { display: flex; flex-direction: column; gap: 14px; }
.modal .linha-btn { display: flex; gap: 10px; margin-top: 6px; }
.modal .linha-btn .btn { flex: 1; }
.etapas { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin: 4px 44px 18px 0; }
.etapas i { height: 5px; border-radius: 99px; background: var(--sup-3); }
.etapas i.feita { background: var(--bic); }
.troca { font-size: .92rem; color: var(--tinta-2); text-align: center; margin-top: 16px; }
.motivos { display: flex; flex-direction: column; gap: 8px; }
.motivos label { display: flex; gap: 10px; align-items: center; padding: 12px 14px; border: 1.5px solid var(--linha-2); border-radius: 14px; cursor: pointer; font-weight: 600; }
.motivos label:has(input:checked) { border-color: var(--bic); background: var(--azul-claro); }
.motivos input { accent-color: var(--bic); width: 18px; height: 18px; margin: 0; }
.subida { text-align: center; }
.subida .ins { width: 120px; height: 120px; margin: 4px auto 18px; }
.subida h2 { margin-right: 0; }
.subida p { color: var(--tinta-2); margin-bottom: 8px; }
.subida .premio-pat { display: inline-flex; margin: 8px 0 20px; }
.subida .ins path.chev { stroke-dasharray: 30; stroke-dashoffset: 30; animation: risca .5s cubic-bezier(.2, .8, .2, 1) forwards; }
.subida .ins path.chev:nth-of-type(2) { animation-delay: .2s; }
.subida .ins path.chev:nth-of-type(3) { animation-delay: .4s; }
.subida .ins polygon { transform-origin: 16px 6.6px; animation: estrela .5s .65s cubic-bezier(.2, 1.4, .4, 1) both; }
.caixa-link { display: flex; align-items: center; gap: 8px; background: var(--sup-2); border: 1.5px solid var(--linha-2); border-radius: 14px; padding: 6px 6px 6px 14px; }
.caixa-link input { flex: 1; min-width: 0; border: 0; background: none; font-weight: 650; font-size: .92rem; outline: none; }
.codigo { font-weight: 800; letter-spacing: .04em; font-size: 1.05rem; }
.convidados { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.convidados li { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-top: 1px solid var(--linha); font-size: .92rem; }
.convidados li span.n { flex: 1; font-weight: 650; }
.btn-whats { background: #1F3CAF; color: #fff; }
.btn-whats:hover { background: #173199; }
.regras-convite { font-size: .84rem; color: var(--tinta-2); background: var(--sup-2); border-radius: 14px; padding: 12px 14px; }

/* Toasts */
.toasts { position: fixed; left: 50%; bottom: calc(24px + env(safe-area-inset-bottom, 0px)); transform: translateX(-50%); z-index: 2147482600; display: flex; flex-direction: column; gap: 8px; align-items: center; pointer-events: none; width: max-content; max-width: calc(100vw - 24px); }
.toast { display: flex; align-items: center; gap: 10px; background: #101633; color: #fff; padding: 12px 16px; border-radius: 16px; font-weight: 650; font-size: .93rem; box-shadow: var(--sombra-pop); animation: sobe .3s cubic-bezier(.2, .8, .2, 1); }
.toast .g { background: #3D5BFF; color: #fff; border-radius: 8px; padding: 3px 8px; font-weight: 800; font-size: .82rem; font-variant-numeric: tabular-nums; }
.toast.sai { opacity: 0; transform: translateY(6px); transition: opacity .25s, transform .25s; }
:root[data-theme="dark"] .toast { background: #EEF0FA; color: #101633; }

/* Barra inferior no telemóvel */
.abas-m { display: none; }

@keyframes fade { from { opacity: 0; } }
@keyframes sobe { from { opacity: 0; transform: translateY(10px); } }
@keyframes risca { to { stroke-dashoffset: 0; } }
@keyframes estrela { from { transform: scale(0) rotate(-90deg); } }

/* ---------- Responsivo ---------- */
@media (max-width: 1180px) {
  .filtros-barra { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .resumo { grid-template-columns: 1fr 1fr; }
  .saldo-mini { grid-column: 1 / -1; }
  .unis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1060px) {
  .topo { grid-template-columns: auto auto minmax(0, 1fr) auto; padding: 0 16px 0 8px; gap: 8px; }
  .marca { padding-left: 0; }
  .so-mob { display: inline-grid !important; }
  .casca { grid-template-columns: minmax(0, 1fr); }
  .lateral {
    position: fixed; z-index: 60; top: 0; left: 0; bottom: 0; width: min(300px, 86vw); height: 100%;
    padding-top: calc(16px + env(safe-area-inset-top, 0px)); padding-bottom: calc(22px + env(safe-area-inset-bottom, 0px));
    transform: translateX(-102%); transition: transform .25s cubic-bezier(.2, .8, .2, 1), box-shadow .25s ease; box-shadow: none;
  }
  body.gaveta-aberta .lateral { transform: none; box-shadow: var(--sombra-pop); }
  body.sem-lateral .lateral { display: flex; }
  .doc-vista, .partilhar, .cart-topo, .perfil-g { grid-template-columns: minmax(0, 1fr); }
  .painel-doc, .recibo { position: static; }
  .doc-vista .painel-doc { order: -1; }
  .hero .wrap { grid-template-columns: minmax(0, 1fr); }
  .vitrine { max-width: 560px; width: 100%; justify-self: center; }
  .duo, .duo.inverso { grid-template-columns: minmax(0, 1fr); }
  .duo.inverso .duo-txt { order: 0; }
  .rodape-g { grid-template-columns: 1fr 1fr; }
  .rodape-g > :first-child { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  :root { --topo-h: 60px; }
  .busca-topo, .so-desk { display: none !important; }
  .marca { font-size: 1.12rem; }
  .marca svg { width: 30px; height: 30px; }
  .acoes .btn { height: 38px; padding: 0 14px; font-size: .88rem; }
  .pts { height: 36px; padding-right: 11px; font-size: .92rem; }
  .pts small { display: none; }
  .moeda { width: 24px; height: 24px; }
  .busca-mob { display: flex !important; }
  main { padding: 20px 16px 110px; }
  .abas-m {
    display: grid; grid-template-columns: repeat(5, 1fr); position: fixed; left: 0; right: 0; bottom: 0; z-index: 50;
    background: var(--sup); border-top: 1px solid var(--linha); padding-bottom: env(safe-area-inset-bottom, 0px);
  }
  .abas-m a { display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 8px 0 7px; font-size: .74rem; font-weight: 680; color: var(--tinta-3); text-decoration: none; }
  .abas-m a svg { width: 23px; height: 23px; }
  .abas-m a[aria-current="page"] { color: var(--bic); }
  .abas-m a.mais span.ic { width: 48px; height: 32px; border-radius: 12px; background: var(--bic); color: var(--sobre-bic); display: grid; place-items: center; }
  .toasts { bottom: calc(86px + env(safe-area-inset-bottom, 0px)); }
  body.sem-lateral main { padding-bottom: 70px; }
  .hero h1 { font-size: clamp(2.5rem, 11vw, 3.4rem); }
  .busca-hero { height: 56px; padding-left: 16px; }
  .busca-hero .btn span { display: none; }
  .busca-hero .btn { width: 44px; padding: 0; }
  .vitrine { border-radius: 26px; aspect-ratio: 1 / 1; }
  .vitrine .papel { width: 58%; font-size: 2.2vw; }
  .vitrine .p1 { left: 21%; } .vitrine .p2 { left: 40%; } .vitrine .p3 { left: 2%; }
  .flut { font-size: .8rem; padding: 7px 11px 7px 7px; }
  .flut .moeda, .flut .ins { width: 28px; height: 28px; }
  .flut.f1 { left: 2%; bottom: 8%; } .flut.f2 { right: 2%; bottom: 2%; } .flut.f3 { right: 3%; top: 3%; }
  .passos { grid-template-columns: 1fr; gap: 26px; }
  .passo, .passo + .passo { padding: 0; border: 0; }
  .passo .n { font-size: 2.4rem; margin-bottom: 8px; }
  .unis { grid-template-columns: 1fr 1fr; }
  .uni { min-height: 0; }
  .filtros-barra { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); padding: 12px; }
  .grelha-docs { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 10px; }
  .cartao { padding: 8px 8px 10px; border-radius: 16px; }
  .cartao h3 { font-size: .94rem; margin-top: 10px; }
  .cartao .etiquetas .et:nth-child(n+2) { display: none; }
  .quem .n, .quem .av { display: none; }
  .resumo { grid-template-columns: minmax(0, 1fr); }
  .mini-contas { grid-template-columns: 1fr 1fr 1fr; }
  .mini-contas div + div { padding-left: 10px; }
  .missao { grid-template-columns: 42px minmax(0, 1fr); }
  .missao .ic { width: 42px; height: 42px; }
  .missao .dir { grid-column: 2; justify-content: space-between; }
  .podio { grid-template-columns: minmax(0, 1fr); }
  .rank-lin { grid-template-columns: 26px 34px minmax(0, 1fr) 64px; gap: 10px; }
  .rank-lin .ins { width: 34px; height: 34px; }
  .rank-lin .col-v { display: none; }
  .tabela-rank, .extrato, .missoes { padding-inline: 14px; }
  .rank-lin.eu { margin: 0 -14px; padding-inline: 14px; }
  .grelha-2 { grid-template-columns: 1fr; }
  .modal { padding: 22px 18px; border-radius: 22px; }
  .quadro { grid-template-columns: minmax(0, 1fr); }
  .nota { min-height: 0; }
  .faixa-cta { border-radius: 24px; }
  .rodape-g { grid-template-columns: 1fr; }
}

/* Ajustes */
.papel .th-cab, .th-pg .th-cab { padding-right: 3.4em; }
.patente-box strong { display: block; font-size: 1.3rem; }
.patente-box small { display: block; color: var(--tinta-2); }
.perfil-g { align-items: start; }
.lat-cab { display: none; }
.filtros-det > summary { display: none; }
.conta-f { display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 99px; background: var(--bic); color: var(--sobre-bic); font-size: .8rem; margin-left: 6px; }
@media (max-width: 1060px) {
  .lat-cab { display: flex; align-items: center; justify-content: space-between; padding: 0 0 12px 8px; margin-bottom: 6px; border-bottom: 1px solid var(--linha); }
  .lat-cab .marca { padding: 0; font-size: 1.15rem; }
  .lat-cab .marca svg { width: 30px; height: 30px; }
}
@media (max-width: 760px) {
  .filtros-det { background: var(--sup); border: 1px solid var(--linha); border-radius: 18px; }
  .filtros-det > summary { display: flex; align-items: center; list-style: none; cursor: pointer; padding: 0 16px; height: 50px; font-weight: 700; }
  .filtros-det > summary::-webkit-details-marker { display: none; }
  .filtros-det > summary::after { content: "+"; margin-left: auto; font-size: 1.4rem; font-weight: 400; color: var(--tinta-3); }
  .filtros-det[open] > summary::after { content: "–"; }
  .filtros-det .filtros-barra { border: 0; border-top: 1px solid var(--linha); border-radius: 0 0 18px 18px; }
  .nota { --r: 0deg !important; }
  .nota .linha-btn .btn { flex: 1; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-delay: 0s !important; transition-duration: .01ms !important; transition-delay: 0s !important; }
  .subida .ins path.chev { stroke-dashoffset: 0; }
}
.so-tel { display: none !important; }
@media (max-width: 760px) { .so-tel { display: inline-grid !important; } button.nav-l.so-tel { display: flex !important; } }

/* =========================================================
   v3: pesquisa, explorar, contas, carregamento, pedidos, carteira
   ========================================================= */
kbd { display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 6px; border: 1px solid var(--linha-2); border-bottom-width: 2px; background: var(--sup); color: var(--tinta-2); font: 600 .76rem/1 var(--f); }
mark { background: var(--azul-claro); color: inherit; border-radius: 3px; box-shadow: 0 0 0 1px var(--azul-claro); }
.av-img { object-fit: cover; display: block; background: var(--azul-suave); }
.av-xl { width: 84px; height: 84px; }
body.busca-aberta { overflow: hidden; }

/* Botão de pesquisa no topo */
button.busca-topo { cursor: text; text-align: left; color: var(--tinta-3); padding: 0 8px 0 46px; gap: 10px; font-size: .97rem; }
button.busca-topo span { flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
button.busca-topo:hover { border-color: var(--linha-2); background: var(--sup); }
button.busca-topo kbd { flex: none; }

/* Pesquisa do hero (abre o overlay) */
button.busca-hero { width: 100%; cursor: text; text-align: left; font: inherit; color: var(--tinta-3); gap: 4px; }
.busca-hero .bh-txt { flex: 1; padding: 0 12px; font-size: 1.04rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.roda { font-style: normal; color: var(--tinta); display: inline-block; transition: opacity .25s, transform .25s; }
.roda.sai { opacity: 0; transform: translateY(6px); }
.busca-hero .btn { height: 100%; pointer-events: none; }
button.busca-hero:hover { box-shadow: 0 0 0 4px var(--azul-claro); }

/* Overlay de pesquisa */
.busca-fundo { position: fixed; inset: 0; z-index: 110; background: rgba(8, 12, 30, .5); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); display: flex; justify-content: center; align-items: flex-start; padding: 9vh 16px 16px; animation: fade .15s ease-out; }
.busca-painel { width: min(700px, 100%); max-height: 78vh; display: flex; flex-direction: column; background: var(--sup); border-radius: 24px; box-shadow: var(--sombra-pop); overflow: hidden; animation: sobe .22s cubic-bezier(.2, .8, .2, 1); }
.busca-campo { display: flex; align-items: center; gap: 12px; padding: 0 14px 0 20px; height: 64px; border-bottom: 1px solid var(--linha); flex: none; }
.busca-campo > svg { width: 22px; height: 22px; color: var(--bic); flex: none; }
.busca-campo input { flex: 1; min-width: 0; height: 100%; border: 0; background: none; outline: none; font-size: 1.14rem; font-weight: 550; }
.busca-campo input::-webkit-search-cancel-button { display: none; }
.busca-fechar { border: 0; background: var(--sup-2); color: var(--tinta-2); font-weight: 700; font-size: .84rem; height: 32px; padding: 0 12px; border-radius: 99px; }
.busca-fechar:hover { color: var(--tinta); background: var(--sup-3); }
.busca-escopo { display: flex; gap: 6px; padding: 12px 20px; border-bottom: 1px solid var(--linha); flex: none; overflow-x: auto; scrollbar-width: none; }
.busca-corpo { overflow-y: auto; overscroll-behavior: contain; padding: 6px 10px 12px; flex: 1; }
.res-g { padding: 8px 0 4px; }
.res-g h3 { display: flex; align-items: center; justify-content: space-between; font-size: .8rem; font-weight: 700; color: var(--tinta-3); padding: 6px 10px 6px; letter-spacing: 0; }
.res-g h3 span { font-weight: 600; }
.res-g h3 .link { font-size: .8rem; }
.res-g > .chips { padding: 2px 10px 6px; }
.res { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; gap: 12px; align-items: center; width: 100%; padding: 8px 10px; border: 0; background: none; border-radius: 14px; text-align: left; text-decoration: none; color: var(--tinta); font: inherit; cursor: pointer; }
.res .th { aspect-ratio: 1; border-radius: 10px; font-size: 3.4px; }
.res:hover, .res.ativo { background: var(--azul-suave); }
.res.ativo { box-shadow: inset 0 0 0 1.5px var(--bic); }
.res-t { min-width: 0; display: flex; flex-direction: column; }
.res-t strong { font-weight: 680; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.res-t small { font-size: .84rem; color: var(--tinta-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.res-d { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; text-align: right; }
.res-d small { font-size: .8rem; color: var(--tinta-3); max-width: 160px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.res-linha { grid-template-columns: 40px minmax(0, 1fr) auto; }
.res-linha > svg, .atalho .ic { width: 40px; height: 40px; padding: 10px; border-radius: 12px; background: var(--sup-2); color: var(--bic); }
.atalho .ic { display: grid; place-items: center; padding: 0; }
.atalho .ic svg { width: 20px; height: 20px; }
.res-n { font-size: .8rem; color: var(--tinta-3); white-space: nowrap; }
.atalhos-b { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; }
.atalhos-b .res { grid-template-columns: 40px minmax(0, 1fr); }
.res-todos { display: flex; justify-content: space-between; margin-top: 6px; font-weight: 700; color: var(--bic); background: var(--azul-suave); }
.res-todos span { color: var(--tinta-2); font-weight: 600; font-size: .86rem; }
.res-vazio { text-align: center; padding: 34px 20px; }
.res-vazio strong { display: block; font-size: 1.08rem; margin-bottom: 6px; }
.res-vazio p { color: var(--tinta-2); max-width: 40ch; margin: 0 auto 16px; }
.busca-pe { display: flex; gap: 18px; padding: 10px 20px; border-top: 1px solid var(--linha); font-size: .82rem; color: var(--tinta-3); flex: none; }
.busca-pe span { display: inline-flex; align-items: center; gap: 4px; }

/* Explorar: pesquisa grande e pílulas */
.exp-busca { position: relative; display: flex; align-items: center; height: 56px; background: var(--sup); border: 1.5px solid var(--linha-2); border-radius: 18px; padding: 0 8px 0 18px; gap: 10px; transition: border-color .15s, box-shadow .15s; }
.exp-busca:focus-within { border-color: var(--bic); box-shadow: 0 0 0 4px var(--azul-claro); }
.exp-busca > svg { width: 22px; height: 22px; color: var(--tinta-3); flex: none; }
.exp-busca input { flex: 1; min-width: 0; height: 100%; border: 0; background: none; outline: none; font-size: 1.04rem; }
.exp-busca input::-webkit-search-cancel-button { display: none; }
.exp-busca.pequeno { height: 44px; border-radius: 14px; flex: 1; max-width: 360px; }
.exp-busca.pequeno > svg { width: 18px; height: 18px; }
.exp-busca.pequeno input { font-size: .94rem; }
.exp-limpar { width: 34px; height: 34px; border-radius: 50%; border: 0; background: var(--sup-2); color: var(--tinta-2); display: grid; place-items: center; }
.exp-limpar svg { width: 16px; height: 16px; }
.pilulas { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 14px 0 6px; }
.pilula-w { position: relative; display: inline-flex; }
.pilula { display: inline-flex; align-items: center; gap: 6px; height: 40px; padding: 0 12px 0 15px; border-radius: 999px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta); font-weight: 650; font-size: .9rem; white-space: nowrap; max-width: 260px; }
.pilula span { overflow: hidden; text-overflow: ellipsis; }
.pilula svg { width: 16px; height: 16px; flex: none; color: var(--tinta-3); }
.pilula:hover:not(:disabled) { border-color: var(--tinta-3); }
.pilula:disabled { opacity: .45; cursor: not-allowed; }
.pilula[aria-expanded="true"] { border-color: var(--bic); box-shadow: 0 0 0 3px var(--azul-claro); }
.pilula.on { background: var(--azul-claro); border-color: var(--bic); color: var(--bic); padding-right: 38px; }
.pilula.on svg { color: var(--bic); }
.pilula-x { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); width: 26px; height: 26px; border-radius: 50%; border: 0; background: var(--sup); color: var(--bic); display: grid; place-items: center; }
.pilula-x svg { width: 14px; height: 14px; }
.pilulas-limpar { font-size: .88rem; margin-left: 4px; }
.menu-filtro { position: absolute; z-index: 35; top: calc(100% + 8px); left: 0; width: 320px; max-height: 380px; display: flex; flex-direction: column; background: var(--sup); border: 1px solid var(--linha); border-radius: 18px; box-shadow: var(--sombra-pop); animation: sobe .18s cubic-bezier(.2, .8, .2, 1); overflow: hidden; }
.mf-cab { display: none; align-items: center; justify-content: space-between; padding: 14px 14px 6px 18px; }
.mf-cab strong { font-size: 1.05rem; }
.mf-busca { display: flex; align-items: center; gap: 8px; margin: 10px 10px 4px; padding: 0 12px; height: 40px; border-radius: 12px; background: var(--sup-2); border: 1.5px solid var(--linha); }
.mf-busca:focus-within { border-color: var(--bic); }
.mf-busca svg { width: 16px; height: 16px; color: var(--tinta-3); }
.mf-busca input { flex: 1; border: 0; background: none; outline: none; font-size: .92rem; min-width: 0; }
.mf-lista { overflow-y: auto; padding: 6px; overscroll-behavior: contain; }
.mf-op { display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%; padding: 10px 12px; border: 0; background: none; border-radius: 10px; text-align: left; font-weight: 600; font-size: .92rem; color: var(--tinta); }
.mf-op span { display: flex; flex-direction: column; min-width: 0; }
.mf-op small { font-weight: 500; color: var(--tinta-3); font-size: .82rem; }
.mf-op svg { width: 18px; height: 18px; color: var(--bic); flex: none; }
.mf-op:hover { background: var(--sup-2); }
.mf-op.on { background: var(--azul-suave); color: var(--bic); }
.mf-vazio { padding: 14px; color: var(--tinta-3); font-size: .9rem; }
.menu-veu { display: none; }
.segmento { display: inline-flex; padding: 4px; background: var(--sup-3); border-radius: 14px; gap: 2px; }
.segmento button { border: 0; background: none; height: 34px; padding: 0 16px; border-radius: 10px; font-weight: 700; font-size: .9rem; color: var(--tinta-2); }
.segmento button[aria-pressed="true"] { background: var(--sup); color: var(--tinta); box-shadow: var(--sombra-leve), 0 1px 3px rgba(16, 22, 51, .1); }
.subtipos { margin: -4px 0 16px; }

/* Lateral: o utilizador */
.lat-eu { display: flex; align-items: center; gap: 10px; padding: 10px; margin: 0 0 10px; border-radius: 16px; background: var(--sup-2); text-decoration: none; }
.lat-eu .av { width: 42px; height: 42px; }
.lat-eu strong { display: block; font-size: .94rem; line-height: 1.2; }
.lat-eu small { color: var(--tinta-2); font-size: .8rem; }
.lat-eu:hover { background: var(--azul-suave); }

/* ---------- Ecrã de carregamento ---------- */
@keyframes folhaEntra { 0% { transform: translateY(-22px); opacity: 0; } 35% { opacity: 1; } 60%, 100% { transform: translateY(0); opacity: 1; } }
@keyframes barra { from { transform: scaleX(0); } to { transform: scaleX(1); } }

/* ---------- Entrar e criar conta ---------- */
body.modo-auth .topo, body.modo-auth .lateral, body.modo-auth .abas-m, body.modo-auth .veu { display: none !important; }
body.modo-auth main { padding: 0; }
.auth-topo .marca { padding: 0; }
.auth-sub { text-align: center; color: var(--tinta-2); margin: 8px auto 22px; max-width: 34ch; }
.auth-msg { background: var(--azul-claro); color: var(--tinta); border-radius: 14px; padding: 12px 14px; font-size: .9rem; margin: -6px 0 18px; }
.auth-form { display: flex; flex-direction: column; gap: 14px; }
.campo-ic { position: relative; }
.campo-ic > svg { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); width: 19px; height: 19px; color: var(--tinta-3); pointer-events: none; }
.campo-ic input, .campo-ic select { padding-left: 44px !important; height: 50px !important; border-radius: 14px !important; background-color: var(--sup-2) !important; }
.campo-ic input:focus, .campo-ic select:focus { background-color: var(--sup) !important; }
.ver-senha { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); width: 38px; height: 38px; border: 0; background: none; color: var(--tinta-3); border-radius: 10px; display: grid; place-items: center; }
.ver-senha svg { width: 20px; height: 20px; }
.ver-senha:hover { color: var(--tinta); background: var(--sup-3); }
.rotulo-linha { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.rotulo-linha .link { font-size: .84rem; text-decoration: none; }
.conta-teste { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 18px; padding: 14px 16px; border: 1.5px dashed var(--linha-2); border-radius: 16px; background: var(--sup-2); }
.conta-teste strong { display: block; font-size: .92rem; }
.conta-teste small { color: var(--tinta-2); font-size: .82rem; line-height: 1.35; display: block; font-variant-numeric: tabular-nums; }
.passos-auth { list-style: none; margin: 0 0 20px; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); position: relative; }
.passos-auth::before { content: ""; position: absolute; top: 17px; left: 16.6%; right: 16.6%; height: 2px; background: var(--linha); }
.passos-auth li { position: relative; display: flex; flex-direction: column; align-items: center; gap: 6px; }
.passos-auth .bola { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; font-weight: 800; font-size: .92rem; background: var(--sup); border: 2px solid var(--linha-2); color: var(--tinta-3); }
.passos-auth .bola svg { width: 18px; height: 18px; }
.passos-auth small { font-size: .82rem; font-weight: 700; color: var(--tinta-3); }
.passos-auth li.feito .bola { background: var(--marca); border-color: var(--marca); color: #fff; }
.passos-auth li.atual .bola { border-color: var(--marca); color: var(--bic); box-shadow: 0 0 0 4px var(--azul-claro); }
.passos-auth li.atual small, .passos-auth li.feito small { color: var(--tinta); }
.forca { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; margin-top: 8px; }
.forca i { height: 4px; border-radius: 99px; background: var(--sup-3); }
.forca.f1 i:nth-child(-n+1) { background: var(--vermelho); }
.forca.f2 i:nth-child(-n+2) { background: #0EA5E9; }
.forca.f3 i:nth-child(-n+3) { background: var(--marca); }
.forca.f4 i { background: var(--verde); }
.bonecos { display: grid; grid-template-columns: repeat(6, 1fr); gap: 8px; }
.boneco { aspect-ratio: 1; border-radius: 50%; border: 2px solid transparent; background: none; padding: 2px; transition: transform .12s; }
.boneco .av { width: 100%; height: 100%; }
.boneco:hover { transform: scale(1.06); }
.boneco.on { border-color: var(--marca); box-shadow: 0 0 0 3px var(--azul-claro); }
.boneco-escolhido { display: flex; align-items: center; gap: 14px; justify-content: center; margin: -8px 0 18px; }
.boneco-escolhido strong { display: block; font-size: 1.1rem; }
.boneco-escolhido small { color: var(--tinta-2); }
.mais-bonecos { align-self: center; }
.mais-bonecos svg { width: 16px; height: 16px; }
.pick { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 50px; padding: 10px 14px; border-radius: 14px; border: 1.5px solid var(--linha-2); background: var(--sup-2); text-align: left; font: inherit; color: var(--tinta-3); }
.pick > svg:first-child { width: 19px; height: 19px; flex: none; }
.pick span { flex: 1; min-width: 0; line-height: 1.3; }
.pick > svg:last-child { width: 18px; height: 18px; flex: none; }
.pick.set { color: var(--tinta); }
.pick:hover { border-color: var(--tinta-3); }
.pick:focus-visible { border-color: var(--bic); }

/* Lista de escolas e cursos */
.lp-fundo { position: fixed; inset: 0; z-index: 130; background: rgba(8, 12, 30, .55); display: grid; place-items: center; padding: 16px; animation: fade .15s ease-out; }
.lp { width: min(580px, 100%); height: min(720px, calc(100vh - 32px)); display: flex; flex-direction: column; background: var(--sup); border-radius: 24px; box-shadow: var(--sombra-pop); overflow: hidden; animation: sobe .22s cubic-bezier(.2, .8, .2, 1); }
.lp-cab { display: flex; align-items: center; justify-content: space-between; padding: 18px 16px 8px 22px; }
.lp-cab h3 { font-size: 1.2rem; }
.lp-busca { display: flex; align-items: center; gap: 10px; margin: 6px 18px 12px; height: 52px; padding: 0 16px; border-radius: 16px; border: 2px solid var(--bic); background: var(--sup); }
.lp-busca svg { width: 20px; height: 20px; color: var(--tinta-2); }
.lp-busca input { flex: 1; min-width: 0; border: 0; background: none; outline: none; font-size: 1rem; }
.lp-outro { margin: 0 18px 12px; padding: 12px 14px; border: 1.5px solid var(--linha); border-radius: 16px; transition: border-color .15s, background .15s; }
.lp-outro b { display: block; color: var(--bic); font-size: .86rem; margin-bottom: 8px; }
.lp-outro div { display: flex; gap: 8px; }
.lp-outro input { flex: 1; min-width: 0; height: 44px; border: 1.5px solid var(--linha-2); border-radius: 12px; padding: 0 12px; background: var(--sup); outline: none; }
.lp-outro input:focus { border-color: var(--bic); }
.lp-outro .btn { height: 44px; }
.lp-outro.destaque { border-color: var(--bic); background: var(--azul-suave); }
.lp-corpo { flex: 1; overflow-y: auto; border-top: 1px solid var(--linha); padding: 8px 10px 16px; overscroll-behavior: contain; }
.lp-corpo h4 { display: flex; align-items: center; gap: 8px; font-size: .84rem; font-weight: 750; color: var(--tinta-2); padding: 14px 10px 6px; letter-spacing: 0; }
.lp-corpo h4 em { font-style: normal; font-size: .78rem; background: var(--sup-3); color: var(--tinta-2); border-radius: 99px; padding: 1px 8px; }
.lp-op { display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%; padding: 11px 12px; border: 0; background: none; border-radius: 12px; text-align: left; font: inherit; font-size: .94rem; color: var(--tinta); }
.lp-op:hover { background: var(--sup-2); }
.lp-op.on { background: var(--azul-suave); color: var(--bic); font-weight: 650; }
.lp-op svg { width: 18px; height: 18px; color: var(--bic); flex: none; }
.lp-nada { padding: 20px 12px; color: var(--tinta-2); }

/* ---------- Quadro de pedidos ---------- */
.pedidos-g { display: grid; grid-template-columns: minmax(300px, 380px) minmax(0, 1fr); gap: 28px; align-items: start; }
.pedidos-lado { position: sticky; top: calc(var(--topo-h) + 20px); display: flex; flex-direction: column; gap: 16px; }
.compor { background: var(--sup); border: 1px solid var(--linha); border-radius: 24px; padding: 18px; display: flex; flex-direction: column; gap: 12px; }
.compor-cab { display: flex; align-items: center; gap: 12px; }
.compor-cab .av { width: 42px; height: 42px; }
.compor-cab .av svg { width: 22px; height: 22px; }
.compor-cab strong { display: block; font-size: 1.05rem; }
.compor-cab small { color: var(--tinta-2); font-size: .84rem; }
.compor-papel { position: relative; }
.compor-papel textarea { width: 100%; resize: none; border: 1.5px solid #C9D6FF; border-radius: 4px 4px 18px 4px; padding: 10px 14px 22px; outline: none; color: #1A2040;
  font-family: var(--mao); font-size: 1.42rem; line-height: 30px; min-height: 110px;
  background: #DCE5FF repeating-linear-gradient(transparent 0 29px, rgba(30, 64, 230, .16) 29px 30px); background-attachment: local; }
.compor-papel textarea:focus { border-color: var(--marca); box-shadow: 0 0 0 4px var(--azul-claro); }
.compor-papel textarea::placeholder { color: #5D6B9E; }
.compor-n { position: absolute; right: 12px; bottom: 6px; font-size: .78rem; color: #5D6B9E; font-variant-numeric: tabular-nums; }
.compor-sug { gap: 6px; }
.compor-campos { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.compor-campos .campo label { font-size: .8rem; }
.compor-campos select { height: 42px; font-size: .9rem; }
.compor-pts { display: flex; flex-direction: column; gap: 4px; }
.compor-pts output { display: inline-flex; align-items: center; gap: 6px; font-size: 1.15rem; }
.compor-pts output .moeda { width: 22px; height: 22px; }
.como-ped { background: var(--azul-suave); border-radius: 20px; padding: 16px 18px; }
.como-ped h3 { font-size: .98rem; margin-bottom: 8px; }
.como-ped ol { margin: 0; padding-left: 20px; display: grid; gap: 6px; font-size: .88rem; color: var(--tinta-2); }
.como-ped b { color: var(--tinta); }
.ped-ferr { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: -8px 0 18px; }
.quadro { grid-template-columns: repeat(auto-fill, minmax(min(260px, 100%), 1fr)); }
.nota { min-height: 0; padding: 30px 18px 16px; gap: 10px; }
.nota-cab { display: flex; align-items: center; gap: 10px; }
.nota-cab .av { width: 34px; height: 34px; }
.nota-cab strong { display: block; font-size: .9rem; line-height: 1.2; }
.nota-cab small { font-size: .82rem; color: #5D6B8E; }
.nota-cab > span:nth-child(2) { flex: 1; min-width: 0; }
.premio-tag { display: inline-flex; align-items: center; gap: 5px; height: 30px; padding: 0 10px 0 4px; border-radius: 99px; background: #fff; font-weight: 800; font-size: .92rem; font-variant-numeric: tabular-nums; color: #101633; }
.premio-tag .moeda { width: 22px; height: 22px; }
.nota-txt { font-family: var(--mao); font-size: 1.42rem; line-height: 1.18; color: #1A2040; }
.nota-tags { display: flex; flex-wrap: wrap; gap: 5px; }
.nota-tags span { font-size: .78rem; font-weight: 700; padding: 3px 8px; border-radius: 7px; background: rgba(255, 255, 255, .72); color: #3A4366; }
.nota-pe { padding-top: 6px; gap: 8px; }
.nota-apoio { font-size: .8rem; color: #4A5275; }
.nota .linha-btn .btn svg { width: 16px; height: 16px; }
.nota .carimbo-ok { top: 44px; }

/* ---------- Carteira: explicação e simulador ---------- */
.cart-intro { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 24px; align-items: center; margin-bottom: 8px; }
.cart-intro h1 { font-size: clamp(2rem, 4vw, 3rem); font-weight: 800; font-stretch: 88%; letter-spacing: -.04em; }
.cart-intro p { color: var(--tinta-2); font-size: 1.08rem; margin: 10px 0 20px; max-width: 46ch; }
.cart-intro .linha-btn { display: flex; gap: 10px; flex-wrap: wrap; }
.oferta { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; position: relative; }
.oferta div + div { border-left: 1px solid rgba(255, 255, 255, .25); padding-left: 14px; }
.oferta b { display: block; font-size: 2rem; font-weight: 800; line-height: 1.1; }
.oferta span { font-size: .84rem; color: rgba(255, 255, 255, .85); line-height: 1.25; display: block; }
.simulador { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }
.sim-ctrl { background: var(--sup); border: 1px solid var(--linha); border-radius: 24px; padding: 22px; display: flex; flex-direction: column; gap: 18px; }
.sim-l { display: flex; justify-content: space-between; gap: 10px; font-weight: 650; font-size: .92rem; }
.sim-l output { font-weight: 800; color: var(--bic); font-variant-numeric: tabular-nums; }
.sim-res { background: var(--marca); color: #fff; border-radius: 24px; padding: 22px 24px; display: flex; flex-direction: column; gap: 10px; }
.sim-tit { color: rgba(255, 255, 255, .8); font-weight: 600; }
.sim-total { font-size: clamp(2.4rem, 5vw, 3.4rem); font-weight: 800; line-height: 1; letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.sim-total small { font-size: 1rem; font-weight: 600; letter-spacing: 0; color: rgba(255, 255, 255, .8); }
.sim-equiv { color: rgba(255, 255, 255, .85); font-size: .92rem; }
.sim-barras { list-style: none; margin: 4px 0; padding: 0; display: grid; gap: 7px; }
.sim-barras li { display: grid; grid-template-columns: 96px minmax(0, 1fr) 60px; gap: 10px; align-items: center; font-size: .84rem; }
.sim-barras i { display: block; height: 8px; border-radius: 99px; background: rgba(255, 255, 255, .2); position: relative; overflow: hidden; }
.sim-barras i::after { content: ""; position: absolute; inset: 0; width: var(--w); background: #fff; border-radius: inherit; transition: width .25s; }
.sim-barras b { text-align: right; font-variant-numeric: tabular-nums; }
.sim-meses { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; padding-top: 12px; border-top: 1px solid rgba(255, 255, 255, .22); }
.sim-meses div { display: flex; align-items: center; gap: 8px; }
.sim-meses .ins { width: 30px; height: 30px; }
.sim-meses strong { display: block; font-size: .88rem; }
.sim-meses small { font-size: .78rem; color: rgba(255, 255, 255, .8); line-height: 1.2; display: block; }

/* Mural e perfil com bonecos */
.rank-lin { grid-template-columns: 34px 46px minmax(0, 1fr) 96px 96px; }
.rank-av { position: relative; width: 42px; height: 42px; }
.rank-av .av { width: 42px; height: 42px; }
.rank-av .ins-sobre { position: absolute; right: -4px; bottom: -4px; width: 20px; height: 20px; border-radius: 6px; box-shadow: 0 0 0 2px var(--sup); }
.av-podio { width: 52px; height: 52px; }
.podio-c .nums { align-items: center; }
.pt-tag { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; font-size: .84rem; margin-right: auto; }
.pt-tag .ins { width: 26px; height: 26px; }
.av-troca { position: relative; border: 0; background: none; padding: 0; border-radius: 50%; }
.av-troca > span { position: absolute; right: -2px; bottom: -2px; width: 28px; height: 28px; border-radius: 50%; background: var(--marca); color: #fff; display: grid; place-items: center; box-shadow: 0 0 0 3px var(--mesa); }
.av-troca > span svg { width: 15px; height: 15px; }
.def-boneco { display: flex; align-items: center; gap: 16px; padding: 14px; border-radius: 18px; background: var(--sup); border: 1px solid var(--linha); }
.def-boneco strong { display: block; }
.def-boneco small { display: block; color: var(--tinta-2); margin-bottom: 8px; }
.perfil-contas { border: 0 !important; padding: 0 !important; grid-template-columns: 1fr 1fr !important; row-gap: 18px; }
.perfil-contas div { padding: 0 !important; border: 0 !important; }
.perfil-contas div:nth-child(even) { border-left: 1px solid var(--linha) !important; padding-left: 16px !important; }
.perfil-contas b { font-size: 1.8rem; color: var(--tinta); }
.perfil-contas span { color: var(--tinta-2) !important; }
.modal .bonecos { margin-bottom: 18px; }

/* ---------- Responsivo v3 ---------- */
@media (max-width: 1100px) {
  .pedidos-g { grid-template-columns: minmax(0, 1fr); }
  .pedidos-lado { position: static; }
}
@media (max-width: 900px) {
  .cart-intro, .simulador { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
  .btn.so-tel { display: inline-flex !important; }
  .acoes { gap: 4px; }
  .acoes .ib { width: 38px; height: 38px; }
  .av-link .av { width: 34px; height: 34px; }
  .busca-fundo { padding: 0; align-items: stretch; }
  .busca-painel { width: 100%; max-height: none; height: 100%; border-radius: 0; padding-top: env(safe-area-inset-top, 0px); }
  .busca-campo { height: 60px; padding: 0 10px 0 16px; }
  .busca-pe { display: none; }
  .busca-escopo { padding: 10px 16px; }
  .atalhos-b { grid-template-columns: 1fr; }
  .res { grid-template-columns: 44px minmax(0, 1fr); }
  .res-d { display: none; }
  .res-linha { grid-template-columns: 40px minmax(0, 1fr) auto; }
  .exp-busca { height: 52px; border-radius: 16px; }
  .pilulas { flex-wrap: nowrap; overflow-x: auto; margin: 12px -16px 4px; padding: 2px 16px 6px; scrollbar-width: none; }
  .pilulas::-webkit-scrollbar { display: none; }
  .pilula-w { flex: none; }
  .menu-filtro { position: fixed; left: 0; right: 0; bottom: 0; top: auto; width: auto; max-height: 72vh; border-radius: 24px 24px 0 0; padding-bottom: env(safe-area-inset-bottom, 0px); z-index: 120; animation: sobeFolha .25s cubic-bezier(.2, .8, .2, 1); }
  .mf-cab { display: flex; }
  .mf-op { padding: 13px 12px; font-size: .98rem; }
  .menu-veu { display: block; position: fixed; inset: 0; z-index: 119; background: rgba(8, 12, 30, .45); }
  .barra-res { flex-wrap: wrap; gap: 10px; }
  .segmento { width: 100%; }
  .segmento button { flex: 1; padding: 0 8px; }
  .barra-res .ordem { width: 100%; justify-content: flex-end; }
  .bonecos { grid-template-columns: repeat(4, 1fr); }
  .conta-teste { flex-direction: column; align-items: stretch; text-align: center; }
  .lp-fundo { padding: 0; }
  .lp { width: 100%; height: 100%; border-radius: 0; padding-top: env(safe-area-inset-top, 0px); }
  .compor-campos { grid-template-columns: 1fr 1fr; }
  .ped-ferr { flex-wrap: wrap; }
  .exp-busca.pequeno { max-width: none; flex-basis: 100%; }
  .rank-lin { grid-template-columns: 26px 42px minmax(0, 1fr) 64px; }
  .oferta b { font-size: 1.6rem; }
  .sim-barras li { grid-template-columns: 80px minmax(0, 1fr) 54px; }
  .sim-meses { grid-template-columns: 1fr; }
}
@keyframes sobeFolha { from { transform: translateY(40px); opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
}

.auth-form .linha-btn { display: flex; gap: 10px; margin-top: 4px; }
.auth-form .linha-btn .btn { flex: 1; }
.extrato-mais { display: flex; margin: 10px auto 4px; }


/* =========================================================
   v4: conta numa pasta com separadores, regras curtas, paleta contida
   ========================================================= */
.auth { position: relative; min-height: 100vh; display: flex; flex-direction: column; overflow: hidden; background: var(--marca); color: #fff; }
.auth::before { content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(80% 60% at 10% 0%, rgba(255, 255, 255, .16), transparent 60%), radial-gradient(70% 60% at 100% 100%, rgba(8, 18, 90, .35), transparent 70%); }
.auth-topo { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 22px clamp(18px, 4vw, 44px); }
.auth-topo .marca { color: #fff; padding: 0; }
.auth-sair { color: rgba(255, 255, 255, .85); font-weight: 700; font-size: .92rem; text-decoration: none; }
.auth-sair:hover { color: #fff; text-decoration: underline; }
.auth-centro { position: relative; z-index: 1; flex: 1; display: grid; place-items: center; padding: 8px clamp(14px, 3vw, 40px) 24px; }
.pasta-auth { width: min(1000px, 100%); display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(24px, 5vw, 64px); align-items: center; }
.pasta-capa { display: flex; flex-direction: column; gap: 28px; }
.etiqueta { display: flex; align-items: center; justify-content: space-between; gap: 16px; width: min(340px, 100%); background: #fff; color: #101633; border-radius: 16px; padding: 16px 16px 16px 20px; box-shadow: 0 22px 40px -22px rgba(8, 18, 90, .7); transform: rotate(-2deg); }
.etiqueta small { display: block; font-size: .82rem; font-weight: 700; color: #7C84A3; }
.et-nome { display: block; font-family: var(--mao); font-size: 1.9rem; line-height: 1.15; font-weight: 600; color: #1E40E6; border-bottom: 2px dotted #CBD1E2; padding: 0 4px 2px 0; min-width: 170px; max-width: 220px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.et-nome.et-vazio { color: #B4BBD3; }
.et-av { width: 60px; height: 60px; border-radius: 50%; flex: none; }
.et-av-vazio { display: grid; place-items: center; background: #EEF2FF; color: #AFC0FF; }
.et-av-vazio svg { width: 28px; height: 28px; }
.capa-frase { font-size: clamp(2.1rem, 3.8vw, 3.1rem); font-weight: 800; font-stretch: 86%; letter-spacing: -.04em; line-height: 1; max-width: 11ch; color: #fff; }
.capa-factos { list-style: none; margin: 0; padding: 0; display: flex; gap: 30px; }
.capa-factos li { display: flex; flex-direction: column; font-size: .86rem; color: rgba(255, 255, 255, .8); }
.capa-factos b { font-size: 1.75rem; color: #fff; line-height: 1.1; font-variant-numeric: tabular-nums; }
.pasta-dir { display: flex; flex-direction: column; min-width: 0; }
.pasta-abas { display: flex; gap: 6px; padding-left: 20px; }
.aba-pasta { display: grid; place-items: center; height: 46px; padding: 0 26px; border-radius: 14px 14px 0 0; background: rgba(255, 255, 255, .16); color: rgba(255, 255, 255, .92); font-weight: 750; text-decoration: none; transition: background .15s; }
.aba-pasta:hover { background: rgba(255, 255, 255, .26); }
.aba-pasta[aria-selected="true"] { background: var(--sup); color: var(--bic); }
.folha-auth { background: var(--sup); color: var(--tinta); border-radius: 24px; padding: 30px clamp(20px, 3.5vw, 36px); box-shadow: 0 40px 80px -40px rgba(8, 18, 90, .75); animation: saiPasta .5s cubic-bezier(.2, .8, .2, 1) both; }
.folha-auth h1 { font-size: clamp(1.6rem, 3vw, 2rem); font-weight: 800; font-stretch: 90%; letter-spacing: -.035em; margin-bottom: 18px; }
.folha-auth .auth-sub { text-align: left; margin: -12px 0 18px; max-width: none; }
.folha-auth .passos-auth { margin-bottom: 22px; }
.auth-pe { position: relative; z-index: 1; display: flex; justify-content: center; flex-wrap: wrap; gap: 8px 24px; padding: 8px 18px 24px; }
.auth-pe a, .auth-pe .link { color: rgba(255, 255, 255, .82); font-weight: 650; font-size: .86rem; text-decoration: none; }
.auth-pe a:hover, .auth-pe .link:hover { color: #fff; }
@keyframes saiPasta { from { opacity: 0; transform: translateY(18px); } }
@media (max-width: 860px) {
  .pasta-auth { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .pasta-capa { display: none; }
  .etiqueta { width: 100%; max-width: 440px; margin: 0 auto; padding: 12px 14px 12px 16px; transform: rotate(-1.2deg); }
  .et-nome { font-size: 1.6rem; min-width: 0; max-width: 100%; }
  .et-av { width: 48px; height: 48px; }
  .pasta-abas { padding-left: 0; }
  .aba-pasta { flex: 1; padding: 0 12px; }
  .folha-auth { border-radius: 0 0 22px 22px; padding: 24px 18px; }
  .auth-topo { padding: 16px 18px; }
  .auth-centro { place-items: start center; padding: 0 12px 18px; }
}
@media (prefers-reduced-motion: reduce) { .folha-auth { animation: none; } }

/* Regras dos pontos: três listas curtas num só cartão */
.regras-pts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); background: var(--sup); border: 1px solid var(--linha); border-radius: 24px; }
.regras-pts section { padding: 20px 22px 18px; }
.regras-pts section + section { border-left: 1px solid var(--linha); }
.regras-pts h3 { display: flex; align-items: center; gap: 10px; font-size: 1.12rem; margin-bottom: 8px; }
.regras-pts h3 svg { width: 32px; height: 32px; padding: 7px; border-radius: 10px; background: var(--azul-claro); color: var(--bic); flex: none; }
.regras-pts ul { list-style: none; margin: 0; padding: 0; }
.regras-pts li { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 9px 0; border-top: 1px dashed var(--linha-2); font-size: .93rem; }
.regras-pts li b { font-weight: 800; color: var(--bic); white-space: nowrap; font-variant-numeric: tabular-nums; }
.regras-pts li b.g, .regras-pts li b.p { color: var(--tinta); }
.regras-pts h4 { font-size: .8rem; font-weight: 700; color: var(--tinta-3); margin: 14px 0 2px; letter-spacing: 0; }
.regras-pts .rp-mini li { border: 0; padding: 3px 0; color: var(--tinta-2); font-size: .88rem; }
.creditos { font-size: .82rem; color: var(--tinta-3); margin-top: 8px; }
@media (max-width: 900px) {
  .regras-pts { grid-template-columns: minmax(0, 1fr); }
  .regras-pts section + section { border-left: 0; border-top: 1px solid var(--linha); }
}

/* Paleta contida: azul, branco e cinzentos. O vermelho fica só para erros e para a nota a caneta nas provas. */
:root, :root[data-theme="dark"] { --verde: var(--bic); --verde-claro: var(--azul-claro); --rosa-claro: var(--azul-suave); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --verde: var(--bic); --verde-claro: var(--azul-claro); --rosa-claro: var(--azul-suave); } }
:root { --th-provas: #DCE4FF; --th-pratica: #E6ECFA; --th-teoria: #EEF2FC; }
:root[data-theme="dark"] { --th-provas: #243063; --th-pratica: #1D2650; --th-teoria: #1A2244; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --th-provas: #243063; --th-pratica: #1D2650; --th-teoria: #1A2244; } }
.et-provas { background: var(--azul-claro); color: var(--texto-suave); }
.et-pratica, .et-teoria { background: var(--sup-3); color: var(--tinta-2); }
.nav-l .conta { background: var(--bic); color: var(--sobre-bic); }
.vbtn.down[aria-pressed="true"] { background: var(--sup-3); border-color: var(--tinta-3); color: var(--tinta); }
.mov.menos .ic { background: var(--sup-3); color: var(--tinta-2); }
.mov.menos .v { color: var(--tinta-2); }
.missao .ic.rosa, .missao .ic.verde, .missao .ic.suave { background: var(--azul-claro); color: var(--bic); }
.nota { background: #DCE5FF; } .nota.c1 { background: #E6ECFF; } .nota.c2 { background: #EEF2FF; } .nota.c3 { background: #D3DEFF; }
.nota::before, .nota.c2::before, .nota.c3::before { background: var(--marca); }
.carimbo-ok { border-color: var(--marca); color: var(--marca); }
.recibo .lin.pedido { color: var(--marca); }
.forca.f1 i:nth-child(-n+1) { background: var(--tinta-3); }
.forca.f2 i:nth-child(-n+2), .forca.f3 i:nth-child(-n+3), .forca.f4 i { background: var(--marca); }

/* =========================================================
   v5: menu recolhível, sugestões, facetas, leitor de PDF
   ========================================================= */
/* Menu lateral que recolhe, como no Claude */
.nav-recolher { border: 0; background: none; width: 100%; text-align: left; font: inherit; cursor: pointer; margin-bottom: 4px; }
.lat-partilhar span { white-space: nowrap; }
@media (min-width: 1061px) {
  .casca, .topo { transition: grid-template-columns .2s ease; }
  body.lateral-recolhida { --lat-w: 76px; }
  body.lateral-recolhida .marca { padding-left: 21px; }
  body.lateral-recolhida .topo .marca span { display: none; }
  body.lateral-recolhida .lateral { padding: 14px 10px 18px; align-items: center; }
  body.lateral-recolhida .nav-l { justify-content: center; padding: 11px; width: 48px; }
  body.lateral-recolhida .nav-l span, body.lateral-recolhida .nav-l .conta, body.lateral-recolhida .nav-grupo, body.lateral-recolhida .lat-convite, body.lateral-recolhida .lat-eu span { display: none; }
  body.lateral-recolhida .lat-eu { padding: 4px; background: none; margin: 0 0 8px; }
  body.lateral-recolhida .lat-fim { align-items: center; }
  body.lateral-recolhida .lat-partilhar { width: 48px; height: 48px; padding: 0; border-radius: 14px; }
  body.lateral-recolhida .lat-partilhar span { display: none; }
}
@media (max-width: 1060px) { .nav-recolher { display: none; } }

/* Sugestões por baixo do campo (topo, início e explorar) */
.com-sug { position: relative; }
.sug { position: absolute; z-index: 60; top: calc(100% + 8px); left: 0; right: 0; max-height: min(70vh, 520px); overflow-y: auto; overscroll-behavior: contain;
  background: var(--sup); border: 1px solid var(--linha); border-radius: 18px; box-shadow: var(--sombra-pop); padding: 8px; text-align: left; animation: sobe .14s ease-out; }
.sug-g + .sug-g { border-top: 1px solid var(--linha); margin-top: 6px; padding-top: 6px; }
.sug-g h4 { display: flex; justify-content: space-between; align-items: center; font-size: .82rem; font-weight: 700; color: var(--tinta-3); padding: 6px 10px; letter-spacing: 0; }
.sug-g .chips { padding: 2px 8px 8px; }
.sug-i { display: flex; align-items: center; gap: 12px; width: 100%; padding: 9px 10px; border: 0; background: none; border-radius: 12px; text-align: left; text-decoration: none; color: var(--tinta); font: inherit; cursor: pointer; }
.sug-i:hover, .sug-i.ativo { background: var(--azul-suave); }
.sug-t { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.sug-t strong { font-weight: 650; font-size: .95rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sug-t small { font-size: .8rem; color: var(--tinta-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sug-i em { font-style: normal; font-size: .8rem; font-weight: 700; color: var(--tinta-3); font-variant-numeric: tabular-nums; }
.sug-tipo { flex: none; min-width: 92px; font-size: .78rem; font-weight: 750; color: var(--texto-suave); background: var(--azul-claro); border-radius: 7px; padding: 3px 8px; text-align: center; }
.sug-linha > svg { width: 18px; height: 18px; color: var(--tinta-3); flex: none; }
.sug-doc .th { width: 40px; height: 40px; aspect-ratio: auto; flex: none; border-radius: 9px; font-size: 3px; }
.sug-todos { justify-content: center; font-weight: 700; color: var(--bic); margin-top: 6px; background: var(--azul-suave); }
.sug-vazio { padding: 16px 12px; color: var(--tinta-2); font-size: .92rem; }
.busca-topo .sug { top: calc(100% + 10px); }
form.busca-hero { position: relative; }
form.busca-hero input { flex: 1; min-width: 0; border: 0; background: none; outline: none; font-size: 1.04rem; padding: 0 12px; height: 100%; }
form.busca-hero .btn { pointer-events: auto; height: 100%; }
form.busca-hero .sug { top: calc(100% + 10px); border-radius: 20px; }

/* Explorar: facetas à esquerda, barra com filtros dentro */
.exp-g { display: grid; grid-template-columns: 252px minmax(0, 1fr); gap: 28px; align-items: start; }
.facetas { position: sticky; top: calc(var(--topo-h) + 20px); max-height: calc(100vh - var(--topo-h) - 40px); overflow-y: auto; overscroll-behavior: contain; padding-right: 4px; }
.fac-cab { display: flex; align-items: center; justify-content: space-between; padding: 4px 2px 10px; }
.fac-cab strong { font-size: 1.05rem; }
.fac-cab .link { font-size: .84rem; }
.fac { padding: 14px 0; border-top: 1px solid var(--linha); }
.fac h3 { display: flex; align-items: center; justify-content: space-between; font-size: .88rem; font-weight: 750; margin-bottom: 8px; letter-spacing: 0; }
.fac h3 .link { font-size: .8rem; font-weight: 650; }
.fac-busca { display: flex; align-items: center; gap: 8px; height: 38px; padding: 0 10px; margin-bottom: 6px; border-radius: 10px; background: var(--sup); border: 1px solid var(--linha); }
.fac-busca:focus-within { border-color: var(--bic); }
.fac-busca svg { width: 15px; height: 15px; color: var(--tinta-3); flex: none; }
.fac-busca input { flex: 1; min-width: 0; border: 0; background: none; outline: none; font-size: .86rem; }
.fac-ops { display: flex; flex-direction: column; gap: 1px; }
.fac-op { display: flex; align-items: center; gap: 10px; width: 100%; padding: 7px 8px; border: 0; background: none; border-radius: 10px; text-align: left; font: inherit; font-size: .9rem; color: var(--tinta); cursor: pointer; }
.fac-op:hover { background: var(--sup-2); }
.caixa-v { width: 20px; height: 20px; flex: none; border-radius: 6px; border: 1.5px solid var(--linha-2); background: var(--sup); display: grid; place-items: center; color: transparent; }
.caixa-v svg { width: 14px; height: 14px; }
.fac-op[aria-pressed="true"] .caixa-v { background: var(--bic); border-color: var(--bic); color: var(--sobre-bic); }
.fac-op[aria-pressed="true"] .fac-t { font-weight: 700; }
.fac-t { flex: 1; min-width: 0; line-height: 1.3; }
.fac-op em { font-style: normal; font-size: .82rem; color: var(--tinta-3); font-variant-numeric: tabular-nums; }
.fac-mais { font-size: .84rem; margin: 6px 0 0 8px; }
.fac-vazio { font-size: .84rem; color: var(--tinta-3); padding: 4px 8px; }
.bi { display: flex; align-items: center; gap: 10px; min-height: 58px; padding: 7px 8px 7px 18px; background: var(--sup); border: 1.5px solid var(--linha-2); border-radius: 18px; transition: border-color .15s, box-shadow .15s; }
.bi:focus-within { border-color: var(--bic); box-shadow: 0 0 0 4px var(--azul-claro); }
.bi > svg { width: 22px; height: 22px; color: var(--tinta-3); flex: none; }
.bi-campo { flex: 1; min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.bi-tokens { display: contents; }
.bi-campo input { flex: 1; min-width: 160px; height: 40px; border: 0; background: none; outline: none; font-size: 1.02rem; }
.bi-campo input::-webkit-search-cancel-button { display: none; }
.tok { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 4px 0 10px; border-radius: 10px; background: var(--azul-claro); color: var(--bic); font-weight: 700; font-size: .86rem; max-width: 100%; }
.tok small { font-weight: 600; color: var(--texto-suave); opacity: .75; }
.tok button { width: 24px; height: 24px; border: 0; border-radius: 7px; background: transparent; color: inherit; display: grid; place-items: center; }
.tok button:hover { background: rgba(30, 64, 230, .14); }
.tok button svg { width: 14px; height: 14px; }
.bi-limpar { width: 36px; height: 36px; flex: none; border: 0; border-radius: 50%; background: var(--sup-2); color: var(--tinta-2); display: grid; place-items: center; }
.bi-limpar svg { width: 16px; height: 16px; }
.res-cab { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 16px 0 16px; }
.res-cab .contagem { margin: 0; }
.res-dir { display: flex; align-items: center; gap: 8px; }
.ff-veu { position: fixed; inset: 0; z-index: 119; background: rgba(8, 12, 30, .45); }
.folha-filtros { position: fixed; z-index: 120; left: 0; right: 0; bottom: 0; max-height: 86vh; display: flex; flex-direction: column; background: var(--mesa); border-radius: 24px 24px 0 0; padding-bottom: env(safe-area-inset-bottom, 0px); animation: sobeFolha .25s cubic-bezier(.2, .8, .2, 1); }
.ff-pega { width: 44px; height: 5px; border-radius: 99px; background: var(--linha-2); margin: 10px auto 4px; flex: none; }
.ff-corpo { overflow-y: auto; padding: 4px 18px 10px; }
.ff-pe { padding: 12px 18px 16px; border-top: 1px solid var(--linha); background: var(--sup); }

/* Custo nos cartões */
.estado-th.preco { background: #101633; color: #fff; }
:root[data-theme="dark"] .estado-th.preco { background: #EEF0FA; color: #101633; }

/* Leitor de PDF */
.leitor-w { display: flex; flex-direction: column; min-width: 0; }
.leitor-barra { position: sticky; top: var(--topo-h); z-index: 5; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 10px 8px 16px; background: var(--sup); border: 1px solid var(--linha); border-radius: 16px 16px 0 0; }
.lb-pag { font-size: .88rem; font-weight: 700; color: var(--tinta-2); font-variant-numeric: tabular-nums; }
.lb-acoes { display: flex; align-items: center; gap: 2px; }
.lb-acoes .ib { width: 36px; height: 36px; }
.lb-acoes .ib svg { width: 18px; height: 18px; }
.lb-zoom { min-width: 46px; text-align: center; font-size: .84rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.leitor-w .leitor { border-radius: 0 0 24px 24px; }
.leitor .pagina { max-width: calc(560px * var(--zoom, 1)); font-size: calc(clamp(.76rem, 1.25vw, .9rem) * var(--zoom, 1)); }
.pg-num { position: absolute; right: 6%; bottom: 3.5%; font-size: .75em; color: var(--papel-sub); }
.pg-par { display: flex; flex-direction: column; gap: .55em; margin: .8em 0; }
.pg-par i { display: block; height: .5em; border-radius: 1em; background: var(--papel-linha); }
.pg-res { display: flex; flex-direction: column; gap: .3em; font-family: var(--mao); color: var(--caneta); font-size: 1.45em; margin: .4em 0 .8em .6em; }
.pg-graf { height: 9em; color: var(--caneta); margin: 1em 0; }
.pg-graf svg { width: 100%; height: 100%; }
.pg-tab { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--papel-linha); border: 1px solid var(--papel-linha); margin: 1em 0; }
.pg-tab i { height: 1.8em; background: var(--papel); }
.pg-marca { height: .9em; width: 62%; background: #C9D6FF; border-radius: .15em; margin: .4em 0; }
.pg-formula { display: inline-block; margin: .8em 0; padding: .5em .9em; border: 1px solid var(--papel-linha); border-radius: .3em; font-weight: 700; }
.custo-doc { display: flex; align-items: center; gap: 12px; padding: 12px 14px; margin-bottom: 10px; border-radius: 16px; background: var(--azul-suave); }
.custo-doc .moeda { width: 36px; height: 36px; }
.custo-doc b { display: block; font-size: 1.2rem; }
.custo-doc small { color: var(--tinta-2); font-size: .84rem; }
.leitor-cheio { position: fixed; inset: 0; z-index: 140; display: flex; flex-direction: column; background: rgba(10, 14, 32, .94); }
.lc-barra { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 18px; color: #fff; padding-top: calc(12px + env(safe-area-inset-top, 0px)); }
.lc-barra strong { display: flex; flex-direction: column; font-size: 1rem; }
.lc-barra small { font-weight: 500; color: rgba(255, 255, 255, .7); font-size: .82rem; }
.lc-barra .ib { color: #fff; }
.lc-barra .ib:hover { background: rgba(255, 255, 255, .12); color: #fff; }
.lc-barra .lb-zoom { color: #fff; }
.lc-corpo { flex: 1; overflow-y: auto; background: transparent; border-radius: 0; padding: 10px 16px 40px; }

/* Perfil: definições ao centro */
.def { margin: 0 auto; width: 100%; max-width: 620px; background: var(--sup); border: 1px solid var(--linha); border-radius: 24px; padding: clamp(18px, 3vw, 28px); }
.def .def-boneco { background: var(--sup-2); border: 0; }

/* Registo: código criado automaticamente */
.codigo-auto { display: flex; align-items: center; gap: 10px; min-height: 50px; padding: 10px 14px; border-radius: 14px; border: 1.5px dashed var(--linha-2); background: var(--sup-2); }
.codigo-auto svg { width: 18px; height: 18px; color: var(--tinta-3); flex: none; }
.codigo-auto b { flex: 1; letter-spacing: .05em; font-variant-numeric: tabular-nums; }
.codigo-auto small { color: var(--tinta-3); font-size: .82rem; }
.convite-recebido { display: flex; gap: 10px; align-items: center; padding: 12px 14px; border-radius: 14px; background: var(--azul-claro); font-size: .9rem; }
.convite-recebido svg { width: 20px; height: 20px; color: var(--bic); flex: none; }

@media (max-width: 1060px) {
  .exp-g { grid-template-columns: minmax(0, 1fr); }
  .facetas { display: none; }
}
@media (max-width: 760px) {
  .bi { min-height: 52px; padding-left: 14px; border-radius: 16px; }
  .bi-campo input { min-width: 120px; }
  .res-cab { margin: 12px 0; }
  .leitor-barra { top: var(--topo-h); border-radius: 14px 14px 0 0; padding-left: 12px; }
  .lb-pag { font-size: .8rem; }
  .sug-tipo { min-width: 0; }
  .codigo-auto small { display: none; }
}


/* =========================================================
   v6: ícones nos cartões, carrossel da conta, filtros em pílulas no telemóvel
   ========================================================= */
.cartao-pe { gap: 10px; }
.cartao .quem .n { display: none; }
.stat { display: inline-flex; align-items: center; gap: 4px; font-size: .8rem; font-weight: 700; color: var(--tinta-2); font-variant-numeric: tabular-nums; white-space: nowrap; }
.stat svg { width: 15px; height: 15px; }
.linha-doc .stat + .stat { margin-left: 10px; }

/* Sexo no registo */
.seg-sexo { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
.seg-sexo button { height: 42px; }
.boneco-escolhido > span { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; }
.boneco-escolhido .btn { margin-top: 8px; }
.boneco-escolhido .btn svg { width: 16px; height: 16px; }

/* Carrossel da página de conta */
.carrossel { position: relative; color: #fff; }
.car-slides { position: relative; min-height: 400px; }
.car-s { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; gap: 28px; opacity: 0; transform: translateY(12px); transition: opacity .55s ease, transform .55s ease; pointer-events: none; }
.car-s.on { opacity: 1; transform: none; pointer-events: auto; }
.car-s h2 { font-size: clamp(1.9rem, 3.4vw, 2.7rem); font-weight: 800; font-stretch: 86%; letter-spacing: -.035em; line-height: 1.03; max-width: 13ch; color: #fff; }
.car-vis { min-height: 190px; display: flex; align-items: center; }
.car-dots { display: flex; gap: 8px; }
.car-dots button { width: 10px; height: 10px; border-radius: 99px; border: 0; padding: 0; background: rgba(255, 255, 255, .35); transition: width .3s, background .3s; cursor: pointer; }
.car-dots button.on { width: 30px; background: #fff; }
.grad { display: flex; align-items: flex-end; padding-top: 34px; }
.grad-av { position: relative; width: 88px; height: 88px; margin-right: -16px; }
.grad-av .av { width: 100%; height: 100%; border-radius: 50%; box-shadow: 0 0 0 4px var(--marca); }
.grad-av .capelo { position: absolute; left: 8%; top: -30%; width: 84%; transform: rotate(-8deg); filter: drop-shadow(0 3px 4px rgba(8, 18, 90, .35)); }
.grad-av.g1, .grad-av.g3 { width: 104px; height: 104px; z-index: 2; }
.grad-av.g2 { width: 124px; height: 124px; z-index: 3; }
.grad-av.g2 .capelo { transform: rotate(4deg); }
.car-s.on .grad-av { animation: pula .6s cubic-bezier(.2, 1.4, .4, 1) both; }
.car-s.on .grad-av.g1 { animation-delay: .06s; } .car-s.on .grad-av.g2 { animation-delay: .12s; } .car-s.on .grad-av.g3 { animation-delay: .18s; } .car-s.on .grad-av.g4 { animation-delay: .24s; }
@keyframes pula { from { opacity: 0; transform: translateY(20px) scale(.9); } }
.car-unis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; width: min(430px, 100%); }
.car-unis span { display: flex; flex-direction: column; padding: 12px 14px; border-radius: 16px; background: rgba(255, 255, 255, .14); }
.car-unis b { font-size: 1.3rem; font-weight: 800; }
.car-unis small { color: rgba(255, 255, 255, .8); font-size: .8rem; }
.car-unis .mais { background: transparent; border: 1.5px dashed rgba(255, 255, 255, .45); }
.car-s.on .car-unis span { animation: pula .5s cubic-bezier(.2, 1.3, .4, 1) both; }
.car-s.on .car-unis span:nth-child(2) { animation-delay: .05s; } .car-s.on .car-unis span:nth-child(3) { animation-delay: .1s; } .car-s.on .car-unis span:nth-child(4) { animation-delay: .15s; } .car-s.on .car-unis span:nth-child(5) { animation-delay: .2s; } .car-s.on .car-unis span:nth-child(6) { animation-delay: .25s; }
.car-pontos-vis { display: flex; align-items: center; gap: 26px; }
.cp-moeda { display: flex; align-items: center; gap: 12px; padding: 14px 20px 14px 14px; border-radius: 22px; background: #fff; color: #101633; box-shadow: 0 20px 40px -20px rgba(8, 18, 90, .6); }
.cp-moeda .moeda { width: 54px; height: 54px; }
.cp-moeda b { font-size: 2.3rem; font-weight: 800; letter-spacing: -.03em; }
.cp-esc { display: flex; flex-direction: column-reverse; gap: 6px; }
.cp-esc .ins { width: 40px; height: 40px; box-shadow: 0 0 0 2px rgba(255, 255, 255, .5); border-radius: 9px; }
.car-s.on .cp-moeda { animation: pula .6s cubic-bezier(.2, 1.4, .4, 1) both; }
.car-folha { position: relative; width: 250px; height: 200px; }
.car-folha .papel { position: absolute; width: 150px; aspect-ratio: 1 / 1.25; font-size: 7.5px; border-radius: 4px; }
.car-folha .papel:first-child { left: 0; top: 0; transform: rotate(-4deg); z-index: 2; }
.car-folha .borrada { left: 92px; top: 16px; transform: rotate(5deg); }
.car-folha .borrada > * { filter: blur(2.5px); }
.car-cad { position: absolute; left: 150px; top: 78px; z-index: 3; width: 50px; height: 50px; border-radius: 50%; background: #fff; color: var(--marca); display: grid; place-items: center; box-shadow: 0 10px 24px -8px rgba(8, 18, 90, .6); }
.car-cad svg { width: 24px; height: 24px; }
.grad-mini { display: none; }
@media (max-width: 860px) {
  .grad-mini { display: flex; justify-content: center; padding-top: 20px; margin: 0 0 14px; }
  .grad-mini .grad-av, .grad-mini .grad-av.g1, .grad-mini .grad-av.g2, .grad-mini .grad-av.g3 { width: 56px; height: 56px; margin-right: -10px; }
  .grad-mini .grad-av .av { box-shadow: 0 0 0 3px var(--marca); }
}

/* Filtros no telemóvel: tocar para escolher, sem caixas de seleção */
.folha-filtros .fac-ops { flex-direction: row; flex-wrap: wrap; gap: 8px; }
.folha-filtros .fac-op { width: auto; max-width: 100%; padding: 9px 14px; border: 1.5px solid var(--linha-2); border-radius: 999px; background: var(--sup); font-weight: 650; }
.folha-filtros .fac-op .caixa-v { display: none; }
.folha-filtros .fac-op .fac-t { flex: none; }
.folha-filtros .fac-op[aria-pressed="true"] { background: var(--bic); border-color: var(--bic); color: var(--sobre-bic); }
.folha-filtros .fac-op[aria-pressed="true"] em { color: inherit; opacity: .8; }
.folha-filtros .fac-busca { margin-bottom: 10px; }
@media (prefers-reduced-motion: reduce) { .car-s, .car-s.on .grad-av, .car-s.on .car-unis span, .car-s.on .cp-moeda { transition: none; animation: none; } }

.fac-t small { display: block; font-size: .8rem; font-weight: 500; color: var(--tinta-3); line-height: 1.25; }
.folha-filtros .fac-t small { display: none; }
.folha-filtros .fac-op .fac-t { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; flex: 0 1 auto; }

/* =========================================================
   v7: notificações, documento no telemóvel, perfil, administração
   ========================================================= */
/* Notificações */
.notif-w { position: relative; }
.sino { position: relative; }
.sino .badge { position: absolute; top: 4px; right: 3px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 99px; background: var(--bic); color: var(--sobre-bic); font-size: .72rem; font-weight: 800; display: grid; place-items: center; box-shadow: 0 0 0 2px var(--sup); }
.notif-painel { position: absolute; z-index: 70; top: calc(100% + 10px); right: -40px; width: 380px; max-height: 70vh; display: flex; flex-direction: column; background: var(--sup); border: 1px solid var(--linha); border-radius: 20px; box-shadow: var(--sombra-pop); overflow: hidden; animation: sobe .16s ease-out; }
.np-cab { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 14px 14px 10px 18px; border-bottom: 1px solid var(--linha); }
.np-cab strong { font-size: 1.05rem; }
.np-cab > div { display: flex; align-items: center; gap: 6px; }
.np-cab .link { font-size: .84rem; text-decoration: none; }
.np-lista { overflow-y: auto; padding: 6px; overscroll-behavior: contain; }
.np-i { display: flex; gap: 12px; padding: 10px; border-radius: 14px; text-decoration: none; color: var(--tinta); position: relative; }
.np-i:hover { background: var(--sup-2); }
.np-i.nova { background: var(--azul-suave); }
.np-i.nova::after { content: ""; position: absolute; right: 12px; top: 16px; width: 8px; height: 8px; border-radius: 50%; background: var(--bic); }
.np-ic { width: 36px; height: 36px; border-radius: 12px; background: var(--azul-claro); color: var(--bic); display: grid; place-items: center; flex: none; }
.np-ic svg { width: 18px; height: 18px; }
.np-t { display: flex; flex-direction: column; min-width: 0; padding-right: 14px; }
.np-txt { font-size: .9rem; line-height: 1.35; }
.np-t small { color: var(--tinta-3); font-size: .82rem; margin-top: 2px; }
.np-vazio { padding: 24px; text-align: center; }

/* Documento: título, PDF e painel; barra de desbloquear fixa no telemóvel */
.doc-vista { grid-template-areas: "leitor cab" "leitor painel"; grid-template-rows: auto 1fr; row-gap: 18px; }
.doc-vista > .leitor-w { grid-area: leitor; }
.doc-cab { grid-area: cab; }
.doc-cab h1 { font-size: clamp(1.7rem, 2.6vw, 2.25rem); font-weight: 800; font-stretch: 90%; letter-spacing: -.035em; }
.doc-vista > .painel-doc { grid-area: painel; }
.barra-doc { display: none; }
.enviado.rejeitado { background: var(--sup-3); }
.enviado.rejeitado .ic { background: var(--tinta); color: var(--sup); }

/* Perfil: envios com estado */
.perfil-col { display: flex; flex-direction: column; gap: 18px; }
.resumo-envios .re-cab { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.re-num { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.re-num button { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: 12px; border-radius: 14px; border: 1px solid var(--linha); background: var(--sup-2); text-align: left; font: inherit; color: var(--tinta); cursor: pointer; }
.re-num button:hover { border-color: var(--linha-2); }
.re-num svg { width: 18px; height: 18px; color: var(--bic); }
.re-num b { font-size: 1.5rem; line-height: 1.1; }
.re-num span { font-size: .8rem; color: var(--tinta-2); }
.n-chip { display: inline-grid; place-items: center; min-width: 22px; height: 20px; padding: 0 6px; margin-left: 4px; border-radius: 99px; background: var(--sup-3); color: var(--tinta-2); font-size: .78rem; font-weight: 750; }
.chip[aria-pressed="true"] .n-chip { background: rgba(255, 255, 255, .2); color: inherit; }
.envios { display: flex; flex-direction: column; background: var(--sup); border: 1px solid var(--linha); border-radius: 20px; padding: 4px 16px; }
.envio { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--linha); }
.envio:last-child { border-bottom: 0; }
.envio .th { aspect-ratio: 1; border-radius: 10px; font-size: 4px; }
.envio-t { min-width: 0; display: flex; flex-direction: column; }
.envio-t strong { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.envio-t small { color: var(--tinta-2); font-size: .84rem; }
.envio-t .motivo { color: var(--tinta); font-weight: 600; margin-top: 2px; }
.envio-d { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
.estado-envio { display: inline-flex; align-items: center; gap: 5px; height: 26px; padding: 0 10px; border-radius: 99px; font-size: .82rem; font-weight: 750; white-space: nowrap; }
.estado-envio svg { width: 14px; height: 14px; }
.estado-envio.ok { background: var(--azul-claro); color: var(--texto-suave); }
.estado-envio.rev { background: var(--sup-3); color: var(--tinta-2); }
.estado-envio.nao { background: var(--tinta); color: var(--sup); }

/* Pesquisa em ecrã inteiro (telemóvel) */
.busca-ecra { position: fixed; inset: 0; z-index: 150; display: flex; flex-direction: column; background: var(--sup); padding-top: env(safe-area-inset-top, 0px); animation: fade .12s ease-out; }
.be-cab { display: flex; align-items: center; gap: 6px; padding: 10px 12px 10px 6px; border-bottom: 1px solid var(--linha); }
.be-campo { flex: 1; display: flex; align-items: center; gap: 10px; height: 46px; padding: 0 14px; border-radius: 14px; background: var(--sup-2); border: 1.5px solid var(--bic); }
.be-campo svg { width: 19px; height: 19px; color: var(--tinta-3); flex: none; }
.be-campo input { flex: 1; min-width: 0; border: 0; background: none; outline: none; font-size: 1.02rem; }
.be-tokens { display: flex; flex-wrap: wrap; gap: 6px; padding: 10px 14px 0; }
.be-tokens:empty { display: none; }
.busca-ecra .sug-ecra { position: static; flex: 1; max-height: none; border: 0; border-radius: 0; box-shadow: none; padding: 6px 8px 16px; animation: none; }
.be-pe { padding: 12px 14px calc(12px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--linha); }

/* Administração */
.adm .cab-pag { align-items: flex-end; }
.kpis { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; margin-bottom: 16px; }
.kpis-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.kpi { display: flex; gap: 12px; align-items: flex-start; padding: 16px; background: var(--sup); border: 1px solid var(--linha); border-radius: 20px; min-width: 0; }
.kpi-ic { width: 38px; height: 38px; border-radius: 12px; background: var(--azul-claro); color: var(--bic); display: grid; place-items: center; flex: none; }
.kpi-ic svg { width: 19px; height: 19px; }
.kpi > div { min-width: 0; display: flex; flex-direction: column; }
.kpi small { font-size: .8rem; color: var(--tinta-2); font-weight: 600; }
.kpi b { font-size: 1.6rem; font-weight: 800; letter-spacing: -.02em; line-height: 1.15; font-variant-numeric: tabular-nums; }
.kpi-sub { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: .8rem; color: var(--tinta-3); margin-top: 2px; }
.kpi-sub em { font-style: normal; }
.kpi-d { display: inline-flex; align-items: center; gap: 2px; font-weight: 800; }
.kpi-d svg { width: 12px; height: 12px; }
.kpi-d.sobe { color: var(--bic); }
.kpi-d.desce { color: var(--tinta-2); }
.adm-g2 { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 16px; margin-bottom: 16px; }
.adm-g3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-bottom: 16px; }
.adm-sec header { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.adm-sec h3 { font-size: 1.02rem; display: flex; align-items: center; gap: 6px; }
.adm-sec header small { color: var(--tinta-3); font-size: .8rem; }
.bloco-adm { margin-top: 22px; }
.graf svg { width: 100%; height: auto; display: block; }
.g-linha { stroke: var(--linha); stroke-width: 1; }
.g-txt { fill: var(--tinta-3); font-size: 12px; font-family: var(--f); }
.g-area { fill: var(--marca); opacity: .1; }
.g-l { fill: none; stroke-width: 2.4; stroke-linejoin: round; stroke-linecap: round; }
.g-l0 { stroke: var(--marca); }
.g-l1 { stroke: #93A6F8; stroke-dasharray: 5 4; }
.g-ponto { fill: transparent; }
.g-ponto:hover { fill: var(--marca); fill-opacity: .25; }
.graf-leg { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 8px; font-size: .84rem; color: var(--tinta-2); }
.graf-leg span { display: inline-flex; align-items: center; gap: 6px; }
.graf-leg b { color: var(--tinta); font-variant-numeric: tabular-nums; }
.graf-leg i { width: 14px; height: 4px; border-radius: 4px; }
.g-i0 { background: var(--marca); }
.g-i1 { background: #93A6F8; }
.bh { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.bh li { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr) auto; gap: 10px; align-items: center; font-size: .88rem; }
.bh-r { display: flex; flex-direction: column; min-width: 0; font-weight: 650; }
.bh-r small { font-weight: 500; color: var(--tinta-3); font-size: .78rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bh-b { height: 10px; border-radius: 99px; background: var(--sup-3); overflow: hidden; }
.bh-b i { display: block; height: 100%; border-radius: inherit; background: var(--marca); }
.bh b { font-variant-numeric: tabular-nums; min-width: 34px; text-align: right; }
.mini-fila { display: flex; flex-direction: column; gap: 4px; margin-bottom: 14px; }
.mini-fila > div { display: flex; gap: 10px; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--linha); }
.mini-fila span { width: 32px; height: 32px; border-radius: 10px; background: var(--sup-3); color: var(--tinta-2); display: grid; place-items: center; flex: none; }
.mini-fila span svg { width: 16px; height: 16px; }
.mini-fila p { display: flex; flex-direction: column; min-width: 0; }
.mini-fila strong { font-size: .92rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mini-fila small { font-size: .82rem; color: var(--tinta-3); }
.tab-w { overflow-x: auto; }
.tab { width: 100%; border-collapse: collapse; font-size: .88rem; }
.tab th { text-align: left; font-size: .82rem; font-weight: 700; color: var(--tinta-3); padding: 8px 10px; border-bottom: 1px solid var(--linha); white-space: nowrap; }
.tab td { padding: 10px; border-bottom: 1px solid var(--linha); vertical-align: middle; }
.tab tr:last-child td { border-bottom: 0; }
.tab .num { text-align: right; font-variant-numeric: tabular-nums; }
.tab td strong { font-weight: 700; }
.td-sub { display: block; color: var(--tinta-3); font-size: .82rem; }
.acoes-td { text-align: right; white-space: nowrap; }
.acoes-td .btn + .btn { margin-left: 6px; }
.th-ord { display: inline-flex; align-items: center; gap: 4px; border: 0; background: none; padding: 0; font: inherit; color: inherit; cursor: pointer; }
.th-ord svg { width: 12px; height: 12px; }
.th-ord.on { color: var(--tinta); }
.tab-mat, .tab-uti { display: flex; align-items: center; gap: 10px; min-width: 220px; }
.tab-mat .th { width: 44px; height: 44px; aspect-ratio: auto; border-radius: 9px; font-size: 3.2px; flex: none; }
.tab-mat span, .tab-uti span { display: flex; flex-direction: column; min-width: 0; }
.tab-mat small, .tab-uti small { color: var(--tinta-3); font-size: .82rem; }
.tab-uti .av { width: 36px; height: 36px; }
.adm-ferr { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 12px; }
.adm-ferr select { height: 44px; border-radius: 14px; border: 1.5px solid var(--linha-2); background: var(--sup); padding: 0 12px; font: inherit; }
.adm-cont { font-size: .86rem; color: var(--tinta-2); margin: 0 0 8px; }
#adm-tab { background: var(--sup); border: 1px solid var(--linha); border-radius: 20px; padding: 14px 16px; }
.paginas { display: flex; align-items: center; justify-content: flex-end; gap: 10px; padding-top: 12px; font-size: .86rem; color: var(--tinta-2); }
.adm-auto { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.adm-auto strong { display: block; }
.adm-auto small { color: var(--tinta-2); font-size: .86rem; }
.interruptor { width: 52px; height: 30px; flex: none; border-radius: 99px; border: 0; padding: 3px; background: var(--linha-2); cursor: pointer; transition: background .2s; }
.interruptor span { display: block; width: 24px; height: 24px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .25); transition: transform .2s; }
.interruptor[aria-checked="true"] { background: var(--bic); }
.interruptor[aria-checked="true"] span { transform: translateX(22px); }
.fila, .reps { display: flex; flex-direction: column; gap: 10px; }
.fila-i, .rep-i { display: grid; grid-template-columns: 64px minmax(0, 1.4fr) minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 12px; background: var(--sup); border: 1px solid var(--linha); border-radius: 18px; }
.rep-i { grid-template-columns: 64px minmax(0, 1fr) auto; }
.fila-i .th, .rep-i .th { aspect-ratio: 1; border-radius: 12px; font-size: 4.4px; }
.fila-t { display: flex; flex-direction: column; min-width: 0; gap: 1px; }
.fila-t strong { font-size: .98rem; }
.fila-t strong a { text-decoration: none; }
.fila-t small { color: var(--tinta-2); font-size: .82rem; }
.fila-flags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.fila-flags span, .rep-motivo { display: inline-flex; align-items: center; gap: 5px; height: 24px; padding: 0 9px; border-radius: 8px; background: var(--azul-claro); color: var(--texto-suave); font-size: .8rem; font-weight: 700; width: fit-content; }
.fila-flags svg, .rep-motivo svg { width: 13px; height: 13px; }
.rep-motivo { margin: 4px 0 2px; }
.fila-quem { display: flex; align-items: center; gap: 10px; min-width: 0; }
.fila-quem .av { width: 36px; height: 36px; }
.fila-quem span { display: flex; flex-direction: column; min-width: 0; }
.fila-quem strong { font-size: .88rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fila-quem small { color: var(--tinta-3); font-size: .82rem; }
.fila-acoes { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.decis { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.decis li { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--linha); }
.decis li:last-child { border-bottom: 0; }
.decis li > span { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; flex: none; }
.decis li > span svg { width: 15px; height: 15px; }
.decis .ok { background: var(--azul-claro); color: var(--bic); }
.decis .nao { background: var(--tinta); color: var(--sup); }
.decis p { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.decis p small { color: var(--tinta-2); font-size: .8rem; }
.decis li .av { width: 34px; height: 34px; }
.decis li > b { font-variant-numeric: tabular-nums; }
.regras-adm { list-style: none; margin: 0; padding: 0; }
.regras-adm li { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px dashed var(--linha-2); font-size: .9rem; }
.regras-adm b { white-space: nowrap; }
.nota-saude { display: flex; gap: 8px; margin-top: 12px; padding: 10px 12px; border-radius: 12px; background: var(--azul-suave); font-size: .86rem; color: var(--tinta-2); }
.nota-saude svg { width: 18px; height: 18px; color: var(--bic); flex: none; }
.nota-saude.aviso { background: var(--sup-3); }
.sub-adm { font-size: .88rem; margin: 18px 0 10px; color: var(--tinta-2); }

@media (max-width: 1180px) {
  .kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .adm-g3 { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}
@media (max-width: 1060px) {
  .doc-vista { grid-template-areas: "cab" "leitor" "painel"; grid-template-rows: auto; }
  .adm-g2 { grid-template-columns: minmax(0, 1fr); }
  .fila-i { grid-template-columns: 56px minmax(0, 1fr); }
  .fila-quem, .fila-acoes { grid-column: 2; justify-content: flex-start; }
  .rep-i { grid-template-columns: 56px minmax(0, 1fr); }
  .rep-i .fila-acoes { grid-column: 2; }
}
@media (max-width: 760px) {
  .notif-painel { position: fixed; inset: 0; width: auto; max-height: none; border-radius: 0; top: 0; right: 0; padding-top: env(safe-area-inset-top, 0px); z-index: 160; }
  body.notifs-abertas { overflow: hidden; }
  body.rota-doc .abas-m { display: none; }
  body.rota-doc main { padding-bottom: 96px; }
  .barra-doc { display: flex; align-items: center; gap: 10px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 55; padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px)); background: var(--sup); border-top: 1px solid var(--linha); box-shadow: 0 -10px 30px -18px rgba(16, 22, 51, .4); }
  .barra-doc .btn { height: 48px; }
  .barra-doc .btn-pri { flex: 1; }
  .barra-doc > .btn-sec { width: 48px; padding: 0; }
  .bd-custo { display: flex; align-items: center; gap: 8px; min-width: 0; }
  .bd-custo .moeda { width: 30px; height: 30px; }
  .bd-custo span { display: flex; flex-direction: column; line-height: 1.15; }
  .bd-custo b { font-size: 1rem; white-space: nowrap; }
  .bd-custo small { font-size: .78rem; color: var(--tinta-2); white-space: nowrap; }
  .doc-vista .acao-doc { display: none; }
  .rodape-g > div:not(:first-child) { display: none; }
  .rodape { margin-top: 40px; padding: 24px 0 28px; }
  .kpis, .kpis-4 { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; }
  .kpi { padding: 12px; gap: 10px; }
  .kpi b { font-size: 1.3rem; }
  .kpi-ic { width: 32px; height: 32px; }
  .adm-g3 { grid-template-columns: minmax(0, 1fr); }
  .adm-auto { align-items: flex-start; }
  .envio { grid-template-columns: 48px minmax(0, 1fr); }
  .envio-d { grid-column: 2; justify-content: flex-start; }
  .re-num b { font-size: 1.25rem; }
  .adm-ferr .exp-busca.pequeno { flex-basis: 100%; max-width: none; }
}

/* =========================================================
   v8: versão real (PHP + MySQL): PDF verdadeiro, editor de bonecos, mural, mensagens, convites
   ========================================================= */
/* Miniaturas e páginas reais */
.th-real .th-img { position: absolute; left: 13%; right: 13%; top: 11%; width: 74%; height: 125%; object-fit: cover; object-position: top; background: #fff; box-shadow: var(--sombra-papel); border-radius: 3px; transition: transform .25s cubic-bezier(.2, .8, .2, 1); }
.cartao:hover .th-real .th-img { transform: translateY(-4px); }
.pagina.pg-img { padding: 0; aspect-ratio: auto; }
.pagina.pg-img > img { display: block; width: 100%; height: auto; }
.pagina.pg-img.bloq > img { filter: none; opacity: 1; }
.leitor .pagina { max-width: calc(560px * var(--zoom, 1)); }
.pg-pdf { padding: 0; background: #fff; }
.pg-pdf canvas { display: block; width: 100%; height: 100%; }
.pdf-carregar, .a-carregar { display: flex; align-items: center; justify-content: center; gap: 12px; min-height: 200px; color: var(--tinta-2); font-weight: 600; }
.a-carregar.pequeno { min-height: 80px; }
.roda-c { width: 22px; height: 22px; border-radius: 50%; border: 3px solid var(--azul-claro); border-top-color: var(--bic); animation: gira .8s linear infinite; }
@keyframes gira { to { transform: rotate(360deg); } }
.pdf-erro { display: flex; flex-direction: column; align-items: center; gap: 12px; text-align: center; padding: 30px; color: var(--tinta-2); }
.pdf-erro svg { width: 28px; height: 28px; color: var(--bic); }
.dz-previa { width: 96px; height: auto; border-radius: 6px; box-shadow: var(--sombra-papel); background: #fff; }

/* Editor de bonecos em ecrã inteiro */
.ed-boneco { position: fixed; inset: 0; z-index: 170; display: grid; grid-template-columns: 400px minmax(0, 1fr); background: var(--mesa); animation: fade .15s ease-out; }
.ed-lado { display: flex; flex-direction: column; gap: 18px; padding: 30px; background: var(--sup); border-right: 1px solid var(--linha); overflow-y: auto; }
.ed-lado h2 { font-size: 1.6rem; font-weight: 800; letter-spacing: -.03em; }
.ed-previa { width: 240px; height: 240px; margin: 4px auto 0; }
.ed-previa .av { width: 100%; height: 100%; }
.ed-modo { width: 100%; display: grid; grid-template-columns: 1fr 1fr; }
.ed-modo button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 44px; }
.ed-modo button svg { width: 18px; height: 18px; }
.ed-espaco { flex: 1; }
.ed-cred { font-size: .8rem; color: var(--tinta-3); }
.ed-botoes { display: flex; flex-direction: column; gap: 10px; }
.ed-botoes .btn svg { width: 18px; height: 18px; }
.ed-main { position: relative; overflow-y: auto; padding: 28px 28px 40px; }
.ed-fechar { position: absolute; top: 18px; right: 18px; width: 44px; height: 44px; border: 1.5px solid var(--linha-2); background: var(--sup); z-index: 2; }
.ed-corpo { max-width: 980px; padding-right: 50px; }
.ed-dica { color: var(--tinta-2); margin-bottom: 16px; }
.ed-grelha { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(110px, 100%), 1fr)); gap: 14px; }
.ed-pronto { aspect-ratio: 1; border-radius: 50%; border: 3px solid transparent; background: none; padding: 3px; transition: transform .12s; }
.ed-pronto .av { width: 100%; height: 100%; }
.ed-pronto:hover { transform: scale(1.05); }
.ed-pronto.on { border-color: var(--marca); box-shadow: 0 0 0 4px var(--azul-claro); }
.ed-mais { margin-top: 18px; }
.ed-mais svg { width: 16px; height: 16px; }
.ed-cats { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 22px; }
.ed-cats .chip.ativo { background: var(--bic); color: var(--sobre-bic); border-color: var(--bic); }
.ed-cores { display: flex; flex-wrap: wrap; gap: 14px; }
.ed-cor { width: 64px; height: 64px; border-radius: 50%; border: 2px solid var(--linha-2); box-shadow: inset 0 0 0 3px #fff; cursor: pointer; }
.ed-cor[aria-pressed="true"] { border-color: var(--marca); box-shadow: inset 0 0 0 3px #fff, 0 0 0 4px var(--azul-claro); }
.ed-ops { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(92px, 100%), 1fr)); gap: 12px; }
.ed-op { aspect-ratio: 1; border-radius: 18px; border: 2px solid var(--linha); background: var(--sup); padding: 6px; display: grid; place-items: center; cursor: pointer; }
.ed-op .ed-mini { width: 100%; height: 100%; }
.ed-op[aria-pressed="true"] { border-color: var(--marca); box-shadow: 0 0 0 3px var(--azul-claro); }
.ed-nenhum { display: flex; flex-direction: column; align-items: center; gap: 4px; color: var(--tinta-3); font-size: .8rem; }
.ed-nenhum svg { width: 22px; height: 22px; }
.linha-bonecos { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; }
.linha-bonecos .btn svg { width: 16px; height: 16px; }

/* Mural com filtros e capelos */
.mural-filtros { display: grid; grid-template-columns: repeat(2, minmax(0, 260px)); gap: 12px; margin-bottom: 18px; }
.mural-filtros select { height: 44px; border-radius: 12px; border: 1.5px solid var(--linha-2); background: var(--sup); padding: 0 12px; font: inherit; width: 100%; }
.com-capelo { position: relative; display: inline-block; flex: none; }
.com-capelo .capelo { position: absolute; left: 10%; top: -34%; width: 80%; transform: rotate(-8deg); pointer-events: none; filter: drop-shadow(0 2px 3px rgba(8, 18, 90, .3)); }
.com-capelo.pequeno .capelo { top: -36%; }
.com-capelo.grande .capelo { top: -28%; }
.podio-c { text-decoration: none; color: inherit; padding-top: 26px; }
.podio-c:hover { transform: translateY(-2px); }
a.rank-lin { text-decoration: none; color: inherit; }
a.rank-lin:hover { background: var(--azul-suave); }
.rank-av { margin-top: 8px; }
.rank-av .com-capelo .av { width: 42px; height: 42px; }

/* Perfil público */
.pessoa-cab { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; padding-top: 22px; margin-bottom: 20px; }
.pessoa-cab > div { flex: 1; min-width: 200px; }
.pessoa-cab h1 { font-size: clamp(1.8rem, 3vw, 2.4rem); font-weight: 800; letter-spacing: -.035em; }
.pessoa-cab p { color: var(--tinta-2); margin: 2px 0 8px; }
.pessoa-cab .btn svg { width: 18px; height: 18px; }
.pessoa-nums { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.pessoa-nums div { background: var(--sup); border: 1px solid var(--linha); border-radius: 18px; padding: 14px 16px; display: flex; flex-direction: column; }
.pessoa-nums b { font-size: 1.5rem; font-weight: 800; }
.pessoa-nums span { color: var(--tinta-2); font-size: .84rem; }
.ver-publico { display: flex; align-items: center; gap: 12px; text-decoration: none; color: inherit; }
.ver-publico > svg { width: 22px; height: 22px; color: var(--bic); }
.ver-publico strong { display: block; } .ver-publico small { color: var(--tinta-2); }

/* Mensagens */
.pag-msg { padding-bottom: 0; }
.msgs { display: grid; grid-template-columns: 320px minmax(0, 1fr); height: calc(100vh - var(--topo-h) - 150px); min-height: 460px; background: var(--sup); border: 1px solid var(--linha); border-radius: 24px; overflow: hidden; }
.conv-lista { border-right: 1px solid var(--linha); overflow-y: auto; padding: 8px; }
.conv-i { display: flex; align-items: center; gap: 12px; padding: 10px; border-radius: 14px; text-decoration: none; color: var(--tinta); }
.conv-i:hover { background: var(--sup-2); }
.conv-i.on { background: var(--azul-suave); }
.conv-i .av { width: 42px; height: 42px; }
.conv-i span { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.conv-i strong { font-size: .94rem; }
.conv-i small { color: var(--tinta-2); font-size: .82rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.conv-i em { font-style: normal; min-width: 22px; height: 22px; border-radius: 99px; background: var(--bic); color: var(--sobre-bic); font-size: .78rem; font-weight: 800; display: grid; place-items: center; padding: 0 6px; }
.conv-vazio { padding: 16px; }
.conv-fio { display: flex; flex-direction: column; min-width: 0; min-height: 0; }
.fio-cab { display: flex; align-items: center; gap: 8px; padding: 12px 16px; border-bottom: 1px solid var(--linha); }
.fio-quem { display: flex; align-items: center; gap: 10px; text-decoration: none; color: inherit; }
.fio-quem .av { width: 40px; height: 40px; }
.fio-quem strong { display: block; } .fio-quem small { color: var(--tinta-2); font-size: .82rem; }
.fio { flex: 1; overflow-y: auto; padding: 18px; display: flex; flex-direction: column; gap: 10px; background: var(--mesa); }
.msg { max-width: 72%; align-self: flex-start; background: var(--sup); border: 1px solid var(--linha); border-radius: 18px 18px 18px 6px; padding: 10px 14px; }
.msg.minha { align-self: flex-end; background: var(--marca); color: #fff; border-color: var(--marca); border-radius: 18px 18px 6px 18px; }
.msg p { margin: 0; line-height: 1.45; word-wrap: break-word; }
.msg small { display: block; margin-top: 4px; font-size: .76rem; opacity: .7; }
.fio-vazio { margin: auto; text-align: center; max-width: 36ch; }
.compor-msg { display: flex; gap: 10px; align-items: flex-end; padding: 12px; border-top: 1px solid var(--linha); background: var(--sup); }
.compor-msg textarea { flex: 1; resize: none; min-height: 46px; max-height: 160px; border: 1.5px solid var(--linha-2); border-radius: 16px; padding: 12px 14px; font: inherit; background: var(--sup-2); outline: none; }
.compor-msg textarea:focus { border-color: var(--bic); background: var(--sup); }
.compor-msg .btn { height: 46px; }
.compor-msg .btn svg { width: 18px; height: 18px; }
.fio-nada { margin: auto; display: flex; flex-direction: column; align-items: center; gap: 8px; color: var(--tinta-3); }
.fio-nada svg { width: 36px; height: 36px; }

/* Convidar colegas */
.convidar-g { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.convite-cx { display: flex; flex-direction: column; gap: 14px; }
.convite-cx .caixa-link input { flex: 1; min-width: 0; border: 0; background: none; font: inherit; outline: none; }
.cx-tit { font-size: 1.05rem; margin-bottom: 12px; }

/* Administração: extras */
.mini-mod { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 14px; }
.mini-mod div { background: var(--sup-2); border-radius: 14px; padding: 12px; display: flex; flex-direction: column; }
.mini-mod b { font-size: 1.6rem; font-weight: 800; }
.mini-mod span { font-size: .82rem; color: var(--tinta-2); }
.arvore details { border-bottom: 1px solid var(--linha); padding: 10px 0; }
.arvore summary { display: flex; align-items: baseline; gap: 10px; cursor: pointer; list-style: none; }
.arvore summary::-webkit-details-marker { display: none; }
.arvore summary span { flex: 1; color: var(--tinta-2); font-size: .9rem; }
.arvore summary em { font-style: normal; font-size: .82rem; color: var(--tinta-3); }
.arv-info { font-size: .82rem; color: var(--tinta-3); margin: 6px 0; }
.arv-fac { margin: 8px 0 0 10px; }
.arv-fac b { font-size: .88rem; }
.arv-cur { margin: 4px 0 0 12px; font-size: .86rem; }
.arv-cur small { display: block; color: var(--tinta-3); font-size: .82rem; }
.tax-form { display: flex; flex-direction: column; gap: 8px; padding: 14px 0; border-bottom: 1px solid var(--linha); }
.tax-form:last-child { border-bottom: 0; }
.tax-l { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 8px; }
.tax-l input, .tax-l select { height: 42px; border: 1.5px solid var(--linha-2); border-radius: 12px; padding: 0 12px; font: inherit; background: var(--sup); min-width: 0; }
.tax-form .btn { align-self: flex-start; }
.adm-def { display: flex; flex-direction: column; gap: 16px; }
.def-g { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; margin: 6px 0 12px; }
.def-g input, .def-g select { height: 44px; }
.teste-email { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 12px; }
.teste-email input { flex: 1; min-width: 220px; height: 44px; border: 1.5px solid var(--linha-2); border-radius: 12px; padding: 0 12px; font: inherit; }
.teste-email .btn svg { width: 18px; height: 18px; }

@media (max-width: 900px) {
  .ed-boneco { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr); }
  .ed-lado { padding: 16px 16px 12px; gap: 12px; border-right: 0; border-bottom: 1px solid var(--linha); display: grid; grid-template-columns: 104px minmax(0, 1fr); grid-template-areas: "t t" "p m" "b b"; align-items: center; overflow: visible; }
  .ed-lado h2 { grid-area: t; font-size: 1.25rem; padding-right: 48px; }
  .ed-previa { grid-area: p; width: 104px; height: 104px; margin: 0; }
  .ed-modo { grid-area: m; }
  .ed-botoes { grid-area: b; flex-direction: row; }
  .ed-botoes .btn { flex: 1; height: 44px; padding: 0 10px; font-size: .9rem; }
  .ed-espaco, .ed-cred { display: none; }
  .ed-main { padding: 16px 14px 30px; }
  .ed-fechar { position: fixed; top: 12px; right: 12px; }
  .ed-corpo { padding-right: 0; }
  .ed-cats { flex-wrap: nowrap; overflow-x: auto; margin: 0 -14px 16px; padding: 2px 14px 6px; scrollbar-width: none; }
  .ed-cats .chip { flex: none; }
  .ed-grelha { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
  .ed-ops { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
  .ed-cor { width: 52px; height: 52px; }
  .convidar-g { grid-template-columns: minmax(0, 1fr); }
  .pessoa-nums { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .mural-filtros { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .msgs { grid-template-columns: minmax(0, 1fr); height: calc(100vh - var(--topo-h) - 96px); border-radius: 18px; }
  .msgs.com-fio .conv-lista { display: none; }
  .msgs:not(.com-fio) .conv-fio { display: none; }
  .msg { max-width: 86%; }
  .def-g, .tax-l { grid-template-columns: minmax(0, 1fr); }
}

/* =========================================================
   v9: Poppins nos títulos, menu da conta, notificações separadas, partilhar novo, mural, boneco em página
   ========================================================= */
:root { --f-tit: 'Poppins', system-ui, sans-serif; }
h1, h2, .sec-tit, .marca span, .capa-frase, .car-s h2, .folha-auth h1, .cart-intro h1, .cab-pag h1, .doc-cab h1, .pessoa-cab h1, .perfil-cab h1, .hero h1 { font-family: var(--f-tit); font-stretch: normal; letter-spacing: -.025em; }
.marca span { font-weight: 700; letter-spacing: -.02em; }

/* Notificações bem separadas */
.np-lista { display: flex; flex-direction: column; gap: 8px; padding: 10px; }
.np-i { padding: 12px; border: 1px solid var(--linha); background: var(--sup); border-radius: 16px; align-items: flex-start; }
.np-i.nova { background: var(--azul-suave); border-color: transparent; }
.np-i.nova::after { top: 18px; }

/* Menu da conta */
.conta-w { position: relative; }
.conta-w .av-link { border: 0; background: none; padding: 0; cursor: pointer; border-radius: 50%; }
.conta-w .av-link:focus-visible { outline: 3px solid var(--azul-claro); }
.menu-conta { position: absolute; z-index: 75; top: calc(100% + 10px); right: 0; width: 290px; background: var(--sup); border: 1px solid var(--linha); border-radius: 20px; box-shadow: var(--sombra-pop); padding: 8px; display: flex; flex-direction: column; animation: sobe .14s ease-out; }
.mc-cab { display: flex; align-items: center; gap: 12px; padding: 10px 10px 14px; border-bottom: 1px solid var(--linha); margin-bottom: 6px; }
.mc-cab .av-mc { width: 44px; height: 44px; }
.mc-cab span { display: flex; flex-direction: column; min-width: 0; }
.mc-cab strong { font-size: .95rem; }
.mc-cab small { color: var(--tinta-2); font-size: .8rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.menu-conta a, .menu-conta button { display: flex; align-items: center; gap: 12px; width: 100%; padding: 11px 10px; border: 0; background: none; border-radius: 12px; text-decoration: none; color: var(--tinta); font: inherit; font-size: .92rem; font-weight: 600; text-align: left; cursor: pointer; }
.menu-conta a:hover, .menu-conta button:hover { background: var(--sup-2); }
.menu-conta svg { width: 19px; height: 19px; color: var(--tinta-2); flex: none; }
.menu-conta b { margin-left: auto; font-variant-numeric: tabular-nums; color: var(--bic); }
.menu-conta em { margin-left: auto; font-style: normal; min-width: 20px; height: 20px; border-radius: 99px; background: var(--bic); color: var(--sobre-bic); font-size: .76rem; display: grid; place-items: center; }
.menu-conta .mc-sair { border-top: 1px solid var(--linha); border-radius: 0 0 12px 12px; margin-top: 6px; padding-top: 13px; }

/* Pílulas e separadores que deslizam no telemóvel */
.chips.scroll-x { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; padding-bottom: 2px; }
.chips.scroll-x::-webkit-scrollbar { display: none; }
.chips.scroll-x .chip { flex: none; }

/* Partilhar */
.form-partilhar { display: flex; flex-direction: column; gap: 18px; }
.form-sec h2 { display: flex; align-items: center; gap: 10px; }
.n-passo { width: 28px; height: 28px; border-radius: 50%; background: var(--azul-claro); color: var(--bic); display: grid; place-items: center; font-size: .86rem; font-weight: 800; flex: none; }
.escolhas { display: flex; flex-direction: column; gap: 10px; }
.escolha { display: flex; align-items: center; gap: 14px; width: 100%; padding: 12px 14px; border-radius: 16px; border: 1.5px solid var(--linha-2); background: var(--sup); text-align: left; font: inherit; color: var(--tinta); cursor: pointer; transition: border-color .15s, background .15s; }
.escolha:hover { border-color: var(--bic); background: var(--azul-suave); }
.esc-ic { width: 44px; height: 44px; border-radius: 14px; background: var(--azul-claro); color: var(--bic); display: grid; place-items: center; flex: none; }
.esc-ic svg { width: 22px; height: 22px; }
.esc-t { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.esc-t small { font-size: .82rem; font-weight: 700; color: var(--tinta-3); }
.esc-t strong { font-size: .98rem; line-height: 1.3; color: var(--tinta-3); font-weight: 600; }
.escolha.set .esc-t strong { color: var(--tinta); }
.escolha > svg { width: 20px; height: 20px; color: var(--tinta-3); flex: none; }
.cat-grupos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.cat-g { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; padding: 16px; border-radius: 18px; border: 1.5px solid var(--linha-2); background: var(--sup); text-align: left; font: inherit; color: var(--tinta); cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.cat-g:hover { border-color: var(--bic); }
.cat-g.on { border-color: var(--bic); background: var(--azul-suave); box-shadow: 0 0 0 3px var(--azul-claro); }
.cat-ic { width: 40px; height: 40px; border-radius: 12px; background: var(--azul-claro); color: var(--bic); display: grid; place-items: center; }
.cat-g.on .cat-ic { background: var(--bic); color: var(--sobre-bic); }
.cat-ic svg { width: 20px; height: 20px; }
.cat-g strong { font-size: .98rem; }
.cat-g small { font-size: .8rem; color: var(--tinta-2); line-height: 1.3; }
.tipos-g { margin-top: 4px; }
.anos-l .chip { font-variant-numeric: tabular-nums; }
.aviso-revisao { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; margin-bottom: 16px; border-radius: 16px; background: var(--azul-suave); border: 1px solid var(--azul-claro); }
.aviso-revisao svg { width: 22px; height: 22px; color: var(--bic); flex: none; margin-top: 2px; }
.aviso-revisao p { margin: 0; color: var(--tinta-2); }
.aviso-revisao strong { display: block; color: var(--tinta); }
a.envio { text-decoration: none; color: inherit; border-radius: 14px; }
a.envio:hover { background: var(--sup-2); }
.envio-ver { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; font-size: .84rem; color: var(--bic); }
.envio-ver svg { width: 17px; height: 17px; }
.def-senha { margin-top: 16px; }
.def-senha h3 { font-size: 1.05rem; margin-bottom: 4px; }

/* Lista em ecrã inteiro com ícones */
.lp-op { gap: 12px; justify-content: flex-start; }
.lp-ic { width: 34px; height: 34px; border-radius: 10px; background: var(--azul-claro); color: var(--bic); display: grid; place-items: center; flex: none; }
.lp-ic svg { width: 17px; height: 17px; }
.lp-tx { flex: 1; min-width: 0; }
.lp-op > svg:last-child { margin-left: auto; }

/* Mural: pesquisa e filtros */
.mural-procura { display: flex; flex-direction: column; gap: 12px; margin-bottom: 20px; }
.mural-fil { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.mural-fil .chips { flex: 1; min-width: 0; }
.pick-curso { display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 12px 0 14px; border-radius: 999px; border: 1.5px solid var(--linha-2); background: var(--sup); font: inherit; font-weight: 650; font-size: .9rem; color: var(--tinta); cursor: pointer; max-width: 100%; }
.pick-curso > svg { width: 17px; height: 17px; color: var(--tinta-3); flex: none; }
.pick-curso span:not(.pc-x) { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pick-curso.set { background: var(--azul-claro); border-color: var(--bic); color: var(--bic); }
.pc-x { width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; background: var(--sup); }
.pc-x svg { width: 13px; height: 13px; }

/* Convites */
.cod-grande { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; padding: 18px; border-radius: 18px; background: var(--azul-suave); }
.cod-grande small { font-size: .8rem; font-weight: 700; color: var(--tinta-2); }
.cod-grande strong { font-size: 2rem; font-weight: 800; letter-spacing: .16em; font-variant-numeric: tabular-nums; font-family: var(--f-tit); }
.link-conv { display: flex; align-items: center; gap: 10px; padding: 10px 10px 10px 14px; border-radius: 14px; border: 1.5px dashed var(--linha-2); }
.link-conv span { flex: 1; min-width: 0; font-size: .88rem; color: var(--tinta-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.partilhar-conv { display: flex; gap: 10px; flex-wrap: wrap; }
.partilhar-conv .btn { flex: 1; min-width: 150px; }

/* Registo: código de 6 algarismos */
.codigo-6 { height: 62px !important; font-size: 1.9rem !important; font-weight: 800; text-align: center; letter-spacing: .5em; font-variant-numeric: tabular-nums; border-radius: 16px !important; padding-left: .5em !important; }
.linha-cod { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.linha-cod .link { font-size: .88rem; }
.linha-cod .link:disabled { color: var(--tinta-3); text-decoration: none; cursor: default; }

/* Boneco numa página */
.pag-boneco .voltar-link { display: inline-flex; align-items: center; gap: 6px; text-decoration: none; color: var(--tinta-2); font-weight: 600; margin: 4px 0 14px; }
.pag-boneco .voltar-link svg { width: 18px; height: 18px; }
.ed-pagina { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 24px; align-items: start; }
.ed-pagina .ed-lado { position: sticky; top: calc(var(--topo-h) + 20px); display: flex; flex-direction: column; gap: 16px; padding: 22px; background: var(--sup); border: 1px solid var(--linha); border-radius: 24px; }
.ed-pagina .ed-lado h1 { font-size: 1.5rem; }
.ed-pagina .ed-previa { width: 220px; height: 220px; margin: 0 auto; }
.ed-pagina .ed-previa .av { width: 100%; height: 100%; }
.ed-pagina .ed-modo { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
.ed-pagina .ed-modo button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 44px; }
.ed-pagina .ed-modo button svg { width: 18px; height: 18px; }
.ed-pagina .ed-botoes { display: flex; flex-direction: column; gap: 10px; }
.ed-pagina .ed-botoes .btn svg { width: 18px; height: 18px; }
.ed-pagina .ed-main { padding: 0; overflow: visible; }
.ed-pagina .ed-cats { margin-bottom: 18px; }
.ed-pagina .ed-cats .chip.ativo { background: var(--bic); color: var(--sobre-bic); border-color: var(--bic); }
.ed-pagina .ed-grelha { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100px, 100%), 1fr)); gap: 12px; }
.ed-pagina .ed-ops { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(88px, 100%), 1fr)); gap: 10px; }

/* Pesquisa em ecrã inteiro: o botão "Ver materiais" fica sempre em baixo */
.busca-ecra { height: 100vh; height: 100dvh; }
.busca-ecra .sug-ecra[hidden] { display: block !important; }
.be-pe { margin-top: auto; }

@media (max-width: 900px) {
  .cat-grupos { grid-template-columns: minmax(0, 1fr); }
  .cat-g { flex-direction: row; align-items: center; gap: 12px; padding: 12px 14px; }
  .cat-g small { display: none; }
  .ed-pagina { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .ed-pagina .ed-lado { position: static; display: grid; grid-template-columns: 104px minmax(0, 1fr); grid-template-areas: "t t" "p m" "b b"; align-items: center; gap: 12px; padding: 16px; }
  .ed-pagina .ed-lado h1 { grid-area: t; font-size: 1.2rem; }
  .ed-pagina .ed-previa { grid-area: p; width: 104px; height: 104px; margin: 0; }
  .ed-pagina .ed-modo { grid-area: m; }
  .ed-pagina .ed-botoes { grid-area: b; flex-direction: row; }
  .ed-pagina .ed-botoes .btn { flex: 1; height: 46px; padding: 0 10px; }
  .ed-pagina .ed-grelha { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
  .ed-pagina .ed-ops { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
  .ed-pagina .ed-cor { width: 50px; height: 50px; }
}
@media (max-width: 760px) {
  .abas { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-left: -16px; margin-right: -16px; padding: 0 16px; }
  .abas::-webkit-scrollbar { display: none; }
  .abas .aba { flex: none; white-space: nowrap; }
  .chips.scroll-x { margin-left: -16px; margin-right: -16px; padding-left: 16px; padding-right: 16px; }
  .menu-conta { position: fixed; top: calc(var(--topo-h) + 6px); right: 10px; left: 10px; width: auto; }
  .mural-fil { flex-direction: column; align-items: stretch; }
  .pick-curso { justify-content: flex-start; }
  .cod-grande strong { font-size: 1.7rem; }
  .link-conv { flex-wrap: wrap; }
}

/* Blocos vazios: botões separados, também no telemóvel */
.vazio { display: flex; flex-direction: column; align-items: center; }
.vazio > .btn, .vazio > a.btn, .vazio > button { margin: 6px 5px 0; }
.vazio h3 + p { margin-bottom: 12px; }
@media (max-width: 760px) { .vazio > .btn, .vazio > a.btn, .vazio > button { width: 100%; max-width: 320px; margin: 6px 0 0; } }

/* =========================================================
   v10: leitor de PDF melhor, primeira página cortada e desfocada, mensagens com anexos, patentes
   ========================================================= */
/* Leitor: as páginas nunca encolhem (corrige o corte no ecrã inteiro) */
.leitor > * { flex-shrink: 0; }
.leitor { background: #E7EAF2; gap: 18px; padding: clamp(14px, 2.6vw, 28px); }
[data-theme="dark"] .leitor { background: #1B2033; }
.leitor .pagina { width: 100%; max-width: calc(760px * var(--zoom, 1)); box-shadow: 0 1px 2px rgba(16, 22, 51, .08), 0 12px 32px -14px rgba(16, 22, 51, .35); border-radius: 4px; }
.pg-pdf { background: #fff; }
.pg-pdf canvas { opacity: 0; transition: opacity .25s; }
.pg-pdf.pronta canvas { opacity: 1; }
.pg-pdf .pg-num { position: absolute; right: 10px; bottom: 8px; font-size: .76rem; color: #7C84A3; background: rgba(255, 255, 255, .9); padding: 2px 8px; border-radius: 99px; }
.leitor-w { border-radius: 24px; overflow: hidden; border: 1px solid var(--linha); background: var(--sup); }
.leitor-barra { position: sticky; top: var(--topo-h); z-index: 3; background: var(--sup); }
.lc-corpo { overflow-y: auto; align-items: center; }
.leitor-cheio .leitor { min-height: 0; }
.lc-img-corpo { display: grid; place-items: center; padding: 20px; background: #0E1222; }
.lc-img-corpo img { max-width: 100%; max-height: calc(100vh - 110px); object-fit: contain; border-radius: 8px; }

/* Pré-visualização: só parte da 1.ª página, com desfoque progressivo */
.pagina.pg-corte { position: relative; aspect-ratio: 1 / .9; overflow: hidden; padding: 0; }
.pagina.pg-corte:not(.pg-img) { padding: 28px 30px 0; }
.pagina.pg-corte > img { display: block; width: 100%; height: auto; }
.pg-corte .vel { position: absolute; left: 0; right: 0; bottom: 0; pointer-events: none; }
.pg-corte .v1 { height: 62%; -webkit-backdrop-filter: blur(1.5px); backdrop-filter: blur(1.5px); -webkit-mask-image: linear-gradient(to bottom, transparent, #000 45%); mask-image: linear-gradient(to bottom, transparent, #000 45%); }
.pg-corte .v2 { height: 42%; -webkit-backdrop-filter: blur(5px); backdrop-filter: blur(5px); -webkit-mask-image: linear-gradient(to bottom, transparent, #000 50%); mask-image: linear-gradient(to bottom, transparent, #000 50%); }
.pg-corte .v3 { height: 30%; background: linear-gradient(to bottom, rgba(255, 255, 255, 0), #fff 92%); }
.pagina.pg-desfocada { position: relative; overflow: hidden; aspect-ratio: 1 / 1.414; }
.pagina.pg-desfocada > img { display: block; width: 100%; height: 100%; object-fit: cover; filter: blur(14px) saturate(.6); transform: scale(1.12); opacity: .75; }
.pagina.pg-desfocada .pg-linhas { filter: blur(6px); }
.pagina.pg-so-cadeado { aspect-ratio: 1 / .7; background: linear-gradient(#fff, #F1F3F9); }
.pagina.bloq .cadeado { position: absolute; inset: 0; display: grid; place-items: center; padding: 20px; background: rgba(255, 255, 255, .35); }
.pagina.bloq .cadeado > div { max-width: 340px; width: 100%; background: var(--sup); border-radius: 22px; padding: 22px; text-align: center; box-shadow: 0 24px 60px -24px rgba(16, 22, 51, .45); display: flex; flex-direction: column; align-items: center; gap: 8px; }
.pagina.bloq .cadeado svg { width: 28px; height: 28px; color: var(--bic); }
.pagina.bloq .cadeado p { color: var(--tinta-2); margin: 0 0 6px; }

/* Avisos e menu */
.aviso-sug { display: flex; align-items: center; gap: 14px; padding: 16px 18px; border-radius: 18px; background: var(--azul-suave); margin: 4px 0 6px; }
.aviso-sug > svg { width: 26px; height: 26px; color: var(--bic); flex: none; }
.aviso-sug p { margin: 0; flex: 1; color: var(--tinta-2); }
.aviso-sug strong { display: block; color: var(--tinta); }
.lat-conv-link { margin-top: 6px; }
.convidado-por { display: flex; align-items: center; gap: 10px; margin: 8px 0 0; padding: 10px 12px; border-radius: 14px; background: var(--azul-suave); font-size: .9rem; }
.convidado-por .av { width: 32px; height: 32px; }
.ajuda-erro { color: var(--erro, #C62839); }
.adm-estados { margin: -4px 0 14px; }
.sub-bloco { color: var(--tinta-2); margin: 4px 0 0; font-size: .92rem; }
.tab-pat td em { color: var(--tinta-3); font-style: normal; }
.tab-pat tr.atual td { background: var(--azul-suave); }
.tab-pat td:last-child { min-width: 260px; color: var(--tinta-2); }

/* Mensagens: vazio com o logótipo em cinza */
.msg-vazio, .fio-nada { margin: auto; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 8px; padding: 30px 20px; color: var(--tinta-3); min-height: 100%; }
.msg-vazio strong { color: var(--tinta-2); font-size: 1rem; }
.msg-vazio p { max-width: 30ch; margin: 0 0 6px; font-size: .9rem; }
.logo-cinza { width: 64px; height: 64px; opacity: .22; filter: grayscale(1); }
.conv-lista .msg-vazio { min-height: 360px; }
.conv-dir { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; flex: none !important; }
.conv-dir time { font-size: .76rem; color: var(--tinta-3); }
.msg-dia { text-align: center; margin: 6px 0; }
.msg-dia span { font-size: .78rem; font-weight: 700; color: var(--tinta-2); background: var(--sup); border-radius: 99px; padding: 4px 10px; box-shadow: 0 1px 2px rgba(16, 22, 51, .08); }
.msg { position: relative; }
.msg.so-anexo { padding: 4px; }
.msg-img { display: block; border: 0; padding: 0; background: none; cursor: zoom-in; border-radius: 14px; overflow: hidden; margin-bottom: 4px; }
.msg-img img { display: block; max-width: min(260px, 60vw); max-height: 300px; object-fit: cover; }
.msg-pdf { display: flex; align-items: center; gap: 10px; width: 100%; min-width: 220px; border: 0; background: rgba(255, 255, 255, .16); border-radius: 12px; padding: 10px; text-align: left; font: inherit; color: inherit; cursor: pointer; margin-bottom: 4px; }
.msg:not(.minha) .msg-pdf { background: var(--sup-2); }
.mp-ic { width: 40px; height: 46px; border-radius: 8px; background: #fff; color: var(--bic); font-weight: 800; font-size: .76rem; display: grid; place-items: center; box-shadow: 0 1px 3px rgba(0, 0, 0, .12); flex: none; }
.mp-t { min-width: 0; display: flex; flex-direction: column; }
.mp-t strong { font-size: .88rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 220px; }
.mp-t small { font-size: .78rem; opacity: .8; }
.compor-msg { align-items: flex-end; gap: 8px; }
.compor-msg .anexar { width: 46px; height: 46px; cursor: pointer; flex: none; border-radius: 50%; color: var(--tinta-2); }
.compor-msg .anexar:hover { background: var(--sup-2); }
.compor-msg .anexar svg { width: 22px; height: 22px; }
.msg-campo { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.msg-campo textarea { width: 100%; resize: none; min-height: 46px; max-height: 160px; overflow-y: hidden; border: 1.5px solid var(--linha-2); border-radius: 22px; padding: 12px 16px; font: inherit; line-height: 1.4; background: var(--sup-2); outline: none; scrollbar-width: thin; }
.msg-campo textarea:focus { border-color: var(--bic); background: var(--sup); }
.anexo-chip { display: flex; align-items: center; gap: 8px; padding: 6px 6px 6px 10px; border-radius: 14px; background: var(--azul-suave); font-size: .84rem; }
.anexo-chip > svg { width: 18px; height: 18px; color: var(--bic); }
.anexo-chip b { font-size: .74rem; color: var(--bic); }
.anexo-chip span { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: 600; }
.anexo-chip small { color: var(--tinta-3); }
.anexo-chip .ib { width: 30px; height: 30px; }
.enviar-msg { width: 46px; height: 46px; padding: 0; border-radius: 50%; flex: none; }
.enviar-msg svg { width: 20px; height: 20px; margin: 0; }
.fio-cab .ib { display: none; }

/* Telemóvel: campos com 16px para o ecrã não fazer zoom; mensagens como no WhatsApp */
@media (max-width: 760px) {
  input, select, textarea, .exp-busca input { font-size: 16px !important; }
  .codigo-6 { font-size: 1.7rem !important; }
  body.rota-msg .abas-m, body.rota-msg .rodape, body.rota-msg footer { display: none !important; }
  body.rota-msg main, body.rota-msg #app { padding-bottom: 0 !important; }
  body.rota-msg .cab-msg { display: none; }
  body.rota-msg .pag-msg { padding: 0 !important; max-width: none; }
  body.rota-msg .msgs { height: calc(100dvh - var(--topo-h)); min-height: 0; border-radius: 0; border: 0; }
  body.rota-fio .topo { display: none; }
  body.rota-fio .msgs { height: 100dvh; }
  body.rota-msg .conv-lista { padding: 6px 0; }
  body.rota-msg .conv-i { border-radius: 0; padding: 12px 16px; border-bottom: 1px solid var(--linha); }
  .fio-cab { position: sticky; top: 0; z-index: 2; background: var(--marca); color: #fff; padding: 10px 10px calc(10px) 6px; padding-top: max(10px, env(safe-area-inset-top)); border: 0; }
  .fio-cab .ib { display: grid; color: #fff; }
  .fio-quem strong { color: #fff; } .fio-quem small { color: rgba(255, 255, 255, .8); }
  .fio { background: #ECE9F7; background-image: radial-gradient(rgba(30, 64, 230, .06) 1px, transparent 1px); background-size: 18px 18px; padding: 12px 10px; }
  [data-theme="dark"] .fio { background-color: #121628; }
  .msg { max-width: 82%; border-radius: 16px 16px 16px 4px; box-shadow: 0 1px 1px rgba(16, 22, 51, .1); border: 0; }
  .msg.minha { border-radius: 16px 16px 4px 16px; }
  .compor-msg { position: sticky; bottom: 0; padding: 8px 8px max(8px, env(safe-area-inset-bottom)); background: #ECE9F7; border-top: 0; }
  [data-theme="dark"] .compor-msg { background: #121628; }
  .msg-campo textarea { background: #fff; border-color: transparent; }
  .msgs.com-fio .conv-fio { height: 100%; }
}
/* A barra do leitor fica presa ao topo sem deixar espaço em branco por cima */
.leitor-w { overflow: visible; }
.leitor-w .leitor-barra { border-radius: 24px 24px 0 0; }
.leitor-w .leitor { border-radius: 0 0 24px 24px; }

/* =========================================================
   v11: mural claro, ícones, gestão de universidades, avatar, carrossel
   ========================================================= */
/* Pódio do mural em tons claros (o capelo escuro vê-se bem) */
.podio-c.primeiro { background: linear-gradient(160deg, #FFFFFF, var(--azul-suave)); color: var(--tinta); border: 2px solid var(--bic); box-shadow: 0 18px 40px -26px rgba(30, 64, 230, .55); }
.podio-c.primeiro small, .podio-c.primeiro .nums small { color: var(--tinta-2); }
.podio-c.primeiro .pos { color: var(--bic); }
.podio-c.primeiro .nums { border-top-color: var(--linha); }
.podio-c.primeiro .pt-tag { color: var(--tinta); }
.podio-c .com-capelo .capelo { filter: drop-shadow(0 2px 4px rgba(16, 22, 51, .35)); }

/* Perfil público: estatísticas com ícones */
.pessoa-nums div { position: relative; padding-left: 58px; min-height: 64px; justify-content: center; }
.pessoa-nums div > i { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); width: 32px; height: 32px; border-radius: 10px; background: var(--azul-claro); color: var(--bic); display: grid; place-items: center; font-size: .95rem; }
.pessoa-cab .btn i { margin-right: 2px; }
a.autor-doc { text-decoration: none; color: inherit; transition: border-color .15s, background .15s; }
a.autor-doc:hover { border-color: var(--bic); background: var(--azul-suave); }
.autor-seta { margin-left: 6px; color: var(--tinta-3); font-size: .85rem; }

/* Avatar: categorias em várias linhas no computador */
@media (min-width: 901px) { .ed-pagina .ed-cats.chips.scroll-x { flex-wrap: wrap; overflow: visible; } }
.ed-pagina .voltar-link { border: 0; background: none; cursor: pointer; font: inherit; }

/* Carrossel da conta: os textos não se sobrepõem */
.car-s { transition: opacity .2s ease, transform .2s ease, visibility 0s linear .2s; visibility: hidden; }
.car-s.on { visibility: visible; transition: opacity .45s ease .2s, transform .45s ease .2s, visibility 0s; }
@media (max-width: 900px) {
  .grad-mini .grad-av, .grad-mini .grad-av.g1, .grad-mini .grad-av.g2, .grad-mini .grad-av.g3 { width: 74px; height: 74px; margin-right: -12px; }
  .grad-mini .grad-av.g2 { width: 88px; height: 88px; }
  .grad-mini { padding-top: 34px; }
}

/* Aviso de email por configurar */
.aviso-smtp { display: flex; align-items: center; gap: 14px; padding: 14px 18px; margin: 0 0 16px; border-radius: 18px; background: #FFF4E5; border: 1px solid #F7C77E; color: #6B4A12; }
.aviso-smtp > i { font-size: 1.3rem; color: #C77700; }
.aviso-smtp p { margin: 0; flex: 1; }
.aviso-smtp strong { display: block; color: #4A3209; }

/* Gestão de universidades */
.tax-g { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 16px; align-items: start; }
.tax-lista { display: flex; flex-direction: column; gap: 12px; position: sticky; top: calc(var(--topo-h) + 16px); max-height: calc(100vh - var(--topo-h) - 40px); }
.tax-lista-cab { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.tax-itens { overflow-y: auto; display: flex; flex-direction: column; gap: 4px; margin: 0 -8px; padding: 0 8px; }
.tax-i { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 10px; row-gap: 2px; text-align: left; padding: 10px 12px; border-radius: 14px; border: 1px solid transparent; background: none; font: inherit; color: var(--tinta); cursor: pointer; }
.tax-i:hover { background: var(--sup-2); }
.tax-i.on { background: var(--azul-suave); border-color: var(--azul-claro); }
.tax-i b { grid-row: span 2; align-self: center; min-width: 54px; font-size: .82rem; font-weight: 800; color: var(--bic); background: var(--azul-claro); border-radius: 8px; padding: 4px 6px; text-align: center; }
.tax-i span { font-size: .88rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tax-i small { font-size: .8rem; color: var(--tinta-3); }
.tax-det { min-height: 420px; }
.tax-cab { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding-bottom: 14px; border-bottom: 1px solid var(--linha); margin-bottom: 14px; }
.tax-sigla { display: inline-block; font-size: .82rem; font-weight: 800; color: var(--bic); background: var(--azul-claro); border-radius: 8px; padding: 3px 8px; margin-bottom: 6px; }
.tax-cab h3 { font-size: 1.25rem; font-family: var(--f-tit); }
.tax-acoes { display: flex; gap: 4px; flex-wrap: wrap; }
.tax-acoes .btn { padding: 0 10px; }
.tax-acoes .btn i { font-size: .82rem; }
.tax-linha-btn { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 16px; }
.tax-linha-btn .btn i, .tax-lista-cab .btn i { margin-right: 2px; }
.tax-fac { border: 1px solid var(--linha); border-radius: 18px; padding: 12px 14px; margin-bottom: 12px; }
.tax-fac header { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.tax-fac h4 { font-size: .98rem; display: flex; align-items: center; gap: 8px; }
.tax-fac h4 i { color: var(--bic); }
.tax-curso { padding: 10px 0; border-top: 1px dashed var(--linha); }
.tax-curso-cab { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.tax-curso-cab strong { display: flex; align-items: center; gap: 8px; font-size: .94rem; }
.tax-curso-cab strong i { color: var(--tinta-3); font-size: .85rem; }
.tax-curso-cab .tax-acoes { margin-left: auto; }
.tax-cads { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.tax-cad { display: inline-flex; align-items: center; gap: 6px; padding: 5px 6px 5px 12px; border-radius: 999px; background: var(--sup-2); font-size: .84rem; font-weight: 600; }
.tax-cad button { width: 22px; height: 22px; border-radius: 50%; border: 0; background: none; color: var(--tinta-3); cursor: pointer; }
.tax-cad button:hover { background: var(--sup); color: var(--tinta); }
.tax-cad-mais { border: 1.5px dashed var(--linha-2); background: none; color: var(--bic); cursor: pointer; padding: 5px 12px; font: inherit; font-weight: 700; font-size: .84rem; }
.tax-cad-mais i { margin-right: 4px; }
.fio-nada i { font-size: 2.2rem; opacity: .25; }
@media (max-width: 900px) { .tax-g { grid-template-columns: minmax(0, 1fr); } .tax-lista { position: static; max-height: 380px; } }

/* =========================================================
   v12: sem sombra no mural, partilhar com categoria e título, visitantes
   ========================================================= */
.podio-c, .podio-c.primeiro { box-shadow: none !important; }
/* Sem conta: nada de barra de baixo no telemóvel */
@media (max-width: 900px) { body.visitante .abas-m { display: none !important; } body.visitante main, body.visitante #app { padding-bottom: 0 !important; } }
/* Que material é */
.tipo-g { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.tipo-cat { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding: 16px; border-radius: 18px; border: 1.5px solid var(--linha-2); background: var(--sup); text-align: left; font: inherit; color: var(--tinta); cursor: pointer; transition: border-color .15s, background .15s; }
.tipo-cat:hover { border-color: var(--bic); }
.tipo-cat.on { border-color: var(--bic); background: var(--azul-suave); }
.tc-ic { width: 44px; height: 44px; border-radius: 14px; display: grid; place-items: center; background: var(--azul-claro); color: var(--bic); font-size: 1.15rem; }
.tipo-cat.on .tc-ic { background: var(--bic); color: #fff; }
.tc-t { display: flex; flex-direction: column; gap: 2px; }
.tc-t strong { font-size: .98rem; }
.tc-t small { font-size: .8rem; color: var(--tinta-2); line-height: 1.3; }
.tc-ok { position: absolute; top: 12px; right: 12px; width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; font-size: .76rem; background: var(--bic); color: #fff; opacity: 0; transform: scale(.6); transition: opacity .15s, transform .15s; }
.tipo-cat.on .tc-ok { opacity: 1; transform: none; }
.tipo-opcoes { margin-top: 14px; padding: 14px; border-radius: 18px; background: var(--sup-2); }
.tipo-opcoes .rotulo-g { margin: 0 0 10px; font-weight: 700; font-size: .9rem; }
.tipo-lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(190px, 100%), 1fr)); gap: 8px; }
.tipo-op { display: flex; align-items: center; gap: 10px; padding: 11px 14px; border-radius: 14px; border: 1.5px solid var(--linha-2); background: var(--sup); font: inherit; font-weight: 600; font-size: .92rem; color: var(--tinta); cursor: pointer; text-align: left; }
.tipo-op i { color: var(--tinta-3); }
.tipo-op.on { border-color: var(--bic); color: var(--bic); }
.tipo-op.on i { color: var(--bic); }
.sug-titulo { display: inline-flex; align-items: center; gap: 8px; margin-top: 8px; padding: 7px 12px; border-radius: 999px; border: 1.5px dashed var(--bic); background: var(--azul-suave); color: var(--bic); font: inherit; font-size: .84rem; font-weight: 700; cursor: pointer; }
.conta-desc { text-align: right; margin-top: 4px; }
#u-desc { width: 100%; resize: vertical; min-height: 96px; border: 1.5px solid var(--linha-2); border-radius: 14px; padding: 12px 14px; font: inherit; background: var(--sup); }
/* Material: cadeira por baixo do título e descrição */
.doc-cad { display: flex; align-items: center; gap: 8px; margin: 6px 0 0; color: var(--tinta-2); font-weight: 600; }
.doc-cad i { color: var(--bic); }
.doc-desc { padding: 14px 16px; border-radius: 16px; background: var(--sup-2); margin-bottom: 14px; }
.doc-desc h3 { font-size: .9rem; margin-bottom: 6px; }
.doc-desc p { margin: 0; color: var(--tinta-2); line-height: 1.5; }
.uni-mais { text-decoration: none; border-style: dashed !important; }
@media (max-width: 760px) { .tipo-g { grid-template-columns: minmax(0, 1fr); } .tipo-cat { flex-direction: row; align-items: center; padding: 12px 14px; } .tc-t small { display: none; } .tc-ok { top: 50%; transform: translateY(-50%) scale(.6); } .tipo-cat.on .tc-ok { transform: translateY(-50%); } .tipo-lista { grid-template-columns: minmax(0, 1fr); } }

/* =========================================================
   v13: guardar só com ícone, fotos em grelha, cursos de uma vez, países
   ========================================================= */
@media (max-width: 900px) {
  .abas-m .aba-mais { display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 8px 0 7px; font: inherit; font-size: .74rem; font-weight: 680; color: var(--tinta-3); background: none; border: 0; cursor: pointer; }
  .abas-m .aba-mais svg { width: 23px; height: 23px; }
}
/* Guardar: só o ícone; fica azul quando está guardado */
.btn-guardar.so-icone { width: 52px; min-width: 52px; padding: 0; flex: none; justify-content: center; border-radius: 50%; }
.btn-guardar.so-icone svg { width: 22px; height: 22px; margin: 0; }
.btn-guardar[aria-pressed="true"], [data-action="guardar"].ib[aria-pressed="true"] { background: var(--azul-claro); border-color: var(--bic); color: var(--bic); }
.btn-guardar[aria-pressed="true"] svg { fill: currentColor; }
/* Fotos das páginas */
.fotos-g { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(96px, 100%), 1fr)); gap: 10px; }
.foto-i { position: relative; margin: 0; aspect-ratio: 3 / 4; border-radius: 12px; overflow: hidden; background: var(--sup-2); border: 1px solid var(--linha); }
.foto-i img { width: 100%; height: 100%; object-fit: cover; display: block; }
.foto-n { position: absolute; left: 6px; bottom: 6px; min-width: 22px; height: 22px; border-radius: 99px; background: rgba(16, 22, 51, .75); color: #fff; font-size: .76rem; font-weight: 800; display: grid; place-items: center; padding: 0 6px; }
.foto-x { position: absolute; top: 6px; right: 6px; width: 26px; height: 26px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .92); color: var(--tinta); display: grid; place-items: center; cursor: pointer; box-shadow: 0 1px 3px rgba(0, 0, 0, .2); }
.foto-x svg { width: 14px; height: 14px; }
.foto-mais { aspect-ratio: 3 / 4; border-radius: 12px; border: 2px dashed var(--linha-2); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; color: var(--bic); font-weight: 700; font-size: .84rem; cursor: pointer; background: var(--azul-suave); }
.foto-mais svg { width: 24px; height: 24px; }
.fotos-estado { margin-top: 10px; }
/* Gestão: países e vários cursos */
.tax-paises { margin: 0 -4px; }
.cur-lista { max-height: 46vh; overflow-y: auto; margin: 10px 0 12px; padding-right: 4px; }
.cur-g { border: 0; padding: 0; margin: 0 0 12px; }
.cur-g legend { font-weight: 800; font-size: .84rem; color: var(--tinta-2); margin-bottom: 6px; }
.cur-op { display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 12px; cursor: pointer; }
.cur-op:hover { background: var(--sup-2); }
.cur-op input { width: 18px; height: 18px; accent-color: var(--bic); }
.cur-op span { flex: 1; font-weight: 600; font-size: .92rem; }
.cur-op small { color: var(--tinta-3); font-size: .8rem; }
.cur-op.ja { opacity: .55; }
.modal .exp-busca.pequeno { margin-top: 6px; }

/* =========================================================
   v14: confirmações, ações do material, admin responsivo, escolas, páginas novas
   ========================================================= */
/* Botão "Voltar" com aspeto próprio */
.voltar-link { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px 8px 10px; border-radius: 999px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta); font: inherit; font-weight: 700; font-size: .9rem; text-decoration: none; cursor: pointer; margin: 4px 0 14px; transition: border-color .15s, background .15s; }
.voltar-link:hover { border-color: var(--bic); background: var(--azul-suave); }
.voltar-link svg { width: 18px; height: 18px; }

/* Confirmação em overlay */
.confirmar { text-align: center; }
.logo-conf { width: 56px; height: 56px; margin: 4px auto 10px; display: block; }
.confirmar h2 { font-size: 1.3rem; }
.confirmar .linha-btn { justify-content: center; margin-top: 18px; }
.btn-perigo { background: #C62839; color: #fff; border-color: #C62839; }
.btn-perigo:hover { background: #A51F2E; }
.perigo, .ib-acao.perigo { color: #C62839 !important; }

/* Ações do material: gosto, não gosto, guardar, partilhar, reportar */
.linha-votos { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.acao-r { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-width: 46px; height: 46px; padding: 0 14px; border-radius: 999px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta-2); font: inherit; font-weight: 800; cursor: pointer; transition: transform .12s, border-color .15s, background .15s, color .15s; }
.acao-r svg { width: 20px; height: 20px; }
.acao-r:hover { border-color: var(--bic); color: var(--bic); }
.acao-r:active { transform: scale(.92); }
.acao-r[aria-pressed="true"] { background: var(--azul-claro); border-color: var(--bic); color: var(--bic); }
.acao-r[aria-pressed="true"] svg { fill: currentColor; }
.acao-r.up[aria-pressed="true"] i { animation: pulo .35s ease-out; }
@keyframes pulo { 0% { transform: scale(1); } 40% { transform: scale(1.35) rotate(-8deg); } 100% { transform: scale(1); } }
.btn-estado { background: var(--sup-2); color: var(--tinta-3); border: 1.5px dashed var(--linha-2); cursor: not-allowed; }
.btn-estado.nao { color: #C62839; border-color: #F2B8BF; background: #FFF5F6; }
.acoes-meu { margin-top: 10px; }
.doc-rejeitado .leitor-w { filter: grayscale(1); opacity: .45; pointer-events: none; }
.envio-apagar { width: 34px; height: 34px; color: var(--tinta-3); }
.envio-apagar:hover { color: #C62839; background: #FFF5F6; }

/* Animação ao desbloquear */
.desb-anim { position: fixed; inset: 0; z-index: 300; display: grid; place-items: center; background: rgba(16, 22, 51, .35); backdrop-filter: blur(3px); animation: fade .2s ease-out; }
.desb-anim.sai { opacity: 0; transition: opacity .35s; }
.desb-cx { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 26px 34px; border-radius: 26px; background: var(--sup); box-shadow: 0 30px 70px -30px rgba(8, 18, 90, .6); animation: sobe-c .45s cubic-bezier(.2, 1.4, .4, 1); }
.desb-logo { width: 72px; height: 72px; animation: gira-l .9s cubic-bezier(.2, .9, .3, 1); }
.desb-cx strong { font-family: var(--f-tit); font-size: 1.3rem; }
.desb-cx small { color: var(--tinta-2); }
@keyframes sobe-c { from { transform: translateY(20px) scale(.9); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes gira-l { 0% { transform: scale(.4) rotate(-30deg); } 60% { transform: scale(1.15) rotate(6deg); } 100% { transform: none; } }

/* Mural: pódio que se adapta a qualquer largura */
.podio { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: 12px; }
.podio-c { min-width: 0; }
.podio-c .top { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; }
.podio-c .top span strong, .podio-c .top span small { overflow-wrap: anywhere; }
.podio-c .nums { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 14px; align-items: end; }

/* Explorar: ordenar em pílulas, filtros com a sua própria barra */
.ordem-p { display: flex; gap: 4px; padding: 4px; border-radius: 999px; background: var(--sup-2); overflow-x: auto; scrollbar-width: none; max-width: 100%; }
.ordem-p::-webkit-scrollbar { display: none; }
.ordem-p button { display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 12px; border-radius: 999px; border: 0; background: none; font: inherit; font-size: .84rem; font-weight: 700; color: var(--tinta-2); cursor: pointer; white-space: nowrap; }
.ordem-p button[aria-pressed="true"] { background: var(--sup); color: var(--bic); box-shadow: 0 1px 3px rgba(16, 22, 51, .12); }
.ordem-p button i { font-size: .8rem; }
.res-dir { display: flex; align-items: center; gap: 8px; min-width: 0; }
@media (min-width: 901px) { .facetas { position: sticky; top: calc(var(--topo-h) + 16px); max-height: calc(100vh - var(--topo-h) - 32px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; padding-right: 6px; } }
.exp-vazio { grid-template-columns: minmax(0, 1fr) !important; }
.aviso-filtro { display: inline-flex; align-items: center; gap: 8px; margin: 6px 0 0; padding: 8px 12px; border-radius: 12px; background: var(--azul-suave); color: var(--tinta-2); font-size: .9rem; }
.aviso-filtro i { color: var(--bic); }
@media (max-width: 760px) { .ordem-p button i { display: none; } .ordem-p button { padding: 0 11px; font-size: .8rem; } }

/* Perfil: email, telefone e país; pesquisa nos materiais de alguém */
.email-atual { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 11px 14px; border-radius: 14px; background: var(--sup-2); flex-wrap: wrap; }
.email-atual > span { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; min-width: 0; overflow-wrap: anywhere; }
.email-atual svg { width: 18px; height: 18px; color: var(--tinta-3); flex: none; }
.email-mudar { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-top: 8px; }
.email-mudar input { flex: 1; min-width: 200px; height: 44px; }
.email-mudar .codigo-6 { height: 48px !important; font-size: 1.3rem !important; flex: 0 1 200px; }
.pessoa-busca { margin-bottom: 14px; max-width: 520px; }
.pessoa-nums div > span:first-of-type + b { font-size: 1.2rem; }
.chips-anos { flex-wrap: wrap !important; }
.anos-c { margin-bottom: 12px; }

/* Vazios bonitos */
.vazio-bonito { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 8px; padding: 30px 20px; border-radius: 22px; border: 1.5px dashed var(--linha-2); background: var(--sup); color: var(--tinta-2); }
.vazio-bonito > i { font-size: 2rem; color: var(--bic); opacity: .8; }
.vazio-bonito strong { color: var(--tinta); font-size: 1.05rem; }
.vazio-bonito p { margin: 0 0 6px; max-width: 42ch; }
.vazio-bonito.pequeno { padding: 20px; }

/* Rodapé curto e Estudante Carneiro */
.rodape-pontos { list-style: none; padding: 0; margin: 12px 0 14px; display: flex; flex-direction: column; gap: 8px; }
.rodape-pontos li { display: flex; align-items: center; gap: 10px; color: var(--tinta-2); font-size: .9rem; }
.rodape-pontos i { width: 18px; color: var(--bic); text-align: center; }
.feito-por { display: inline-flex; align-items: center; gap: 6px; padding: 7px 14px; border-radius: 999px; background: var(--azul-suave); color: var(--tinta-2); text-decoration: none; font-size: .86rem; }
.feito-por strong { color: var(--bic); }
.feito-por:hover { background: var(--azul-claro); }
.rodape-lingua { margin-top: 14px; }
.linguas { display: inline-flex; gap: 4px; padding: 3px; border-radius: 999px; background: var(--sup-2); }
.linguas button { min-width: 38px; height: 30px; border-radius: 999px; border: 0; background: none; font: inherit; font-size: .82rem; font-weight: 800; color: var(--tinta-2); cursor: pointer; }
.linguas button[aria-pressed="true"] { background: var(--bic); color: #fff; }
.lat-lingua { padding: 8px 12px; }
body.lateral-recolhida .lat-lingua { display: none; }
.nav-sub { padding-left: 46px !important; font-size: .86rem; min-height: 34px; color: var(--tinta-2); }
body.lateral-recolhida .nav-sub { display: none; }
.goog-te-banner-frame, .skiptranslate, #goog-gt-tt { display: none !important; }
body { top: 0 !important; }

/* Início: materiais reais na vitrine */
.papel-real { padding: 0; overflow: hidden; background: #fff; }
.papel-real img { width: 100%; height: 100%; object-fit: cover; object-position: top; display: block; }
.papel-tit { position: absolute; left: 8px; right: 8px; bottom: 8px; padding: 6px 8px; border-radius: 8px; background: rgba(16, 22, 51, .8); color: #fff; font-size: .74rem; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* Páginas de informação */
.info-g { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: 14px; }
.info-c { padding: 20px; border-radius: 20px; background: var(--sup); border: 1px solid var(--linha); }
.info-c i { font-size: 1.4rem; color: var(--bic); margin-bottom: 10px; display: block; }
.info-c h2 { font-size: 1.05rem; margin-bottom: 6px; }
.info-c p { margin: 0; color: var(--tinta-2); line-height: 1.5; }
.info-mais { margin-top: 18px; color: var(--tinta-2); }
.info-cta { margin-top: 18px; padding: 22px; border-radius: 22px; background: var(--azul-suave); text-align: center; }
.info-cta strong { font-family: var(--f-tit); font-size: 1.3rem; }
.info-cta .linha-btn { justify-content: center; }
.msg-autor { display: block; font-size: .78rem; margin-bottom: 3px; opacity: .85; }
.suporte-cx { grid-template-columns: minmax(0, 1fr) !important; max-width: 820px; }
.suporte-cx .fio-cab .ib { display: none !important; }

/* Administração: abas com ícones, período, gráfico circular, cartões no telemóvel */
.abas-adm .aba { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; }
.abas-adm .aba i { font-size: .85rem; opacity: .7; }
.abas-adm { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; scroll-behavior: smooth; }
.abas-adm::-webkit-scrollbar { display: none; }
.periodo { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 0 0 16px; }
.per-sel { display: inline-flex; align-items: center; gap: 8px; padding: 0 12px; height: 42px; border-radius: 999px; border: 1.5px solid var(--linha-2); background: var(--sup); }
.per-sel i { color: var(--bic); }
.per-sel select { border: 0; background: none; font: inherit; font-weight: 700; height: 100%; outline: none; }
.periodo input[type=month], .periodo input[type=date], .periodo > select { height: 42px; border: 1.5px solid var(--linha-2); border-radius: 12px; padding: 0 10px; font: inherit; background: var(--sup); }
.per-txt { color: var(--tinta-2); margin: -6px 0 12px; font-size: .9rem; }
.pizza { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.pizza svg { width: 160px; height: 160px; flex: none; }
.pizza-t { font-family: var(--f-tit); font-size: 22px; font-weight: 800; fill: var(--tinta); }
.pizza ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; min-width: 160px; flex: 1; }
.pizza li { display: grid; grid-template-columns: 14px minmax(0, 1fr) auto auto; gap: 8px; align-items: center; font-size: .9rem; }
.pizza li i { width: 14px; height: 14px; border-radius: 4px; }
.pizza li b { font-variant-numeric: tabular-nums; }
.pizza li small { color: var(--tinta-3); min-width: 24px; text-align: right; }
.ib-acao { width: 38px; height: 38px; border-radius: 12px; border: 1.5px solid var(--linha); background: var(--sup); color: var(--tinta-2); cursor: pointer; display: inline-grid; place-items: center; margin-left: 4px; }
.ib-acao:hover { border-color: var(--bic); color: var(--bic); background: var(--azul-suave); }
.ib-acao.perigo:hover { border-color: #C62839; background: #FFF5F6; }
.papel-tag { display: inline-block; padding: 3px 9px; border-radius: 999px; font-size: .76rem; font-weight: 800; background: var(--sup-2); color: var(--tinta-2); font-style: normal; }
.papel-tag.p-publicador { background: #E7EBF9; color: #1F317A; }
.papel-tag.p-admin, .papel-tag.p-geral { background: var(--azul-claro); color: var(--bic); }
.tab-uti .el { display: block; max-width: 220px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.acoes-td { white-space: normal !important; }
.acoes-td .btn { margin: 2px; }
.decis p { min-width: 0; } .decis small { overflow-wrap: anywhere; }
/* Linha do tempo das decisões */
.tempo { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0; }
.tempo li { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 12px; padding: 12px 0; position: relative; }
.tempo li + li { border-top: 1px dashed var(--linha); }
.tempo-ic { width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; font-size: .8rem; background: #E7EBF9; color: #1F317A; }
.tempo li.nao .tempo-ic { background: #FFF0F1; color: #C62839; }
.tempo p { margin: 2px 0; color: var(--tinta-2); font-size: .9rem; }
.tempo small { color: var(--tinta-3); font-size: .82rem; display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
/* Reportes em cartões */
.reps { display: flex; flex-direction: column; gap: 12px; }
.rep-c { padding: 14px; border-radius: 18px; border: 1px solid var(--linha); background: var(--sup); }
.rep-topo { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 14px; }
.rep-topo .th { aspect-ratio: 3 / 4; }
.rep-topo > div { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.rep-motivo { display: inline-flex; align-items: center; gap: 6px; align-self: flex-start; padding: 4px 10px; border-radius: 999px; background: #FFF0F1; color: #C62839; font-size: .82rem; font-weight: 800; }
.rep-topo small { color: var(--tinta-3); overflow-wrap: anywhere; }
.rep-acoes { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 12px; }
.fila-desc { color: var(--tinta-2) !important; font-style: italic; }
/* Escolas e universidades */
.tax-tipos { width: 100%; max-width: 640px; display: grid; grid-template-columns: 1fr 1fr; margin-bottom: 14px; }
.tax-tipos button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 46px; font-weight: 700; }
.tax-tipos b { min-width: 26px; padding: 2px 8px; border-radius: 99px; background: var(--azul-claro); color: var(--bic); font-size: .8rem; }
.tax-lista-cab { display: flex; gap: 8px; align-items: center; }
.tax-lista-cab .exp-busca { flex: 1; }
.tax-i { display: grid !important; grid-template-columns: 56px minmax(0, 1fr) auto !important; align-items: center; gap: 10px !important; }
.tax-sig { height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--azul-claro); color: var(--bic); font-weight: 800; font-size: .76rem; overflow: hidden; padding: 0 4px; }
.tax-nome { display: flex; flex-direction: column; min-width: 0; }
.tax-nome strong { font-size: .9rem; line-height: 1.25; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.tax-nome small { color: var(--tinta-3); font-size: .8rem; }
.tax-i > i { color: var(--tinta-3); font-size: .79rem; }
.tax-cab-t p { color: var(--tinta-2); margin: 4px 0 0; font-size: .88rem; }
.tax-cursos { display: flex; flex-direction: column; gap: 8px; }
.tax-curso { border: 1px solid var(--linha); border-radius: 16px; padding: 0; background: var(--sup); }
.tax-curso summary { display: flex; align-items: center; gap: 10px; padding: 12px 14px; cursor: pointer; list-style: none; flex-wrap: wrap; }
.tax-curso summary::-webkit-details-marker { display: none; }
.tax-curso summary > i { color: var(--bic); }
.tax-curso summary strong { font-size: .95rem; }
.tax-meta { color: var(--tinta-3); font-size: .8rem; flex: 1; }
.tax-curso[open] summary { border-bottom: 1px solid var(--linha); }
.tax-anos { padding: 12px 14px 14px; display: flex; flex-direction: column; gap: 12px; }
.tax-ano { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 10px; align-items: start; }
.tax-ano-t { font-size: .82rem; font-weight: 800; color: var(--tinta-2); padding-top: 6px; }

@media (max-width: 760px) {
  /* Tabelas viram cartões, um abaixo do outro */
  .tab-cartoes thead { display: none; }
  .tab-cartoes, .tab-cartoes tbody, .tab-cartoes tr, .tab-cartoes td { display: block; width: 100%; }
  .tab-cartoes tr { padding: 14px; margin-bottom: 12px; border: 1px solid var(--linha); border-radius: 18px; background: var(--sup); }
  .tab-cartoes td { padding: 6px 0 !important; border: 0 !important; text-align: left !important; }
  .tab-cartoes td[data-r]::before { content: attr(data-r); display: block; font-size: .76rem; font-weight: 800; color: var(--tinta-3); text-transform: uppercase; letter-spacing: .04em; margin-bottom: 2px; }
  .tab-cartoes td:first-child::before { display: none; }
  .tab-cartoes .acoes-td { display: flex; flex-wrap: wrap; gap: 6px; padding-top: 10px !important; border-top: 1px dashed var(--linha) !important; margin-top: 6px; }
  .tab-w { overflow: visible; }
  .tab-uti .el { max-width: 100%; }
  .tax-tipos button { font-size: .82rem; padding: 0 6px; }
  .tax-ano { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .rep-topo { grid-template-columns: 64px minmax(0, 1fr); }
  .periodo { gap: 6px; }
  .pizza { justify-content: center; }
  .podio-c .nums { grid-template-columns: 1fr auto auto; }
}
@media print {
  .lateral, .topo, .abas-m, .abas-adm, .periodo, .rodape, .toasts { display: none !important; }
  .adm .caixa { break-inside: avoid; }
  body, .pag { background: #fff !important; }
}

.auth-feito { text-align: center; margin: 14px 0 0; }
.auth-feito .feito-por { background: rgba(255, 255, 255, .14); color: #fff; }
.auth-feito .feito-por strong { color: #fff; }
.acao-r.up[aria-pressed="true"] svg { animation: pulo .35s ease-out; }

/* Barra do leitor: fica a uma distância certa do topo e não se cola ao cabeçalho */
.leitor-w .leitor-barra { position: sticky; top: calc(var(--topo-h) + 10px); z-index: 4; border-radius: 18px; margin: 0 0 8px; box-shadow: 0 6px 18px -12px rgba(16, 22, 51, .35); border: 1px solid var(--linha); }
@media (max-width: 900px) { .leitor-w .leitor-barra { position: static; border-radius: 16px; box-shadow: none; } }

/* =========================================================
   v15: escolas sem nomes cortados, línguas no topo, conversa tipo WhatsApp,
   filtros em ecrã inteiro, descarregar pago, proteção do leitor, subir ao topo
   ========================================================= */
/* Escolas e universidades: nomes inteiros e botão dentro da caixa */
.tax-i .tax-nome, .tax-i .tax-nome strong, .tax-i .tax-nome small { white-space: normal !important; overflow: visible; text-overflow: clip; }
.tax-i .tax-nome strong { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.tax-lista { min-width: 0; overflow: hidden; }
.tax-lista-cab { display: grid !important; grid-template-columns: minmax(0, 1fr) auto; }
.tax-lista-cab .exp-busca { min-width: 0; }
.tax-lista-cab .btn { white-space: nowrap; }
@media (max-width: 1180px) and (min-width: 901px) { .tax-g { grid-template-columns: 290px minmax(0, 1fr); } .tax-lista-cab .so-desk { display: none; } }

/* Línguas no cabeçalho */
.lingua-w { position: relative; }
.lingua-bt { display: inline-flex; align-items: center; gap: 6px; height: 38px; padding: 0 10px; border-radius: 999px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta-2); font: inherit; font-size: .8rem; font-weight: 800; cursor: pointer; }
.lingua-bt:hover { border-color: var(--bic); color: var(--bic); }
.lingua-menu { position: absolute; right: 0; top: calc(100% + 8px); z-index: 60; min-width: 170px; padding: 6px; border-radius: 16px; background: var(--sup); border: 1px solid var(--linha); box-shadow: 0 18px 40px -18px rgba(16, 22, 51, .35); }
.lingua-menu button { display: flex; align-items: center; gap: 10px; width: 100%; padding: 10px 12px; border: 0; border-radius: 10px; background: none; font: inherit; font-size: .9rem; color: var(--tinta); cursor: pointer; text-align: left; }
.lingua-menu button b { min-width: 26px; font-size: .82rem; color: var(--bic); }
.lingua-menu button:hover, .lingua-menu button[aria-pressed="true"] { background: var(--azul-suave); }
@media (max-width: 900px) { .lingua-bt { height: 34px; padding: 0 8px; } .lingua-bt i { display: none; } }

/* Menu lateral: terminar sessão e tudo visível */
.nav-sair { width: 100%; border: 0; background: none; font: inherit; cursor: pointer; color: var(--tinta-2); margin-top: 6px; }
.nav-sair:hover { color: #C62839; }
.lateral nav, .lateral .lat-nav { overflow-y: auto; min-height: 0; }

/* Barra de baixo no telemóvel só para quem tem conta */
@media (max-width: 900px) { body.visitante main, body.visitante #app { padding-bottom: 0 !important; } body.visitante .toasts { bottom: calc(18px + env(safe-area-inset-bottom, 0px)) !important; } }

/* Pesquisa do topo escondida no Explorar (já tem a sua) */
.busca-topo, .topo, .topo-w { overflow: visible !important; }
.busca-topo .sug { max-height: min(70vh, 520px); overflow-y: auto; z-index: 70; }

/* Conversa com a equipa ao estilo WhatsApp */
.pag-chat { max-width: none !important; padding-bottom: 0 !important; }
.chat { display: flex; flex-direction: column; height: calc(100dvh - var(--topo-h) - 48px); min-height: 460px; max-width: 980px; margin: 0 auto; border-radius: 22px; overflow: hidden; border: 1px solid var(--linha); background: var(--sup); }
.chat-cab { display: flex; align-items: center; gap: 12px; padding: 12px 16px; background: var(--bic); color: #fff; }
.chat-cab .logo-svg { width: 42px; height: 42px; background: #fff; border-radius: 12px; padding: 4px; }
.chat-cab strong { display: block; font-size: 1rem; }
.chat-cab small { opacity: .85; font-size: .8rem; }
.chat-fio { flex: 1; overflow-y: auto; padding: 18px clamp(12px, 4vw, 40px); display: flex; flex-direction: column; gap: 8px; background-color: #EFEAE2; background-image: radial-gradient(rgba(16, 22, 51, .07) 1px, transparent 1px); background-size: 18px 18px; }
[data-theme="dark"] .chat-fio { background-color: #0F1420; }
.chat-fio .msg { max-width: min(78%, 560px); align-self: flex-start; padding: 8px 12px 6px; border-radius: 4px 16px 16px 16px; background: #fff; color: var(--tinta); box-shadow: 0 1px 1px rgba(16, 22, 51, .12); }
.chat-fio .msg.minha { align-self: flex-end; border-radius: 16px 4px 16px 16px; background: #D9E2FF; }
[data-theme="dark"] .chat-fio .msg { background: #1E2536; color: #E8EBF5; }
[data-theme="dark"] .chat-fio .msg.minha { background: #22356F; }
.chat-fio .msg p { margin: 0; line-height: 1.45; overflow-wrap: anywhere; }
.chat-fio .msg small { display: block; text-align: right; font-size: .72rem; opacity: .6; margin-top: 2px; }
.chat-fio .msg-autor { color: var(--bic); }
.chat-fio .fio-nada { margin: auto; text-align: center; max-width: 360px; padding: 18px; border-radius: 16px; background: rgba(255, 255, 255, .8); }
.chat-compor { display: flex; align-items: flex-end; gap: 10px; padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px)); background: var(--sup-2); border-top: 1px solid var(--linha); }
.chat-compor textarea { flex: 1; resize: none; min-height: 46px; max-height: 160px; padding: 12px 16px; border-radius: 24px; border: 1.5px solid var(--linha-2); background: var(--sup); font: inherit; font-size: 1rem; line-height: 1.4; color: var(--tinta); outline: none; overflow-y: auto; }
.chat-compor textarea:focus { border-color: var(--bic); }
.chat-enviar { width: 46px; height: 46px; flex: none; border-radius: 50%; border: 0; background: var(--bic); color: #fff; font-size: 1.05rem; cursor: pointer; display: grid; place-items: center; }
.chat-enviar:hover { filter: brightness(1.08); }
.msgs .conv-fio { display: flex; flex-direction: column; min-height: 480px; }
.msgs .conv-fio .chat-fio { min-height: 320px; }
@media (max-width: 900px) {
  body.rota-chat .pag-chat { padding: 0 !important; }
  body.rota-chat .rodape { display: none; }
  .chat { height: calc(100dvh - var(--topo-h)); border-radius: 0; border: 0; min-height: 0; }
  .chat-fio .msg { max-width: 86%; }
}

/* Filtros: 4 por grupo e "Ver todos" em ecrã inteiro */
.fac-mais { display: inline-flex; align-items: center; gap: 6px; margin-top: 6px; padding: 7px 12px; border-radius: 999px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--bic); font: inherit; font-size: .84rem; font-weight: 700; cursor: pointer; }
.fac-mais b { padding: 1px 7px; border-radius: 99px; background: var(--azul-claro); font-size: .78rem; }
.fac-mais svg { width: 14px; height: 14px; }
.fac-ecra { position: fixed; inset: 0; z-index: 250; background: rgba(16, 22, 51, .45); display: grid; place-items: center; padding: 20px; animation: fade .15s ease-out; }
.fac-ecra[hidden] { display: none; }
.fe-cx { width: min(640px, 100%); max-height: calc(100dvh - 40px); display: flex; flex-direction: column; border-radius: 24px; background: var(--sup); overflow: hidden; }
.fe-cx header { display: flex; align-items: center; justify-content: space-between; padding: 16px 18px 8px; }
.fe-cx header h2 { font-size: 1.2rem; }
.fe-cx > .exp-busca { margin: 0 18px 10px; }
.fe-lista { flex: 1; overflow-y: auto; padding: 4px 12px 12px; display: flex; flex-direction: column; gap: 2px; }
.fe-cx footer { display: flex; justify-content: space-between; gap: 10px; padding: 12px 18px calc(12px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--linha); }
body.com-ecra { overflow: hidden; }
@media (max-width: 760px) { .fac-ecra { padding: 0; } .fe-cx { width: 100%; max-height: 100dvh; height: 100dvh; border-radius: 0; } }

/* Ordenar sem o ano letivo cabe melhor */
.ordem-p button span { white-space: nowrap; }

/* Material: desbloqueado, ecrã inteiro e apagar com o mesmo aspeto */
.aberto-ok { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-radius: 16px; background: #E7EBF9; color: #1F317A; margin-bottom: 10px; }
.aberto-ok svg { width: 22px; height: 22px; flex: none; }
.aberto-ok strong { display: block; }
.aberto-ok small { color: #233477; }
.btn-apagar { color: #C62839 !important; border-color: #F2C3C9 !important; }
.btn-apagar:hover { background: #FFF5F6 !important; border-color: #C62839 !important; }
.nome-blur { filter: blur(6px); user-select: none; -webkit-user-select: none; }
.aviso-blur { margin: 2px 0 6px; font-size: .86rem; color: var(--tinta-2); }

/* Leitor: zoom que amplia mesmo, marca com o nome de quem vê, proteção */
.leitor { position: relative; overflow-x: auto; }
.leitor .pagina { width: calc(100% * var(--zoom, 1)) !important; max-width: none !important; flex: none; }
.leitor.zoom-mais { align-items: flex-start; }
.marca-quem { position: absolute; inset: 0; z-index: 3; pointer-events: none; background-repeat: repeat; }
.leitor, .leitor-cheio, .pagina, .dz-previa { -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }
.leitor img, .leitor canvas { -webkit-user-drag: none; pointer-events: none; }
@media print { .leitor, .leitor-cheio, .pagina, .doc-vista { display: none !important; } }

/* Perfil: alterações por guardar, convite e apagar conta */
.por-guardar { display: flex; align-items: center; gap: 8px; padding: 10px 14px; border-radius: 12px; background: #FFF4E5; color: #6B4A12; font-weight: 600; }
.convite-perfil .convite-cx { display: flex; flex-direction: column; gap: 4px; padding: 16px; border-radius: 16px; background: var(--azul-suave); margin: 10px 0; }
.convite-perfil .codigo-grande { font-family: var(--f-tit); font-size: 2rem; letter-spacing: .12em; color: var(--bic); }
.convite-perfil .convite-link { color: var(--tinta-2); overflow-wrap: anywhere; font-size: .9rem; }
.def-perigo { border-color: #F2C3C9 !important; }
.def-perigo h3 { color: #C62839; }

/* Partilhar: campos em falta a vermelho */
.campo-erro { outline: 2.5px solid #E5484D !important; outline-offset: 3px; border-radius: 14px; animation: treme .35s ease-out; }
input.campo-erro, .pick.campo-erro { border-color: #E5484D !important; background: #FFF6F6 !important; }
@keyframes treme { 0%, 100% { transform: none; } 25% { transform: translateX(-4px); } 75% { transform: translateX(4px); } }
.niveis-m { margin-bottom: 12px; flex-wrap: wrap; }

/* Painel: pedido anual */
.aviso-ano { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; padding: 14px 18px; margin: 0 0 18px; border-radius: 18px; background: var(--azul-suave); border: 1px solid var(--azul-claro); }
.aviso-ano > i { font-size: 1.4rem; color: var(--bic); }
.aviso-ano p { margin: 0; flex: 1; min-width: 200px; color: var(--tinta-2); }
.aviso-ano strong { display: block; color: var(--tinta); }
.bloco-cab .sub-bloco { margin: 2px 0 0; color: var(--tinta-2); font-size: .88rem; }

/* Rodapé curto */
.rodape-txt { margin: 10px 0 14px; color: var(--tinta-2); font-size: .9rem; line-height: 1.5; max-width: 42ch; }

/* Avaliar: o que um Veterano pode fazer */
.poderes { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 12px; padding: 16px; margin-bottom: 18px; }
.poderes > div { display: flex; flex-direction: column; gap: 4px; padding: 12px; border-radius: 14px; background: var(--sup-2); }
.poderes i { color: var(--bic); font-size: 1.1rem; }
.poderes small { color: var(--tinta-2); }

/* Administração: materiais com ícones lado a lado; utilizadores com menu compacto */
.acoes-td { white-space: nowrap !important; }
.acoes-td .ib-acao { margin: 2px; }
.acoes-uti { display: inline-flex; align-items: center; gap: 6px; }
.menu-uti { position: relative; }
.menu-uti summary { list-style: none; }
.menu-uti summary::-webkit-details-marker { display: none; }
.menu-uti-l { position: absolute; right: 0; top: calc(100% + 6px); z-index: 40; min-width: 210px; padding: 6px; border-radius: 14px; background: var(--sup); border: 1px solid var(--linha); box-shadow: 0 18px 40px -18px rgba(16, 22, 51, .35); display: flex; flex-direction: column; }
.menu-uti-l button { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 0; border-radius: 10px; background: none; font: inherit; font-size: .9rem; color: var(--tinta); cursor: pointer; text-align: left; white-space: nowrap; }
.menu-uti-l button:hover { background: var(--sup-2); }
.menu-uti-l button i { width: 16px; color: var(--tinta-3); }
.aviso-trocas { display: inline-flex; align-items: center; gap: 4px; margin-top: 4px; color: #B26A00; font-size: .78rem; font-weight: 700; }
.tab-mat strong { font-size: .9rem; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.adm-estados .chip .n-chip { margin-left: 4px; }
.emails-cx textarea { width: 100%; border: 1.5px solid var(--linha-2); border-radius: 14px; padding: 12px; font: inherit; resize: vertical; background: var(--sup); }
.emails-cx select { height: 44px; border: 1.5px solid var(--linha-2); border-radius: 12px; padding: 0 10px; font: inherit; background: var(--sup); }
.email-prog { margin: 10px 0; }
.email-prog .barra { height: 10px; border-radius: 99px; background: var(--sup-2); overflow: hidden; }
.email-prog .barra i { display: block; height: 100%; background: var(--bic); transition: width .3s; }
@media (max-width: 760px) { .acoes-td { white-space: normal !important; } .menu-uti-l { right: auto; left: 0; } }

/* Voltar ao topo */
.subir { position: fixed; right: 18px; bottom: calc(22px + env(safe-area-inset-bottom, 0px)); z-index: 80; width: 48px; height: 48px; border-radius: 50%; border: 0; background: var(--bic); color: #fff; font-size: 1.05rem; box-shadow: 0 12px 26px -12px rgba(30, 64, 230, .8); cursor: pointer; opacity: 0; transform: translateY(16px) scale(.9); pointer-events: none; transition: opacity .2s, transform .2s; }
.subir.ver { opacity: 1; transform: none; pointer-events: auto; }
body.rota-chat .subir { display: none; }

/* =========================================================
   v16: abas da administração todas visíveis, pódio alinhado, conversa fixa, avaliadores
   ========================================================= */
/* Abas da administração: todas à vista, em várias linhas se for preciso */
.abas-adm { flex-wrap: wrap !important; overflow: visible !important; gap: 6px; border-bottom: 0; padding-bottom: 6px; }
.abas-adm .aba { border: 1.5px solid var(--linha-2); border-radius: 999px; padding: 8px 14px; margin: 0; background: var(--sup); }
.abas-adm .aba[aria-selected="true"] { background: var(--bic); color: #fff; border-color: var(--bic); }
.abas-adm .aba[aria-selected="true"] i { opacity: 1; }
.abas-adm .aba::after { display: none !important; }
@media (max-width: 760px) { .abas-adm { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); } .abas-adm .aba { justify-content: center; font-size: .82rem; padding: 9px 8px; white-space: normal; text-align: center; } }

/* Mural: cartões do pódio com a mesma altura e tudo alinhado */
.podio { align-items: stretch; }
.podio-c { display: flex !important; flex-direction: column; height: 100%; }
.podio-c .top { align-items: center !important; min-height: 92px; }
.podio-c .top span { display: flex; flex-direction: column; justify-content: center; min-width: 0; }
.podio-c .top span small { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.podio-c .top strong { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.podio-c .nums { margin-top: auto !important; align-items: center !important; }
.podio-c .nums > *:first-child { align-self: center; }

/* Conversa: só a lista de mensagens desliza; a caixa de escrever fica sempre em baixo */
body.rota-chat { overflow: hidden; }
body.rota-chat .rodape, body.rota-chat .subir { display: none !important; }
body.rota-chat .pag-chat { padding-top: 16px !important; padding-bottom: 0 !important; }
.chat { height: calc(100dvh - var(--topo-h) - 32px); }
.chat-fio { overscroll-behavior: contain; }
.chat-fio .fio-nada { flex: none; margin: auto; max-width: 320px; padding: 16px 18px; background: rgba(255, 255, 255, .85); }
.chat-compor { position: sticky; bottom: 0; }
@media (max-width: 900px) {
  body.rota-chat .abas-m { display: none !important; }
  body.rota-chat main, body.rota-chat #app { padding: 0 !important; }
  .chat { position: fixed; left: 0; right: 0; top: var(--topo-h); bottom: 0; height: auto; border-radius: 0; z-index: 5; }
}

/* Pedidos para ser avaliador */
.pedido-tag { display: inline-flex; align-items: center; gap: 5px; margin-top: 4px; padding: 3px 9px; border-radius: 999px; background: #FFF4E5; color: #8A5300; font-size: .76rem; font-weight: 700; max-width: 260px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#pa-motivo { width: 100%; border: 1.5px solid var(--linha-2); border-radius: 14px; padding: 10px 12px; font: inherit; resize: vertical; background: var(--sup); }
.chat-fio .fio-nada { flex: 0 0 auto !important; height: auto !important; min-height: 0 !important; width: auto; }
/* Avaliar: por avaliar, aprovados e rejeitados */
.aval-abas, .seg-hist { display: inline-flex; flex-wrap: wrap; margin: 0 0 14px; }
.aval-abas button b, .seg-hist button b { margin-left: 4px; padding: 1px 8px; border-radius: 99px; background: var(--azul-claro); color: var(--bic); font-size: .8rem; }
.seg-hist { margin: 0; }
.adm-sec header { flex-wrap: wrap; gap: 8px; }
.tempo strong a { color: inherit; text-decoration: none; }
.tempo strong a:hover { color: var(--bic); text-decoration: underline; }

/* =========================================================
   v17: conversa no computador sem cortes; mensagens da equipa arrumadas
   ========================================================= */
/* Bolhas sem contorno, como no WhatsApp */
.chat-fio .msg, .chat-fio .msg.minha { border: 0 !important; box-shadow: 0 1px 1.5px rgba(16, 22, 51, .13); }
.chat-fio .msg.minha { color: var(--tinta); }
.chat-fio .msg.minha small { color: var(--tinta-2); }
/* Computador: a conversa ocupa o espaço todo ao lado do menu, a caixa de escrever nunca é cortada */
@media (min-width: 901px) {
  body.rota-chat .chat { position: fixed; top: calc(var(--topo-h) + 16px); bottom: 16px; left: calc(var(--lat-w) + 24px); right: 24px; height: auto; min-height: 0; max-width: none; margin: 0; }
  body.rota-chat .pag-chat { min-height: 0; }
}
/* Mensagens na administração: lista à esquerda, conversa à direita */
.msgs { height: calc(100dvh - var(--topo-h) - 48px); min-height: 520px; }
.msgs .conv-lista { display: flex; flex-direction: column; gap: 2px; padding: 8px; overflow-y: auto; }
.msgs .conv-i { display: grid !important; grid-template-columns: 44px minmax(0, 1fr) auto; align-items: center; gap: 10px; width: 100%; padding: 10px 12px; border: 0 !important; border-radius: 14px; background: none !important; font: inherit; color: var(--tinta); text-align: left; cursor: pointer; box-shadow: none !important; }
.msgs .conv-i:hover { background: var(--sup-2) !important; }
.msgs .conv-i.on { background: var(--azul-suave) !important; }
.msgs .conv-i > .av, .msgs .conv-i > span:first-child { width: 44px; height: 44px; flex: none; }
.msgs .conv-i > span:nth-child(2) { display: flex !important; flex-direction: column; min-width: 0; flex: initial !important; }
.msgs .conv-i strong { display: block; font-size: .95rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.msgs .conv-i small { display: block; color: var(--tinta-2); font-size: .82rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.msgs .conv-dir { display: flex !important; flex-direction: column !important; align-items: flex-end; gap: 4px; flex: none !important; }
.msgs .conv-dir time { font-size: .76rem; color: var(--tinta-3); }
.msgs .conv-dir em { min-width: 20px; height: 20px; padding: 0 6px; border-radius: 99px; background: var(--bic); color: #fff; font-style: normal; font-weight: 800; font-size: .74rem; display: grid; place-items: center; }
.msgs .conv-fio { display: flex; flex-direction: column; min-height: 0; }
.msgs .conv-fio > .fio-nada { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; color: var(--tinta-3); }
.msgs .fio-cab { padding: 12px 16px; border-bottom: 1px solid var(--linha); background: var(--sup); }
.msgs .fio-quem { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--tinta); min-width: 0; }
.msgs .fio-quem span { display: flex; flex-direction: column; min-width: 0; }
.msgs .fio-quem small { color: var(--tinta-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.msgs .chat-fio { flex: 1; min-height: 0; }
.msgs .msg-vazio { text-align: center; padding: 28px 16px; color: var(--tinta-2); }
.msgs .msg-vazio svg { width: 40px; height: 40px; opacity: .3; }
@media (max-width: 900px) { .msgs { height: calc(100dvh - var(--topo-h) - 24px); min-height: 0; } }
/* Na administração a conversa cabe no ecrã por baixo das abas (a caixa de escrever fica à vista) */
@media (min-width: 901px) { .adm .msgs { height: calc(100dvh - var(--topo-h) - 290px); min-height: 440px; } }
/* Mensagens da equipa: a caixa ocupa o ecrã; a lista e a conversa deslizam cada uma por dentro */
.adm .msgs { height: calc(100dvh - var(--topo-h) - 24px) !important; min-height: 420px; }
.adm .msgs .conv-lista, .adm .msgs .chat-fio { overflow-y: auto; overscroll-behavior: contain; }
.adm .msgs .conv-fio { min-height: 0; overflow: hidden; }


.aberto-ok { background: var(--azul-suave); color: var(--tinta); flex-wrap: wrap; }
.aberto-ok svg { color: var(--bic); }
.aberto-ok small { color: var(--tinta-2); display: block; }
.aberto-link { display: inline-flex; margin-top: 6px; font-size: .86rem; font-weight: 700; color: var(--bic); text-decoration: underline; text-underline-offset: 3px; }
.aval-doc { padding: 14px; border-radius: 16px; background: var(--azul-suave); }
.aval-doc p { margin: 0 0 12px; color: var(--tinta-2); font-size: .92rem; line-height: 1.45; }
.aval-doc p strong { display: block; color: var(--tinta); margin-bottom: 2px; }
.aval-doc .linha-btn { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 0; }
.aval-doc .linha-btn .btn { width: 100%; justify-content: center; }
.ano-passo { display: inline-flex; align-items: center; gap: 10px; margin: 2px 0 6px; }
.ano-passo input { width: 112px; height: 48px; text-align: center; font-size: 1.15rem; font-weight: 800; border: 1.5px solid var(--linha); border-radius: 14px; background: var(--sup); color: var(--tinta); -moz-appearance: textfield; appearance: textfield; }
.ano-passo input::-webkit-outer-spin-button, .ano-passo input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.ano-b { width: 48px; height: 48px; border-radius: 14px; border: 1.5px solid var(--linha); background: var(--sup-2); color: var(--tinta); display: grid; place-items: center; cursor: pointer; }
.ano-b svg { width: 20px; height: 20px; }
.ano-b:active { transform: scale(.95); }
.ano-passo.campo-erro input, .ano-passo.campo-erro .ano-b { border-color: #D93848; }
.foto-arr { position: absolute; top: 6px; left: 6px; width: 30px; height: 30px; border-radius: 10px; background: rgba(16, 22, 51, .72); color: #fff; display: grid; place-items: center; cursor: grab; touch-action: none; font-size: .85rem; }
.foto-i.a-arrastar { opacity: .55; outline: 2px dashed var(--bic); outline-offset: 2px; }
.dz-tirar { display: inline-flex; align-items: center; gap: 6px; margin-top: 10px; color: #C8283A; font-weight: 700; background: none; border: 0; cursor: pointer; }
.dz-tirar svg { width: 16px; height: 16px; }
.ordem-p .ord-seta { font-size: .72em; margin-left: 2px; }
.nav-l { position: relative; }
.nav-badge { margin-left: auto; min-width: 22px; height: 22px; padding: 0 7px; border-radius: 999px; background: #E5484D; color: #fff; font-size: .78rem; font-weight: 800; display: inline-grid; place-items: center; line-height: 1; }
body.lateral-recolhida .nav-badge { position: absolute; top: 4px; right: 6px; margin: 0; min-width: 18px; height: 18px; font-size: .7rem; padding: 0 5px; }
.aba-mais { position: relative; }
.aba-ponto { position: absolute; top: 6px; right: calc(50% - 18px); width: 9px; height: 9px; border-radius: 50%; background: #E5484D; box-shadow: 0 0 0 2px var(--sup); }
.envio-stats { display: flex; flex-wrap: wrap; gap: 6px 12px; margin-top: 8px; }
.envio-stats .st { display: inline-flex; align-items: center; gap: 5px; font-size: .8rem; color: var(--tinta-2); }
.envio-stats .st i { color: var(--bic); font-size: .82rem; }
.envio-stats .st b { color: var(--tinta); }
.envio-stats .st small { color: var(--tinta-3); }
.acoes-meu { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 12px; }
.acoes-meu .btn { width: 100%; height: 44px; margin: 0; justify-content: center; }
.def-senha, .def-perigo, .convite-perfil { margin-top: 22px !important; }
.cart-regras { margin-top: 20px; }
.tab-mat strong a { color: inherit; text-decoration: none; }
.tab-mat strong a:hover { color: var(--bic); text-decoration: underline; }
.fio-cab { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.fio-tel { display: inline-flex !important; align-items: center; gap: 6px; }
.fio-wa { white-space: nowrap; }
.adm-ferr { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.acoes-uti { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.menu-uti-l { box-shadow: 0 18px 40px -16px rgba(16, 22, 51, .35); }
td[data-r="Papel"] .papel-tag, td[data-r="Papel"] .pt-tag, td[data-r="Papel"] .pedido-tag { display: inline-flex; margin: 2px 4px 2px 0; }
td[data-r="Decidido por"] { white-space: nowrap; }
@media (max-width: 900px) {
  body:not(.visitante):not(.modo-auth) .subir { bottom: calc(84px + env(safe-area-inset-bottom, 0px)); right: 14px; width: 44px; height: 44px; }
  body.rota-doc .subir { bottom: calc(96px + env(safe-area-inset-bottom, 0px)); }
}
@media (max-width: 760px) {
  .res-cab { flex-wrap: wrap; }
  .res-cab .res-dir { order: -1; width: 100%; display: flex; gap: 8px; align-items: center; }
  .res-cab .res-dir .ordem-p { flex: 1; min-width: 0; }
  .res-cab .contagem { width: 100%; margin: 0; }
  .ordem-p button i { display: inline-block !important; }
  .ordem-p button { padding: 0 10px; gap: 5px; }
  .tab-pat { overflow: visible; }
  .tab-pat table { min-width: 0 !important; }
  .tab-pat td:last-child { min-width: 0 !important; }
  .resumo { gap: 14px; }
  .convite-mini { padding: 18px; gap: 8px; }
  .convite-mini p { margin: 0; line-height: 1.45; }
  .convite-mini .btn { align-self: flex-start; margin-top: 4px; }
  .aviso-sug { margin: 18px 0 8px; align-items: flex-start; padding: 16px; flex-wrap: wrap; }
  .aviso-sug p { margin: 0; line-height: 1.5; }
  .aviso-sug p strong { display: block; margin-bottom: 4px; }
  .aviso-sug .btn { margin-top: 6px; }
  .aval-abas { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); width: 100%; gap: 4px; }
  .aval-abas button { height: auto !important; min-height: 50px; padding: 8px 4px !important; font-size: .82rem; line-height: 1.2; white-space: normal; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; }
  .aval-abas button b { font-size: .95rem; }
  .fila-i { grid-template-columns: 56px minmax(0, 1fr); gap: 10px 12px; padding: 14px; }
  .fila-i .fila-quem { grid-column: 1 / -1; }
  .fila-i .fila-acoes { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; justify-content: stretch; }
  .fila-i .fila-acoes .btn:first-child { grid-column: 1 / -1; }
  .fila-i .fila-acoes .btn { width: 100%; justify-content: center; height: 42px; }
  .envio-stats .st small { display: none; }
  .acoes-uti { justify-content: flex-start; flex-wrap: wrap; }
  td[data-r="Decidido por"] { white-space: normal; }
}
a.uni { text-decoration: none; color: inherit; }
.unis-pag { margin-top: 6px; grid-template-columns: repeat(auto-fill, minmax(min(190px, 100%), 1fr)); }
.escola-chips { flex-wrap: wrap; gap: 8px; }
.escola-chips a.chip { text-decoration: none; }
.seo { max-width: 920px; }
.seo h1 { font-size: clamp(1.6rem, 4vw, 2.3rem); margin: 6px 0 10px; }
.seo p { color: var(--tinta-2); line-height: 1.6; }
.seo-bloco { margin: 26px 0; }
.seo-bloco h2 { font-size: 1.15rem; margin: 0 0 10px; }
.seo-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.seo-lista li { display: flex; flex-direction: column; padding: 12px 14px; border: 1px solid var(--linha); border-radius: 14px; background: var(--sup); }
.seo-lista a { font-weight: 700; color: var(--tinta); text-decoration: none; }
.seo-lista small { color: var(--tinta-3); margin-top: 2px; }
.seo-ficha { display: grid; grid-template-columns: max-content 1fr; gap: 6px 14px; margin: 16px 0; }
.seo-ficha dt { font-weight: 700; color: var(--tinta-3); }
.seo-ficha dd { margin: 0; }
.seo-previa { display: block; max-width: 300px; width: 100%; height: auto; border-radius: 14px; border: 1px solid var(--linha); margin: 10px 0 16px; }
.seo-ligacoes { display: flex; flex-wrap: wrap; gap: 8px 16px; }
@media (max-width: 760px) { .unis-pag { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* =========================================================
   v16: acervo em números, ranking animado, pedidos de pontos e valores dos pontos
   ========================================================= */
/* Acervo em números (página inicial de quem ainda não entrou) */
.acervo-faixa { position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: clamp(24px, 4vw, 56px); align-items: center; padding: clamp(28px, 5vw, 60px); border-radius: 32px; background: var(--marca); color: #fff; }
.acervo-faixa .galoes { position: absolute; right: -50px; bottom: -70px; width: 320px; height: 320px; opacity: .08; pointer-events: none; }
.af-txt { position: relative; min-width: 0; }
.af-tit { font-size: clamp(1.9rem, 3.8vw, 3.1rem); line-height: 1.08; letter-spacing: -.035em; font-weight: 800; font-stretch: 88%; }
.af-num { font-variant-numeric: tabular-nums; }
.af-rodar { display: inline-grid; vertical-align: bottom; max-width: 100%; }
.af-palavra { grid-area: 1 / 1; display: block; transition: transform .45s cubic-bezier(.2, .8, .2, 1) .16s, opacity .35s .16s; }
.af-palavra > span { padding: 0 .22em .02em; border-radius: .18em; background: rgba(255, 255, 255, .16); box-shadow: inset 0 -.07em 0 rgba(255, 255, 255, .6); -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.af-palavra.entra { transform: translateY(.5em); opacity: 0; }
.af-palavra.sai { transform: translateY(-.4em); opacity: 0; transition: transform .25s ease-in, opacity .2s ease-in; }
.af-sub { margin: 18px 0 26px; color: rgba(255, 255, 255, .86); font-size: 1.06rem; max-width: 34em; }
.af-acoes { display: flex; flex-wrap: wrap; gap: 10px; }
.af-btn { background: #fff; color: var(--marca); }
.af-btn:hover { background: #EEF2FF; }
.af-btn-2 { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .55); }
.af-btn-2:hover { background: rgba(255, 255, 255, .1); border-color: #fff; }
.af-nums { position: relative; list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.af-nums li { display: flex; align-items: baseline; gap: 12px; padding: 16px 20px; border-radius: 20px; background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .16); }
.af-nums b { font-size: clamp(1.8rem, 3vw, 2.4rem); font-weight: 800; font-stretch: 84%; line-height: 1; font-variant-numeric: tabular-nums; }
.af-nums span { color: rgba(255, 255, 255, .84); font-weight: 600; }
@media (max-width: 860px) { .acervo-faixa { grid-template-columns: 1fr; } .af-nums { grid-template-columns: repeat(auto-fit, minmax(min(150px, 100%), 1fr)); } .af-nums li { padding: 14px 16px; } }
@media (max-width: 520px) { .af-acoes .btn { width: 100%; justify-content: center; } .af-nums { grid-template-columns: 1fr; gap: 8px; } .af-nums li { padding: 10px 16px; } .af-nums b { font-size: 1.7rem; } }

/* Ranking explicado, com o avatar e o chapéu de cada patente */
.rk-cab { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(20px, 4vw, 56px); align-items: end; }
.rk-cab .sec-sub { margin-top: 0; }
.rk-palco { margin-top: clamp(28px, 4vw, 44px); padding: clamp(20px, 3vw, 32px) clamp(14px, 3vw, 32px) 0; border-radius: 30px; background: var(--azul-suave); overflow: hidden; }
.rk-escada { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: clamp(6px, 1.2vw, 14px); align-items: end; }
.rk-degrau { display: flex; flex-direction: column; align-items: center; min-width: 0; }
.rk-quem { display: flex; flex-direction: column; align-items: center; gap: 8px; margin-bottom: 10px; }
.rk-av { width: clamp(52px, 6.4vw, 84px) !important; height: clamp(52px, 6.4vw, 84px) !important; border-radius: 50%; background: #fff; box-shadow: 0 10px 22px -12px rgba(16, 22, 51, .45); }
.rk-bonus { padding: 3px 10px; border-radius: 99px; background: var(--sup); color: var(--bic); font-size: .8rem; font-weight: 800; white-space: nowrap; transition: background .3s, color .3s, transform .3s; }
.rk-bloco { position: relative; width: 100%; height: calc(112px + var(--i) * 28px); padding: 14px 10px; border-radius: 18px 18px 0 0; background: var(--sup); display: flex; flex-direction: column; align-items: center; text-align: center; gap: 4px; }
.rk-nivel { position: absolute; top: 8px; left: 10px; font-size: .78rem; font-weight: 800; color: var(--tinta-3); }
.rk-bloco .ins { width: 34px; height: 34px; flex: none; }
.rk-bloco strong { font-size: .96rem; line-height: 1.15; }
.rk-bloco small { color: var(--tinta-2); font-size: .8rem; line-height: 1.25; }
.rk-bloco em { font-style: normal; font-size: .78rem; font-weight: 750; color: var(--bic); }
.rk-degrau:nth-child(n + 4) .rk-bloco { background: var(--marca); color: #fff; }
.rk-degrau:nth-child(n + 4) .rk-bloco small, .rk-degrau:nth-child(n + 4) .rk-nivel { color: rgba(255, 255, 255, .78); }
.rk-degrau:nth-child(n + 4) .rk-bloco em { color: #fff; }
.rk-degrau:nth-child(6) .rk-bloco { background: #101633; }
.rk-acoes { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
/* Entrada: os degraus sobem por ordem e cada pessoa salta para o seu; depois uma patente de cada vez fica em destaque */
.rk-palco .rk-bloco { clip-path: inset(100% 0 0 0); transition: clip-path .7s cubic-bezier(.2, .8, .2, 1) calc(var(--i) * 110ms), box-shadow .3s; }
.rk-palco .rk-quem { opacity: 0; transform: translateY(-26px); transition: opacity .4s calc(var(--i) * 110ms + 380ms), transform .5s cubic-bezier(.3, 1.5, .5, 1) calc(var(--i) * 110ms + 380ms); }
.rk-palco.visivel .rk-bloco { clip-path: inset(0 0 0 0); }
.rk-palco.visivel .rk-quem { opacity: 1; transform: none; }
.rk-palco.pronto .rk-bloco, .rk-palco.pronto .rk-quem { transition-delay: 0s; }
.rk-palco.visivel .rk-degrau.ativo .rk-quem { transform: translateY(-10px); }
.rk-degrau.ativo .rk-bonus { background: var(--bic); color: var(--sobre-bic); transform: scale(1.08); }
.rk-degrau.ativo .rk-bloco { box-shadow: inset 0 0 0 3px var(--bic); }
.rk-degrau.ativo:nth-child(n + 4) .rk-bloco { box-shadow: inset 0 0 0 3px #AFC0FF; }
@media (max-width: 760px) {
  .rk-cab { grid-template-columns: 1fr; gap: 12px; }
  .rk-palco { padding: 16px; }
  .rk-escada { grid-template-columns: 1fr; gap: 10px; }
  .rk-degrau { flex-direction: row; align-items: stretch; gap: 12px; padding-left: calc(var(--i) * 8px); }
  .rk-quem { width: 96px; flex: none; margin: 0; justify-content: center; }
  .rk-bonus { font-size: .72rem; padding: 2px 8px; }
  .rk-av { width: 58px !important; height: 58px !important; }
  .rk-bloco { height: auto; flex: 1; border-radius: 16px; display: grid; grid-template-columns: 34px minmax(0, 1fr); column-gap: 10px; row-gap: 2px; align-items: center; justify-items: start; text-align: left; padding: 12px 34px 12px 14px; }
  .rk-bloco .ins { grid-row: span 2; }
  .rk-bloco em { grid-column: 2; }
  .rk-nivel { top: 10px; left: auto; right: 12px; }
  .rk-palco .rk-bloco { clip-path: none; opacity: 0; transform: translateX(-14px); transition: opacity .45s calc(var(--i) * 90ms), transform .45s calc(var(--i) * 90ms), box-shadow .3s; }
  .rk-palco.visivel .rk-bloco { opacity: 1; transform: none; }
  .rk-palco.visivel .rk-degrau.ativo .rk-quem { transform: scale(1.07); }
  .rk-acoes .btn { width: 100%; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
  .rk-palco .rk-bloco, .rk-palco .rk-quem, .af-palavra, .rk-bonus { transition: none !important; }
  .rk-palco .rk-bloco { clip-path: none; opacity: 1; transform: none; }
  .rk-palco .rk-quem { opacity: 1; transform: none; }
}

/* Pedir pontos à equipa */
.pp-modal form { text-align: left; margin-top: 6px; }
.pp-modal .campo + .campo { margin-top: 14px; }
.pp-numero { display: grid; grid-template-columns: 46px minmax(0, 1fr) 46px; gap: 8px; align-items: center; }
.pp-numero input { text-align: center; font-size: 1.5rem !important; font-weight: 800; height: 56px !important; font-variant-numeric: tabular-nums; }
.pp-numero .ib { width: 46px; height: 46px; border-radius: 14px; border: 1.5px solid var(--linha-2); background: var(--sup); }
.pp-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.pp-ajuda { color: var(--tinta-3); font-size: .82rem; }
.pp-citacao { margin: 0 0 16px; padding: 12px 14px; border-radius: 14px; background: var(--azul-suave); color: var(--tinta-2); font-style: italic; text-align: left; overflow-wrap: anywhere; }
.pp-modal .linha-btn { margin-top: 18px; }
.pp-modal .linha-btn .btn { flex: 1; justify-content: center; }

/* Painel: aviso de pedidos, pedidos de pontos e valores dos pontos */
.aviso-pedidos { display: flex; align-items: center; gap: 14px; padding: 14px 18px; margin: 0 0 16px; border-radius: 18px; background: var(--azul-suave); border: 1px solid var(--azul-claro); color: var(--tinta-2); }
.aviso-pedidos > i { font-size: 1.3rem; color: var(--bic); }
.aviso-pedidos p { margin: 0; flex: 1; }
.aviso-pedidos strong { display: block; color: var(--tinta); }
.n-chip.n-vivo { background: var(--bic); color: var(--sobre-bic); }
.pts-seg { margin: 0 0 14px; flex-wrap: wrap; height: auto; }
.pts-seg button { display: inline-flex; align-items: center; gap: 8px; }
.pp-adm { display: grid; gap: 16px; }
.pp-lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 380px), 1fr)); gap: 14px; }
.pp-cartao { display: flex; flex-direction: column; gap: 12px; padding: 16px; border-radius: 20px; border: 1px solid var(--linha); background: var(--sup-2); min-width: 0; }
.pp-quem { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px; align-items: center; }
.pp-quem .av { width: 44px; height: 44px; }
.pp-quem strong { display: block; }
.pp-quem strong a { color: inherit; text-decoration: none; }
.pp-quem strong a:hover { text-decoration: underline; }
.pp-quem small { display: block; color: var(--tinta-3); font-size: .82rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pp-pede { text-align: right; }
.pp-pede b { display: block; font-size: 1.5rem; font-weight: 800; color: var(--bic); line-height: 1; font-variant-numeric: tabular-nums; }
.pp-pede small { white-space: nowrap; }
.pp-dados { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.pp-dados li { padding: 4px 10px; border-radius: 99px; background: var(--sup); border: 1px solid var(--linha); font-size: .8rem; color: var(--tinta-2); }
.pp-dados b { color: var(--tinta); }
.pp-motivo { margin: 0; padding: 12px 14px; border-radius: 14px; background: var(--sup); border-left: 3px solid var(--bic); color: var(--tinta); white-space: pre-line; overflow-wrap: anywhere; }
.pp-motivo.vazio { color: var(--tinta-3); border-left-color: var(--linha-2); font-style: italic; }
.pp-resp { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 10px; align-items: end; }
.pp-campo { display: flex; flex-direction: column; gap: 5px; font-size: .82rem; font-weight: 680; min-width: 0; }
.pp-campo small { font-weight: 500; color: var(--tinta-3); }
.pp-campo input { height: 42px; padding: 0 12px; border-radius: 12px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta); font: inherit; font-size: .95rem; min-width: 0; }
.pp-campo input:focus { outline: none; border-color: var(--bic); box-shadow: 0 0 0 3px var(--azul-claro); }
.pp-botoes { grid-column: 1 / -1; display: flex; gap: 8px; }
.pp-botoes .btn { flex: 1; justify-content: center; }
.pp-hist > li { display: grid !important; grid-template-columns: 36px minmax(0, 1fr) auto; gap: 12px; align-items: center; }
.pp-hist > li > .av { width: 36px; height: 36px; }
.pp-hist > li > p { margin: 0; min-width: 0; }
.pp-hist > li > .estado-envio { position: static; justify-self: end; width: auto; height: 26px; padding: 0 10px; border-radius: 99px; display: inline-flex; white-space: nowrap; margin: 0; }
@media (max-width: 520px) { .pp-resp { grid-template-columns: 1fr; } }
.vp { display: grid; gap: 16px; }
.vp-aviso { display: flex; align-items: center; gap: 10px; margin: 0; padding: 12px 16px; border-radius: 14px; background: var(--sup-3); color: var(--tinta-2); }
.vp-grelha { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.vp-col { display: grid; gap: 16px; }
.vp-linha { display: grid; grid-template-columns: minmax(0, 1fr) 118px 58px; gap: 10px; align-items: center; padding: 8px 0; border-top: 1px solid var(--linha); }
.vp-linha:first-of-type { border-top: 0; }
.vp-rot { font-weight: 650; font-size: .92rem; line-height: 1.3; }
.vp-rot small { display: block; font-weight: 500; color: var(--tinta-3); font-size: .82rem; }
.vp-in { display: inline-flex; align-items: center; gap: 4px; height: 42px; padding: 0 10px; border-radius: 12px; border: 1.5px solid var(--linha-2); background: var(--sup); }
.vp-in:focus-within { border-color: var(--bic); box-shadow: 0 0 0 3px var(--azul-claro); }
.vp-in i { font-style: normal; font-weight: 800; color: var(--tinta-3); min-width: 8px; text-align: center; }
.vp-in input { width: 100%; min-width: 0; border: 0; outline: none; background: none; font: inherit; font-size: 1rem; font-weight: 750; color: var(--tinta); text-align: right; font-variant-numeric: tabular-nums; -moz-appearance: textfield; appearance: textfield; }
.vp-in input:disabled { color: var(--tinta-2); }
.vp-in input::-webkit-outer-spin-button, .vp-in input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.vp-orig { font-style: normal; font-size: .78rem; color: var(--tinta-3); white-space: nowrap; }
.vp-tab td .vp-in { width: 124px; }
.vp-tab td .vp-orig { display: block; margin-top: 3px; }
.vp-fixo { color: var(--tinta-3); font-weight: 700; }
.vp-rodape { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; padding: 14px 18px; border-radius: 20px; background: var(--azul-suave); border: 1px solid var(--azul-claro); position: sticky; bottom: 12px; z-index: 3; }
.vp-rodape p { margin: 0; display: flex; gap: 8px; align-items: flex-start; color: var(--tinta-2); font-size: .88rem; flex: 1; min-width: 240px; }
.vp-rodape p svg { flex: none; width: 18px; height: 18px; margin-top: 1px; color: var(--bic); }
.vp-rodape .linha-btn { margin: 0; }
@media (max-width: 900px) { .vp-grelha { grid-template-columns: 1fr; } .vp-rodape { position: static; } }
@media (max-width: 520px) { .vp-linha { grid-template-columns: minmax(0, 1fr) 104px; } .vp-linha .vp-orig { grid-column: 2; text-align: right; } .vp-linha .vp-orig:empty { display: none; } .vp-tab td .vp-in { width: 100%; } }

.selo-papel { display: inline-flex; align-items: center; gap: 4px; height: 22px; padding: 0 9px 0 6px; border-radius: 999px; font-family: var(--f); font-size: .76rem; font-weight: 800; letter-spacing: 0; line-height: 1; vertical-align: middle; white-space: nowrap; flex: none; }
.selo-papel svg { width: 14px; height: 14px; flex: none; }
.selo-aval { background: #E7EBF9; color: #1F317A; }
.selo-equipa { background: var(--azul-claro); color: var(--bic); }
.selo-papel.so-ic { width: 20px; height: 20px; padding: 0; justify-content: center; }
.selo-papel.so-ic svg { width: 13px; height: 13px; }
:root[data-theme="dark"] .selo-aval { background: #1D2550; color: #6E85E3; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .selo-aval { background: #1D2550; color: #6E85E3; } }
.quem .selo-papel.so-ic { width: 18px; height: 18px; }
.rank-lin strong .selo-papel { margin-left: 6px; }
.podio-c .selo-papel { margin: 3px 0; }
.pessoa-tags { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 8px; }
.pessoa-tags .pt-tag { margin-right: 0; }
.perfil-cab .selo-papel { margin-top: 6px; }
.autor-topo { display: inline-flex; align-items: center; gap: 10px; max-width: 100%; margin: 4px 0 14px; padding: 6px 14px 6px 6px; border-radius: 999px; }
.autor-topo .av { width: 40px; height: 40px; flex: none; }
.autor-topo .at-t { display: flex; flex-direction: column; min-width: 0; gap: 2px; }
.autor-topo .at-nome { display: flex; align-items: center; gap: 6px; min-width: 0; }
.autor-topo .at-nome strong { font-size: .95rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.autor-topo small { font-size: .8rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.autor-topo .ins { width: 30px; height: 30px; flex: none; }
.autor-topo .autor-seta { font-size: .76rem; color: var(--tinta-3); flex: none; }
@media (max-width: 760px) { .autor-topo { display: flex; border-radius: 18px; margin-bottom: 12px; } }
.vitrine .papel.fh { display: flex; flex-direction: column; }
.vitrine .papel.fh > * { transition: opacity .36s ease, transform .36s ease; }
.vitrine .papel.fh-sai > * { opacity: 0; transform: translateY(6px); }
.fh-uni { display: flex; flex-direction: column; min-width: 0; line-height: 1.2; }
.fh-uni strong { font-size: .9em; }
.fh-uni span { font-size: .74em; color: var(--papel-sub); }
.fh-tit { font-size: 1.15em; }
.fh-q { font-size: .8em; font-weight: 500; display: flex; flex-direction: column; gap: .75em; }
.fh-q li { margin: 0; }
.fh-val { color: var(--papel-sub); }
.fh-res { margin: .35em 0 0 .3em; }
.fh-notas { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .6em; font-size: .8em; font-weight: 500; }
.fh-notas li { padding-left: .8em; border-left: .18em solid var(--papel-linha); }
.fh-notas li.fh-marca { border-left-color: var(--caneta); background: linear-gradient(transparent 58%, rgba(255, 208, 0, .5) 58%); }
.fh-cod { margin: 0; padding: .8em .9em; border-radius: .5em; background: color-mix(in srgb, var(--papel-linha) 55%, transparent); font: 600 .74em/1.55 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; white-space: pre; overflow: hidden; }
.fh-mao { margin: .7em 0 0 .4em; }
.fh-nota { font-size: 2.5em; }
@media (prefers-reduced-motion: reduce) { .vitrine .papel.fh > * { transition: none; } }
@media (max-width: 760px) { .ordem-p button { order: var(--o, 0); } }
.exp-chips { display: none; }
@media (max-width: 1060px) {
  .exp-chips { display: flex; gap: 8px; margin: 12px 0 0; padding: 2px 2px 4px; overflow-x: auto; scrollbar-width: none; -webkit-mask-image: linear-gradient(90deg, #000 88%, transparent); mask-image: linear-gradient(90deg, #000 88%, transparent); }
  .exp-chips::-webkit-scrollbar { display: none; }
}
.xchip { flex: none; display: inline-flex; align-items: center; gap: 6px; height: 38px; max-width: 72vw; padding: 0 11px 0 14px; border-radius: 999px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta); font: inherit; font-size: .86rem; font-weight: 700; cursor: pointer; white-space: nowrap; }
.xchip span { overflow: hidden; text-overflow: ellipsis; }
.xchip svg { width: 15px; height: 15px; flex: none; }
.xchip b { min-width: 20px; height: 20px; padding: 0 6px; border-radius: 999px; background: var(--sobre-bic); color: var(--bic); font-size: .78rem; display: inline-grid; place-items: center; }
.xchip.on { background: var(--bic); border-color: var(--bic); color: var(--sobre-bic); }
.xchip:focus-visible { outline: 3px solid var(--azul-claro); outline-offset: 2px; }
.xchip-todos { padding-left: 12px; }
.folha-filtros { box-shadow: 0 -20px 50px -24px rgba(8, 12, 30, .5); }
.folha-filtros .fac-cab { position: sticky; top: -4px; z-index: 1; background: var(--mesa); padding-top: 10px; }
.folha-filtros .fac-op { min-height: 40px; }
@media (max-width: 760px) { .fe-lista .fac-op { min-height: 48px; font-size: .96rem; } }
.meus-ferr { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin-bottom: 16px; }
.meus-ferr .chips { margin: 0; }
.exp-busca.meus-busca { flex: 1 1 260px; max-width: 420px; }
@media (max-width: 760px) { .exp-busca.meus-busca { max-width: none; flex-basis: 100%; } }
.online-agora { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 22px; padding: 14px 18px; margin-bottom: 14px; border-radius: 20px; background: var(--sup); border: 1px solid var(--linha); }
.oa-ponto { position: relative; width: 12px; height: 12px; border-radius: 50%; background: #1632A3; flex: none; }
.oa-ponto::after { content: ""; position: absolute; inset: -6px; border-radius: 50%; border: 2px solid #1632A3; opacity: 0; animation: oaPulso 2.2s ease-out infinite; }
@keyframes oaPulso { 0% { transform: scale(.45); opacity: .85; } 100% { transform: scale(1.35); opacity: 0; } }
.oa-num { display: flex; align-items: baseline; gap: 8px; }
.oa-num b { font-size: 1.9rem; font-weight: 800; letter-spacing: -.02em; line-height: 1; font-variant-numeric: tabular-nums; }
.oa-num span { font-weight: 750; color: var(--tinta-2); }
.oa-div { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: .88rem; color: var(--tinta-2); }
.oa-div b { color: var(--tinta); font-variant-numeric: tabular-nums; }
.oa-pessoas { display: flex; align-items: center; margin-left: auto; }
.oa-p { display: inline-flex; margin-left: -8px; border-radius: 50%; box-shadow: 0 0 0 2px var(--sup); }
.oa-p:first-child { margin-left: 0; }
.oa-p .av { width: 34px; height: 34px; }
.oa-mais { margin-left: 8px; font-size: .8rem; font-weight: 800; color: var(--tinta-2); }
@media (max-width: 760px) { .oa-pessoas { margin-left: 0; flex-basis: 100%; } }
@keyframes vivoBrilho { 0% { color: var(--bic); transform: scale(1.2); } 100% { transform: none; } }
.vivo { display: inline-block; animation: vivoBrilho .6s ease-out; }
@keyframes titVivo { 0% { border-color: var(--bic); box-shadow: 0 0 0 4px var(--azul-claro); } }
#u-titulo.tit-vivo { animation: titVivo .9s ease-out; }
.btn.copiado { background: #E7EBF9; border-color: #BAC4EB; color: #1F317A; }
.partilha-g { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 6px 0 14px; }
.partilha-g .btn { justify-content: center; }
.partilha-g .btn svg { width: 18px; height: 18px; }
@media (prefers-reduced-motion: reduce) { .vivo, #u-titulo.tit-vivo, .oa-ponto::after { animation: none; } }
.fe-cx > .exp-busca.pequeno { flex: none; height: 48px; max-width: none; }
.podio-c .selo-papel { align-self: flex-start; }

/* =========================================================
   v17: ver resolução, editar, vários cursos e docentes, explorar com filtros que abrem, visitas e IA nas escolas
   ========================================================= */
.btn-resolucao { margin-top: 10px; background: var(--sup-3); color: var(--tinta-2); border: 1.5px dashed var(--linha-2); cursor: pointer; }
.btn-resolucao svg { opacity: .7; }
.btn-resolucao em { font-style: normal; font-size: .76rem; font-weight: 800; padding: 3px 9px; border-radius: 99px; background: var(--azul-claro); color: var(--bic); }
.btn-resolucao:hover { border-color: var(--bic); color: var(--tinta); }
.btn-editar { margin-top: 10px; width: 100%; justify-content: center; }
.cursos-extra { margin-top: 16px; }
.cursos-extra .ajuda { margin-top: 8px; }
.chips-ed { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.chip-ed { display: inline-flex; align-items: center; gap: 6px; padding: 5px 5px 5px 14px; border-radius: 99px; background: var(--azul-claro); color: var(--bic); font-weight: 700; font-size: .9rem; max-width: 100%; }
.chip-ed button { flex: none; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: rgba(255, 255, 255, .75); border: 0; color: var(--bic); cursor: pointer; }
.chip-ed button svg { width: 14px; height: 14px; }
.chip-mais { display: inline-flex; align-items: center; gap: 6px; padding: 7px 14px; border-radius: 99px; border: 1.5px dashed var(--linha-2); background: transparent; color: var(--tinta-2); font: inherit; font-weight: 700; font-size: .9rem; cursor: pointer; }
.chip-mais:hover:not(:disabled) { border-color: var(--bic); color: var(--bic); }
.chip-mais:disabled { opacity: .5; cursor: not-allowed; }
.chip-mais svg { width: 16px; height: 16px; }
.campo-doc .chips-ed { margin: 4px 0 10px; }
.doc-juntar { display: flex; gap: 8px; }
.doc-juntar input { flex: 1; min-width: 0; }
.doc-juntar .btn { flex: none; }
.tipo-outro { margin-top: 14px; }
.recibo-ed p { margin: 6px 0 12px; }
.recibo-ed .btn { margin-top: 6px; }
/* Explorar: cada filtro abre e fecha */
.fac h3 { display: flex; align-items: center; gap: 8px; }
.fac-tit { flex: 1; display: flex; align-items: center; gap: 8px; padding: 10px 2px; background: none; border: 0; font: inherit; font-weight: 750; color: var(--tinta); cursor: pointer; text-align: left; }
.fac-tit span { flex: 1; }
.fac-tit i { font-size: .82rem; color: var(--tinta-3); transition: transform .2s; }
.fac.aberta .fac-tit i { transform: rotate(180deg); }
.fac-nsel { min-width: 22px; height: 22px; padding: 0 7px; border-radius: 99px; background: var(--bic); color: var(--sobre-bic); font-size: .78rem; display: inline-grid; place-items: center; }
.fac-op.zero { opacity: .5; }
/* Ordenar: botões no computador, menu no telemóvel */
.ordem-menu { display: none; position: relative; }
.ordem-menu summary { list-style: none; display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 14px; border-radius: 99px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta); font-weight: 700; font-size: .9rem; cursor: pointer; white-space: nowrap; }
.ordem-menu summary::-webkit-details-marker { display: none; }
.ordem-menu summary svg { width: 16px; height: 16px; }
.ordem-menu[open] summary { border-color: var(--bic); }
.om-lista { position: absolute; right: 0; top: calc(100% + 6px); z-index: 30; min-width: 250px; padding: 6px; border-radius: 16px; background: var(--sup); border: 1px solid var(--linha); box-shadow: 0 20px 50px -20px rgba(16, 22, 51, .35); display: grid; }
.om-lista button { display: flex; align-items: center; gap: 10px; padding: 11px 12px; border: 0; border-radius: 12px; background: none; font: inherit; font-weight: 650; color: var(--tinta); text-align: left; cursor: pointer; }
.om-lista button span { flex: 1; }
.om-lista button i { width: 18px; text-align: center; color: var(--tinta-3); }
.om-lista button svg { width: 18px; height: 18px; color: var(--bic); }
.om-lista button[aria-checked="true"], .om-lista button:hover { background: var(--azul-suave); color: var(--bic); }
@media (max-width: 760px) { .res-dir .ordem-p { display: none; } .ordem-menu { display: block; } }
/* Painel: visitas guardadas */
.visitas .vis-hoje { display: grid; grid-template-columns: auto auto minmax(0, 1fr); gap: 22px; align-items: end; margin-bottom: 16px; }
.vis-n b { display: block; font-size: 2rem; font-weight: 800; line-height: 1; font-variant-numeric: tabular-nums; }
.vis-n span { display: block; font-weight: 700; margin-top: 4px; }
.vis-n small { color: var(--tinta-3); font-size: .8rem; }
.vis-horas { position: relative; height: 72px; display: flex; align-items: flex-end; gap: 2px; padding-bottom: 16px; }
.vis-horas i { flex: 1; background: #93A6F8; border-radius: 3px 3px 0 0; }
.vis-horas span { position: absolute; bottom: 0; font-size: .72rem; color: var(--tinta-3); }
.vis-horas span:nth-of-type(1) { left: 0; }
.vis-horas span:nth-of-type(2) { left: 50%; transform: translateX(-50%); }
.vis-horas span:nth-of-type(3) { right: 0; }
.vis-dias { height: 120px; display: flex; align-items: flex-end; gap: 3px; }
.vd { flex: 1; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; border-radius: 4px; overflow: hidden; background: var(--sup-3); }
.vd i { display: block; width: 100%; }
.vd-c { background: var(--bic); }
.vd-v { background: #93A6F8; }
.vis-leg { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 8px; font-size: .8rem; color: var(--tinta-2); }
.vis-leg i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 6px; vertical-align: middle; }
.vis-tab { margin-top: 12px; }
.vis-tab summary { cursor: pointer; font-weight: 700; color: var(--bic); }
.vis-tab .tab-w { margin-top: 10px; max-height: 320px; overflow: auto; }
@media (max-width: 760px) { .visitas .vis-hoje { grid-template-columns: 1fr 1fr; } .vis-horas { grid-column: 1 / -1; } }
/* Painel: interesse nas resoluções */
.res-kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-bottom: 12px; }
.res-kpis div { padding: 12px 14px; border-radius: 16px; background: var(--azul-suave); }
.res-kpis b { display: block; font-size: 1.6rem; font-weight: 800; line-height: 1.1; font-variant-numeric: tabular-nums; }
.res-kpis span { font-size: .8rem; color: var(--tinta-2); }
.res-top { list-style: none; margin: 0; padding: 0; counter-reset: r; display: grid; gap: 6px; }
.res-top li { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 14px; border: 1px solid var(--linha); }
.res-top li::before { counter-increment: r; content: counter(r); flex: none; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: var(--sup-3); font-weight: 800; font-size: .8rem; }
.res-top a { flex: 1; min-width: 0; color: inherit; text-decoration: none; }
.res-top a strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.res-top a small { color: var(--tinta-3); }
.res-top b { font-weight: 800; color: var(--bic); white-space: nowrap; }
.res-top b small { font-weight: 600; color: var(--tinta-3); }
@media (max-width: 520px) { .res-kpis { grid-template-columns: 1fr; } }
/* Escolas: preencher com IA */
.ia-pedido { margin: 6px 0 14px; padding: 14px; border-radius: 16px; background: var(--azul-suave); border: 1px solid var(--azul-claro); }
.ia-pedido pre { margin: 0 0 10px; white-space: pre-wrap; font: inherit; font-size: .84rem; line-height: 1.45; color: var(--tinta-2); max-height: 170px; overflow: auto; }
.ia-previa { margin: 10px 0 4px; }
.ia-resumo { margin: 0 0 10px; }
.ia-lista { display: grid; gap: 10px; max-height: 240px; overflow: auto; padding-right: 4px; }
.ia-fac strong { display: block; font-size: .9rem; margin-bottom: 6px; }
.ia-cursos { display: flex; flex-wrap: wrap; gap: 6px; }
.ia-c { padding: 4px 10px; border-radius: 99px; background: var(--azul-claro); color: var(--bic); font-weight: 650; font-size: .82rem; }
.ia-c small { opacity: .7; }
.ia-c.ja { background: var(--sup-3); color: var(--tinta-3); }
.btn-ia i { color: var(--bic); }
/* Reportar: explicação que segue para as mensagens da equipa */
.rep-texto { margin: 6px 0 14px; }
.rep-txt { margin: 6px 0; padding: 8px 12px; border-radius: 12px; background: var(--azul-suave); color: var(--tinta-2); font-size: .88rem; white-space: pre-line; overflow-wrap: anywhere; }
/* Explorar: dois materiais por linha no computador e um por linha no telemóvel (a imagem vê-se melhor) */
#exp-res .grelha-docs { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 20px; }
#exp-res .cartao-th .th { font-size: 7px; }
@media (max-width: 760px) { #exp-res .grelha-docs { grid-template-columns: 1fr; gap: 18px; } #exp-res .cartao-th .th { aspect-ratio: 16 / 10; font-size: 8px; } }
.cursos-extra .ajuda { font-size: .82rem; color: var(--tinta-3); }
@media (max-width: 760px) { .om-lista { left: 0; right: auto; } }

/* =========================================================
   v17
   ========================================================= */
.vp-rodape .linha-btn, .vp-botoes { display: flex; flex-wrap: wrap; gap: 12px; }
.vp-rodape .linha-btn .btn { margin: 0; }
@media (max-width: 560px) { .vp-botoes { width: 100%; } .vp-botoes .btn { flex: 1 1 200px; } }
.vp-tab .vp-acao { width: 52px; text-align: right; }
.vp-tab td.vp-acao:empty { padding: 0; }
.vp-nova .pt-tag { gap: 8px; width: 100%; }
.vp-nome { flex: 1; min-width: 0; width: 100%; height: 40px; border: 1.5px solid var(--linha-2); border-radius: 12px; padding: 0 10px; background: var(--sup); font: inherit; font-weight: 700; color: var(--tinta); outline: none; }
.vp-nome:focus { border-color: var(--bic); box-shadow: 0 0 0 3px var(--azul-claro); }
.vp-mais { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin-top: 14px; }
.vp-mais small { color: var(--tinta-3); font-size: .82rem; }
@media (max-width: 760px) { .vp-tab td.vp-acao { text-align: left; } .vp-tab td.vp-acao:empty { display: none; } }

.acervo-faixa.so-txt { grid-template-columns: minmax(0, 1fr); }
.acervo-faixa.so-txt .af-txt { max-width: 48rem; }
.af-num { display: inline-block; min-width: 1.2ch; }

.missoes-fortes { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 12px; padding: 12px 0 14px; border-bottom: 1px solid var(--linha); }
.missao.missao-forte { grid-template-columns: 52px minmax(0, 1fr); align-items: start; gap: 6px 14px; padding: 18px; border: 1.5px solid var(--azul-claro); border-radius: 22px; background: var(--azul-suave); }
.missao-forte .ic { width: 52px; height: 52px; border-radius: 16px; background: var(--marca); color: #fff; }
.missao-forte .ic svg { width: 24px; height: 24px; }
.missao-forte strong { font-size: 1.06rem; }
.missao-forte p { margin: 2px 0 0; }
.missao-forte .dir { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 10px; flex-wrap: wrap; }
.missao-forte .ganho { height: 32px; padding: 0 12px; background: var(--marca); color: #fff; font-size: .9rem; }
.missao-forte .btn { height: 48px; padding: 0 24px; font-size: 1rem; box-shadow: 0 10px 22px -12px var(--marca); }
.missao-forte .btn svg { width: 18px; height: 18px; }

.tab-mats .tab-mat { min-width: 0; }
.tab-mats .tab-mat strong a { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.tab-mats .tab-onde { margin-top: 1px; }
.tab-mats td.td-data { white-space: nowrap; }
.tab-mats .td-estado .td-sub { margin-top: 4px; }
.tab-mats .acoes-td { width: 52px; }
.mat-nums { display: flex; flex-wrap: wrap; gap: 4px 12px; color: var(--tinta-2); font-size: .86rem; font-weight: 650; font-variant-numeric: tabular-nums; max-width: 210px; }
.mat-nums > span { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }
.mat-nums i { color: var(--tinta-3); font-size: .82rem; }
.ord-mat { height: 44px; }
@media (min-width: 761px) { .tab-mats { table-layout: auto; width: 100%; } .tab-mats td:first-child { max-width: 360px; } }

.contas-cx header { flex-wrap: wrap; gap: 10px; }
.seg-contas { width: auto; }
.seg-contas button { height: 30px; padding: 0 12px; font-size: .84rem; }
.contas-met { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 6px 0 14px; }
.contas-met button { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: 12px 14px; border-radius: 16px; border: 1.5px solid var(--linha); background: var(--sup); color: var(--tinta); text-align: left; cursor: pointer; font: inherit; min-width: 0; }
.contas-met button:hover { border-color: var(--azul-claro); }
.contas-met button[aria-selected="true"] { border-color: var(--marca); box-shadow: inset 0 0 0 1px var(--marca); background: var(--azul-suave); }
.contas-met small { color: var(--tinta-3); font-size: .82rem; font-weight: 700; }
.contas-met b { font-size: 1.5rem; font-weight: 800; line-height: 1.15; font-variant-numeric: tabular-nums; }
.contas-met span { color: var(--tinta-2); font-size: .8rem; display: inline-flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.contas-met .kpi-d { margin: 0; }
.g-barra { fill: var(--marca); }
.g-barra:hover { fill: var(--marca-2, var(--marca)); opacity: .85; }
.g-marca { fill: var(--marca); }
.contas-nota { margin: 8px 0 0; color: var(--tinta-3); font-size: .82rem; }
@media (max-width: 560px) { .contas-met { grid-template-columns: 1fr; } .contas-met button { flex-direction: row; align-items: baseline; flex-wrap: wrap; column-gap: 10px; } }

.cad-estado { display: flex; gap: 8px; align-items: flex-start; margin: 10px 0 0; padding: 10px 12px; border-radius: 14px; background: var(--azul-suave); color: var(--tinta-2); font-size: .88rem; }
.cad-estado svg { flex: none; width: 18px; height: 18px; margin-top: 1px; color: var(--bic); }
.cad-estado.nova { background: var(--sup-2); }
.lp-ajuda { display: block; margin-top: 8px; color: var(--tinta-3); font-size: .8rem; }
.lp-parece { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; margin-top: 10px; }
.lp-parece > span { display: inline-flex; align-items: center; gap: 6px; color: var(--tinta-2); font-size: .84rem; font-weight: 700; }
.lp-parece svg { width: 16px; height: 16px; color: var(--bic); }

.lem-num { list-style: none; margin: 12px 0 4px; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(130px, 100%), 1fr)); gap: 10px; }
.lem-num li { display: flex; flex-direction: column; padding: 12px 14px; border-radius: 16px; background: var(--sup-2); }
.lem-num b { font-size: 1.3rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.lem-num span { color: var(--tinta-3); font-size: .8rem; }

/* =========================================================
   v18: títulos mais leves, gráficos à largura real, visitas, disciplinas,
   emails, cartões compactos no explorar, ficheiro atual ao editar
   ========================================================= */

/* ---------- Títulos: menos grossos (a Poppins tem 500, 600, 700 e 800) ---------- */
h1, h2, h3, h4 { font-weight: 600; }
.cab-pag h1, .doc-cab h1, .pessoa-cab h1, .perfil-cab h1, .saudacao h1, .painel-doc h1, .folha-auth h1, .cart-intro h1, .modal h2, .ed-lado h2, .faixa-cta h2, .car-s h2, .bloco-cab h2, .confirmar h2 { font-weight: 600; letter-spacing: -.02em; }
.hero h1, .sec-tit { font-weight: 700; }
.cab-pag h1 { font-size: clamp(1.5rem, 2.4vw, 2.05rem); }
.saudacao h1, .perfil-cab h1, .pessoa-cab h1 { font-size: clamp(1.45rem, 2.4vw, 2rem); }
.doc-cab h1, .painel-doc h1 { font-size: clamp(1.35rem, 2.1vw, 1.85rem); }
.modal h2 { font-size: 1.35rem; }
.bloco-cab h2 { font-size: 1.2rem; }
.form-sec h2 { font-size: 1.05rem; font-weight: 600; }
.adm-sec h3 { font-size: 1rem; font-weight: 600; }
.tax-cab h3 { font-size: 1.1rem; font-weight: 600; line-height: 1.25; }
.cartao h3, .nota h3 { font-weight: 650; }
.kpi b { font-size: 1.45rem; font-weight: 700; }
.contas-met b { font-size: 1.35rem; font-weight: 700; }
.oa-num b { font-weight: 700; }

/* ---------- Visão geral: cartões primeiro e caixas com espaço entre elas ---------- */
.adm-vg { display: flex; flex-direction: column; gap: 16px; }
.adm-vg > * { margin: 0 !important; }
.pag.adm > .caixa.adm-sec + .caixa.adm-sec { margin-top: 16px; }

/* ---------- Gráficos (desenhados à largura real: o texto não estica) ---------- */
.graf-alvo { position: relative; width: 100%; }
.graf-alvo svg { display: block; overflow: visible; }
.g-linha { stroke: var(--linha); stroke-width: 1; }
.g-base { stroke: var(--linha-2); }
.g-txt { fill: var(--tinta-3); font-size: 12px; font-family: var(--f); }
.g-num { fill: var(--tinta); font-size: 12px; font-weight: 750; font-family: var(--f); font-variant-numeric: tabular-nums; paint-order: stroke; stroke: var(--sup); stroke-width: 3px; stroke-linejoin: round; }
.g-area { fill: var(--marca); opacity: .1; }
.g-l2 { stroke: #0F1F80; stroke-dasharray: 2 4; }
.g-marca { fill: var(--sup); stroke: var(--marca); stroke-width: 2; }
.g-m1 { stroke: #93A6F8; }
.g-m2 { stroke: #0F1F80; }
.g-barra { fill: var(--marca); }
.g-barra-v { fill: #A9B8FA; }
.g-alvo-h { fill: transparent; }
.g-alvo-h:hover { fill: var(--azul-suave); }
.g-barra, .g-barra-v, .g-marca, .g-l, .g-area, .g-num { pointer-events: none; }
.g-i1 { background: #93A6F8; }
.g-i2 { background: #0F1F80; }
[data-theme="dark"] .g-l2, [data-theme="dark"] .g-m2 { stroke: #C9D6FF; }
[data-theme="dark"] .g-i2 { background: #C9D6FF; }

/* ---------- Online agora: só contas ligadas ---------- */
.online-agora.vazio .oa-ponto { background: var(--tinta-3); }
.online-agora.vazio .oa-ponto::after { display: none; }
.oa-nada { color: var(--tinta-3); font-size: .9rem; }

/* ---------- Visitas ---------- */
.visitas header { flex-wrap: wrap; }
.seg-vis button { height: 32px; padding: 0 12px; font-size: .84rem; }
.vis-nums { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 2px 0 14px; }
.vis-nums > div { display: flex; flex-direction: column; gap: 1px; min-width: 0; padding: 12px 14px; border-radius: 16px; background: var(--sup-2); }
.vis-nums b { font-size: 1.5rem; font-weight: 750; line-height: 1.1; color: var(--tinta); font-variant-numeric: tabular-nums; }
.vis-nums span { font-weight: 650; font-size: .88rem; }
.vis-nums small { color: var(--tinta-3); font-size: .82rem; }
.vis-leg i.vl-c { background: var(--marca); }
.vis-leg i.vl-v { background: #A9B8FA; }
@media (max-width: 760px) { .vis-nums { grid-template-columns: 1fr 1fr; } .vis-nums b { font-size: 1.3rem; } }

/* ---------- Escolas e universidades: cursos (as disciplinas têm a sua aba) ---------- */
.tax-cursos-l { list-style: none; margin: 0; padding: 0; border: 1px solid var(--linha); border-radius: 18px; overflow: hidden; }
.tax-cl { display: flex; align-items: center; gap: 12px; padding: 11px 12px 11px 14px; background: var(--sup); }
.tax-cl + .tax-cl { border-top: 1px solid var(--linha); }
.tax-cl-ic { width: 18px; flex: none; text-align: center; color: var(--bic); }
.tax-cl-t { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.tax-cl-t strong { font-weight: 650; overflow-wrap: anywhere; }
.tax-cl-t small { color: var(--tinta-3); font-size: .8rem; }
.tax-cl-t small:empty { display: none; }
.tax-cl-disc { display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 12px; border-radius: 999px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta-2); font: inherit; font-size: .84rem; font-weight: 650; white-space: nowrap; cursor: pointer; }
.tax-cl-disc b { color: var(--bic); font-weight: 750; }
.tax-cl-disc i { font-size: .69rem; opacity: .6; }
.tax-cl-disc:hover { border-color: var(--bic); color: var(--bic); }
.tax-cl .tax-acoes { display: flex; gap: 2px; flex: none; }
@media (max-width: 560px) { .tax-cl { flex-wrap: wrap; } .tax-cl-t { flex-basis: calc(100% - 40px); } .tax-cl-disc { margin-left: 30px; } .tax-cl .tax-acoes { margin-left: auto; } }

/* ---------- Disciplinas: escola → cursos → disciplinas ---------- */
.disc-trilho { display: none; align-items: center; gap: 8px; flex-wrap: wrap; margin: 0 0 12px; font-size: .9rem; }
.disc-trilho button { border: 0; background: none; padding: 4px 0; font: inherit; font-weight: 650; color: var(--bic); cursor: pointer; }
.disc-trilho [aria-current] { color: var(--tinta); font-weight: 700; }
.disc-trilho i { font-size: .6rem; color: var(--tinta-3); }
.disc-g { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(220px, 1fr) minmax(0, 1.9fr); gap: 14px; align-items: start; }
.disc-col { display: flex; flex-direction: column; gap: 10px; min-width: 0; padding: 14px; }
.disc-col-cab { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.disc-col-cab h3 { font-size: .98rem; font-weight: 600; }
.disc-col-cab h3 small { margin-left: 4px; color: var(--tinta-3); font-weight: 600; }
.seg-mini button { height: 28px; padding: 0 10px; font-size: .82rem; }
.seg-mini b { margin-left: 2px; font-weight: 700; color: var(--tinta-3); }
.disc-lista { display: flex; flex-direction: column; gap: 2px; max-height: 62vh; overflow: auto; margin: 0 -6px; padding: 0 6px; }
.disc-i { display: flex; align-items: center; gap: 10px; width: 100%; padding: 9px 10px; border: 0; border-radius: 12px; background: none; text-align: left; font: inherit; color: var(--tinta); cursor: pointer; }
.disc-i:hover { background: var(--sup-2); }
.disc-i.on { background: var(--azul-suave); box-shadow: inset 3px 0 0 var(--marca); }
.disc-i > i { flex: none; font-size: .69rem; color: var(--tinta-3); }
.disc-sig { flex: none; min-width: 52px; padding: 4px 6px; border-radius: 8px; background: var(--sup-3); color: var(--tinta-2); font-size: .74rem; font-weight: 800; text-align: center; }
.disc-i.on .disc-sig { background: var(--marca); color: #fff; }
.disc-t { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.disc-t strong { font-size: .9rem; font-weight: 600; line-height: 1.25; overflow-wrap: anywhere; }
.disc-t small { color: var(--tinta-3); font-size: .8rem; }
.disc-nada { margin: 0; padding: 10px 4px; color: var(--tinta-3); font-size: .88rem; }
.disc-c-cads { gap: 14px; padding: 18px; min-height: 360px; }
.disc-cab { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.disc-cab > .btn { flex: none; }
.disc-cab h3 { font-size: 1.15rem; font-weight: 600; }
.disc-cab p { margin: 2px 0 0; color: var(--tinta-2); font-size: .86rem; }
.disc-acoes { display: flex; flex-wrap: wrap; gap: 8px; }
.disc-acoes .btn svg { width: 16px; height: 16px; }
.disc-busca { max-width: 320px; }
.disc-todas { display: flex; flex-direction: column; gap: 16px; }
.disc-cads { display: flex; flex-wrap: wrap; gap: 8px; }
.disc-cad { display: inline-flex; align-items: center; gap: 8px; max-width: 100%; padding: 7px 10px 7px 13px; border-radius: 12px; border: 1px solid var(--linha-2); background: var(--sup); font: inherit; font-size: .88rem; font-weight: 600; color: var(--tinta); text-align: left; cursor: pointer; }
.disc-cad span { overflow-wrap: anywhere; }
.disc-cad em { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 99px; background: var(--azul-claro); color: var(--bic); font-style: normal; font-size: .76rem; font-weight: 800; }
.disc-cad i { font-size: .74rem; color: var(--tinta-3); opacity: 0; transition: opacity .15s; }
.disc-cad:hover { border-color: var(--bic); }
.disc-cad:hover i, .disc-cad:focus-visible i { opacity: 1; }
.disc-vazio { display: flex; flex-direction: column; align-items: center; gap: 6px; margin: auto 0; padding: 40px 16px; text-align: center; color: var(--tinta-2); }
.disc-vazio > i { font-size: 1.9rem; color: var(--bic); opacity: .7; }
.disc-vazio strong { color: var(--tinta); }
.disc-vazio p { margin: 0; max-width: 40ch; font-size: .9rem; }
.disc-vazio .btn { margin-top: 8px; }
.disc-ed-pe { align-items: center; }
.disc-ed-pe > span { flex: 1; }
@media (max-width: 1180px) { .disc-g { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .disc-c-cads { grid-column: 1 / -1; } .disc-lista { max-height: 42vh; } }
@media (max-width: 760px) {
  .disc-trilho { display: flex; }
  .disc-g { grid-template-columns: minmax(0, 1fr); }
  .disc-lista { max-height: none; }
  .disc-cab { flex-wrap: wrap; }
  .disc[data-ver="uni"] .disc-c-cursos, .disc[data-ver="uni"] .disc-c-cads, .disc[data-ver="curso"] .disc-c-unis, .disc[data-ver="curso"] .disc-c-cads, .disc[data-ver="cad"] .disc-c-unis, .disc[data-ver="cad"] .disc-c-cursos { display: none; }
  .disc-cad i { opacity: 1; }
}

/* ---------- Utilizadores: editor ---------- */
.papel-tag.p-editor { margin-left: 4px; background: var(--sup); color: var(--bic); box-shadow: inset 0 0 0 1.5px var(--azul-claro); }

/* ---------- Emails para os inscritos ---------- */
.em-g { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(320px, 1fr); gap: 16px; align-items: start; }
.em-compor { display: flex; flex-direction: column; gap: 20px; }
.em-t { margin: 0 0 10px; font-size: .82rem; font-weight: 700; color: var(--tinta-2); letter-spacing: 0; }
.em-modelos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.em-modelo { display: flex; align-items: flex-start; gap: 10px; padding: 12px; border-radius: 14px; border: 1.5px solid var(--linha-2); background: var(--sup); text-align: left; font: inherit; color: var(--tinta); cursor: pointer; }
.em-modelo i { margin-top: 2px; color: var(--bic); }
.em-modelo strong { display: block; font-size: .88rem; font-weight: 650; line-height: 1.25; }
.em-modelo small { display: block; margin-top: 2px; color: var(--tinta-3); font-size: .8rem; }
.em-modelo:hover { border-color: var(--azul-claro); }
.em-modelo[aria-pressed="true"] { border-color: var(--marca); background: var(--azul-suave); }
.em-publicos { display: flex; flex-direction: column; border: 1px solid var(--linha); border-radius: 14px; overflow: hidden; }
.em-pub { display: flex; align-items: center; gap: 12px; padding: 11px 14px; border: 0; background: var(--sup); text-align: left; font: inherit; color: var(--tinta); cursor: pointer; }
.em-pub + .em-pub { border-top: 1px solid var(--linha); }
.em-pub i { width: 18px; text-align: center; color: var(--tinta-3); }
.em-pub span { flex: 1; font-size: .9rem; font-weight: 600; }
.em-pub b { min-width: 32px; text-align: right; font-weight: 750; color: var(--tinta-2); font-variant-numeric: tabular-nums; }
.em-pub:hover { background: var(--sup-2); }
.em-pub[aria-checked="true"] { background: var(--azul-suave); box-shadow: inset 3px 0 0 var(--marca); }
.em-pub[aria-checked="true"] i, .em-pub[aria-checked="true"] b { color: var(--bic); }
.em-compor .campo { margin-bottom: 12px; }
.em-compor .campo:last-child { margin-bottom: 0; }
.em-compor input#em-ass { width: 100%; }
.em-txt-cab { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 6px; }
.em-txt-cab label { margin: 0; }
.emails-cx textarea, .em-compor textarea { width: 100%; min-height: 200px; border: 1.5px solid var(--linha-2); border-radius: 14px; padding: 12px; font: inherit; resize: vertical; background: var(--sup); color: var(--tinta); }
.em-pe { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; padding-top: 16px; border-top: 1px solid var(--linha); }
.em-pe .btn svg { width: 18px; height: 18px; }
.em-previa { position: sticky; top: 84px; background: var(--sup-2); }
.em-previa header { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.em-previa header h3 { font-size: 1rem; font-weight: 600; }
.em-previa header small { color: var(--tinta-3); font-size: .82rem; }
.em-mail { padding: 22px; border-radius: 16px; background: #fff; color: #4A5275; font-family: Arial, Helvetica, sans-serif; box-shadow: 0 1px 2px rgba(16, 22, 51, .06), 0 14px 32px -20px rgba(16, 22, 51, .4); overflow-wrap: anywhere; }
.em-mail-cab { display: flex; align-items: center; gap: 8px; margin-bottom: 16px; }
.em-mail-cab svg { width: 30px; height: 30px; }
.em-mail-cab b { font-size: 17px; font-weight: 800; color: #101633; }
.em-mail h4 { margin: 0 0 12px; font-family: Arial, Helvetica, sans-serif; font-size: 19px; font-weight: 700; line-height: 1.3; letter-spacing: 0; color: #101633; }
.em-mail p { margin: 0 0 12px; font-size: 14.5px; line-height: 1.55; }
.em-mail mark { padding: 0 3px; border-radius: 4px; background: #E6ECFF; color: #1E40E6; }
.em-mail-btn { display: inline-block; margin: 8px 0 4px; padding: 10px 18px; border-radius: 999px; background: #1E40E6; color: #fff; font-size: 14px; font-weight: 700; }
.em-mail small { display: block; margin-top: 18px; font-size: 12px; color: #7C84A3; }
.em-ph { color: #A0A7C2; font-style: italic; font-weight: 400; }
@media (max-width: 1060px) { .em-g { grid-template-columns: minmax(0, 1fr); } .em-previa { position: static; } }
@media (max-width: 560px) { .em-modelos { grid-template-columns: minmax(0, 1fr); } .em-pe .btn { flex: 1 1 100%; justify-content: center; } }

/* ---------- Explorar: um material por linha, com a primeira página inteira à esquerda ---------- */
#exp-res .grelha-docs { grid-template-columns: minmax(0, 1fr); gap: 12px; }
#exp-res .cartao { display: grid; grid-template-columns: 112px minmax(0, 1fr); grid-template-rows: auto auto auto 1fr; column-gap: 16px; align-items: start; padding: 12px; }
#exp-res .cartao-th { grid-column: 1; grid-row: 1 / span 4; }
#exp-res .cartao-th .th { aspect-ratio: 210 / 297; border-radius: 8px; font-size: 4.6px; background: #fff; box-shadow: inset 0 0 0 1px var(--linha); }
#exp-res .th-real .th-img { inset: 0; left: 0; right: 0; top: 0; width: 100%; height: 100%; object-fit: cover; object-position: top center; border-radius: 0; box-shadow: none; transform: none !important; }
#exp-res .th-pg { position: absolute; inset: 0; width: auto; height: auto; margin: 0; border-radius: 0; box-shadow: none; transform: none !important; }
#exp-res .cartao h3 { grid-column: 2; margin: 2px 0 4px; font-size: 1rem; line-height: 1.3; }
#exp-res .cartao .onde { grid-column: 2; margin: 0 0 10px; font-size: .84rem; }
#exp-res .cartao .etiquetas { grid-column: 2; }
#exp-res .cartao-pe { grid-column: 2; align-self: end; padding: 10px 0 0; }
#exp-res .pags { right: 5px; bottom: 5px; padding: 2px 6px; font-size: .68rem; }
#exp-res .estado-th { left: 5px; top: 5px; height: 20px; padding: 0 6px; font-size: .66rem; }
#exp-res .estado-th svg { width: 11px; height: 11px; }
@media (max-width: 760px) { #exp-res .grelha-docs { gap: 10px; } #exp-res .cartao { grid-template-columns: 92px minmax(0, 1fr); column-gap: 12px; padding: 10px; } #exp-res .cartao h3 { font-size: .95rem; } }
/* Botão de guardar maior (também no telemóvel) */
.marcar { width: 44px; height: 44px; margin: -8px -6px -8px 0; border-radius: 50%; background: var(--sup-2); }
.marcar svg { width: 24px; height: 24px; }
.marcar:hover { background: var(--azul-suave); color: var(--bic); }
.marcar[aria-pressed="true"] { background: var(--azul-claro); }
@media (max-width: 760px) { .marcar { width: 42px; height: 42px; } .marcar svg { width: 23px; height: 23px; } }

/* "14 materiais" e a ordem na mesma linha, também no telemóvel */
@media (max-width: 760px) {
  .res-cab { flex-wrap: nowrap; align-items: center; }
  .res-cab .res-dir { order: 0; width: auto; flex: none; }
  .res-cab .contagem { flex: 1; width: auto; min-width: 0; margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .om-lista { left: auto; right: 0; }
}

/* ---------- Partilhar: "noutros cursos" logo abaixo do curso e "outras cadeiras" logo abaixo da cadeira ---------- */
.escolhas > .extra-sob { margin: -2px 0 4px 20px; padding: 10px 0 8px 16px; border-left: 2px solid var(--linha-2); }
.extra-sob .rotulo-g { margin: 0 0 8px; font-size: .86rem; }
.extra-sob .ajuda { margin: 8px 0 0; font-size: .8rem; color: var(--tinta-3); }
.escolhas > .cad-estado { margin: -2px 0 0; }
@media (max-width: 560px) { .escolhas > .extra-sob { margin-left: 10px; padding-left: 12px; } }
/* ao editar: o ficheiro atual */
.fx-atual { display: flex; align-items: center; gap: 16px; padding: 14px; border-radius: 18px; border: 1.5px solid var(--linha-2); background: var(--sup-2); }
.fx-atual-th { flex: none; display: grid; place-items: center; width: 84px; aspect-ratio: 3 / 4; overflow: hidden; border-radius: 8px; background: var(--sup); box-shadow: var(--sombra-papel); }
.fx-atual-th img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.fx-atual-th i { font-size: 2rem; color: var(--bic); opacity: .8; }
.fx-atual-t { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.fx-atual-t small { color: var(--tinta-3); font-size: .8rem; font-weight: 700; }
.fx-atual-t strong { font-weight: 650; overflow-wrap: anywhere; }
.fx-atual-t > span { color: var(--tinta-2); font-size: .86rem; }
.fx-atual-acoes { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.fx-atual-acoes .btn svg { width: 16px; height: 16px; }
.fx-atual-acoes label.btn { cursor: pointer; }
.fx-ajuda { margin-top: 8px; font-size: .8rem; color: var(--tinta-3); }
@media (max-width: 480px) { .fx-atual { align-items: flex-start; } .fx-atual-th { width: 64px; } }

/* ---------- Aviso: entraram na conta noutro dispositivo ---------- */
.aviso-sessao .as-ic { display: grid; place-items: center; width: 60px; height: 60px; margin: 2px auto 12px; border-radius: 20px; background: var(--azul-claro); color: var(--bic); font-size: 1.5rem; }
.modal .aviso-sessao h2 { max-width: 24ch; margin: 0 auto 12px; font-size: 1.25rem; }
.as-onde { display: inline-flex; align-items: center; gap: 12px; margin: 0 auto 12px; padding: 10px 16px; border-radius: 14px; border: 1px solid var(--linha); background: var(--sup-2); text-align: left; }
.as-onde i { font-size: 1.3rem; color: var(--bic); }
.as-onde span { display: flex; flex-direction: column; }
.as-onde strong { font-weight: 650; }
.as-onde small { color: var(--tinta-3); font-size: .8rem; }
.as-regra { display: flex; align-items: flex-start; gap: 8px; margin: 12px 0 0; padding: 10px 12px; border-radius: 12px; background: var(--azul-suave); color: var(--tinta-2); font-size: .86rem; text-align: left; }
.as-regra i { margin-top: 3px; color: var(--bic); }

.res-cab .contagem { white-space: nowrap; }

/* Aviso de sessão: os dois botões cabem sempre no ecrã (no telemóvel ficam um por cima do outro) */
.aviso-sessao .linha-btn { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; }
.aviso-sessao .linha-btn .btn { width: 100%; min-width: 0; height: auto; min-height: 50px; padding: 10px 14px; white-space: normal; line-height: 1.2; text-align: center; justify-content: center; }
@media (max-width: 520px) {
  .aviso-sessao .linha-btn { grid-template-columns: minmax(0, 1fr); }
  .aviso-sessao .linha-btn .btn-pri { order: -1; }
  .aviso-sessao .as-ic { width: 52px; height: 52px; margin-bottom: 10px; font-size: 1.3rem; border-radius: 18px; }
  .modal .aviso-sessao h2 { font-size: 1.15rem; }
  .as-onde { padding: 8px 12px; }
  .aviso-sessao .intro { font-size: .95rem; }
}

/* ---------- Explorar: um material por linha, primeira página inteira, sem moldura ---------- */
#exp-res .grelha-docs { grid-template-columns: minmax(0, 1fr); gap: 14px; }
#exp-res .cartao { grid-template-columns: 124px minmax(0, 1fr); column-gap: 18px; padding: 14px; }
#exp-res .cartao-th .th { aspect-ratio: 210 / 297; border-radius: 10px; background: #fff; box-shadow: 0 0 0 1px var(--linha), 0 8px 18px -12px rgba(16, 22, 51, .45); }
.cartao .th-real { background: #fff; }
.cartao .th-real .th-img { inset: 0; left: 0; right: 0; top: 0; width: 100%; height: 100%; object-fit: cover; object-position: top center; border-radius: 0; box-shadow: none; transform-origin: top center; }
.cartao:hover .th-real .th-img { transform: scale(1.03); }
@media (max-width: 760px) { #exp-res .cartao { grid-template-columns: 96px minmax(0, 1fr); column-gap: 12px; padding: 12px; } }
.cartao-pe .marcar.btn { flex: none; width: 46px; height: 46px; min-height: 0; margin: -6px -4px -6px 0; padding: 0; gap: 0; justify-content: center; border-radius: 999px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta); font-size: 0; box-shadow: none; }
.cartao-pe .marcar.btn svg { width: 24px; height: 24px; flex: none; }
.cartao-pe .marcar.btn:hover { border-color: var(--bic); background: var(--azul-suave); color: var(--bic); }
.cartao-pe .marcar.btn[aria-pressed="true"] { border-color: var(--bic); background: var(--azul-claro); color: var(--bic); }
@media (min-width: 761px) { #exp-res .cartao-pe .marcar.btn { width: auto; height: 46px; padding: 0 18px 0 14px; gap: 8px; font-size: .92rem; font-weight: 700; white-space: nowrap; } }

/* ---------- Partilhar: os tipos abrem logo abaixo da categoria escolhida (telemóvel) ---------- */
.tipo-g > .tipo-cat { order: var(--o, 0); }
.tipo-g > .tipo-opcoes { order: 99; grid-column: 1 / -1; margin-top: 4px; }
.tipo-opcoes .tipo-outro, .tipo-opcoes .nota-livro { margin: 12px 0 0; }
@media (max-width: 760px) {
  .tipo-g > .tipo-opcoes { order: var(--o, 99); margin: -10px 0 0; padding: 14px 12px 12px; border: 1.5px solid var(--bic); border-top: 0; border-radius: 0 0 18px 18px; background: var(--sup-2); animation: fade .18s ease-out; }
  .tipo-g > .tipo-cat.on { border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
  .tipo-lista { grid-template-columns: minmax(0, 1fr); }
  .rotulo-ano { text-align: center; }
  .ano-passo { display: flex; justify-content: center; width: 100%; }
  .ano-passo input { width: 132px; }
}

/* ---------- Visão geral: escolher o dia, a semana, o mês ou o ano ---------- */
.pnav { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 14px; margin: 4px 0 16px; }
.pnav .seg-escala button { min-width: 62px; }
.pnav-ctl { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.pnav-b { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta); cursor: pointer; font-size: .85rem; }
.pnav-b:hover:not(:disabled) { border-color: var(--bic); color: var(--bic); }
.pnav-b:disabled { opacity: .35; cursor: default; }
.pnav-b svg { width: 18px; height: 18px; }
.pnav-t { min-width: 150px; text-align: center; font-weight: 700; font-size: .95rem; }
.pnav-esc { display: inline-flex; gap: 6px; }
.pnav-esc select, .pnav-esc input { height: 38px; padding: 0 10px; border-radius: 12px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta); font: inherit; font-size: .88rem; }
.pnav-hoje { font-size: .86rem; }
.vis-regra { color: var(--tinta-3); font-size: .82rem; }
.contas-met.vis-met { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.vis-extra { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 24px; margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--linha); }
.vis-extra h4 { margin: 0 0 10px; font-size: .9rem; font-weight: 700; }
.vis-pe { display: flex; justify-content: flex-end; margin-top: 12px; }
.link-perigo { color: #C62839; }
@media (max-width: 900px) { .contas-met.vis-met { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) {
  .pnav { flex-direction: column; align-items: stretch; }
  .pnav .seg-escala { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .pnav-ctl { justify-content: space-between; }
  .pnav-t { flex: 1; min-width: 0; }
  .pnav-esc { width: 100%; }
  .pnav-esc > * { flex: 1; min-width: 0; }
  .vis-extra { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- Pontos: zerar para o lançamento ---------- */
.eco-zerar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 16px; margin: 0 0 16px; padding: 14px 16px; border-radius: 18px; border: 1.5px dashed var(--linha-2); background: var(--sup-2); }
.eco-zerar strong { display: block; font-weight: 700; }
.eco-zerar span { color: var(--tinta-2); font-size: .88rem; }
.eco-zerar .btn svg, .eco-zerar .btn i { margin-right: 2px; }
.zerar-m { text-align: left; }
.zerar-m h2 { margin: 0 0 6px; font-size: 1.25rem; }
.zerar-m .intro { margin: 0 0 14px; color: var(--tinta-2); }
.zr-op { display: grid; gap: 8px; margin: 0 0 12px; padding: 0; border: 0; }
.zr-op legend { margin-bottom: 8px; padding: 0; font-size: .9rem; font-weight: 700; }
.zr-l { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 8px; padding: 12px 14px; border-radius: 14px; border: 1.5px solid var(--linha-2); background: var(--sup); cursor: pointer; }
.zr-op .zr-l { margin-bottom: 0; }
.zr-l:has(input:checked) { border-color: var(--bic); background: var(--azul-suave); }
.zr-l input { flex: none; width: 18px; height: 18px; margin-top: 2px; accent-color: var(--bic); }
.zr-l span { display: flex; flex-direction: column; gap: 2px; }
.zr-l small { color: var(--tinta-3); font-size: .8rem; }
.zerar-m .campo { margin: 14px 0 16px; }
.zerar-m .campo input { width: 100%; letter-spacing: .08em; text-transform: uppercase; }
.zerar-m .linha-btn { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
.zerar-m .linha-btn .btn { flex: 1 1 160px; justify-content: center; }

/* ---------- Explorar: painel de filtros ---------- */
@media (min-width: 901px) {
  .exp-g { grid-template-columns: 272px minmax(0, 1fr); gap: 28px; }
  .facetas { padding: 0 14px 12px; border-radius: 22px; border: 1px solid var(--linha); background: var(--sup); box-shadow: var(--sombra-leve); scrollbar-width: thin; scrollbar-color: var(--linha-2) transparent; }
  .facetas .fac-cab { position: sticky; top: 0; z-index: 2; margin: 0 -14px; padding: 16px 16px 12px; background: var(--sup); border-bottom: 1px solid var(--linha); }
}
.fac-cab strong { font-size: 1.05rem; font-weight: 750; }
.fac-ativos { display: flex; flex-wrap: wrap; gap: 6px; padding: 12px 0 4px; }
.fac-ativos .tok { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; padding: 4px 4px 4px 10px; border-radius: 999px; background: var(--azul-suave); color: var(--tinta); font-size: .8rem; font-weight: 650; }
.fac-ativos .tok small { color: var(--tinta-3); font-size: .74rem; font-weight: 700; }
.fac-ativos .tok button { display: grid; place-items: center; width: 22px; height: 22px; padding: 0; border: 0; border-radius: 50%; background: var(--sup); color: var(--tinta-2); cursor: pointer; }
.fac-ativos .tok button svg { width: 12px; height: 12px; }
.facetas .fac, .ff-corpo .fac { padding: 0 0 10px; border-top: 0; border-bottom: 1px solid var(--linha); }
.facetas .fac:last-child, .ff-corpo .fac:last-child { border-bottom: 0; }
.fac h3 { margin: 0; }
.fac-tit { padding: 14px 2px 8px; font-size: .93rem; font-weight: 720; }
.fac-tit-t { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.fac-tit-t small { color: var(--bic); font-size: .82rem; font-weight: 650; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fac-tit > svg { flex: none; width: 18px; height: 18px; color: var(--tinta-3); transition: transform .2s; }
.fac.aberta .fac-tit > svg { transform: rotate(180deg); }
.facetas .fac-op { gap: 10px; padding: 7px 8px; border-radius: 12px; font-size: .9rem; }
.facetas .fac-op[aria-pressed="true"] { background: var(--azul-suave); }
.facetas .fac-t small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fac-n { flex: none; min-width: 26px; padding: 2px 8px; border-radius: 999px; background: var(--sup-2); color: var(--tinta-2); font-size: .8rem; font-weight: 700; text-align: center; font-variant-numeric: tabular-nums; }
.fac-op[aria-pressed="true"] .fac-n { background: var(--bic); color: var(--sobre-bic); }
.fac-op.zero { opacity: .62; }
.fac-op.zero .fac-n { background: none; color: var(--tinta-3); }
.facetas .fac-mais, .ff-corpo .fac-mais { display: flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%; margin: 4px 0 0; padding: 9px 10px; border: 0; border-radius: 12px; background: none; color: var(--bic); font-size: .86rem; font-weight: 700; cursor: pointer; }
.facetas .fac-mais:hover, .ff-corpo .fac-mais:hover { background: var(--azul-suave); }
.facetas .fac-mais b, .ff-corpo .fac-mais b { padding: 1px 8px; border-radius: 999px; background: var(--azul-claro); font-size: .78rem; }
.fac-limpar { margin: 6px 0 0 10px; font-size: .82rem; }
.fac-vazio { margin: 0; padding: 4px 8px; color: var(--tinta-3); font-size: .84rem; }

/* ---------- Ecrã de escolha de um filtro: altura fixa ---------- */
.fe-cx { height: min(680px, calc(100dvh - 48px)); max-height: none; }
.fe-cx header { align-items: flex-start; gap: 12px; padding: 18px 18px 10px; }
.fe-sub { margin: 4px 0 0; color: var(--tinta-3); font-size: .84rem; line-height: 1.35; }
.fe-lista { min-height: 0; }
.fe-lista > * { flex: none; }
.fe-sep { margin: 10px 8px 4px; padding-top: 12px; border-top: 1px solid var(--linha); color: var(--tinta-3); font-size: .82rem; font-weight: 700; }
.fe-mais { margin: 10px 8px; color: var(--tinta-3); font-size: .82rem; }
@media (max-width: 760px) { .fe-cx { height: 100dvh; } }

/* ---------- Pesquisa: primeiro os materiais ---------- */
.sug-doc { align-items: center; }
.sug-doc .th { width: 42px; height: 58px; aspect-ratio: auto; flex: none; border-radius: 6px; background: #fff; box-shadow: 0 0 0 1px var(--linha); font-size: 2.6px; }
.sug-doc .th-real .th-img { inset: 0; left: 0; right: 0; top: 0; width: 100%; height: 100%; object-fit: cover; object-position: top center; border-radius: 0; box-shadow: none; transform: none; }
.sug-doc .sug-t strong { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; white-space: normal; line-height: 1.3; }
.sug-preco { flex: none; padding: 3px 8px; border-radius: 7px; background: #101633; color: #fff; font-size: .76rem; font-weight: 750; white-space: nowrap; }
.sug-preco.aberto { background: var(--azul-claro); color: var(--bic); }
:root[data-theme="dark"] .sug-preco:not(.aberto) { background: #EEF0FA; color: #101633; }
.sug-chips { display: flex; flex-wrap: wrap; gap: 8px; padding: 2px 8px 10px; }
.sug-chip { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; padding: 6px 10px 6px 7px; border-radius: 999px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta); font: inherit; font-size: .84rem; font-weight: 650; cursor: pointer; }
.sug-chip:hover, .sug-chip.ativo { border-color: var(--bic); background: var(--azul-suave); }
.sug-chip small { padding: 1px 6px; border-radius: 6px; background: var(--azul-claro); color: var(--texto-suave); font-size: .74rem; font-weight: 750; }
.sug-chip span { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sug-chip span i { font-style: normal; font-weight: 600; color: var(--tinta-3); }
.sug-chip em { font-style: normal; font-size: .8rem; color: var(--tinta-3); font-variant-numeric: tabular-nums; }
.sug-vazio.pequeno { padding: 10px 12px 2px; font-size: .86rem; }

/* ---------- Ecrãs largos: o conteúdo usa o espaço todo ---------- */
.pag { max-width: 1640px; }
.wrap { max-width: 1600px; }
@media (min-width: 1500px) { main { padding-inline: clamp(24px, 2.4vw, 48px); } }

/* ---------- Cartões: desbloqueios, gostos e guardar do mesmo tamanho ---------- */
.cartao-pe .stat { height: 40px; padding: 0 12px; gap: 6px; border-radius: 999px; border: 1.5px solid var(--linha-2); background: var(--sup); font-size: .86rem; color: var(--tinta-2); }
.cartao-pe .stat svg { width: 18px; height: 18px; }
.cartao-pe .marcar.btn { width: 40px; height: 40px; margin: 0; }
.cartao-pe .marcar.btn svg { width: 18px; height: 18px; }
@media (min-width: 761px) { #exp-res .cartao-pe .marcar.btn { width: auto; height: 40px; padding: 0 14px 0 12px; gap: 6px; font-size: .86rem; } }
@media (max-width: 760px) {
  .cartao-pe .stat { height: 36px; padding: 0 9px; font-size: .8rem; }
  .cartao-pe .stat svg { width: 16px; height: 16px; }
  .cartao-pe .marcar.btn { width: 36px; height: 36px; }
  .cartao-pe .marcar.btn svg { width: 17px; height: 17px; }
}

/* ---------- Resoluções no material ---------- */
.res-doc { display: grid; gap: 10px; margin-top: 14px; padding: 14px; border-radius: 18px; border: 1.5px solid var(--linha-2); background: var(--sup); }
.res-vazia { border-style: dashed; }
.res-cab { display: flex; align-items: center; gap: 12px; }
.res-cab strong { display: block; font-weight: 750; }
.res-cab small { display: block; color: var(--tinta-2); font-size: .82rem; line-height: 1.35; }
.res-ic { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; background: var(--azul-suave); color: var(--bic); }
.res-ic svg { width: 20px; height: 20px; }
.res-ic.res-ok { background: var(--azul-suave); color: var(--bic); }
.res-autor { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 12px; background: var(--sup-2); color: var(--tinta); text-decoration: none; }
.res-autor small { display: block; color: var(--tinta-3); font-size: .78rem; }
.res-autor strong { display: block; font-size: .9rem; }
.res-pts { margin: 0; color: var(--bic); font-size: .82rem; font-weight: 650; }
.res-ed-b { justify-content: center; }
.res-ver { display: grid; gap: 14px; }
.res-ver-cab h2 { margin: 0; font-size: 1.25rem; }
.res-ver-cab p { margin: 2px 0 0; color: var(--tinta-2); font-size: .88rem; }
.res-notas { padding: 12px 14px; border-radius: 14px; background: var(--sup-2); line-height: 1.5; }
.res-img { margin: 0; }
.res-img img { display: block; width: 100%; height: auto; border-radius: 12px; border: 1px solid var(--linha); background: #fff; }
.res-video { width: 100%; max-height: 70vh; border-radius: 12px; background: #000; }
.res-emb { position: relative; aspect-ratio: 16 / 9; border-radius: 12px; overflow: hidden; background: #000; }
.res-emb iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.res-pdf { display: grid; gap: 8px; justify-items: start; }
.res-pdf iframe { width: 100%; height: min(75vh, 900px); border: 1px solid var(--linha); border-radius: 12px; background: #fff; }
.res-ed h2 { margin: 0 0 4px; font-size: 1.25rem; }
.res-ed .intro { margin: 0 0 12px; color: var(--tinta-2); }
.res-ed-atuais, .res-novos { display: grid; gap: 6px; margin-bottom: 12px; }
.res-ed-f { display: flex; align-items: center; gap: 10px; padding: 8px 8px 8px 10px; border-radius: 12px; border: 1px solid var(--linha); background: var(--sup); }
.res-ed-f.novo { border-style: dashed; border-color: var(--bic); }
.res-ed-t { flex: none; padding: 2px 8px; border-radius: 7px; background: var(--azul-claro); color: var(--texto-suave); font-size: .76rem; font-weight: 750; }
.res-ed-n { flex: 1; min-width: 0; font-size: .88rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.res-ed-n small { margin-left: 8px; color: var(--tinta-3); }
.res-ed-escolher { position: relative; display: grid; justify-items: center; gap: 4px; margin-bottom: 12px; padding: 18px; border-radius: 16px; border: 2px dashed var(--linha-2); background: var(--sup-2); text-align: center; cursor: pointer; }
.res-ed-escolher:hover { border-color: var(--bic); }
.res-ed-escolher input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.res-ed-escolher span { display: inline-flex; align-items: center; gap: 6px; color: var(--bic); font-weight: 750; }
.res-ed-escolher span svg { width: 18px; height: 18px; }
.res-ed-escolher small { color: var(--tinta-3); font-size: .8rem; }
.res-ed .linha-btn { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 6px; }
.res-ed .linha-btn .esp { flex: 1; }
.res-prog { height: 8px; margin: 4px 0 10px; border-radius: 99px; background: var(--sup-2); overflow: hidden; }
.res-prog span { display: block; height: 100%; width: 0; border-radius: 99px; background: var(--bic); transition: width .2s; }

/* ---------- Página dos explicadores ---------- */
.expl-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-bottom: 12px; }
.expl-stats div { padding: 14px 16px; border-radius: 18px; border: 1px solid var(--linha); background: var(--sup); }
.expl-stats small { display: block; color: var(--tinta-3); font-size: .8rem; font-weight: 650; }
.expl-stats b { display: block; margin-top: 4px; font-size: 1.6rem; font-weight: 800; }
.expl-regras { margin: 0 0 16px; color: var(--tinta-2); font-size: .9rem; }
.expl-barra { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 14px; }
.expl-barra .exp-busca { flex: 1 1 320px; max-width: 520px; }
.expl-l { display: grid; gap: 10px; }
.expl-i { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 12px; border-radius: 18px; border: 1px solid var(--linha); background: var(--sup); }
.expl-th .th { width: 56px; height: 78px; aspect-ratio: auto; border-radius: 8px; background: #fff; box-shadow: 0 0 0 1px var(--linha); font-size: 3.4px; }
.expl-th .th-real .th-img { inset: 0; left: 0; right: 0; top: 0; width: 100%; height: 100%; object-fit: cover; object-position: top center; border-radius: 0; box-shadow: none; }
.expl-t a { color: var(--tinta); text-decoration: none; }
.expl-t strong { display: block; font-weight: 700; line-height: 1.3; }
.expl-t small { display: block; margin-top: 2px; color: var(--tinta-2); font-size: .82rem; }
.expl-et { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.et-pedidos { background: #FFF1D6; color: #8A5A00; }
.et-pts { background: var(--azul-suave); color: var(--bic); }
@media (max-width: 760px) {
  .expl-stats { grid-template-columns: minmax(0, 1fr); }
  .expl-i { grid-template-columns: 48px minmax(0, 1fr); }
  .expl-a { grid-column: 1 / -1; }
  .expl-a .btn { width: 100%; justify-content: center; }
}
.papel-tag.p-explicador { background: var(--azul-suave); color: var(--bic); }

/* ---------- Confirmação por código ---------- */
.cod-cx { margin: 14px 0 16px; padding: 14px; border-radius: 16px; background: var(--sup-2); }
.cod-cx .btn svg { width: 18px; height: 18px; }
.cod-cx .ajuda { margin: 8px 0 0; }
.cod-cx .campo { margin: 0; }
#cod-in { width: 100%; font-size: 1.4rem; font-weight: 800; letter-spacing: .35em; text-align: center; }

/* =========================================================
   Resoluções (várias por material, por baixo do PDF)
   ========================================================= */
.doc-vista { grid-template-areas: "leitor cab" "leitor painel" "res painel"; grid-template-rows: auto auto auto; }
.doc-vista > .res-sec { grid-area: res; }
@media (max-width: 1060px) { .doc-vista { grid-template-areas: "cab" "leitor" "painel" "res"; } }

.res-sec { display: grid; gap: 16px; padding: 20px; border-radius: 24px; border: 1px solid var(--linha); background: var(--sup); scroll-margin-top: calc(var(--topo-h) + 16px); }
.rs-cab { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.rs-tit { display: flex; align-items: center; gap: 12px; min-width: 0; }
.rs-tit h2 { font-size: 1.25rem; font-weight: 700; }
.rs-tit p { color: var(--tinta-2); font-size: .9rem; }
.rs-ic { flex: none; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 13px; background: var(--azul-suave); color: var(--bic); font-size: 1.1rem; }
.rs-todos { display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px; border-radius: 12px; background: var(--sup-2); font-size: .86rem; font-weight: 650; cursor: pointer; }
.rs-todos input { width: 18px; height: 18px; accent-color: var(--bic); margin: 0; }
.rs-porque { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.rs-porque li { display: flex; align-items: center; gap: 10px; color: var(--tinta-2); font-size: .92rem; }
.rs-porque i { flex: none; width: 30px; height: 30px; border-radius: 10px; display: grid; place-items: center; background: var(--azul-suave); color: var(--bic); font-size: .85rem; }
.rs-lista { display: grid; gap: 10px; }
.rs-item { border: 1px solid var(--linha); border-radius: 18px; background: var(--sup); overflow: hidden; transition: border-color .18s, box-shadow .18s; }
.rs-item.aberta { border-color: var(--linha-2); box-shadow: var(--sombra-leve); }
.rs-item.rs-meu { border-color: var(--bic); }
.rs-topo { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto 20px; align-items: center; gap: 12px; width: 100%; padding: 12px 14px; border: 0; background: none; text-align: left; color: inherit; cursor: pointer; font: inherit; }
.rs-topo:hover { background: var(--sup-2); }
.rs-topo .av { width: 44px; height: 44px; }
.rs-quem { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.rs-nome { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.rs-nome strong { font-weight: 720; }
.rs-quem small { color: var(--tinta-2); font-size: .84rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.selo-expl { display: inline-flex; align-items: center; gap: 5px; height: 22px; padding: 0 9px; border-radius: 999px; background: var(--azul-claro); color: var(--texto-suave); font-size: .76rem; font-weight: 800; white-space: nowrap; }
.selo-expl i { font-size: .74rem; }
.rs-est { display: inline-flex; align-items: center; gap: 5px; height: 28px; padding: 0 11px; border-radius: 999px; background: var(--sup-3); color: var(--tinta-2); font-size: .8rem; font-weight: 750; white-space: nowrap; }
.rs-est svg { width: 15px; height: 15px; }
.rs-est-ok { background: var(--azul-suave); color: var(--bic); }
.rs-est-meu { background: var(--marca); color: #fff; }
.rs-est-revisao { background: var(--azul-claro); color: var(--texto-suave); }
.rs-est-oculta { background: var(--sup-3); color: var(--tinta-3); }
.rs-seta { color: var(--tinta-3); transition: transform .2s; justify-self: end; }
.rs-item.aberta .rs-seta { transform: rotate(180deg); }
.rs-corpo { padding: 0 14px 14px; display: grid; gap: 12px; border-top: 1px solid var(--linha); padding-top: 12px; }
.rs-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.rs-chip { display: inline-flex; align-items: center; gap: 6px; height: 26px; padding: 0 10px; border-radius: 8px; background: var(--sup-2); color: var(--tinta-2); font-size: .8rem; font-weight: 650; }
.rs-chip i { color: var(--bic); font-size: .82rem; }
.rs-data { margin-left: auto; color: var(--tinta-3); font-size: .82rem; }
.rs-prev { position: relative; min-height: 220px; border-radius: 16px; overflow: hidden; background: var(--sup-3); display: grid; place-items: center; padding: 18px; isolation: isolate; -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }
.rs-prev-img { position: absolute; inset: -4%; width: 108%; height: 108%; object-fit: cover; object-position: top; filter: blur(4px) saturate(.85); opacity: .9; pointer-events: none; z-index: 1; }
.rs-prev.ok .rs-prev-img { filter: none; opacity: .55; inset: 0; width: 100%; height: 100%; }
.rs-folha { position: absolute; inset: 12px 14% auto; z-index: 0; display: grid; gap: 10px; padding: 24px 22px; border-radius: 10px; background: var(--papel); box-shadow: var(--sombra-papel); min-height: 240px; opacity: .9; }
.rs-folha i { display: block; height: 9px; border-radius: 6px; background: var(--papel-linha); }
.rs-folha i.curta { width: 58%; }
.rs-folha b { display: block; height: 13px; width: 42%; border-radius: 6px; background: var(--azul-claro); margin-top: 4px; }
.rs-cad { position: relative; z-index: 2; display: grid; justify-items: center; gap: 6px; max-width: 360px; width: 100%; padding: 18px 20px; border-radius: 18px; background: var(--sup); box-shadow: var(--sombra-pop); text-align: center; }
.rs-cad strong { font-size: 1.02rem; }
.rs-cad small { color: var(--tinta-2); font-size: .84rem; }
.rs-cad .btn { margin-top: 6px; width: 100%; justify-content: center; }
.rs-cad-ic { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--azul-suave); color: var(--bic); }
.rs-cad-ic svg { width: 22px; height: 22px; }
.rs-cad-ok { padding: 14px 18px; }
.rs-minha { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; border-radius: 14px; background: var(--azul-suave); }
.rs-minha-n { display: flex; gap: 18px; }
.rs-minha-n span { display: flex; flex-direction: column; line-height: 1.15; }
.rs-minha-n b { font-size: 1.25rem; font-weight: 800; color: var(--bic); }
.rs-minha-n small { color: var(--tinta-2); font-size: .8rem; }
.rs-minha .linha-btn, .rs-eq { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.rs-eq { font-size: .82rem; color: var(--tinta-3); }
.rs-vazio { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 20px; align-items: center; padding: 8px 4px; }
.rs-vz-arte { position: relative; height: 150px; border-radius: 16px; background: var(--sup-3); overflow: hidden; }
.rs-vz-arte .rs-folha { inset: 16px 22px auto; min-height: 170px; padding: 18px 16px; gap: 8px; }
.rs-vz-ic { position: absolute; right: 14px; bottom: 14px; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--sup); color: var(--bic); box-shadow: var(--sombra-pop); }
.rs-vz-t strong { display: block; font-size: 1.08rem; margin-bottom: 4px; }
.rs-vz-t p { color: var(--tinta-2); max-width: 52ch; }
.rs-vz-acao { grid-column: 2; display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.rs-pedidos { display: inline-flex; align-items: center; gap: 7px; color: var(--tinta-2); font-size: .88rem; font-weight: 650; }
.rs-pedidos i { color: var(--bic); }
.rs-pedido-ok { display: inline-flex; align-items: center; gap: 8px; padding: 10px 14px; border-radius: 12px; background: var(--azul-suave); color: var(--bic); font-weight: 650; font-size: .9rem; }
.rs-pedido-ok svg { width: 18px; height: 18px; }
.rs-expl { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 14px 16px; border-radius: 18px; background: var(--azul-suave); border: 1px solid var(--azul-claro); }
.rs-expl-nao { background: var(--sup-2); border-color: var(--linha); }
.rs-expl-ic { width: 44px; height: 44px; border-radius: 13px; display: grid; place-items: center; background: var(--marca); color: #fff; font-size: 1.05rem; }
.rs-expl-nao .rs-expl-ic { background: var(--sup-3); color: var(--tinta-2); }
.rs-expl-t { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.rs-expl-t strong { font-weight: 720; }
.rs-expl-t small { color: var(--tinta-2); font-size: .84rem; line-height: 1.4; }
.res-atalho { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; gap: 12px; width: 100%; padding: 10px 14px 10px 10px; border: 1.5px solid var(--linha-2); border-radius: 16px; background: var(--sup); color: inherit; text-align: left; cursor: pointer; font: inherit; }
.res-atalho:hover { border-color: var(--bic); }
.res-atalho .ra-t { display: flex; flex-direction: column; min-width: 0; }
.res-atalho strong { font-weight: 720; font-size: .94rem; }
.res-atalho small { color: var(--tinta-2); font-size: .8rem; }
.res-atalho > i { color: var(--bic); }
.fora-area { display: grid; gap: 10px; padding: 14px 16px; border-radius: 16px; background: var(--sup-2); border: 1px solid var(--linha); }
.fora-area > i { width: 36px; height: 36px; border-radius: 11px; display: grid; place-items: center; background: var(--azul-suave); color: var(--bic); }
.fora-area p { font-size: .9rem; color: var(--tinta-2); }
.fora-area strong { display: block; color: var(--tinta); margin-bottom: 2px; }
.fora-area .btn { justify-self: start; }
.et-novo { background: var(--marca); color: #fff; }
.et-todos { background: var(--azul-suave); color: var(--bic); }
.et-aviso { background: var(--rosa-claro); color: var(--vermelho); }
.et-pedidos { background: var(--azul-claro); color: var(--texto-suave); }
@media (max-width: 760px) {
  .res-sec { padding: 16px 14px; border-radius: 20px; }
  .rs-topo { grid-template-columns: 40px minmax(0, 1fr) 20px; gap: 10px; padding: 12px; }
  .rs-topo .av { width: 40px; height: 40px; }
  .rs-topo .rs-est { grid-column: 2; justify-self: start; height: 26px; font-size: .8rem; }
  .rs-topo .rs-seta { grid-row: 1; grid-column: 3; }
  .rs-prev { min-height: 200px; padding: 14px; }
  .rs-cad { padding: 16px; }
  .rs-vazio { grid-template-columns: minmax(0, 1fr); }
  .rs-vz-arte { height: 120px; }
  .rs-vz-acao { grid-column: 1; }
  .rs-vz-acao .btn { width: 100%; justify-content: center; }
  .rs-expl { grid-template-columns: 40px minmax(0, 1fr); }
  .rs-expl .btn, .rs-expl > a { grid-column: 1 / -1; justify-content: center; }
  .rs-minha { flex-direction: column; align-items: stretch; }
  .rs-minha-n { justify-content: space-around; }
}

/* Peças do leitor reaproveitadas na página das resoluções */
.rv-video { position: relative; border-radius: 16px; overflow: hidden; background: #000; }
.rv-video video { display: block; width: 100%; max-height: 78vh; background: #000; }
.rv-video-erro, .rv-erro { padding: 14px 16px; color: #FFD2D8; font-size: .9rem; }
.rv-emb { position: relative; aspect-ratio: 16 / 9; border-radius: 16px; overflow: hidden; background: #000; }
.rv-emb iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.rv-link { display: grid; gap: 10px; justify-items: start; padding: 14px 16px; border-radius: 16px; background: rgba(255, 255, 255, .08); }
.rv-pdf { position: relative; border-radius: 18px; }
.rv-pdf .pdf-carregar, .rv-img .pdf-carregar { color: var(--tinta-2); }
.rv-imgs { display: grid; gap: 14px; }
.rv-img { position: relative; margin: 0; border-radius: 14px; overflow: hidden; background: #fff; min-height: 80px; display: grid; place-items: center; }
.rv-img canvas { display: block; width: 100%; height: auto; }
@media print { .res-sec, .rs-prev, .rp-conteudo { display: none !important; } }

/* ---------- Editor "Colocar resolução": ecrã inteiro no telemóvel, duas colunas no computador ---------- */
.modal.res-ed-modal { width: min(1040px, 100%); max-height: min(900px, calc(100% - 20px)); padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.modal.res-ed-modal .fechar { top: 16px; right: 16px; z-index: 2; }
.re { display: flex; flex-direction: column; min-height: 0; max-height: 100%; }
.re-cab { padding: 24px 28px 14px; border-bottom: 1px solid var(--linha); }
.re-cab h2 { font-size: 1.3rem; margin: 0 48px 4px 0; }
.re-cab p { color: var(--tinta-2); font-size: .9rem; display: flex; flex-wrap: wrap; gap: 4px 10px; }
.re-cab p span { color: var(--tinta-3); }
.re-corpo { flex: 1; min-height: 0; overflow-y: auto; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.re-col { padding: 20px 28px 24px; display: grid; gap: 14px; align-content: start; }
.re-fx { border-right: 1px solid var(--linha); background: var(--sup-2); }
.re-rot { display: flex; align-items: center; justify-content: space-between; font-weight: 700; font-size: .92rem; }
.re-rot small { color: var(--tinta-3); font-weight: 650; }
.re-drop { position: relative; display: grid; justify-items: center; gap: 6px; padding: 24px 18px; border-radius: 18px; border: 2px dashed var(--linha-2); background: var(--sup); text-align: center; cursor: pointer; transition: border-color .15s, background .15s; }
.re-drop:hover, .re-drop.sobre { border-color: var(--bic); background: var(--azul-suave); }
.re-drop input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.re-drop-ic { width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; background: var(--azul-suave); color: var(--bic); }
.re-drop-ic svg { width: 22px; height: 22px; }
.re-drop strong { font-weight: 720; }
.re-drop small { color: var(--tinta-2); font-size: .82rem; max-width: 34ch; }
.re-lista { display: grid; gap: 8px; }
.re-f { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto auto; align-items: center; gap: 10px; padding: 8px 8px 8px 10px; border-radius: 14px; border: 1px solid var(--linha); background: var(--sup); }
.re-f.novo { border-style: dashed; border-color: var(--bic); }
.re-f-ic { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; font-size: 1.05rem; background: var(--azul-suave); color: var(--bic); }
.re-f-ic.re-video { background: var(--azul-suave); color: var(--bic); }
.re-f-ic.re-imagem { background: var(--sup-3); color: var(--tinta-2); }
.re-f-t { min-width: 0; display: flex; flex-direction: column; }
.re-f-t strong { font-weight: 650; font-size: .9rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.re-f-t small { color: var(--tinta-3); font-size: .82rem; }
.re-aviso { display: block; font-style: normal; font-size: .82rem; color: var(--vermelho); margin-top: 2px; line-height: 1.35; white-space: normal; }
.re-novo { font-size: .76rem; font-weight: 800; color: var(--bic); }
.re-f-tirar { grid-template-columns: minmax(0, 1fr) auto auto; background: var(--rosa-claro); border-color: transparent; }
.re-f-tirar .re-f-t strong { white-space: normal; }
.re-vazio { color: var(--tinta-3); font-size: .88rem; text-align: center; padding: 6px 0; }
.re-dados .campo { margin: 0; }
.re-conta { text-align: right; font-variant-numeric: tabular-nums; }
.re-conta.perto, .conta-desc.perto { color: var(--tinta); font-weight: 650; }
.re-conta.cheio, .conta-desc.cheio { color: var(--vermelho); font-weight: 700; }
.ok-link { color: var(--bic); display: inline-flex; align-items: center; gap: 4px; }
.ok-link svg { width: 14px; height: 14px; }
.erro-link { color: var(--vermelho); }
.re-info { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border-radius: 14px; background: var(--azul-suave); font-size: .84rem; color: var(--tinta-2); line-height: 1.45; }
.re-info svg { width: 18px; height: 18px; flex: none; color: var(--bic); margin-top: 1px; }
.re-prog { display: flex; align-items: center; gap: 12px; padding: 0 28px; }
.re-prog > div { flex: 1; height: 8px; border-radius: 99px; background: var(--sup-3); overflow: hidden; }
.re-prog span { display: block; height: 100%; width: 0; border-radius: 99px; background: var(--bic); transition: width .2s; }
.re-prog small { color: var(--tinta-2); font-weight: 650; white-space: nowrap; font-variant-numeric: tabular-nums; }
.re-erro { margin: 8px 28px 0; }
.re-pe { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 14px 28px; border-top: 1px solid var(--linha); background: var(--sup); }
.re-pe .esp { flex: 1; }
.re-apagar-t { font-weight: 650; color: var(--vermelho); }
.fundo.fundo-res-ed-modal { padding: 10px; }
@media (max-width: 860px) {
  .re-corpo { grid-template-columns: minmax(0, 1fr); }
  .re-fx { border-right: 0; border-bottom: 1px solid var(--linha); }
}
@media (max-width: 640px) {
  .fundo.fundo-res-ed-modal { padding: 0; }
  .modal.res-ed-modal { width: 100%; height: 100%; max-height: 100%; border-radius: 0; animation: none; padding-top: env(safe-area-inset-top, 0px); }
  .modal.res-ed-modal .fechar { top: calc(14px + env(safe-area-inset-top, 0px)); }
  .re { height: 100%; }
  .re-cab { padding: 20px 18px 12px; }
  .re-col { padding: 16px 18px 20px; }
  .re-drop { padding: 18px 14px; }
  .re-prog, .re-erro { padding-inline: 18px; margin-inline: 0; }
  .re-erro { margin: 8px 18px 0; }
  .re-pe { padding: 12px 18px calc(12px + env(safe-area-inset-bottom, 0px)); position: sticky; bottom: 0; }
  .re-pe .btn { flex: 1 1 auto; justify-content: center; }
  .re-pe .esp { display: none; }
  .re-pe .link-perigo { flex: 0 0 100%; }
}
textarea[data-auto] { resize: none; overflow-y: hidden; min-height: 92px; transition: height .08s; }

/* ---------- Página dos explicadores e áreas (escolas e cursos) ---------- */
.expl-stats div span { display: block; margin-top: 2px; font-size: .82rem; color: var(--texto-suave); font-weight: 650; }
.expl-areas-r { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 14px; padding: 12px 14px; border-radius: 16px; background: var(--sup); border: 1px solid var(--linha); }
.ear-rot { font-size: .82rem; font-weight: 700; color: var(--tinta-2); margin-right: 4px; }
.expl-areas-r .link { margin-left: auto; }
.expl-novos { display: flex; align-items: center; gap: 10px; margin: 0 0 14px; padding: 12px 14px; border-radius: 14px; background: var(--azul-suave); color: var(--tinta); font-size: .9rem; font-weight: 600; }
.expl-novos svg { width: 18px; height: 18px; color: var(--bic); flex: none; }
.ar-boas { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 16px; align-items: center; margin-bottom: 18px; }
.ar-boas h1 { font-size: 1.6rem; margin-bottom: 4px; }
.ar-boas p { color: var(--tinta-2); max-width: 64ch; }
.ar-boas-ic { width: 56px; height: 56px; border-radius: 18px; display: grid; place-items: center; background: var(--marca); color: #fff; font-size: 1.4rem; }
.confirmar .ar-boas-ic { margin: 0 auto 14px; }
.ar { padding: 22px 24px; }
.ar-etapas { list-style: none; margin: 0 0 18px; padding: 0; display: flex; gap: 6px; }
.ar-etapas li { flex: 1; display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 12px; font-size: .84rem; font-weight: 650; color: var(--tinta-3); background: var(--sup-2); }
.ar-etapas li span { width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; background: var(--sup-3); font-size: .78rem; font-weight: 800; }
.ar-etapas li.on { color: var(--tinta); background: var(--azul-suave); }
.ar-etapas li.on span { background: var(--marca); color: #fff; }
.ar-etapas li.feito { color: var(--tinta-2); }
.ar-etapas li.feito span { background: var(--azul-suave); color: var(--bic); }
.ar-passo { display: grid; gap: 12px; }
.ar-passo h2 { font-size: 1.25rem; }
.ar-passo > .ajuda { margin-top: -6px; }
.ar-busca { max-width: 520px; }
.ar-lista { display: grid; gap: 6px; max-height: 440px; overflow-y: auto; padding-right: 4px; }
.ar-op { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 14px; border: 1px solid var(--linha); background: var(--sup); text-align: left; color: inherit; font: inherit; cursor: pointer; }
.ar-op:hover { border-color: var(--linha-2); background: var(--sup-2); }
.ar-op.on { border-color: var(--bic); background: var(--azul-suave); }
.ar-check { width: 26px; height: 26px; border-radius: 8px; border: 2px solid var(--linha-2); display: grid; place-items: center; color: transparent; font-size: .8rem; background: var(--sup); }
.ar-op.on .ar-check { background: var(--marca); border-color: var(--marca); color: #fff; }
.ar-t { min-width: 0; display: flex; flex-direction: column; }
.ar-t strong { font-weight: 720; }
.ar-t small { color: var(--tinta-2); font-size: .82rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ar-n { font-size: .82rem; font-weight: 650; color: var(--tinta-3); white-space: nowrap; }
.ar-op.on .ar-n { color: var(--texto-suave); }
.ar-uni { display: grid; gap: 10px; padding: 14px 16px; border-radius: 16px; border: 1px solid var(--linha); background: var(--sup-2); }
.ar-uni header { display: flex; flex-direction: column; }
.ar-uni header strong { font-weight: 750; }
.ar-uni header small { color: var(--tinta-2); font-size: .82rem; }
.ar-seg { width: 100%; }
.ar-seg button { flex: 1; }
.ar-cursos { display: flex; flex-wrap: wrap; gap: 8px; max-height: 300px; overflow-y: auto; }
.ar-curso { display: inline-flex; align-items: center; gap: 7px; height: 36px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--linha-2); background: var(--sup); color: var(--tinta); font: inherit; font-size: .86rem; font-weight: 600; cursor: pointer; }
.ar-curso.on { border-color: var(--bic); background: var(--azul-suave); color: var(--texto-suave); }
.ar-curso i { color: var(--bic); }
.ar-curso small { color: var(--tinta-3); font-size: .78rem; }
.ar-falta { color: var(--vermelho); }
.ar-resumo { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.ar-resumo li { display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: 4px 14px; padding: 12px 14px; border-radius: 14px; border: 1px solid var(--linha); background: var(--sup); }
.ar-resumo strong { font-weight: 750; }
.ar-resumo span { color: var(--tinta); }
.ar-resumo small { grid-column: 2; color: var(--tinta-3); font-size: .82rem; }
.ar-pe { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--linha); }
.ar-pe .esp { flex: 1; }
.ar-modal { padding: 24px 28px 18px; overflow-y: auto; }
.ar-quem-t { margin: 0 44px 12px 0; color: var(--tinta-2); font-size: .92rem; }
.ar-quem-t strong { color: var(--tinta); }
@media (max-width: 640px) {
  .ar { padding: 16px; }
  .ar-modal { padding: 18px 18px 14px; }
  .ar-etapas li { font-size: 0; gap: 0; justify-content: center; }
  .ar-etapas li span { font-size: .78rem; }
  .ar-etapas li.on { font-size: .84rem; gap: 8px; flex: 2; }
  .ar-lista { max-height: none; }
  .ar-op { grid-template-columns: 26px minmax(0, 1fr); }
  .ar-n { grid-column: 2; }
  .ar-resumo li { grid-template-columns: minmax(0, 1fr); }
  .ar-resumo small { grid-column: 1; }
  .ar-pe .btn { flex: 1 1 auto; justify-content: center; }
  .ar-pe .esp { display: none; }
}

/* ---------- Painel → Resoluções ---------- */
.admres-regra { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.admres-regra .verif span { display: flex; flex-direction: column; gap: 2px; }
.admres-regra .verif small { color: var(--tinta-2); font-size: .82rem; }
.verif-sub { display: block; margin-top: 2px; color: var(--tinta-2); font-size: .8rem; font-weight: 500; }
.admres-seg { margin-bottom: 14px; max-width: 100%; overflow-x: auto; }
.admres-seg .n-chip { margin-left: 2px; }
.adm-intro { margin: 0 0 12px; color: var(--tinta-2); font-size: .9rem; max-width: 80ch; }
.adm-res-l { display: grid; gap: 10px; }
.adm-res { display: grid; gap: 10px; padding: 14px 16px; border-radius: 18px; border: 1px solid var(--linha); background: var(--sup); }
.adm-res-cab { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.adm-res-mat { display: flex; flex-direction: column; min-width: 0; color: inherit; text-decoration: none; }
.adm-res-mat strong { font-weight: 720; }
.adm-res-mat small { color: var(--tinta-2); font-size: .82rem; }
.adm-res-quem { display: flex; align-items: center; gap: 10px; }
.adm-res-quem .av { width: 34px; height: 34px; flex: none; }
.adm-res-quem > span { display: flex; flex-direction: column; min-width: 0; }
.adm-res-quem strong { font-size: .92rem; }
.adm-res-quem strong a { color: inherit; text-decoration: none; }
.adm-res-quem small { color: var(--tinta-3); font-size: .82rem; }
.adm-res-resumo { color: var(--tinta); font-size: .92rem; }
.adm-res-nums { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: .84rem; color: var(--tinta-2); }
.adm-res-nums b { color: var(--tinta); }
.adm-res-acoes { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding-top: 4px; }
.adm-todas { font-size: .86rem; align-items: center; margin-right: 6px; }
.adm-todas input { margin: 0; width: 18px; height: 18px; }
.adm-exp-areas { display: flex; flex-wrap: wrap; gap: 6px; }
.adm-mat-r { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
.adm-mat-r .adm-res-nums { grid-column: 1; }
.adm-mat-r .adm-todas { grid-column: 2; grid-row: 1 / 3; }
.adm-mais { display: flex; justify-content: center; margin-top: 14px; }
.adm-quem { display: grid; gap: 6px; max-height: 60vh; overflow-y: auto; }
.adm-quem-i { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 12px; color: inherit; text-decoration: none; background: var(--sup-2); }
.adm-quem-i > span { display: flex; flex-direction: column; min-width: 0; }
.adm-quem-i strong { font-size: .9rem; }
.adm-quem-i small { color: var(--tinta-3); font-size: .8rem; }
.adm-quem-d { text-align: right; font-size: .8rem; color: var(--tinta-2); }
.saude-de { margin-top: 12px; font-size: .9rem; color: var(--tinta-2); }
.saude-l { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 8px; }
.saude-l li { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 10px; padding: 12px 14px; border-radius: 14px; border: 1px solid var(--linha); background: var(--sup-2); }
.saude-l li > i { font-size: 1.1rem; margin-top: 2px; }
.saude-l .ok { color: var(--bic); }
.saude-l .nao { color: var(--vermelho); }
.saude-l .talvez { color: var(--tinta-3); }
.saude-l strong { display: block; margin-bottom: 2px; }
.saude-l p { font-size: .86rem; color: var(--tinta-2); line-height: 1.45; }
.saude-reg { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 8px; }
.saude-reg code { flex: 1 1 260px; padding: 8px 10px; border-radius: 10px; background: var(--sup); border: 1px solid var(--linha); font-size: .8rem; word-break: break-all; }
.saude-dicas { margin: 12px 0 0; padding-left: 18px; font-size: .86rem; color: var(--tinta-2); display: grid; gap: 6px; }
@media (max-width: 640px) {
  .adm-mat-r { grid-template-columns: minmax(0, 1fr); }
  .adm-mat-r .adm-todas { grid-column: 1; grid-row: auto; }
  .admres-regra .verif { align-items: flex-start; }
}

/* ---------- Texto dos PDF: camada para o Google, excerto, pesquisa dentro dos PDF, docentes ---------- */
.seo-excerto { margin: 16px 0; padding: 14px 16px; border-radius: 16px; background: var(--sup-2); border: 1px solid var(--linha); }
.seo-excerto h2 { font-size: 1rem; margin-bottom: 6px; }
.seo-excerto p { color: var(--tinta); line-height: 1.55; }
.seo-excerto .seo-nota { margin-top: 8px; font-size: .82rem; color: var(--tinta-3); }
.seo-texto { display: grid; gap: 14px; margin-top: 18px; }
.tx-pag { position: relative; container-type: inline-size; width: 100%; max-width: 560px; background: #fff; border: 1px solid var(--linha); border-radius: 8px; overflow: hidden; }
.tx-pag img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: top; }
.tx-pag span { position: absolute; display: block; opacity: 0; color: transparent; white-space: nowrap; overflow: hidden; line-height: 1; pointer-events: none; -webkit-user-select: none; user-select: none; }
.seo-lista { list-style: none; margin: 16px 0 0; padding: 0; display: grid; gap: 6px; }
.seo-lista li small { color: var(--tinta-3); margin-left: 6px; }
.bt { margin-top: 28px; padding: 18px; border-radius: 22px; border: 1px solid var(--linha); background: var(--sup); }
.bt-cab { display: flex; flex-direction: column; gap: 2px; margin-bottom: 12px; }
.bt-cab h2 { display: flex; align-items: center; gap: 8px; font-size: 1.1rem; }
.bt-cab h2 svg { width: 18px; height: 18px; color: var(--bic); }
.bt-cab small { color: var(--tinta-2); font-size: .86rem; }
.bt-l { display: grid; gap: 8px; }
.bt-i { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 12px; align-items: start; padding: 10px; border-radius: 16px; border: 1px solid var(--linha); background: var(--sup-2); color: inherit; text-decoration: none; }
.bt-i:hover { border-color: var(--linha-2); }
.bt-i .th { width: 52px; height: 72px; aspect-ratio: auto; border-radius: 8px; font-size: 3.2px; background: #fff; box-shadow: 0 0 0 1px var(--linha); }
.bt-i .th-real .th-img { inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: top center; border-radius: 0; box-shadow: none; }
.bt-t { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.bt-t strong { font-weight: 700; }
.bt-t small { color: var(--tinta-2); font-size: .82rem; }
.bt-t q { quotes: none; display: block; margin-top: 4px; color: var(--tinta-2); font-size: .88rem; line-height: 1.45; }
.bt-t mark { background: var(--azul-claro); color: var(--texto-suave); border-radius: 4px; padding: 0 2px; font-weight: 700; }
.docentes-l { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(230px, 100%), 1fr)); gap: 10px; }
.docente-i { display: flex; flex-direction: column; gap: 2px; padding: 14px 16px; border-radius: 16px; border: 1px solid var(--linha); background: var(--sup); color: inherit; text-decoration: none; }
.docente-i:hover { border-color: var(--bic); }
.docente-i small { color: var(--tinta-2); font-size: .82rem; }
.txa-acoes { align-items: center; margin-top: 10px; }
.txa-estado { color: var(--tinta-2); font-size: .88rem; }
.txa-prog { display: flex; align-items: center; gap: 12px; margin-top: 10px; }
.txa-prog > div { flex: 1; height: 8px; border-radius: 99px; background: var(--sup-3); overflow: hidden; }
.txa-prog span { display: block; height: 100%; border-radius: 99px; background: var(--bic); transition: width .3s; }
.txa-prog small { color: var(--tinta-2); white-space: nowrap; font-variant-numeric: tabular-nums; }
.txa-log { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 4px; font-size: .82rem; color: var(--tinta-2); }

/* ---------- Rodapé do cartão: quem partilhou (cara, nome e escola) com os botões pequenos ---------- */
.cartao-pe { display: flex; align-items: center; gap: 10px; margin-top: auto; padding: 12px 2px 0 2px; }
.cartao .quem { flex: 1; min-width: 0; display: flex; align-items: center; gap: 9px; }
.cartao .quem .av { display: inline-flex; width: 36px; height: 36px; font-size: .8rem; flex: none; }
.cartao .quem .quem-t { display: flex; flex-direction: column; min-width: 0; line-height: 1.2; gap: 1px; }
.cartao .quem .n { display: flex; align-items: center; gap: 4px; font-size: .84rem; font-weight: 700; color: var(--tinta); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cartao .quem .n .ins { width: 15px; height: 15px; flex: none; }
.cartao .quem .n .selo-papel.so-ic { width: 16px; height: 16px; }
.cartao .quem .quem-t small { font-size: .78rem; color: var(--tinta-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cartao-nums { display: flex; align-items: center; gap: 10px; flex: none; }
.cartao-pe .stat { height: auto; padding: 0; border: 0; background: none; gap: 4px; font-size: .8rem; color: var(--tinta-2); }
.cartao-pe .stat svg { width: 15px; height: 15px; }
.cartao-pe .marcar.btn { flex: none; width: 32px; height: 32px; min-height: 0; margin: 0; padding: 0; gap: 0; border-radius: 50%; border: 1.5px solid var(--linha-2); background: var(--sup); justify-content: center; }
.cartao-pe .marcar.btn svg { width: 16px; height: 16px; }
@media (min-width: 761px) { #exp-res .cartao-pe .marcar.btn { width: 32px; height: 32px; padding: 0; gap: 0; font-size: 0; } #exp-res .cartao .quem .av { width: 40px; height: 40px; } }
@media (max-width: 760px) {
  .cartao .quem .av, .quem .av { display: inline-flex; width: 32px; height: 32px; font-size: .76rem; }
  .cartao .quem .n, .quem .n { display: flex; }
  .cartao-nums { gap: 8px; }
  .cartao-pe .stat { font-size: .8rem; }
  .cartao-pe .marcar.btn { width: 30px; height: 30px; }
  .cartao-pe .marcar.btn svg { width: 15px; height: 15px; }
}
.rs-prev { min-height: 300px; }
@media (max-width: 760px) { .rs-prev { min-height: 220px; } }

/* ---------- Estados vazios com ícone, abas do perfil fixas no telemóvel, ações do perfil ---------- */
.vazio-ic { display: grid; justify-items: center; text-align: center; gap: 6px; padding: 34px 20px; }
.vazio-ic .vz-ic { width: 64px; height: 64px; border-radius: 22px; display: grid; place-items: center; background: var(--azul-suave); color: var(--bic); margin-bottom: 6px; }
.vazio-ic .vz-ic svg { width: 30px; height: 30px; }
.vazio-ic .vz-ic i { font-size: 1.5rem; }
.vazio-ic h3 { font-size: 1.08rem; }
.vazio-ic p { color: var(--tinta-2); max-width: 46ch; }
.vazio-ic .vz-acao { margin-top: 10px; }
.perfil-acoes { display: flex; flex-wrap: wrap; gap: 8px; margin-left: auto; }
@media (max-width: 760px) {
  .perfil-acoes { width: 100%; margin-left: 0; }
  .perfil-acoes .btn { flex: 1 1 auto; justify-content: center; }
  .abas[role="tablist"] { position: sticky; top: var(--topo-h); z-index: 30; background: var(--mesa); padding-top: 6px; }
  .aba[aria-selected="true"] { color: var(--bic); border-bottom-color: var(--bic); }
}

/* ---------- Partilhar o perfil (flyer) ---------- */
.pp-prev-w { align-items: center; }
.pp-prev { width: 100%; max-width: 300px; margin: 0 auto; border-radius: 18px; overflow: hidden; box-shadow: var(--sombra-pop); background: #101633; }
.pp-prev.story { aspect-ratio: 9 / 16; }
.pp-prev.post { aspect-ratio: 1; }
.pp-prev canvas { display: block; width: 100%; height: 100%; }
.pp-nota { text-align: center; }
.pp-seg { width: 100%; }
.pp-seg button { flex: 1; }
.campo .rotulo { display: block; font-weight: 700; font-size: .9rem; margin-bottom: 6px; }
.pp-acoes .btn { flex: 1 1 auto; justify-content: center; }
.pp-links { display: grid; gap: 10px; }
.pp-link { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 12px 14px; border-radius: 14px; border: 1px solid var(--linha); background: var(--sup); }
.pp-link > div { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.pp-link small { color: var(--tinta-2); font-size: .8rem; line-height: 1.4; }
.pp-link code { font-size: .8rem; color: var(--bic); word-break: break-all; }

/* Peças do leitor reaproveitadas na página das resoluções */


/* ---------- Sem scroll de lado no site ---------- */
body { overflow-x: hidden; }
@supports (overflow: clip) { body { overflow-x: clip; } }
.casca, main, .pag { max-width: 100%; }
main { min-width: 0; }

/* ---------- Página inicial (visitantes): espaço dos lados nos ecrãs grandes ---------- */
.landing .wrap { max-width: 1240px; padding-inline: clamp(20px, 5vw, 64px); }
.landing .hero h1 { font-size: clamp(2.6rem, 4.6vw, 4.3rem); max-width: 12ch; }
.landing .hero .wrap { gap: clamp(28px, 4vw, 56px); }
@media (min-width: 1500px) { .landing .hero { padding-top: 56px; } }

/* ---------- Explorar: coluna dos filtros com rolagem própria ---------- */
@media (min-width: 901px) {
  .facetas { position: sticky; top: calc(var(--topo-h) + 16px); overflow-y: auto; overscroll-behavior: contain; align-self: start; }
}

/* ---------- Gostos nas resoluções ---------- */
.rs-topo-d { display: inline-flex; align-items: center; gap: 8px; }
.rs-gostos { display: inline-flex; align-items: center; gap: 5px; height: 28px; padding: 0 10px; border-radius: 999px; background: var(--sup-2); color: var(--tinta-2); font-size: .8rem; font-weight: 750; }
.rs-gostos svg { width: 15px; height: 15px; }
.rs-gostos.rg-g { height: 40px; padding: 0 14px; font-size: .95rem; }
.rs-gostos.rg-g svg { width: 18px; height: 18px; }
.rp-gosto { gap: 8px; }
.rp-gosto .rg-n { font-weight: 800; }
@media (max-width: 760px) { .rs-topo-d { grid-column: 2; justify-self: start; } .rs-topo .rs-topo-d .rs-est { grid-column: auto; } }

/* ---------- Página de cada resolução (/resolucao/<código>) ---------- */
.rp { max-width: 1240px; }
.rp-cab { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 16px; margin: 6px 0 16px; }
.rp-autor { display: flex; align-items: flex-start; gap: 16px; min-width: 0; flex: 1 1 520px; }
.rp-autor .av { width: 64px; height: 64px; flex: none; font-size: 1.3rem; }
.rp-autor-t { display: grid; gap: 6px; min-width: 0; }
.rp-mat { color: var(--tinta-2); font-size: .9rem; font-weight: 650; text-decoration: none; }
.rp-mat:hover { color: var(--bic); }
.rp-autor-t h1 { font-size: clamp(1.4rem, 2.4vw, 2rem); }
.rp-resumo { font-size: 1.04rem; color: var(--tinta); }
.rp-acoes { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.rp-saltos { position: sticky; top: calc(var(--topo-h) + 8px); z-index: 15; display: flex; gap: 6px; margin-bottom: 16px; padding: 6px; border-radius: 999px; background: var(--sup); border: 1px solid var(--linha); box-shadow: var(--sombra-leve); width: max-content; max-width: 100%; overflow-x: auto; scrollbar-width: none; }
.rp-saltos button { display: inline-flex; align-items: center; gap: 7px; height: 36px; padding: 0 14px; border: 0; border-radius: 999px; background: none; color: var(--tinta-2); font: inherit; font-size: .88rem; font-weight: 700; cursor: pointer; white-space: nowrap; }
.rp-saltos button:hover { background: var(--azul-suave); color: var(--bic); }
.rp-saltos i { color: var(--bic); }
.rp-grelha { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 24px; align-items: start; }
.rp-conteudo { display: grid; gap: 22px; min-width: 0; -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }
.rp-sec { display: grid; gap: 14px; padding: 18px; border-radius: 22px; border: 1px solid var(--linha); background: var(--sup); scroll-margin-top: calc(var(--topo-h) + 70px); }
.rp-sec h2 { display: flex; align-items: center; gap: 9px; font-size: 1.1rem; }
.rp-sec h2 i { color: var(--bic); }
.rp .rv-video { border-radius: 16px; background: #000; }
.rp .rv-video video { display: block; width: 100%; max-height: 80vh; aspect-ratio: 16 / 9; background: #000; }
.rp .rv-emb { border-radius: 16px; }
.rp .rv-video-erro { color: #fff; background: #000; }
.rp .rv-link { background: var(--sup-2); color: var(--tinta); }
.rp-pdf { display: grid; gap: 8px; }
.rp-rot { font-weight: 700; font-size: .92rem; display: flex; align-items: baseline; gap: 8px; }
.rp-rot small { color: var(--tinta-3); font-weight: 600; }
.rp .rv-pdf { border-radius: 16px; }
.rp-fotos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.rp-fotos.uma { grid-template-columns: minmax(0, 1fr); }
.rp .rv-img { border-radius: 14px; border: 1px solid var(--linha); background: #fff; }
.rp-notas p { line-height: 1.6; color: var(--tinta); }
.rp-prev { min-height: 420px; border-radius: 22px; }
.rp-lado { position: sticky; top: calc(var(--topo-h) + 16px); display: grid; gap: 14px; }
.rp-cartao { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 4px 12px; align-items: center; padding: 16px; border-radius: 20px; border: 1px solid var(--linha); background: var(--sup); }
.rp-cartao .av { width: 52px; height: 52px; grid-row: 1 / 3; }
.rp-cartao > div { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.rp-cartao strong { font-size: 1rem; }
.rp-cartao small { color: var(--tinta-2); font-size: .82rem; grid-column: 2; }
.rp-nums { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.rp-nums span { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; border-radius: 14px; background: var(--sup-2); font-size: .8rem; color: var(--tinta-2); }
.rp-nums b { font-size: 1.05rem; color: var(--tinta); }
.rp-outras { display: grid; gap: 8px; padding: 14px; border-radius: 20px; border: 1px solid var(--linha); background: var(--sup); }
.rp-outras h2 { font-size: .92rem; color: var(--tinta-2); }
.rp-outra { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 8px; border-radius: 14px; color: inherit; text-decoration: none; }
.rp-outra:hover { background: var(--sup-2); }
.rp-outra .av { width: 36px; height: 36px; }
.rp-outra > span:nth-child(2) { display: flex; flex-direction: column; min-width: 0; }
.rp-outra strong { font-size: .9rem; }
.rp-outra small { color: var(--tinta-2); font-size: .82rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rp-outra .rs-est { height: 26px; padding: 0 9px; }
.rp-voltar { justify-content: center; }
@media print { .rp-conteudo { display: none !important; } }
@media (max-width: 960px) {
  .rp-grelha { grid-template-columns: minmax(0, 1fr); }
  .rp-lado { position: static; }
}
@media (max-width: 640px) {
  .rp-autor .av { width: 48px; height: 48px; }
  .rp-sec { padding: 14px 12px; border-radius: 18px; }
  .rp-fotos { grid-template-columns: minmax(0, 1fr); }
  .rp-acoes { width: 100%; }
  .rp-acoes .btn { flex: 1 1 auto; justify-content: center; }
  .rp-saltos { border-radius: 16px; }
}

/* ---------- Perfil → Respostas abertas ---------- */
.ra-l { display: grid; gap: 10px; }
.ra-i { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 12px 14px; border-radius: 18px; border: 1px solid var(--linha); background: var(--sup); color: inherit; text-decoration: none; }
.ra-i:hover { border-color: var(--bic); }
.ra-i .av { width: 44px; height: 44px; }
.ra-t { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.ra-t strong { font-weight: 720; }
.ra-t small { color: var(--tinta-2); font-size: .84rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ra-d { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.ra-d small { color: var(--tinta-3); font-size: .82rem; }
@media (max-width: 640px) { .ra-i { grid-template-columns: 40px minmax(0, 1fr); } .ra-d { grid-column: 2; flex-direction: row; align-items: center; justify-content: flex-start; } }

/* ---------- Erros com ícone ---------- */
.erro-ic .vz-ic { background: #FDECEE; color: var(--vermelho); }
.erro-ic .vz-acao { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.erro-arranque { min-height: 60vh; align-content: center; }

/* ---------- Cartões em grelha: quem publicou numa linha inteira, números e guardar por baixo ---------- */
.grelha-docs .cartao-pe { flex-wrap: wrap; row-gap: 10px; }
.grelha-docs .cartao .quem { flex: 1 1 100%; }
.grelha-docs .cartao-nums { margin-right: auto; }
.grelha-docs .cartao .quem .n, .grelha-docs .cartao .quem .quem-t small { white-space: normal; overflow: visible; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }

/* ---------- "Continuar a estudar" e listas: toda a informação do material ---------- */
.linha-doc { grid-template-columns: 56px minmax(0, 1fr) auto; gap: 14px; }
.linha-doc .th { width: 56px; height: 76px; aspect-ratio: auto; border-radius: 10px; font-size: 3.4px; background: #fff; box-shadow: 0 0 0 1px var(--linha); }
.linha-doc .ld-t { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.linha-doc .ld-t strong { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.25; }
.linha-doc .ld-meta { display: flex; flex-wrap: wrap; gap: 6px; }
.linha-doc .ld-meta .et { height: 24px; font-size: .78rem; }
.linha-doc small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.linha-doc .ld-ir svg { width: 18px; height: 18px; color: var(--tinta-3); }
.linha-doc:hover .ld-ir svg { color: var(--bic); }

.zona-perigo { border-color: #F6C7CE; }
.zona-perigo header h3 { color: var(--vermelho); }
.zona-perigo p { color: var(--tinta-2); line-height: 1.55; margin-top: 8px; }
.ed-logo { margin-top: 10px; justify-content: center; gap: 10px; }
.ed-logo img { border-radius: 8px; }
.av-img[src*="perfil-veteraano"] { object-fit: cover; background: #1E40E6; }

/* =========================================================
   Explorar nos ecrãs normais: título fixo por baixo do cabeçalho, filtros como uma segunda barra lateral
   e só os resultados a deslizar (cada coluna com o seu próprio scroll)
   ========================================================= */
@media (min-width: 1061px) {
  /* a lista desliza com a página (barra do site e roda do rato em qualquer sítio); os filtros ficam fixos ao lado, com scroll só para eles */
  body.rota-explorar .exp-g { align-items: start; }
  body.rota-explorar .facetas { position: sticky; top: calc(var(--topo-vis) + 16px); max-height: calc(100vh - var(--topo-vis) - 32px); overflow-y: auto; overscroll-behavior: contain; }
}

/* Barra dos resultados: quantos são, com ou sem resolução, e a ordem, com nomes claros */
.res-cab { flex-wrap: wrap; row-gap: 10px; }
.res-esq { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 16px; min-width: 0; }
.res-cab .contagem { display: inline-flex; align-items: baseline; gap: 6px; white-space: nowrap; width: auto; flex: none; font-size: .98rem; }
.res-cab .contagem strong { display: inline; font-size: 1.15rem; }
.ordem-rot { font-size: .8rem; font-weight: 700; color: var(--tinta-3); white-space: nowrap; }
.res-filtro { display: flex; align-items: center; gap: 4px; padding: 4px 4px 4px 12px; border-radius: 999px; background: var(--sup-2); flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; max-width: 100%; }
.res-filtro .ordem-rot { margin-right: 4px; }
.res-filtro button { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 12px; border-radius: 999px; border: 0; background: none; font: inherit; font-size: .84rem; font-weight: 650; color: var(--tinta-2); cursor: pointer; white-space: nowrap; }
.res-filtro button[aria-pressed="true"] { background: var(--sup); color: var(--bic); box-shadow: 0 1px 3px rgba(16, 22, 51, .12); }
.res-filtro .n-chip { font-size: .76rem; }
.res-dir .ordem-rot { margin-right: 2px; }
@media (max-width: 760px) { .res-dir > .ordem-rot { display: none; } .res-esq { width: 100%; } }

/* Cartões: descrição curta, docente, cursos e resoluções (na lista do Explorar) */
.cartao-desc, .cartao-extra { display: none; }
.et-res { background: var(--azul-suave); color: var(--bic); display: inline-flex; align-items: center; gap: 4px; }
.et-res svg { width: 13px; height: 13px; }
#exp-res .cartao { grid-template-rows: auto auto auto auto auto 1fr; }
#exp-res .cartao-th { grid-row: 1 / -1; }
#exp-res .cartao .cartao-desc { display: -webkit-box; grid-column: 2; margin: 8px 0 0; font-size: .86rem; line-height: 1.45; color: var(--tinta-2); -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
#exp-res .cartao .cartao-extra { display: flex; flex-wrap: wrap; gap: 4px 14px; grid-column: 2; margin: 8px 0 0; font-size: .8rem; color: var(--tinta-2); }
#exp-res .cartao .ce-i { display: inline-flex; align-items: center; gap: 6px; min-width: 0; max-width: 100%; }
#exp-res .cartao .ce-i i { color: var(--bic); font-size: .82rem; flex: none; }
#exp-res .cartao .ce-i:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Resoluções: frase curta e o caminho Material → Resolução */
.rs-intro { color: var(--tinta-2); font-size: .94rem; line-height: 1.5; margin: -4px 0 0; }
.rs-fluxo { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.rs-fluxo li { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 14px; border: 1.5px solid var(--linha); background: var(--sup); }
.rf-ic { width: 32px; height: 32px; flex: none; border-radius: 50%; display: grid; place-items: center; background: var(--sup-3); color: var(--tinta-3); }
.rf-ic svg { width: 16px; height: 16px; }
.rf-t { display: flex; flex-direction: column; min-width: 0; line-height: 1.25; }
.rf-t strong { font-size: .88rem; }
.rf-t small { font-size: .82rem; color: var(--tinta-2); }
.rf-agora { border-color: var(--bic); background: var(--azul-suave); }
.rf-agora .rf-ic { background: var(--marca); color: #fff; }
.rf-feito .rf-ic { background: var(--azul-suave); color: var(--bic); }
.rf-depois { opacity: .7; }
.rs-cad-dois .btn + .btn { margin-top: 2px; }
@media (max-width: 760px) { .rs-fluxo { grid-template-columns: minmax(0, 1fr); } }

/* Leitor da resolução: overlay branco, ecrã inteiro, só fecha no X */
.res-visor { position: fixed; inset: 0; z-index: 150; display: flex; flex-direction: column; background: var(--mesa); color: var(--tinta); }
.rv-topo { flex: none; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px clamp(14px, 3vw, 32px); padding-top: calc(10px + env(safe-area-inset-top, 0px)); background: var(--sup); border-bottom: 1px solid var(--linha); }
.rv-topo-t { display: flex; align-items: center; gap: 12px; min-width: 0; }
.rv-topo-t .av { width: 40px; height: 40px; flex: none; }
.rv-topo-t span { display: flex; flex-direction: column; min-width: 0; }
.rv-topo-t small { color: var(--tinta-2); font-size: .8rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rv-topo-t strong { font-size: 1rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rv-fechar { flex: none; width: 46px; height: 46px; border-radius: 50%; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta); display: grid; place-items: center; cursor: pointer; }
.rv-fechar:hover { border-color: var(--bic); color: var(--bic); }
.rv-fechar svg { width: 20px; height: 20px; }
.rv-rolo { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 22px clamp(14px, 3vw, 40px) calc(48px + env(safe-area-inset-bottom, 0px)); }
.rp-visor { max-width: 1240px; margin: 0 auto; }
.res-visor .rp-saltos { top: 0; }
.res-visor .rp-lado { top: 64px; }
button.rp-outra { width: 100%; border: 0; background: none; text-align: left; font: inherit; color: inherit; cursor: pointer; }
button.ra-i { width: 100%; text-align: left; font: inherit; color: inherit; cursor: pointer; }

/* Confirmar antes de desbloquear */
.cd { display: grid; justify-items: center; text-align: center; gap: 10px; padding: 8px 4px 2px; }
.cd-arte { display: flex; align-items: center; gap: 12px; margin-bottom: 4px; }
.cd-moeda svg { width: 64px; height: 64px; animation: cdSalta 1.1s ease-in-out infinite; }
.cd-seta svg { width: 26px; height: 26px; color: var(--tinta-3); animation: cdSeta 1.1s ease-in-out infinite; }
.cd-cad { width: 64px; height: 64px; border-radius: 20px; display: grid; place-items: center; background: var(--azul-suave); color: var(--bic); animation: cdAbana 1.6s ease-in-out infinite; }
.cd-cad svg { width: 30px; height: 30px; }
@keyframes cdSalta { 0%, 100% { transform: translateY(0) rotate(0); } 40% { transform: translateY(-10px) rotate(-8deg); } 60% { transform: translateY(-6px) rotate(6deg); } }
@keyframes cdSeta { 0%, 100% { transform: translateX(0); opacity: .6; } 50% { transform: translateX(6px); opacity: 1; } }
@keyframes cdAbana { 0%, 70%, 100% { transform: rotate(0); } 78% { transform: rotate(-10deg); } 86% { transform: rotate(8deg); } 94% { transform: rotate(-4deg); } }
.cd h2 { font-size: 1.5rem; }
.cd .intro { margin: 0; max-width: 40ch; }
.cd-saldo { display: flex; align-items: center; gap: 14px; padding: 12px 18px; border-radius: 16px; background: var(--sup-2); }
.cd-saldo span { display: flex; flex-direction: column; line-height: 1.2; }
.cd-saldo small { font-size: .78rem; color: var(--tinta-3); font-weight: 650; }
.cd-saldo b { font-size: 1.2rem; }
.cd-saldo i svg { width: 18px; height: 18px; color: var(--tinta-3); }
.cd-nota { font-size: .84rem; color: var(--tinta-3); }
.cd .linha-btn { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; margin-top: 6px; width: 100%; }
.cd .linha-btn .btn { flex: 1 1 180px; justify-content: center; }
@media (prefers-reduced-motion: reduce) { .cd-moeda svg, .cd-seta svg, .cd-cad { animation: none; } }

/* Vídeos do site (apresentação e pontos) */
.video-site { position: relative; border-radius: 18px; overflow: hidden; background: #0B1024; box-shadow: var(--sombra-leve); -webkit-user-select: none; user-select: none; }
.video-site video { display: block; width: 100%; aspect-ratio: 16 / 9; background: #0B1024; }
.saldo-video { margin-top: 22px; display: grid; gap: 10px; position: relative; z-index: 1; }
.saldo-video > p { font-size: .9rem; font-weight: 700; color: rgba(255, 255, 255, .85); }
.saldo-video .video-site { box-shadow: 0 10px 30px rgba(8, 14, 60, .35); border: 1px solid rgba(255, 255, 255, .18); }
.sec-video .video-site { max-width: 1000px; margin: clamp(16px, 3vw, 28px) auto 0; }

/* Recomeçar do zero: afastado do botão de guardar e escondido atrás do código e da palavra-passe */
.zona-perigo { margin-top: 32px; }
.zona-perigo .linha-btn { margin-top: 14px; }
.rc-form { margin-top: 14px; display: grid; gap: 10px; }
.rc-form .def-g { margin-top: 4px; }

/* =========================================================
   Overlays de ecrã inteiro com endereço (#ligados, #video/...): brancos, só fecham no X
   ========================================================= */
.ecra-ov { position: fixed; inset: 0; z-index: 150; display: flex; flex-direction: column; background: var(--mesa); color: var(--tinta); }
.eo-topo { flex: none; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px clamp(14px, 3vw, 32px); padding-top: calc(12px + env(safe-area-inset-top, 0px)); background: var(--sup); border-bottom: 1px solid var(--linha); }
.eo-t { display: flex; flex-direction: column; min-width: 0; }
.eo-t strong { font-size: 1.08rem; }
.eo-t small { color: var(--tinta-2); font-size: .82rem; }
.eo-rolo { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 24px clamp(14px, 3vw, 40px) calc(48px + env(safe-area-inset-bottom, 0px)); }

/* Quem está ligado agora */
.online-agora[data-action] { cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.online-agora[data-action]:hover, .online-agora[data-action]:focus-visible { border-color: var(--bic); box-shadow: 0 0 0 3px var(--azul-claro); }
.lg { max-width: 980px; margin: 0 auto; display: grid; gap: 18px; }
.lg-cab { display: grid; justify-items: center; text-align: center; gap: 4px; padding: 18px 0 8px; }
.lg-num-cx { position: relative; display: inline-flex; align-items: center; gap: 16px; }
.lg-num-cx b { font-family: var(--f-tit, inherit); font-size: clamp(4rem, 12vw, 7.5rem); line-height: 1; font-weight: 800; color: var(--bic); font-variant-numeric: tabular-nums; }
.lg-ponto { width: 18px; height: 18px; border-radius: 50%; background: var(--bic); box-shadow: 0 0 0 0 rgba(30, 64, 230, .45); animation: lgPulsa 1.6s infinite; }
@keyframes lgPulsa { 0% { box-shadow: 0 0 0 0 rgba(30, 64, 230, .45); } 70% { box-shadow: 0 0 0 16px rgba(30, 64, 230, 0); } 100% { box-shadow: 0 0 0 0 rgba(30, 64, 230, 0); } }
.lg-num-t { font-size: 1.2rem; font-weight: 700; }
.lg-num-s { color: var(--tinta-2); font-size: .92rem; }
.lg-ferr { display: grid; gap: 10px; position: sticky; top: -24px; z-index: 2; padding: 10px 0; background: var(--mesa); }
.lg-l { display: grid; gap: 8px; }
.lg-i { display: grid; grid-template-columns: 46px minmax(0, 1.4fr) minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 12px 14px; border-radius: 18px; border: 1px solid var(--linha); background: var(--sup); }
.lg-i .av { width: 46px; height: 46px; }
.lg-t { display: flex; flex-direction: column; min-width: 0; gap: 1px; }
.lg-t strong { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.lg-t small { color: var(--tinta-2); font-size: .8rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lg-et { font-size: .72rem; font-weight: 800; padding: 2px 8px; border-radius: 999px; background: var(--marca); color: #fff; }
.lg-et-ex { background: var(--azul-claro); color: var(--texto-suave); }
.lg-d { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.lg-on { display: inline-flex; align-items: center; gap: 7px; font-size: .84rem; font-weight: 700; color: var(--bic); }
.lg-on i { width: 8px; height: 8px; border-radius: 50%; background: var(--bic); }
.lg-d small { color: var(--tinta-3); font-size: .82rem; }
.lg-a { display: flex; gap: 6px; }
@media (max-width: 760px) {
  .lg-i { grid-template-columns: 42px minmax(0, 1fr); }
  .lg-i .av { width: 42px; height: 42px; }
  .lg-d, .lg-a { grid-column: 2; }
}

/* Vídeo em ecrã inteiro e o botão que o abre (carteira) */
.eo-video { max-width: 1180px; margin: 0 auto; display: grid; gap: 14px; }
.eo-video p { color: var(--tinta-2); text-align: center; }
.ecra-video .video-site video { max-height: calc(100vh - 220px); }
.video-teaser { display: grid; grid-template-columns: 148px minmax(0, 1fr); align-items: center; gap: 14px; width: 100%; padding: 10px; border-radius: 18px; border: 1px solid rgba(255, 255, 255, .22); background: rgba(255, 255, 255, .1); color: #fff; text-align: left; font: inherit; cursor: pointer; position: relative; z-index: 1; transition: background .15s; }
.video-teaser:hover { background: rgba(255, 255, 255, .18); }
.vt-th { position: relative; display: block; aspect-ratio: 16 / 9; border-radius: 12px; overflow: hidden; background: #0B1024; }
.vt-th img { width: 100%; height: 100%; object-fit: cover; display: block; }
.vt-play { position: absolute; inset: 0; display: grid; place-items: center; }
.vt-play i { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: #fff; color: var(--marca); font-size: .9rem; padding-left: 3px; box-shadow: 0 6px 18px rgba(0, 0, 0, .3); }
.vt-t { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.vt-t strong { font-size: 1rem; }
.vt-t small { color: rgba(255, 255, 255, .8); font-size: .84rem; line-height: 1.35; }
@media (max-width: 520px) { .video-teaser { grid-template-columns: 112px minmax(0, 1fr); } }

/* ---------- Partilhar o perfil de outra pessoa ---------- */
.pessoa-acoes { display: flex; flex-wrap: wrap; gap: 8px; margin-left: auto; align-self: center; }
@media (max-width: 760px) { .pessoa-acoes { width: 100%; margin-left: 0; } .pessoa-acoes .btn { flex: 1 1 auto; justify-content: center; } }
.pp-out { display: grid; gap: 16px; }
.pp-out h2 { font-size: 1.35rem; margin-right: 40px; }
.ppo-cartao { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 14px 16px; border-radius: 18px; background: var(--azul-suave); }
.ppo-cartao .av { width: 64px; height: 64px; }
.ppo-cartao > div:nth-child(2) { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.ppo-cartao strong { font-size: 1.05rem; }
.ppo-cartao small { color: var(--tinta-2); font-size: .84rem; }
.ppo-nums { display: flex; flex-direction: column; align-items: center; line-height: 1.1; }
.ppo-nums b { font-size: 1.5rem; color: var(--bic); }
.ppo-nums small { font-size: .78rem; color: var(--tinta-2); }
.ppo-redes { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(84px, 100%), 1fr)); gap: 10px; }
.ppo-rede { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 10px 6px; border-radius: 16px; border: 1px solid var(--linha); background: var(--sup); color: var(--tinta); text-decoration: none; font: inherit; font-size: .8rem; font-weight: 650; cursor: pointer; }
.ppo-rede:hover { border-color: var(--bic); }
.ppo-rede span { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; color: #fff; font-size: 1.1rem; }
.rd-wa span { background: #2548D3; } /* cor da marca WhatsApp */ .rd-fb span { background: #1877F2; } .rd-x span { background: #0F1419; } .rd-tg span { background: #229ED9; } .rd-li span { background: #0A66C2; } .rd-em span { background: var(--marca); } .rd-mais span { background: var(--sup-3); color: var(--tinta); }
.ppo-simples { justify-self: center; font-size: .86rem; }


/* ---------- Vídeo em ecrã inteiro: fundo escuro, como uma sala ---------- */
.ecra-video { background: #0B1024; color: #fff; }
.ecra-video .eo-topo { background: #0B1024; border-color: rgba(255, 255, 255, .12); color: #fff; }
.ecra-video .eo-t small, .ecra-video .eo-video p { color: rgba(255, 255, 255, .72); }
.ecra-video .rv-fechar { background: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .25); color: #fff; }
.ecra-video .eo-rolo { display: grid; align-content: center; }
.ecra-video .video-site { box-shadow: 0 30px 80px rgba(0, 0, 0, .6); }

/* ---------- Barra dos resultados no telemóvel: contagem fixa, filtros a deslizar, ordem na mesma linha ---------- */
.res-filtro > .ordem-rot { display: none; }
.res-filtro { padding-left: 4px; }
@media (max-width: 760px) {
  .res-cab { flex-wrap: nowrap; align-items: center; gap: 8px; }
  .res-esq { flex: 1 1 auto; min-width: 0; flex-wrap: nowrap; gap: 8px; }
  .res-cab .contagem { flex: none; font-size: .9rem; }
  .res-filtro { flex: 1 1 auto; min-width: 0; }
  .res-cab .res-dir { order: 0; width: auto; flex: none; }
  .res-cab .res-dir .ordem-p { display: none; }
  .res-cab .ordem-menu summary span { display: none; }
  .res-cab .ordem-menu summary { padding: 0 10px; }
  .res-cab .ordem-menu[open] > *:not(summary) { display: none; }
}

/* ---------- Ordenar em ecrã inteiro (telemóvel) ---------- */
.ord-l { display: grid; gap: 8px; max-width: 560px; margin: 0 auto; }
.ord-i { display: grid; grid-template-columns: 44px minmax(0, 1fr) 24px; align-items: center; gap: 12px; width: 100%; padding: 14px; border-radius: 16px; border: 1.5px solid var(--linha); background: var(--sup); color: inherit; font: inherit; text-align: left; cursor: pointer; }
.ord-i[aria-pressed="true"] { border-color: var(--bic); background: var(--azul-suave); }
.ord-i > i { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--sup-2); color: var(--bic); font-size: 1rem; }
.ord-i span { display: flex; flex-direction: column; min-width: 0; }
.ord-i strong { font-size: .98rem; }
.ord-i small { color: var(--tinta-2); font-size: .8rem; }
.ord-i svg { width: 20px; height: 20px; color: var(--bic); }

/* ---------- Quem desbloqueou (ecrã inteiro) ---------- */
.qd { max-width: 760px; margin: 0 auto; display: grid; gap: 14px; }
.qd-cab { display: grid; justify-items: center; text-align: center; gap: 4px; padding: 8px 0; }
.qd-cab b { font-size: clamp(3rem, 10vw, 5rem); line-height: 1; color: var(--bic); font-weight: 800; }
.qd-cab p { color: var(--tinta-2); }

/* ---------- Confirmar desbloqueio: ícones ---------- */
.cd-seta i { font-size: 1.3rem; color: var(--tinta-3); animation: cdSeta 1.1s ease-in-out infinite; }
.cd-saldo i.fa-solid { font-size: 1rem; color: var(--tinta-3); }

/* ---------- Email (SMTP) trancado ---------- */
.smtp-tranca { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 14px 16px; border-radius: 16px; background: var(--azul-suave); margin-bottom: 14px; }
.smtp-tranca > i { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--marca); color: #fff; }
.smtp-tranca p { flex: 1 1 260px; font-size: .9rem; color: var(--tinta); }
.smtp-tranca .campo { margin: 0; }
.smtp-tranca input { width: 130px; letter-spacing: .2em; font-weight: 700; }
.smtp-campos.trancado { opacity: .55; pointer-events: none; }

/* ---------- Página inicial: a pesquisa do cabeçalho só aparece depois do bloco de abertura (ecrãs normais) ---------- */
@media (min-width: 1061px) {
  body.visitante .busca-topo { transition: opacity .4s ease, transform .4s ease; }
  body.visitante.hero-no-ecra .busca-topo { opacity: 0; transform: translateY(-8px); pointer-events: none; }
}
#q-hero::placeholder { transition: opacity .35s ease; }
#q-hero.ph-sair::placeholder { opacity: 0; }

/* ---------- Flyer do perfil: pré-visualização simples ---------- */
.pp-prev { background: #F3F5FB; box-shadow: var(--sombra-leve); border: 1px solid var(--linha); }
a.rp-cartao { color: inherit; text-decoration: none; transition: border-color .15s; }
a.rp-cartao:hover { border-color: var(--bic); }
.smtp-livre { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; color: var(--bic); font-weight: 650; }

/* ---------- Lista do Explorar: capa maior (até ao fundo do cartão), cursos com reticências, guardar maior ---------- */
#exp-res .cartao { grid-template-columns: 156px minmax(0, 1fr); column-gap: 18px; }
#exp-res .cartao-th { grid-row: 1 / -1; align-self: start; }
#exp-res .cartao-th .th { width: 100%; height: auto; aspect-ratio: 210 / 297; min-height: 0; }
#exp-res .cartao .ce-i { max-width: 100%; }
#exp-res .cartao .ce-i:last-child { overflow: visible; white-space: normal; }
#exp-res .cartao .ce-tx { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: block; }
#exp-res .cartao .ce-mais { flex: none; margin-left: 6px; padding: 1px 8px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); font-size: .78rem; font-weight: 800; }
#exp-res .cartao-pe .marcar.btn { width: 40px; height: 40px; }
#exp-res .cartao-pe .marcar.btn svg { width: 19px; height: 19px; }
@media (max-width: 760px) {
  #exp-res .cartao { grid-template-columns: 110px minmax(0, 1fr); column-gap: 12px; }
  #exp-res .cartao-th .th { aspect-ratio: 210 / 297; }
}


/* ---------- Leitor da resolução no telemóvel e tablet: nada passa da largura do ecrã ---------- */
.res-visor, .rv-rolo, .rp-visor, .rp-grelha, .rp-conteudo, .rp-sec, .rp-lado { max-width: 100%; min-width: 0; }
.rv-rolo { overflow-x: hidden; }
.rp-visor { width: 100%; }
.rp-sec { overflow: hidden; }
.rp-rot { flex-wrap: wrap; white-space: normal; word-break: break-word; }
.rp .rv-pdf, .rp .rv-pdf canvas, .rp .rv-img canvas, .rp .rv-video video, .rp .rv-emb { max-width: 100%; }
.rp .rv-pdf .pg-pdf, .rp .rv-pdf .pagina { max-width: 100%; }
.rp-saltos { max-width: 100%; }
.rp-cab { min-width: 0; }
.rp-autor-t h1, .rp-resumo, .rp-mat { overflow-wrap: anywhere; }
.rv-topo-t small, .rv-topo-t strong { max-width: calc(100vw - 150px); }
@media (max-width: 760px) {
  .rv-rolo { padding: 14px 12px calc(40px + env(safe-area-inset-bottom, 0px)); }
  .rp-sec { padding: 12px 10px; border-radius: 16px; }
  .rp-cab { gap: 10px; }
  .rp-autor .av { width: 44px; height: 44px; }
  .rp-autor-t h1 { font-size: 1.25rem; }
  .rp-acoes .btn { width: 100%; }
  .rp-nums { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
  .rp-nums span { padding: 8px; font-size: .74rem; }
  .rp-nums b { font-size: .95rem; }
  .rp-outra { grid-template-columns: 32px minmax(0, 1fr) auto; }
}
/* No telemóvel a barra dos resultados fica só com a contagem e a ordem: os filtros vão para o ecrã de ordenar */
@media (max-width: 760px) { .res-cab .res-filtro { display: none; } }
.ord-sec { display: grid; gap: 8px; }
.ord-tit { font-size: .82rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--tinta-3); margin: 6px 0 2px; }
.ord-l + .ord-sec, .ord-sec + .ord-sec { margin-top: 18px; }
/* Universidades: pesquisa */
.unis-busca { margin: 0 0 18px; max-width: 560px; }


/* ---------- Editor da resolução em ecrã inteiro, por partes ---------- */
.ecra-editor .eo-rolo { padding-top: 18px; }
.re-ecra { max-width: 860px; margin: 0 auto; display: grid; gap: 14px; }
.re-ecra .re-titulo input { font-size: 1.05rem; font-weight: 600; }
.re-rot-partes { margin-top: 6px; }
.re-rasc { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-radius: 14px; background: var(--azul-suave); font-size: .9rem; }
.re-rasc svg { width: 18px; height: 18px; color: var(--bic); flex: none; }
.re-rasc p { flex: 1; }
.re-bloco { display: grid; gap: 10px; padding: 14px; border-radius: 20px; border: 1.5px solid var(--linha); background: var(--sup); }
.re-bloco + .re-bloco { margin-top: 4px; }
.re-bloco-cab { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.re-bloco-cab strong { font-size: .92rem; color: var(--bic); }
.re-bloco-acoes { display: flex; gap: 2px; }
.re-bloco-acoes .ib { width: 32px; height: 32px; }
.re-nota { min-height: 56px !important; }
.re-bloco-conteudo { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; align-items: stretch; }
.re-drop-sm { padding: 14px 12px; gap: 4px; }
.re-drop-sm .re-drop-ic { width: 38px; height: 38px; }
.re-drop-sm .re-drop-ic svg { width: 18px; height: 18px; }
.re-drop-sm strong { font-size: .9rem; }
.re-drop-sm small { font-size: .8rem; }
.re-video-cx { display: grid; gap: 6px; align-content: start; }
.re-video-cx input { width: 100%; }
.re-video-ajuda:empty { display: none; }
.re-mais { justify-content: center; border-style: dashed; }
.re-ecra .re-pe { position: sticky; bottom: 0; margin: 0 -16px; padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px)); background: var(--mesa); border-top: 1px solid var(--linha); z-index: 2; }
@media (max-width: 640px) { .re-bloco-conteudo { grid-template-columns: minmax(0, 1fr); } }

/* Leitor: partes e vídeo que cabe no ecrã (dá para ecrã inteiro com o botão do próprio vídeo) */
.rp-parte h2 { color: var(--bic); }
.rp-nota { font-size: 1.02rem; line-height: 1.6; color: var(--tinta); padding: 12px 14px; border-radius: 14px; background: var(--sup-2); }
.rp .rv-video video { max-height: min(78vh, 720px); width: 100%; object-fit: contain; }
.rp .rv-emb { max-height: min(78vh, 720px); aspect-ratio: 16 / 9; }
.rp .rv-emb iframe { position: absolute; inset: 0; }

/* Pesquisa do Explorar: cresce com o texto */
#exp-q { resize: none; overflow: hidden; min-height: 0; line-height: 1.35; font: inherit; }
.bi-campo textarea { flex: 1; min-width: 160px; min-height: 40px; height: 40px; padding: 9px 0; border: 0; background: none; outline: none; font-size: 1.02rem; box-shadow: none; border-radius: 0; }
.bi-campo textarea:focus { box-shadow: none; }
.bi { align-items: flex-start; }
@media (max-width: 900px) { .bi-campo textarea { min-width: 120px; } }


/* ---------- Chamada final: botões afastados ---------- */
.info-cta .linha-btn { gap: 12px; justify-content: center; flex-wrap: wrap; }

/* ---------- Editor: campos com o aspeto do site, um por baixo do outro; rodapé fixo fora da área que rola ---------- */
.eo-pe { flex: none; background: var(--sup); border-top: 1px solid var(--linha); padding: 12px clamp(14px, 3vw, 32px) calc(12px + env(safe-area-inset-bottom, 0px)); }
.eo-pe .re-pe { position: static; margin: 0; padding: 0; border: 0; background: none; max-width: 860px; margin-inline: auto; }
.re-bloco .campo { margin: 0; display: grid; gap: 6px; }
.re-bloco .campo > label, .re-bloco .campo > .rotulo { font-weight: 700; font-size: .9rem; margin: 0; }
.re-bloco textarea.re-nota, .re-bloco input.re-video-in { width: 100%; border: 1.5px solid var(--linha-2); border-radius: 14px; padding: 12px 14px; background: var(--sup); font: inherit; font-size: .98rem; color: var(--tinta); outline: none; transition: border-color .15s, box-shadow .15s; }
.re-bloco textarea.re-nota:focus, .re-bloco input.re-video-in:focus { border-color: var(--bic); box-shadow: 0 0 0 3px var(--azul-claro); }
.re-bloco .re-drop-sm { margin: 0; }
.re-bloco .re-lista:empty { display: none; }
.re-bloco .re-lista { margin-top: 8px; }
.re-ecra .re-prog { padding: 0; }
.re-ecra .re-erro { margin: 0; }

/* ---------- Leitor: partes uma de cada vez, com 1 2 3 ---------- */
.rp-parte { display: none; }
.rp-parte.on { display: grid; }
.rp-parte h2 small { color: var(--tinta-3); font-size: .85rem; font-weight: 600; margin-left: 4px; }
.rp-pager { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 10px; border-radius: 999px; background: var(--sup); border: 1px solid var(--linha); margin-bottom: 14px; }
.rp-pager-fundo { margin: 18px auto 0; max-width: 560px; }
.rp-pager-n { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; }
.rp-pager-n button { width: 36px; height: 36px; border-radius: 50%; border: 1.5px solid var(--linha-2); background: var(--sup); font: inherit; font-weight: 800; color: var(--tinta-2); cursor: pointer; flex: none; }
.rp-pager-n button[aria-pressed="true"] { background: var(--marca); border-color: var(--marca); color: #fff; }
.rp-pager .btn svg { width: 16px; height: 16px; }
@media (max-width: 760px) {
  .rp-pager-topo { display: none; }
  .rp-pager-fundo { position: fixed; left: 10px; right: 10px; bottom: calc(10px + env(safe-area-inset-bottom, 0px)); z-index: 160; margin: 0; max-width: none; box-shadow: var(--sombra-pop); }
  .rv-rolo { padding-bottom: calc(96px + env(safe-area-inset-bottom, 0px)); }
}

/* ---------- Ver em grande (PDF, foto, vídeo) ---------- */
.rv-grande-cx { position: relative; }
.rv-grande { position: absolute; top: 10px; right: 10px; z-index: 3; width: 40px; height: 40px; border-radius: 50%; border: 0; background: rgba(16, 22, 51, .7); color: #fff; display: grid; place-items: center; cursor: pointer; opacity: .85; }
.rv-grande:hover { opacity: 1; }
.rv-grande svg { width: 18px; height: 18px; }
.rv-video { position: relative; }
.rv-pdf:fullscreen, .rv-img:fullscreen, .rv-video:fullscreen { background: #0B1024; overflow: auto; padding: 24px; display: grid; place-items: start center; }
.rv-pdf:fullscreen .pg-pdf, .rv-img:fullscreen canvas { max-width: min(100%, 1400px); }
.rv-video:fullscreen video { width: 100%; height: 100%; max-height: none; object-fit: contain; }
.rv-grande-on { position: fixed !important; inset: 0 !important; z-index: 220 !important; background: #0B1024; overflow: auto; padding: 60px 12px 24px; border-radius: 0 !important; }
.rv-grande-on .rv-grande { position: fixed; top: calc(12px + env(safe-area-inset-top, 0px)); right: 12px; }
body.rv-grande-aberto { overflow: hidden; }

/* ---------- Explorar no telemóvel: botão Filtrar fixo em baixo ---------- */
.exp-filtrar-fixo { position: fixed; left: 50%; transform: translateX(-50%); bottom: calc(76px + env(safe-area-inset-bottom, 0px)); z-index: 40; border-radius: 999px; box-shadow: var(--sombra-pop); gap: 8px; }
@media (min-width: 761px) { .exp-filtrar-fixo { display: none; } }

/* ---------- Pesquisa do Explorar: cresce até 3 linhas e depois rola ---------- */
#exp-q { max-height: 96px; overflow-y: auto; }
/* ---------- Tipos de conteúdo no cabeçalho de cada resolução ---------- */
.rs-tipos { display: inline-flex; gap: 6px; color: var(--tinta-3); font-size: .9rem; }


/* ---------- Perfil completo: obrigatório para desbloquear ---------- */
.pf-faixa { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 12px; align-items: center; padding: 14px 16px; border-radius: 18px; background: var(--azul-suave); border: 1px solid var(--azul-claro); margin-bottom: 16px; }
.pf-faixa > i { width: 44px; height: 44px; border-radius: 13px; display: grid; place-items: center; background: var(--marca); color: #fff; font-size: 1.1rem; }
.pf-faixa p { color: var(--tinta-2); font-size: .9rem; }
.pf-inc .cd-cad i { font-size: 1.6rem; }
.carregando-ov { position: fixed; inset: 0; z-index: 400; display: grid; place-items: center; background: var(--mesa); }
.carregando-cx { display: grid; justify-items: center; gap: 14px; color: var(--tinta-2); font-weight: 650; }
.roda-c.grande { width: 44px; height: 44px; border-width: 4px; }
.ecra-pf .eo-rolo { display: grid; place-items: center; }
.pf-ok { position: relative; display: grid; justify-items: center; text-align: center; gap: 12px; max-width: 560px; padding: 20px; overflow: hidden; }
.pf-ok-ic { width: 110px; height: 110px; border-radius: 50%; display: grid; place-items: center; background: var(--marca); color: #fff; box-shadow: 0 0 0 14px var(--azul-claro); animation: pfPop .6s cubic-bezier(.2, 1.4, .4, 1); }
.pf-ok-ic svg { width: 54px; height: 54px; }
.pf-ok h1 { font-size: clamp(1.6rem, 4vw, 2.4rem); }
.pf-ok p { color: var(--tinta-2); font-size: 1.05rem; }
.pf-ok .linha-btn { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 8px; }
.pf-conf { position: absolute; top: -12px; width: 10px; height: 16px; border-radius: 3px; opacity: .9; animation: pfCai 1.8s ease-in forwards; }
@keyframes pfPop { 0% { transform: scale(.4); opacity: 0; } 100% { transform: scale(1); opacity: 1; } }
@keyframes pfCai { 0% { transform: translateY(0) rotate(0); opacity: 1; } 100% { transform: translateY(560px) rotate(420deg); opacity: 0; } }

/* ---------- Primeiras missões (página inicial) ---------- */
.missoes-ini { margin: 0 0 18px; padding: 18px; border-radius: 22px; border: 1px solid var(--linha); background: var(--sup); }
.mi-cab { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; margin-bottom: 12px; }
.mi-cab h2 { font-size: 1.1rem; }
.mi-cab p { color: var(--tinta-2); font-size: .86rem; }
.mi-barra { flex: 1 1 160px; max-width: 260px; height: 8px; border-radius: 99px; background: var(--sup-3); overflow: hidden; }
.mi-barra span { display: block; height: 100%; border-radius: 99px; background: var(--bic); transition: width .4s; }
.mi-l { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.mi-i { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 16px; border: 1px solid var(--linha); background: var(--sup-2); }
.mi-ic { width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; background: var(--marca); color: #fff; }
.mi-i.feita { opacity: .75; }
.mi-i.feita .mi-ic { background: var(--azul-suave); color: var(--bic); }
.mi-t { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.mi-t strong { font-size: .95rem; }
.mi-t small { color: var(--tinta-2); font-size: .82rem; }
.mi-ok { font-size: .8rem; font-weight: 750; color: var(--bic); }
@media (max-width: 640px) { .mi-i { grid-template-columns: 40px minmax(0, 1fr); } .mi-i .btn, .mi-ok { grid-column: 2; justify-self: start; } }

.ord-pe { display: flex; align-items: center; justify-content: space-between; gap: 10px; max-width: 560px; margin: 0 auto; }
.ord-pe .btn-pri { flex: 1; justify-content: center; gap: 10px; }
.ord-pe .n-chip { background: rgba(255, 255, 255, .25); color: #fff; }


/* ---------- Ver em grande: tela escura por cima de tudo ---------- */
.rv-luz { position: fixed; inset: 0; z-index: 230; display: flex; flex-direction: column; background: #0B1024; color: #fff; }
.rv-luz-topo { flex: none; display: flex; align-items: center; justify-content: space-between; padding: 10px clamp(12px, 3vw, 28px); padding-top: calc(10px + env(safe-area-inset-top, 0px)); border-bottom: 1px solid rgba(255, 255, 255, .12); font-weight: 700; }
.rv-luz-fechar { background: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .25); color: #fff; }
.rv-luz-corpo { flex: 1; min-height: 0; overflow: auto; overscroll-behavior: contain; display: grid; align-content: start; justify-items: center; padding: 16px clamp(8px, 2vw, 24px) calc(24px + env(safe-area-inset-bottom, 0px)); -webkit-user-select: none; user-select: none; }
.rv-luz-corpo .rv-pdf { width: min(100%, 1400px); background: transparent; border-radius: 0; }
.rv-luz-corpo .rv-img { width: auto; max-width: 100%; max-height: 100%; background: transparent; border: 0; display: grid; place-items: center; }
.rv-luz-corpo .rv-img canvas { max-width: 100%; max-height: calc(100vh - 110px); width: auto; height: auto; }
.rv-luz-corpo .rv-video { width: min(100%, 1400px); align-self: center; }
.rv-luz-corpo .rv-video video { max-height: calc(100vh - 120px); width: 100%; }
.rv-luz .rv-grande { display: none; }
body.rv-grande-aberto .res-visor, body.rv-grande-aberto .rp-conteudo { filter: none !important; }
@media print { .rv-luz { display: none !important; } }

/* ---------- Resoluções sempre abertas, com quem publicou e onde estuda ---------- */
.rs-topo { grid-template-columns: 48px minmax(0, 1fr) auto; cursor: default; align-items: start; }
.rs-topo:hover { background: none; }
.rs-topo .rs-av { display: block; }
.rs-topo .rs-av .av { width: 48px; height: 48px; }
.rs-nome a { color: inherit; text-decoration: none; }
.rs-nome a:hover strong { color: var(--bic); }
.rs-quem small { white-space: normal; }
.rs-onde { display: inline-flex; align-items: center; gap: 6px; color: var(--tinta-2); }
.rs-onde i { color: var(--bic); font-size: .8rem; }
.rs-nums { color: var(--tinta-3); font-size: .82rem; }
.rs-resumo { color: var(--tinta); margin-top: 2px; font-size: .9rem; }
@media (max-width: 760px) { .rs-topo { grid-template-columns: 44px minmax(0, 1fr); } .rs-topo .rs-av .av { width: 44px; height: 44px; } .rs-topo-d { grid-column: 2; } }


/* ---------- Página inicial: missões com espaço, lado a lado nos ecrãs grandes ---------- */
.missoes-ini { margin: 22px 0 22px; padding: 22px; }
.mi-cab { margin-bottom: 16px; }
.mi-l { gap: 12px; }
@media (min-width: 1061px) {
  .mi-l { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .mi-i { grid-template-columns: 44px minmax(0, 1fr); grid-template-rows: auto auto; row-gap: 10px; padding: 16px; align-items: start; }
  .mi-i .btn, .mi-ok { grid-column: 2; justify-self: start; }
  .mi-t strong { font-size: 1rem; }
}
.aviso-sug { margin-top: 6px; }

/* ---------- Barra de scroll fina (menu lateral, filtros, listas) ---------- */
.lateral nav, .lateral .lat-nav, .facetas, .rv-rolo, .eo-rolo, .lv-msgs, .adm-quem, .ar-lista, .ar-cursos, .bt-l, #exp-q, .busca-corpo, .mf-lista, .exp-main { scrollbar-width: thin; scrollbar-color: rgba(16, 22, 51, .22) transparent; }
.lateral nav::-webkit-scrollbar, .lateral .lat-nav::-webkit-scrollbar, .facetas::-webkit-scrollbar, .rv-rolo::-webkit-scrollbar, .eo-rolo::-webkit-scrollbar, .exp-main::-webkit-scrollbar, .ar-lista::-webkit-scrollbar, .ar-cursos::-webkit-scrollbar, #exp-q::-webkit-scrollbar { width: 6px; height: 6px; }
.lateral nav::-webkit-scrollbar-thumb, .lateral .lat-nav::-webkit-scrollbar-thumb, .facetas::-webkit-scrollbar-thumb, .rv-rolo::-webkit-scrollbar-thumb, .eo-rolo::-webkit-scrollbar-thumb, .exp-main::-webkit-scrollbar-thumb, .ar-lista::-webkit-scrollbar-thumb, .ar-cursos::-webkit-scrollbar-thumb, #exp-q::-webkit-scrollbar-thumb { background: rgba(16, 22, 51, .22); border-radius: 99px; }
.lateral nav::-webkit-scrollbar-thumb:hover, .facetas::-webkit-scrollbar-thumb:hover, .exp-main::-webkit-scrollbar-thumb:hover { background: rgba(16, 22, 51, .38); }
.lateral nav::-webkit-scrollbar-track, .facetas::-webkit-scrollbar-track, .exp-main::-webkit-scrollbar-track { background: transparent; }
:root[data-theme="dark"] .lateral nav, :root[data-theme="dark"] .facetas, :root[data-theme="dark"] .exp-main { scrollbar-color: rgba(255, 255, 255, .25) transparent; }

/* ---------- Explorar fixo: os filtros não tocam no fundo do ecrã ---------- */
@media (min-width: 1061px) {
  body.rota-explorar .exp-g { padding-bottom: 18px; }
  body.rota-explorar .facetas { height: calc(100% - 2px); }
}


/* ---------- Telemóvel: Filtrar no canto direito e a seta de subir por cima dele ---------- */
@media (max-width: 760px) {
  .exp-filtrar-fixo { left: auto; right: 14px; transform: none; bottom: calc(84px + env(safe-area-inset-bottom, 0px)); }
  body.visitante .exp-filtrar-fixo { bottom: calc(22px + env(safe-area-inset-bottom, 0px)); }
  body.rota-explorar:not(.visitante):not(.modo-auth) .subir { bottom: calc(150px + env(safe-area-inset-bottom, 0px)); }
  body.rota-explorar.visitante .subir { bottom: calc(88px + env(safe-area-inset-bottom, 0px)); }
}

/* ---------- Telemóvel, Explorar: a seta de subir ao lado do botão Filtrar, na mesma linha ---------- */
@media (max-width: 760px) {
  body.rota-explorar:not(.visitante):not(.modo-auth) .subir { bottom: calc(84px + env(safe-area-inset-bottom, 0px)); right: calc(14px + 118px); width: 46px; height: 46px; }
  body.rota-explorar.visitante .subir { bottom: calc(22px + env(safe-area-inset-bottom, 0px)); right: calc(14px + 118px); width: 46px; height: 46px; }
  .exp-filtrar-fixo { height: 46px; min-width: 108px; justify-content: center; }
}

@media (max-width: 760px) {
}






.ano-na { margin-left: 8px; height: 36px; }
.ano-na.on { background: var(--marca); color: #fff; border-color: var(--marca); }
.ano-na svg { width: 14px; height: 14px; }
@media (max-width: 520px) { .ano-na { margin-left: 0; margin-top: 8px; } .ano-passo { flex-wrap: wrap; } }



/* =========================================================
   Publicar em lote (equipa): uma coluna só. A barra do PDF em cima e, por baixo, o formulário do "Publicar" tal e qual.
   ========================================================= */
.lote-cx { display: grid; gap: 14px; }
.lt-drop { margin: 0; padding: 34px 20px; }
.lt-drop-peq { padding: 16px 18px; display: flex; flex-direction: row; align-items: center; gap: 12px; text-align: left; }
.lt-drop-peq .re-drop-ic { width: 40px; height: 40px; }
.lt-drop-t { display: flex; flex-direction: column; min-width: 0; }
.lt-topo { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
.lt-topo p { color: var(--tinta-2); display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.lt-c { display: inline-block; padding: 2px 9px; border-radius: 999px; font-size: .74rem; font-weight: 800; text-transform: uppercase; letter-spacing: .03em; white-space: nowrap; }
.lt-c-ok { background: var(--azul-suave); color: var(--bic); }
.lt-c-duvida { background: var(--sup-3); color: var(--tinta-2); }
.lt-c-vazio { background: #FDECEE; color: var(--vermelho); }
.lt-pager { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 10px; border-radius: 999px; background: var(--sup); border: 1px solid var(--linha); }
.lt-pager-n { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; padding: 2px; }
.lt-p { width: 36px; height: 36px; border-radius: 50%; border: 1.5px solid var(--linha-2); background: var(--sup); font: inherit; font-weight: 800; color: var(--tinta-2); cursor: pointer; flex: none; position: relative; }
.lt-p[aria-pressed="true"] { background: var(--marca); border-color: var(--marca); color: #fff; }
.lt-p::after { content: ""; position: absolute; right: -2px; top: -2px; width: 11px; height: 11px; border-radius: 50%; border: 2px solid var(--sup); background: var(--tinta-3); }
.lt-p-pronto::after, .lt-p-ok::after { background: var(--bic); }
.lt-p-falta::after, .lt-p-erro::after { background: var(--vermelho); }
.lt-p-ler::after { background: var(--sup-3); animation: lgPulsa 1.4s infinite; }
.lt-item { display: block; width: 100%; }
.lt-item > * + * { margin-top: 12px; }
.lt-barra { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; padding: 12px 16px; border-radius: 18px; border: 1px solid var(--linha); background: var(--sup); }
.lt-barra-t { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; min-width: 0; }
.lt-barra-t span { font-weight: 700; word-break: break-word; }
.lt-barra-t small { color: var(--tinta-3); }
.lt-barra-d { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.aviso-lt { display: flex; align-items: center; gap: 8px; padding: 10px 14px; border-radius: 14px; background: #FFF4E5; color: #8A4B00; font-size: .9rem; }
.lt-texto summary { cursor: pointer; font-size: .82rem; color: var(--tinta-2); padding: 0 4px; }
.lt-texto p { margin-top: 6px; font-size: .82rem; color: var(--tinta-2); line-height: 1.45; max-height: 160px; overflow: auto; padding: 0 4px; }
.lt-pub { display: block; width: 100%; }
.lt-pub > .pag { padding: 0 !important; max-width: none; min-height: 0; width: 100%; }
.lt-pub > .pag > .cab-pag, .lt-pub .recibo, .lt-pub .verif, .lt-pub .dz-tirar, .lt-pub .lt-atalho, .lt-pub .rodape { display: none !important; }
.lt-pub .partilhar:not(:has(.pub-wizard)) { display: block; }
.lt-pub .form-partilhar { max-width: none; width: 100%; }
.lt-a-ler, .lt-estado { padding: 24px; border-radius: 20px; border: 1px solid var(--linha); background: var(--sup); }
.adm-lote-cx { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; padding: 14px 16px; border-radius: 18px; background: var(--azul-suave); }
.adm-lote-cx > div { display: flex; flex-direction: column; gap: 2px; }
.adm-lote-cx small { color: var(--tinta-2); font-size: .84rem; }
.lt-atalho { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 10px; color: var(--bic); font-weight: 700; text-decoration: none; font-size: .9rem; }
@media (max-width: 760px) { .lt-pager .btn { font-size: .82rem; } .lt-barra { padding: 10px 12px; } }


/* ---------- Barras de scroll finas em todo o site ---------- */
* { scrollbar-width: thin; scrollbar-color: rgba(16, 22, 51, .22) transparent; }
*::-webkit-scrollbar { width: 7px; height: 7px; }
*::-webkit-scrollbar-track { background: transparent; }
*::-webkit-scrollbar-thumb { background: rgba(16, 22, 51, .22); border-radius: 99px; }
*::-webkit-scrollbar-thumb:hover { background: rgba(16, 22, 51, .4); }
.lateral::-webkit-scrollbar { width: 5px; }
:root[data-theme="dark"] * { scrollbar-color: rgba(255, 255, 255, .25) transparent; }
:root[data-theme="dark"] *::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, .25); }

.lt-topo .linha-btn { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.lt-prompt { display: grid; gap: 10px; padding: 14px 16px; border-radius: 18px; border: 1px solid var(--linha); background: var(--sup); }
.lt-prompt-cab { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
.lt-prompt-cab strong { font-size: 1rem; }
.lt-prompt-cab p { color: var(--tinta-2); font-size: .88rem; }
.lt-prompt textarea { width: 100%; min-height: 86px; font: inherit; font-size: .9rem; }
.lt-colar { display: grid; gap: 8px; padding: 12px 14px; border-radius: 16px; border: 1.5px dashed var(--linha-2); background: var(--sup-2); }
.lt-colar label { font-weight: 700; font-size: .9rem; }
.lt-colar textarea { width: 100%; min-height: 70px; font: inherit; font-size: .9rem; }
.lt-colar .ajuda { margin: 0; }

/* ---------- Categoria do material: quatro cartões (Provas, Trabalhos, Teoria, Outro) ---------- */
.tipo-g.tipo-g4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1100px) { .tipo-g.tipo-g4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) { .tipo-g.tipo-g4 { grid-template-columns: minmax(0, 1fr); } }

.lt-passos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.lt-passo { display: grid; grid-template-columns: 28px minmax(0, 1fr); grid-template-rows: auto auto; gap: 6px 10px; padding: 12px 14px; border-radius: 16px; border: 1px solid var(--linha); background: var(--sup-2); }
.lt-passo .n-passo { grid-row: 1 / 3; }
.lt-passo > div { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.lt-passo strong { font-size: .94rem; }
.lt-passo small { color: var(--tinta-2); font-size: .8rem; line-height: 1.35; }
.lt-passo .btn { grid-column: 2; justify-self: start; }
.lt-excel-btn { position: relative; overflow: hidden; cursor: pointer; }
.lt-excel-btn input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.lt-excel-nota { padding: 8px 12px; border-radius: 12px; background: var(--azul-suave); }
@media (max-width: 900px) { .lt-passos { grid-template-columns: minmax(0, 1fr); } }

.tax-ia-todas { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; margin: 12px 0; padding: 12px 16px; border-radius: 16px; background: var(--azul-suave); }
.tax-ia-todas > div { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1 1 320px; }
.tax-ia-todas small { color: var(--tinta-2); font-size: .84rem; }
.tax-ia-nota { margin: -4px 0 12px; padding: 8px 12px; border-radius: 12px; background: var(--sup-2); }


/* ---------- O que queres ver primeiro (registo e perfil) ---------- */
.pref-vista { display: grid; gap: 10px; margin: 6px 0 4px; }
.pref-g { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.pref-op { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding: 14px; border-radius: 16px; border: 1.5px solid var(--linha-2); background: var(--sup); text-align: left; font: inherit; color: inherit; cursor: pointer; transition: border-color .15s, background .15s; }
.pref-op:hover { border-color: var(--bic); }
.pref-op.on { border-color: var(--bic); background: var(--azul-suave); }
.pref-op.off { opacity: .55; cursor: not-allowed; }
.pref-op .tc-ok { position: absolute; top: 10px; right: 10px; width: 22px; height: 22px; border-radius: 50%; background: var(--marca); color: #fff; display: none; place-items: center; font-size: .74rem; }
.pref-op.on .tc-ok { display: grid; }
.pref-ic { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--sup-2); color: var(--bic); font-size: 1rem; }
.pref-op.on .pref-ic { background: var(--marca); color: #fff; }
.pref-t { display: flex; flex-direction: column; gap: 2px; }
.pref-t strong { font-size: .95rem; }
.pref-t small { color: var(--tinta-2); font-size: .8rem; line-height: 1.35; }
.pref-unis { display: grid; gap: 10px; padding: 12px; border-radius: 16px; border: 1px solid var(--linha); background: var(--sup-2); }
.pref-chips { max-height: 190px; overflow-y: auto; padding: 2px; }
.pref-chips .chip svg { width: 13px; height: 13px; }
.pref-nota { display: flex; align-items: center; gap: 8px; }
.pref-nota i { color: var(--bic); }
@media (max-width: 640px) { .pref-g { grid-template-columns: minmax(0, 1fr); } .pref-op { flex-direction: row; align-items: center; padding-right: 40px; } }

.lt-prompt-ed summary { cursor: pointer; }
.lt-prompt-corpo { display: grid; gap: 10px; margin-top: 10px; }
.lt-prompt-corpo textarea { width: 100%; font: inherit; font-size: .88rem; line-height: 1.45; }
.lt-prompt-corpo textarea[readonly] { background: var(--sup-2); color: var(--tinta-2); }
.lt-prompt-corpo .linha-btn { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }


/* ---------- Escolher as escolas (overlay) e chips das escolhidas ---------- */
.pref-sel { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.pref-sel .chip-ed small { opacity: .75; margin-left: 4px; }
.pes { max-width: 760px; margin: 0 auto; display: grid; gap: 14px; }
.pes-l { display: grid; gap: 8px; }
.pes-i { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; align-items: center; gap: 12px; width: 100%; padding: 12px 14px; border-radius: 16px; border: 1.5px solid var(--linha); background: var(--sup); font: inherit; color: inherit; text-align: left; cursor: pointer; transition: border-color .15s, background .15s; }
.pes-i:hover { border-color: var(--bic); }
.pes-i.on { border-color: var(--bic); background: var(--azul-suave); }
.pes-cx { width: 24px; height: 24px; border-radius: 8px; border: 1.5px solid var(--linha-2); display: grid; place-items: center; background: var(--sup); color: #fff; }
.pes-i.on .pes-cx { background: var(--marca); border-color: var(--marca); }
.pes-cx svg { width: 14px; height: 14px; }
.pes-t { display: flex; flex-direction: column; min-width: 0; }
.pes-t strong { font-size: .98rem; }
.pes-t small { color: var(--tinta-2); font-size: .82rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pes-n { font-size: .8rem; font-weight: 700; color: var(--bic); white-space: nowrap; }
.pes-n.zero { color: var(--tinta-3); font-weight: 600; }
.pes-pe { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; max-width: 760px; margin: 0 auto; }
.pes-pe > span { color: var(--tinta-2); font-size: .9rem; }
@media (max-width: 560px) { .pes-i { grid-template-columns: 28px minmax(0, 1fr); } .pes-n { grid-column: 2; } }

/* ---------- Explorar: faceta da escola trancada ---------- */
.fac-fixa { display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; align-items: center; gap: 10px; cursor: default; }
.fac-cad { color: var(--tinta-3); }
.fac-fixa .fac-t { display: flex; flex-direction: column; min-width: 0; }
.fac-fixa .fac-t small { color: var(--tinta-2); font-size: .82rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fac-nota { margin: 8px 0 0; font-size: .82rem; }
.fac-tit-fixa { cursor: default; }

/* ---------- Explorar: cartões sem sombra; seta para subir sempre à vista no modo fixo ---------- */
#exp-res .cartao, #exp-res .cartao:hover { box-shadow: none; }
#exp-res .cartao-th .th { box-shadow: 0 0 0 1px var(--linha); }
@media (min-width: 1061px) { body.rota-explorar .subir { opacity: 1; transform: none; pointer-events: auto; } }


/* ---------- Perfil: o formulário ocupa a largura toda, em duas colunas nos ecrãs grandes ---------- */
.def { max-width: none; width: 100%; }
.def .campo, .def .def-boneco, .def .pref-vista, .def .pf-faixa { grid-column: span 1; }
@media (min-width: 900px) {
  form.def[data-form="definicoes"] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 24px; align-items: start; }
  form.def[data-form="definicoes"] > .def-boneco, form.def[data-form="definicoes"] > .pf-faixa, form.def[data-form="definicoes"] > .pref-vista, form.def[data-form="definicoes"] > .def-pe, form.def[data-form="definicoes"] > .campo:has(.chips-anos), form.def[data-form="definicoes"] > .campo:has(#d-tel) { grid-column: 1 / -1; }
  form.def[data-form="definicoes"] > .campo:has(#d-nome), form.def[data-form="definicoes"] > .campo:has(#d-tel) { grid-column: span 1; }
}
.def-pe { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding-top: 18px; margin-top: 6px; border-top: 1px solid var(--linha); }
.def-pe-esq, .def-pe-dir { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.def-pe .link-perigo { color: var(--vermelho); }
@media (max-width: 640px) { .def-pe { flex-direction: column; align-items: stretch; } .def-pe-esq, .def-pe-dir { justify-content: stretch; } .def-pe .btn { flex: 1 1 auto; justify-content: center; } }

/* ---------- Explorar: fixar um curso ---------- */
.fac-op-l { display: flex; align-items: stretch; gap: 2px; }
.fac-op-l .fac-op { flex: 1; min-width: 0; }
.fac-fix { flex: none; width: 30px; border: 0; background: none; color: var(--tinta-3); border-radius: 10px; cursor: pointer; opacity: 0; transition: opacity .15s, color .15s; display: grid; place-items: center; font-size: .82rem; }
.fac-op-l:hover .fac-fix, .fac-fix:focus-visible, .fac-fix.on { opacity: 1; }
.fac-fix:hover, .fac-fix.on { color: var(--bic); }
.fac-fixa .fac-fix { grid-column: 4; }
.fac-fixa:has(.fac-fix) { grid-template-columns: 24px minmax(0, 1fr) auto auto; }
@media (hover: none) { .fac-fix { opacity: 1; } }


/* ---------- Administração no telemóvel: menu de caixas e "Voltar ao painel" ---------- */
.adm-caixas { display: grid; gap: 10px; }
.adm-caixa { display: grid; grid-template-columns: 46px minmax(0, 1fr) 18px; align-items: center; gap: 12px; padding: 14px; border-radius: 18px; border: 1px solid var(--linha); background: var(--sup); color: inherit; text-decoration: none; }
.adm-caixa:active { background: var(--sup-2); }
.adm-caixa-ic { width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; background: var(--azul-suave); color: var(--bic); font-size: 1.1rem; }
.adm-caixa-t { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.adm-caixa-t strong { font-size: 1rem; }
.adm-caixa-t small { color: var(--tinta-2); font-size: .82rem; }
.adm-caixa-seta { color: var(--tinta-3); }
.adm-voltar { display: none; align-items: center; gap: 6px; color: var(--bic); font-weight: 700; text-decoration: none; margin-bottom: 6px; font-size: .9rem; }
.adm-voltar svg { width: 16px; height: 16px; }
.adm-h1-ic { display: none; }
@media (min-width: 761px) { .adm-caixas { grid-template-columns: repeat(2, minmax(0, 1fr)); } .adm-cab h1 { font-size: inherit; } }
@media (max-width: 760px) {
  .adm .abas-adm { display: none; }
  .adm .adm-voltar { display: inline-flex; }
  .adm .adm-h1-ic { display: inline-block; margin-right: 10px; color: var(--bic); font-size: .8em; vertical-align: middle; }
  .adm .adm-sub-pc { display: none; }
  .adm .cab-pag h1 { font-size: 1.5rem; }
  .adm .caixa, .adm .adm-sec { padding: 14px; border-radius: 18px; }
  .adm .kpis, .adm .adm-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .adm table { display: block; overflow-x: auto; }
  .adm .adm-ferr { flex-direction: column; align-items: stretch; }
  .adm .adm-ferr > * { width: 100%; }
}


/* =========================================================
   Avisos: anúncios, publicidades e contagem regressiva
   ========================================================= */
.av-logo { display: flex; align-items: center; gap: 12px; }
.av-logo-ic { width: 56px; height: 56px; border-radius: 16px; background: var(--azul-suave); display: grid; place-items: center; }
.av-logo-ic svg { width: 40px; height: 40px; }
.av-logo strong { font-size: 1.6rem; font-weight: 800; color: var(--tinta); letter-spacing: -.02em; }
.av-anuncio { display: grid; justify-items: center; text-align: center; gap: 12px; padding: 6px 2px 2px; }
.av-anuncio h2 { font-size: 1.45rem; }
.av-anuncio p { color: var(--tinta-2); line-height: 1.55; max-width: 46ch; }
.av-anuncio .linha-btn { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; width: 100%; margin-top: 4px; }
.av-anuncio .linha-btn .btn { flex: 1 1 160px; justify-content: center; }

#pub-raiz { position: fixed; right: 18px; bottom: calc(18px + env(safe-area-inset-bottom, 0px)); z-index: 95; width: min(340px, calc(100vw - 28px)); }
.av-pub { position: relative; display: grid; gap: 10px; padding: 14px; border-radius: 20px; background: var(--sup); border: 1px solid var(--linha); box-shadow: 0 18px 50px rgba(16, 22, 51, .18); }
.av-pub img { width: 100%; border-radius: 14px; aspect-ratio: 16 / 9; object-fit: cover; }
.av-pub-x { position: absolute; top: 8px; right: 8px; width: 36px; height: 36px; border-radius: 50%; border: 0; background: rgba(16, 22, 51, .6); color: #fff; display: grid; place-items: center; cursor: pointer; z-index: 2; }
.av-pub-x svg { width: 16px; height: 16px; display: block; }
.av-pub-et { font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--tinta-3); }
.av-pub-t strong { display: block; font-size: 1.02rem; }
.av-pub-t p { color: var(--tinta-2); font-size: .9rem; line-height: 1.45; }
.av-pub .btn { justify-self: start; }
/* no telemóvel a publicidade ocupa o ecrã todo e fecha-se com o X */
@media (max-width: 760px) {
  #pub-raiz { inset: 0; width: auto; right: 0; bottom: 0; z-index: 400; background: var(--mesa); display: grid; place-items: center; padding: calc(56px + env(safe-area-inset-top, 0px)) 16px calc(24px + env(safe-area-inset-bottom, 0px)); overflow-y: auto; }
  #pub-raiz .av-pub { width: 100%; max-width: 520px; box-shadow: none; padding: 18px; gap: 14px; }
  #pub-raiz .av-pub-x { position: fixed; top: calc(12px + env(safe-area-inset-top, 0px)); right: 12px; width: 44px; height: 44px; background: var(--tinta); }
  #pub-raiz .av-pub .btn { justify-self: stretch; justify-content: center; }
  body.com-pub { overflow: hidden; }
}

#faixa-contagem { position: fixed; left: 50%; transform: translateX(-50%); bottom: calc(16px + env(safe-area-inset-bottom, 0px)); z-index: 96; display: flex; align-items: center; gap: 10px; max-width: min(760px, calc(100vw - 24px)); padding: 10px 14px; border-radius: 16px; background: #101633; color: #fff; font-size: .86rem; box-shadow: 0 12px 30px rgba(16, 22, 51, .3); }
#faixa-contagem a { color: #AFC0FF; font-weight: 700; white-space: nowrap; }
@media (max-width: 760px) { #faixa-contagem { bottom: calc(84px + env(safe-area-inset-bottom, 0px)); font-size: .8rem; } }

/* Contagem regressiva: o azul do site, liso, e o logo em grande */
body.em-contagem { overflow: hidden; }
#contagem-raiz { position: fixed; inset: 0; z-index: 1000; }
.cr { position: absolute; inset: 0; display: grid; place-items: center; overflow-y: auto; padding: calc(28px + env(safe-area-inset-top, 0px)) 18px calc(28px + env(safe-area-inset-bottom, 0px)); background: var(--marca); color: #fff; }
.cr-cx { width: min(880px, 100%); display: grid; justify-items: center; text-align: center; gap: clamp(16px, 3vh, 26px); }
.cr-marca { display: flex; align-items: center; gap: clamp(14px, 2.4vw, 22px); }
.cr-logo { width: clamp(86px, 12vw, 128px); height: clamp(86px, 12vw, 128px); border-radius: clamp(24px, 3.4vw, 36px); background: #fff; display: grid; place-items: center; box-shadow: 0 18px 50px rgba(8, 18, 90, .35); }
.cr-logo svg { width: 70%; height: 70%; }
.cr-nome { font-size: clamp(2.4rem, 7vw, 4.6rem); font-weight: 800; letter-spacing: -.035em; line-height: 1; }
.cr h1 { font-size: clamp(1.6rem, 4.4vw, 2.8rem); line-height: 1.12; font-weight: 800; max-width: 22ch; }
.cr-msg { max-width: 58ch; font-size: clamp(1rem, 2.1vw, 1.16rem); line-height: 1.55; color: rgba(255, 255, 255, .88); }
.cr-relogio { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(8px, 2vw, 18px); width: min(720px, 100%); margin-top: 4px; }
.cr-u { display: grid; justify-items: center; gap: 10px; }
.cr-n { width: 100%; display: grid; place-items: center; aspect-ratio: 1 / 1.05; border-radius: clamp(16px, 2.6vw, 26px); background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .24); font-size: clamp(2.2rem, 8vw, 5rem); font-weight: 800; font-variant-numeric: tabular-nums; letter-spacing: -.03em; }
.cr-n.cr-bate { animation: crBate .45s cubic-bezier(.2, 1.4, .4, 1); }
@keyframes crBate { 0% { transform: translateY(-8%) scale(.97); opacity: .45; } 100% { transform: none; opacity: 1; } }
.cr-r { font-size: clamp(.74rem, 1.5vw, .86rem); font-weight: 750; text-transform: uppercase; letter-spacing: .14em; color: rgba(255, 255, 255, .78); }
.cr-quando { display: inline-flex; align-items: center; gap: 10px; padding: 11px 18px; border-radius: 999px; background: rgba(255, 255, 255, .14); font-weight: 650; }
.cr-conta { font-size: .88rem; color: rgba(255, 255, 255, .78); }
.cr-link { background: none; border: 0; color: #fff; font: inherit; font-weight: 700; text-decoration: underline; cursor: pointer; padding: 0; }
.cr-fechar-previa { background: #fff; color: var(--marca); }
.cr-feito { display: inline-flex; align-items: center; gap: 8px; margin-top: 6px; padding: 8px 14px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .3); color: #fff; text-decoration: none; font-size: .9rem; transition: background .15s; }
.cr-feito:hover { background: rgba(255, 255, 255, .12); }
.cr-feito span { opacity: .8; }
.cr-feito i { font-size: 1.05rem; }
@media (max-width: 520px) { .cr-relogio { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 340px; } .cr-marca { flex-direction: column; gap: 12px; } }
@media (prefers-reduced-motion: reduce) { .cr-n.cr-bate { animation: none; } }

/* Painel → Avisos: listas */
.av-adm { display: grid; gap: 16px; }
.av-sec-cab { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 10px 16px; }
.av-sec-cab h3 { display: flex; align-items: center; gap: 10px; }
.av-sec-cab h3 i { color: var(--bic); }
.av-sec-cab small { display: block; color: var(--tinta-2); margin-top: 4px; max-width: 64ch; }
.avc-l { display: grid; gap: 10px; margin-top: 14px; }
.avc { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 12px 14px; border-radius: 16px; border: 1px solid var(--linha); background: var(--sup); }
.avc-ic { width: 56px; height: 56px; border-radius: 14px; display: grid; place-items: center; background: var(--azul-suave); color: var(--bic); font-size: 1.2rem; }
.avc-img { width: 56px; height: 56px; border-radius: 12px; overflow: hidden; background: var(--sup-2); display: grid; place-items: center; color: var(--tinta-3); }
.avc-img img { width: 100%; height: 100%; object-fit: cover; }
.avc-t { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.avc-cab { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.avc-cab strong { font-size: .98rem; }
.avc-t small { color: var(--tinta-2); font-size: .84rem; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.avc-est { display: inline-flex; align-items: center; gap: 6px; font-size: .74rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; padding: 3px 9px; border-radius: 999px; background: var(--sup-3); color: var(--tinta-2); }
.avc-est i { font-size: .45rem; }
.avc-on { background: var(--azul-suave); color: var(--bic); }
.avc-on i { animation: lgPulsa 1.6s infinite; border-radius: 50%; }
.avc-agenda { background: #EEF2FF; color: #3B4BC8; }
.avc-fim, .avc-desligado { background: var(--sup-3); color: var(--tinta-3); }
.avc-a { display: flex; align-items: center; gap: 4px; }
.av-vazio { display: grid; justify-items: center; gap: 8px; padding: 22px 12px; margin-top: 12px; border-radius: 16px; border: 1.5px dashed var(--linha-2); color: var(--tinta-2); text-align: center; }
.av-vazio > i { font-size: 1.6rem; color: var(--bic); opacity: .6; }
.av-link-eq { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; margin-top: 14px; padding: 12px 14px; border-radius: 16px; background: var(--azul-suave); }
.av-link-eq > div:first-child { display: grid; gap: 4px; min-width: 0; flex: 1 1 320px; }
.av-link-eq strong { display: flex; align-items: center; gap: 8px; }
.av-link-eq strong i { color: var(--bic); }
.av-link-eq small { color: var(--tinta-2); font-size: .82rem; }
.av-link-eq code { font-size: .82rem; color: var(--bic); word-break: break-all; }
.av-int { display: inline-flex; align-items: center; gap: 10px; cursor: pointer; font-weight: 700; font-size: .9rem; user-select: none; position: relative; }
.av-int input { position: absolute; opacity: 0; pointer-events: none; }
.av-int-b { position: relative; width: 46px; height: 26px; border-radius: 99px; background: var(--sup-3); transition: background .15s; flex: none; }
.av-int-b::after { content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 2px 6px rgba(0, 0, 0, .2); transition: transform .15s; }
.av-int input:checked + .av-int-b { background: var(--marca); }
.av-int input:checked + .av-int-b::after { transform: translateX(20px); }
.av-int input:focus-visible + .av-int-b { outline: 3px solid var(--azul-claro); }
@media (max-width: 560px) { .avc { grid-template-columns: 46px minmax(0, 1fr); } .avc-ic, .avc-img { width: 46px; height: 46px; } .avc-a { grid-column: 1 / -1; justify-content: flex-end; } }

/* Editor de um aviso (ecrã inteiro) */
.ave { max-width: 1100px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 24px; align-items: start; }
.ave-form { display: grid; gap: 14px; }
.ave-prev { position: sticky; top: 0; display: grid; gap: 10px; }
.ave-pe { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; max-width: 1100px; margin: 0 auto; }
.ave-pe .linha-btn { display: flex; flex-wrap: wrap; gap: 10px; }
.ave-mini-cr { display: grid; justify-items: center; gap: 12px; text-align: center; padding: 26px 18px; border-radius: 22px; background: var(--marca); color: #fff; }
.ave-mini-cr .cr-logo { width: 64px; height: 64px; border-radius: 18px; box-shadow: none; }
.ave-mini-cr .cr-nome { font-size: 2rem; }
.ave-mini-cr strong { font-size: 1.2rem; }
.ave-mini-cr p { color: rgba(255, 255, 255, .85); font-size: .9rem; }
.ave-mini-rel { display: flex; gap: 8px; }
.ave-mini-rel span { display: grid; justify-items: center; gap: 4px; padding: 10px 12px; border-radius: 14px; background: rgba(255, 255, 255, .14); min-width: 64px; }
.ave-mini-rel b { font-size: 1.6rem; font-variant-numeric: tabular-nums; }
.ave-mini-rel small { font-size: .7rem; text-transform: uppercase; letter-spacing: .1em; opacity: .8; }
.ave-mini-an { display: grid; justify-items: center; gap: 10px; text-align: center; padding: 22px; border-radius: 22px; background: var(--sup); border: 1px solid var(--linha); }
.ave-mini-an p { color: var(--tinta-2); font-size: .92rem; }
.ave-mini-an .linha-btn { display: flex; gap: 8px; }
.ave-mini-pub { box-shadow: none; }
.ave-sem-img { aspect-ratio: 16 / 9; border-radius: 14px; background: var(--sup-2); display: grid; place-items: center; color: var(--tinta-3); font-size: 1.6rem; }
.av-img { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.av-img img { width: 180px; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 12px; border: 1px solid var(--linha); }
.av-img-btn { position: relative; overflow: hidden; cursor: pointer; }
.av-img-btn input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
@media (max-width: 900px) { .ave { grid-template-columns: minmax(0, 1fr); } .ave-prev { position: static; } }

/* Administração: menu "sanduíche" nos ecrãs pequenos e médios */
.adm-nav-m { display: none; margin-bottom: 14px; }
.adm-nav-btn { display: grid; grid-template-columns: 40px minmax(0, 1fr) 20px; align-items: center; gap: 12px; width: 100%; padding: 10px 14px; border-radius: 16px; border: 1px solid var(--linha); background: var(--sup); color: inherit; font: inherit; text-align: left; cursor: pointer; }
.adm-nav-btn > i:first-child { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--marca); color: #fff; }
.adm-nav-btn span { display: flex; flex-direction: column; min-width: 0; }
.adm-nav-btn small { color: var(--tinta-3); font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.adm-nav-btn strong { display: flex; align-items: center; gap: 8px; font-size: 1rem; }
.adm-nav-btn strong i { color: var(--bic); }
.adm-menu-m h2 { font-size: 1.2rem; margin: 0 40px 12px 0; }
.adm-menu-m nav { display: grid; gap: 4px; }
.adm-menu-i { display: grid; grid-template-columns: 28px minmax(0, 1fr) 18px; align-items: center; gap: 10px; padding: 12px; border-radius: 12px; color: inherit; text-decoration: none; font-weight: 650; }
.adm-menu-i:hover { background: var(--sup-2); }
.adm-menu-i > i:first-child { color: var(--bic); text-align: center; }
.adm-menu-i.on { background: var(--azul-suave); color: var(--bic); }
@media (max-width: 1060px) { .adm .abas-adm { display: none !important; } .adm-nav-m { display: block; } }
@media (max-width: 760px) { .adm .adm-voltar { display: none; } }

.lim-pts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.lim-pts > div { display: grid; gap: 6px; padding: 16px; border-radius: 18px; border: 1px solid var(--linha); background: var(--sup); }
.lim-pts i { color: var(--bic); font-size: 1.2rem; }
.lim-pts small { color: var(--tinta-2); line-height: 1.4; }
@media (max-width: 760px) { .lim-pts { grid-template-columns: minmax(0, 1fr); } }
.teto-aviso { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-radius: 12px; background: rgba(255, 255, 255, .16); font-size: .88rem; margin: 6px 0 4px; }

.avc-ord { display: inline-flex; gap: 2px; margin-right: 4px; }
.avc-ord .ib[disabled] { opacity: .3; }




.cp-sec header h3 i { color: var(--bic); }
.cp-estado { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 12px 0; }
.cp-estado > div { display: grid; gap: 2px; padding: 12px 14px; border-radius: 14px; background: var(--sup-2); }
.cp-estado small { color: var(--tinta-2); font-size: .8rem; }
.cp-estado strong { font-size: 1.02rem; }
@media (max-width: 640px) { .cp-estado { grid-template-columns: minmax(0, 1fr); } }

.cp-hist { margin-top: 16px; display: grid; gap: 8px; }
.cp-d { color: var(--bic); font-weight: 700; }

.cp-fich { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(170px, 100%), 1fr)); gap: 8px; }
.cp-f { display: grid; grid-template-columns: 22px minmax(0, 1fr) 18px; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--linha); background: var(--sup); color: inherit; text-decoration: none; }
.cp-f:hover { border-color: var(--bic); }
.cp-f > i { color: var(--bic); }
.cp-f span { display: flex; flex-direction: column; }
.cp-f small { color: var(--tinta-2); font-size: .82rem; }


/* ---------- Publicar: tirar fotos das páginas ---------- */
.dz-ou { display: flex; align-items: center; gap: 12px; margin: 12px 0; color: var(--tinta-3); font-size: .82rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.dz-ou::before, .dz-ou::after { content: ""; flex: 1; height: 1px; background: var(--linha); }
.btn-camara { display: grid; grid-template-columns: 52px minmax(0, 1fr) 18px; align-items: center; gap: 14px; width: 100%; padding: 14px 16px; border-radius: 18px; border: 1.5px solid var(--linha-2); background: var(--sup); color: inherit; font: inherit; text-align: left; cursor: pointer; transition: border-color .15s, background .15s; }
.btn-camara:hover { border-color: var(--bic); background: var(--azul-suave); }
.bc-ic { width: 52px; height: 52px; border-radius: 16px; display: grid; place-items: center; background: var(--marca); color: #fff; font-size: 1.3rem; }
.bc-t { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.bc-t strong { font-size: 1rem; }
.bc-t small { color: var(--tinta-2); font-size: .84rem; }
.btn-camara > i { color: var(--tinta-3); }
.foto-camara { border: 1.5px dashed var(--bic) !important; color: var(--bic); background: var(--azul-suave); font: inherit; cursor: pointer; }
.foto-camara i { font-size: 1.4rem; }


.tit-sug { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 14px; margin-top: 8px; padding: 10px 12px; border-radius: 14px; background: var(--azul-suave); }
.tit-sug-t { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1 1 260px; }
.tit-sug-t small { color: var(--bic); font-weight: 700; font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; }
.tit-sug-t strong { font-size: .92rem; line-height: 1.35; }
.tit-rep { display: flex; align-items: flex-start; gap: 8px; margin-top: 8px; }

.tit-auto { display: flex; align-items: flex-start; gap: 10px; margin-top: 8px; padding: 10px 12px; border-radius: 14px; background: var(--azul-suave); font-size: .86rem; color: var(--tinta-2); line-height: 1.45; }
.tit-auto i { color: var(--bic); margin-top: 3px; }
.tit-auto strong { color: var(--tinta); }

/* ---------- Definições → Cópia da base de dados: mais espaço entre as partes ---------- */
.cp-sec { margin-top: 18px; display: grid; gap: 14px; }
.cp-sec > header { margin-bottom: 0; }
.cp-sec .ajuda { margin: 0; }
.cp-sec .cp-estado { margin: 4px 0 0; gap: 12px; }
.cp-sec .linha-btn { display: flex; flex-wrap: wrap; gap: 12px; margin: 4px 0 0; }
.cp-sec .cp-hist { margin-top: 10px; gap: 12px; }
.cp-sec .cp-fich { gap: 12px; }
.cp-sec .cp-hist .rotulo-g { margin-bottom: 0; }
@media (max-width: 640px) { .cp-sec .linha-btn .btn { flex: 1 1 100%; justify-content: center; } }


/* ---------- Fotos das páginas: câmara do telemóvel e gestão das fotos ---------- */
.so-toque { display: none !important; }
@media (pointer: coarse) { .dz-ou.so-toque { display: flex !important; } .btn-camara.so-toque { display: grid !important; } .foto-mais.so-toque { display: flex !important; } }
label.btn-camara { cursor: pointer; }
.fotos-cab { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 12px; margin-bottom: 10px; }
.fotos-cab strong { font-size: 1rem; }
.fotos-cab small { color: var(--tinta-2); font-size: .82rem; }
.fotos-g { grid-template-columns: repeat(auto-fill, minmax(min(118px, 100%), 1fr)); gap: 12px; }
.foto-i { border-radius: 14px; box-shadow: 0 1px 0 var(--linha); }
.foto-n { min-width: 26px; height: 26px; font-size: .82rem; left: 8px; bottom: 8px; background: var(--marca); }
.foto-acoes { position: absolute; top: 6px; right: 6px; display: flex; gap: 6px; }
.foto-b { width: 32px; height: 32px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .95); color: var(--tinta); display: grid; place-items: center; cursor: pointer; box-shadow: 0 2px 8px rgba(16, 22, 51, .18); }
.foto-b svg { width: 14px; height: 14px; }
.foto-b-x { color: var(--vermelho); }
.foto-arr { top: auto; bottom: 8px; left: auto; right: 8px; }
.foto-mais { border-radius: 14px; cursor: pointer; font-weight: 700; font-size: .86rem; color: var(--tinta-2); text-align: center; padding: 8px; }
.foto-mais i { font-size: 1.5rem; color: var(--bic); }
.foto-camara { border: 2px dashed var(--bic) !important; background: var(--azul-suave); color: var(--bic); }
@media (max-width: 480px) { .fotos-g { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.av-link-a { font-size: .86rem; font-weight: 700; color: var(--bic); word-break: break-all; text-decoration: underline; text-underline-offset: 3px; }
.av-link-a i { font-size: .76rem; margin-left: 2px; }

/* ---------- Contagem: código de acesso ---------- */
.cr-cod { display: grid; justify-items: center; gap: 8px; width: min(420px, 100%); }
.cr-cod-b { background: transparent; border: 1.5px solid rgba(255, 255, 255, .55); color: #fff; font: inherit; font-weight: 700; font-size: .92rem; padding: 10px 18px; border-radius: 999px; cursor: pointer; }
.cr-cod-b:hover { background: rgba(255, 255, 255, .12); }
.cr-cod-f { display: flex; gap: 8px; width: 100%; }
.cr-cod-f input { flex: 1; min-width: 0; height: 48px; padding: 0 16px; border-radius: 999px; border: 0; font: inherit; font-size: 1rem; font-weight: 700; letter-spacing: .08em; color: #101633; background: #fff; outline: none; }
.cr-cod-f input:focus { box-shadow: 0 0 0 3px rgba(255, 255, 255, .45); }
.cr-cod-ok { height: 48px; padding: 0 20px; border-radius: 999px; border: 0; background: #101633; color: #fff; font: inherit; font-weight: 800; cursor: pointer; }
.cr-cod-ok:disabled { opacity: .6; }
.cr-cod-msg { min-height: 1.2em; font-size: .86rem; color: #FFE1E1; font-weight: 600; }
.av-cod { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
.av-cod input { flex: 1 1 200px; min-width: 0; height: 40px; padding: 0 14px; border-radius: 12px; border: 1.5px solid var(--linha-2); font: inherit; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; background: var(--sup); color: var(--tinta); }

/* ---------- Contagem em ecrãs pequenos: tudo à vista, sem rolar ---------- */
@media (max-width: 600px) {
  .cr { padding: calc(16px + env(safe-area-inset-top, 0px)) 14px calc(14px + env(safe-area-inset-bottom, 0px)); align-items: center; }
  .cr-cx { gap: clamp(8px, 1.8vh, 16px); }
  .cr-marca { flex-direction: row; gap: 12px; }
  .cr-logo { width: clamp(52px, 9vh, 76px); height: clamp(52px, 9vh, 76px); border-radius: 18px; box-shadow: none; }
  .cr-nome { font-size: clamp(1.9rem, 6.5vh, 2.6rem); }
  .cr h1 { font-size: clamp(1.3rem, 4vh, 1.8rem); }
  .cr-msg { font-size: clamp(.86rem, 2.2vh, 1rem); line-height: 1.45; }
  .cr-relogio { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; width: 100%; max-width: none; }
  .cr-u { gap: 6px; }
  .cr-n { aspect-ratio: auto; height: clamp(58px, 11vh, 86px); border-radius: 14px; font-size: clamp(1.6rem, 5.4vh, 2.4rem); }
  .cr-r { font-size: .66rem; letter-spacing: .08em; }
  .cr-quando { font-size: .8rem; padding: 8px 12px; gap: 6px; text-align: center; }
  .cr-cod-b { font-size: .84rem; padding: 8px 14px; }
  .cr-feito { margin-top: 0; font-size: .8rem; padding: 6px 12px; }
  .cr-conta { font-size: .8rem; }
}
@media (max-width: 600px) and (max-height: 640px) {
  .cr-msg { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .cr-quando { display: none; }
}

/* Moderação: materiais parecidos */
.fila-dup { display: grid; gap: 6px; margin-top: 8px; }
.fd-i { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; padding: 8px 10px; border-radius: 12px; background: #FFF4E5; color: #6B3A00; font-size: .84rem; }
.fd-p { font-weight: 800; padding: 2px 8px; border-radius: 999px; background: #FFD8A8; }
.fd-t { flex: 1 1 220px; min-width: 0; }
.fd-t a { color: inherit; font-weight: 700; }
.fd-ia { flex-basis: 100%; font-size: .82rem; }
.fd-sim { color: var(--vermelho); font-weight: 700; }
.fd-nao { color: var(--bic); font-weight: 700; }

.dup-l { list-style: none; padding: 0; margin: 4px 0; display: grid; gap: 8px; width: 100%; text-align: left; }
.dup-l li { padding: 10px 12px; border-radius: 12px; background: var(--sup-2); }
.dup-l a { font-weight: 700; color: var(--bic); }
.dup-sem { display: block; font-size: .8rem; color: var(--tinta-2); margin-top: 2px; }

.lt-fim { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; padding: 16px 18px; border-radius: 18px; background: var(--azul-suave); margin-bottom: 4px; }
.lt-fim-ic { font-size: 1.8rem; color: var(--bic); }
.lt-fim > div { flex: 1 1 260px; display: flex; flex-direction: column; gap: 2px; }
.lt-fim small { color: var(--tinta-2); }
.aviso-dup { flex-wrap: wrap; background: #FFF4E5; color: #6B3A00; }
.aviso-dup a { color: inherit; font-weight: 700; }
.aviso-dup span { flex: 1 1 260px; }


/* ---------- Rascunhos ---------- */
.rasc-b { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; padding: 14px 16px; margin-bottom: 14px; border-radius: 18px; background: var(--azul-suave); border: 1px solid #C9D3F5; }
.rasc-ic { width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; background: var(--marca); color: #fff; flex: none; }
.rasc-b > div:nth-child(2) { flex: 1 1 240px; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.rasc-b small { color: var(--tinta-2); }
.rasc-b .linha-btn { display: flex; gap: 8px; }


/* ---------- Lote: um só paginador, preso ao fundo do ecrã ---------- */
.lote .lt-pager { position: sticky; bottom: calc(12px + env(safe-area-inset-bottom, 0px)); z-index: 30; box-shadow: 0 10px 30px rgba(16, 22, 51, .16); background: var(--sup); }
@media (max-width: 760px) { .lote .lt-pager { bottom: calc(76px + env(safe-area-inset-bottom, 0px)); } }

/* ---------- Poderes ---------- */
.pd { display: grid; gap: 16px; }
.pd-t th, .pd-t td { vertical-align: middle; }
.pd-t thead th { text-align: center; white-space: nowrap; }
.pd-t thead th small, .pd-t tbody th small { display: block; color: var(--tinta-3); font-weight: 600; font-size: .78rem; }
.pd-g { font-weight: 800; }
.pd-t tbody th { text-align: left; min-width: 220px; }
.pd-t td { text-align: center; }
.pd-c { display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; border: 1.5px solid var(--linha-2); background: var(--sup); cursor: pointer; position: relative; }
.pd-c input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.pd-c.on { background: var(--marca); border-color: var(--marca); color: #fff; }
.pd-c:focus-within { outline: 3px solid var(--azul-claro); }
.pd-pe { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }


/* ---------- Publicar: o material já existe? ---------- */
.dup-a { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 12px; margin-top: 12px; padding: 12px 14px; border-radius: 16px; font-size: .9rem; line-height: 1.45; }
.dup-a > i { font-size: 1.2rem; flex: none; }
.dup-a > div:not(.linha-btn) { flex: 1 1 260px; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.dup-a a { font-weight: 700; color: inherit; text-decoration: underline; }
.dup-a .linha-btn { display: flex; flex-wrap: wrap; gap: 8px; }
.dup-a-ver { color: var(--tinta-2); background: var(--sup-2); }
.dup-a-igual { background: #FDECEE; color: #8A1C2B; }
.dup-a-parecido { background: #FFF4E5; color: #6B3A00; }
.dup-a-nome { background: var(--azul-suave); color: #1E2A78; }
.dup-a-ok { color: var(--bic); background: transparent; padding: 4px 2px; font-weight: 600; }


/* =========================================================
   Ecrã de carregamento (a partir do vídeo da marca)
   data-modo="intro": os documentos entram na pasta, a pasta fecha, aparece o V e o nome Veteraano
   data-modo="docs": só os documentos a entrar na pasta, em ciclo (entrar, publicar)
   ========================================================= */
.carregar { position: fixed; inset: 0; z-index: 300; display: grid; place-items: center; overflow: hidden; background: radial-gradient(70% 55% at 50% 42%, #2B4DF2 0%, #1E40E6 55%, #1A36CF 100%); color: #fff; transition: opacity .4s ease, visibility .4s; }
.carregar.sai { opacity: 0; visibility: hidden; }
.cr-fundo { position: absolute; inset: -240px; opacity: .045; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240' viewBox='0 0 240 240'%3E%3Cg fill='none' stroke='%23ffffff' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 30h6l6 13 9-26h22'/%3E%3Cg transform='translate(170 22)'%3E%3Cellipse cx='14' cy='14' rx='14' ry='5.5'/%3E%3Cellipse cx='14' cy='14' rx='14' ry='5.5' transform='rotate(60 14 14)'/%3E%3Cellipse cx='14' cy='14' rx='14' ry='5.5' transform='rotate(-60 14 14)'/%3E%3Ccircle cx='14' cy='14' r='1.8' fill='%23ffffff'/%3E%3C/g%3E%3Cpath d='M104 74v14l-12 22a4 4 0 0 0 3.5 6h25a4 4 0 0 0 3.5-6l-12-22V74M100 74h16M95 102h26'/%3E%3Cpath d='M22 120l26-26 6 6-26 26-8 2z M44 98l6 6'/%3E%3Cpath d='M168 104h26a4 4 0 0 1 4 4v28h-26a4 4 0 0 0-4 4z M172 112h20M172 118h16'/%3E%3Cpath d='M30 176l30 30H30z M36 196h8'/%3E%3Cpath d='M150 196h70M156 196v-6M166 196v-4M176 196v-6M186 196v-4M196 196v-6M206 196v-4M216 196v-6'/%3E%3Cpath d='M96 168l22-10 22 10-22 10z M106 172v8c8 5 16 5 24 0v-8 M140 168v12'/%3E%3C/g%3E%3Cg fill='%23ffffff' font-family='Georgia, serif' font-style='italic'%3E%3Ctext x='66' y='38' font-size='17'%3Ef(x)%3C/text%3E%3Ctext x='124' y='52' font-size='20'%3E%CF%80%3C/text%3E%3Ctext x='204' y='84' font-size='19' font-style='normal'%3E%CE%A3%3C/text%3E%3Ctext x='70' y='150' font-size='24'%3E%E2%88%AB%3C/text%3E%3Ctext x='190' y='164' font-size='14'%3Ex%C2%B2%3C/text%3E%3Ctext x='16' y='230' font-size='13' font-style='normal'%3EH%E2%82%82O%3C/text%3E%3Ctext x='118' y='226' font-size='14'%3Ea+b%3C/text%3E%3C/g%3E%3C/svg%3E"); animation: crFundo 24s linear infinite; }
@keyframes crFundo { to { transform: translate(240px, -240px); } }
.carregar-c { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 10px; padding: 24px; }
.cr-cena { width: min(220px, 52vw); height: auto; overflow: visible; }
.cr-cena * { transform-box: fill-box; }
.carregar-msg { font-weight: 760; font-size: 1.12rem; letter-spacing: -.01em; margin-top: 4px; }
.carregar-msg::after { content: ''; display: inline-block; width: 1.2em; text-align: left; animation: crPontos 1.2s steps(4) infinite; }
@keyframes crPontos { 0% { content: ''; } 25% { content: '.'; } 50% { content: '..'; } 75% { content: '...'; } }
.carregar-dica { color: rgba(255, 255, 255, .78); font-size: .9rem; max-width: 32ch; }
.cr-marca { display: none; }

/* a pasta aparece */
.cr-anima .cr-tras, .cr-anima .cr-frente { animation: crPasta .5s cubic-bezier(.2, 1.4, .4, 1) both; transform-origin: 50% 100%; }
@keyframes crPasta { from { transform: scale(.55); opacity: 0; } to { transform: scale(1); opacity: 1; } }
.cr-frente { transform-origin: 50% 100%; }
.carregar .cr-folha, .carregar .cr-v, .carregar .cr-onda, .carregar .cr-faiscas { opacity: 0; }
.cr-v { stroke-dasharray: 100; stroke-dashoffset: 100; }
/* pasta aberta: só a aba da frente à vista (os documentos caem por trás dela) */
.carregar .cr-frente { transform: scaleY(.5); }
.cr-anima .cr-frente { animation: crPastaFrente .5s cubic-bezier(.2, 1.4, .4, 1) both; }
@keyframes crPastaFrente { from { transform: scale(.55, .28); opacity: 0; } to { transform: scale(1, .5); opacity: 1; } }

/* documentos a cair para dentro da pasta */
.cr-doc { opacity: 0; transform-origin: 50% 100%; }
@keyframes crCai {
  0% { transform: translate(var(--dx), -150px) rotate(var(--r0)); opacity: 0; }
  14% { opacity: 1; }
  52% { transform: translate(var(--dx), 2px) rotate(var(--r1)); }
  62% { transform: translate(var(--dx), -6px) rotate(var(--r1)); }
  80% { transform: translate(var(--dx), 18px) rotate(var(--r1)); opacity: 1; }
  100% { transform: translate(var(--dx), 64px) rotate(var(--r1)); opacity: 0; }
}
.cr-d1 { --dx: -14px; --r0: -24deg; --r1: -8deg; }
.cr-d2 { --dx: 10px; --r0: 20deg; --r1: 6deg; }
.cr-d3 { --dx: -6px; --r0: -14deg; --r1: -3deg; }
.cr-d4 { --dx: 14px; --r0: 26deg; --r1: 9deg; }
/* modo docs: os documentos não param de entrar */
.cr-anima[data-modo="docs"] .cr-doc { animation: crCai 2.8s cubic-bezier(.35, .2, .2, 1) infinite; }
.cr-anima[data-modo="docs"] .cr-d1 { animation-delay: .25s; }
.cr-anima[data-modo="docs"] .cr-d2 { animation-delay: .95s; }
.cr-anima[data-modo="docs"] .cr-d3 { animation-delay: 1.65s; }
.cr-anima[data-modo="docs"] .cr-d4 { animation-delay: 2.35s; }
.cr-anima[data-modo="docs"] .cr-frente { animation: crPastaFrente .5s cubic-bezier(.2, 1.4, .4, 1) both, crRespira 2.4s ease-in-out .5s infinite; }
@keyframes crRespira { 0%, 100% { transform: scaleY(.5); } 50% { transform: scaleY(.53); } }

/* modo intro: entram os quatro, a pasta fecha, o V desenha-se, onda e faíscas, e o nome aparece */
.cr-anima[data-modo="intro"] .cr-doc { animation: crCai .62s cubic-bezier(.35, .2, .2, 1) both; }
.cr-anima[data-modo="intro"] .cr-d1 { animation-delay: .25s; }
.cr-anima[data-modo="intro"] .cr-d2 { animation-delay: .43s; }
.cr-anima[data-modo="intro"] .cr-d3 { animation-delay: .61s; }
.cr-anima[data-modo="intro"] .cr-d4 { animation-delay: .79s; }
.cr-anima[data-modo="intro"] .cr-frente { animation: crPastaFrente .5s cubic-bezier(.2, 1.4, .4, 1) both, crFecha .26s cubic-bezier(.3, 1.5, .5, 1) 1.38s both; }
@keyframes crFecha { from { transform: scaleY(.5); } to { transform: scaleY(1); } }
.cr-anima[data-modo="intro"] .cr-folha { animation: crAparece .2s ease 1.34s both; }
.cr-anima[data-modo="intro"] .cr-v { animation: crV .32s cubic-bezier(.5, 0, .2, 1) 1.6s both; }
@keyframes crV { 0% { stroke-dashoffset: 100; opacity: 0; } 2% { opacity: 1; } 100% { stroke-dashoffset: 0; opacity: 1; } }
.cr-anima[data-modo="intro"] .cr-onda { animation: crOnda .7s ease-out 1.72s both; transform-origin: 50% 50%; }
@keyframes crOnda { 0% { transform: scale(.6); opacity: 0; } 2% { opacity: .9; } 100% { transform: scale(1.7); opacity: 0; } }
.cr-anima[data-modo="intro"] .cr-faiscas { animation: crFaiscas .75s ease-out 1.72s both; transform-origin: 50% 50%; }
@keyframes crFaiscas { 0% { transform: scale(.6); opacity: 0; } 30% { opacity: 1; } 100% { transform: scale(1.25); opacity: 0; } }
@keyframes crAparece { from { opacity: 0; } to { opacity: 1; } }
.carregar[data-modo="intro"] .cr-marca { display: flex; flex-direction: column; align-items: center; gap: 10px; }
.carregar[data-modo="intro"] .carregar-msg, .carregar[data-modo="intro"] .carregar-dica { display: none; }
.cr-nome { font-size: clamp(2.6rem, 9vw, 3.6rem); font-weight: 800; letter-spacing: -.035em; line-height: 1; display: inline-flex; }
.cr-nome i { font-style: normal; display: inline-block; opacity: 0; }
.cr-anima[data-modo="intro"] .cr-nome i { animation: crLetra .32s cubic-bezier(.2, 1.3, .4, 1) calc(1.95s + var(--k) * .04s) both; }
@keyframes crLetra { from { transform: translateY(18px); opacity: 0; filter: blur(4px); } to { transform: none; opacity: 1; filter: none; } }
@keyframes crPop { from { transform: scale(.6); opacity: 0; } to { transform: scale(1); opacity: 1; } }
/* no fim da abertura a pasta fica fechada com o V */
.carregar[data-modo="intro"] .cr-frente { transform: scaleY(1); }
@media (prefers-reduced-motion: reduce) {
  .cr-fundo, .cr-anima .cr-doc, .carregar-msg::after { animation: none !important; }
  .cr-anima[data-modo="intro"] * { animation-duration: .01s !important; animation-delay: 0s !important; }
}

.carregar .carregar-msg.sr, .carregar .carregar-dica.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; margin: 0; }
.carregar[data-modo="intro"] .cr-marca { margin-top: 6px; }


/* painel */
.av-fecho.on { border-color: #F3B4BC; background: #FFF7F8; }
.av-fe-g { display: grid; grid-template-columns: minmax(0, 1fr) 240px; gap: 16px; align-items: start; margin-top: 12px; }
.av-fe-prev { display: grid; justify-items: center; gap: 8px; padding: 14px; border-radius: 16px; background: #fff; border: 1px solid var(--linha); text-align: center; }
.av-fe-prev .fc-mini { width: 110px; }
.av-fe-prev p { font-size: .82rem; font-weight: 700; color: #101633; }
.av-fecho .linha-btn { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
@media (max-width: 760px) { .av-fe-g { grid-template-columns: minmax(0, 1fr); } }


/* =========================================================
   Site fechado: a animação inteira sem fim (documentos entram, a pasta fecha, o V aparece, a pasta volta a abrir)
   Fundo branco ou azul, à escolha da administração. Fica até a administração reabrir.
   ========================================================= */
#fecho-raiz { position: fixed; inset: 0; z-index: 1000; }
#fecho-raiz .fc { position: absolute; inset: 0; }
.fc { display: grid; place-items: center; overflow: hidden; padding: calc(24px + env(safe-area-inset-top, 0px)) 18px calc(24px + env(safe-area-inset-bottom, 0px)); }
.fc-branco { background: #FFFFFF; color: #101633; }
.fc-azul { background: radial-gradient(70% 55% at 50% 42%, #2B4DF2 0%, #1E40E6 55%, #1A36CF 100%); color: #fff; }
.fc::before { content: ""; position: absolute; inset: -40px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cg fill='none' stroke='%23fff' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M20 24l6 6m0-6l-6 6'/%3E%3Ccircle cx='118' cy='34' r='5'/%3E%3Cpath d='M70 92l6 6m0-6l-6 6'/%3E%3Cpath d='M128 116l-5 5 5 5M136 116l-5 5 5 5'/%3E%3Ccircle cx='34' cy='130' r='4'/%3E%3Cpath d='M92 22v8M88 26h8'/%3E%3C/g%3E%3C/svg%3E"); animation: crFundo 24s linear infinite; pointer-events: none; }
.fc-azul::before { opacity: .14; }
.fc-branco::before { opacity: .55; filter: brightness(0) saturate(100%) invert(91%) sepia(8%) saturate(900%) hue-rotate(195deg); }
.fc-cx { position: relative; z-index: 1; display: grid; justify-items: center; gap: 16px; text-align: center; width: min(460px, 100%); }
.fc-cena { width: min(230px, 56vw); height: auto; overflow: visible; }
.fc-cena * { transform-box: fill-box; }
.fc-msg { font-size: clamp(1.05rem, 2.6vw, 1.25rem); font-weight: 700; line-height: 1.45; max-width: 34ch; }
.fc-branco .fc-msg { color: #101633; }
.fc-azul .fc-msg { color: #FFFFFF; }
/* o ciclo (5,2 s, sem fim) */
.fc-doc { opacity: 0; transform-origin: 50% 100%; animation: fcCai 6.6s cubic-bezier(.35, .2, .2, 1) infinite; }
@keyframes fcCai {
  0% { transform: translate(var(--dx), -150px) rotate(var(--r0)); opacity: 0; }
  3% { opacity: 1; }
  10% { transform: translate(var(--dx), 2px) rotate(var(--r1)); }
  12% { transform: translate(var(--dx), -6px) rotate(var(--r1)); }
  16% { transform: translate(var(--dx), 18px) rotate(var(--r1)); opacity: 1; }
  20% { transform: translate(var(--dx), 64px) rotate(var(--r1)); opacity: 0; }
  100% { transform: translate(var(--dx), 64px); opacity: 0; }
}
.fc-d1 { --dx: -14px; --r0: -24deg; --r1: -8deg; animation-delay: 0s; }
.fc-d2 { --dx: 10px; --r0: 20deg; --r1: 6deg; animation-delay: .4s; }
.fc-d3 { --dx: -6px; --r0: -14deg; --r1: -3deg; animation-delay: .8s; }
.fc-d4 { --dx: 14px; --r0: 26deg; --r1: 9deg; animation-delay: 1.2s; }
.fc-frente { transform-origin: 50% 100%; animation: fcFrente 6.6s cubic-bezier(.3, 1.3, .5, 1) infinite; }
@keyframes fcFrente { 0%, 39% { transform: scaleY(.5); } 44%, 86% { transform: scaleY(1); } 92%, 100% { transform: scaleY(.5); } }
.fc-folha { opacity: 0; animation: fcFolha 6.6s ease infinite; }
@keyframes fcFolha { 0%, 39% { opacity: 0; } 43%, 88% { opacity: 1; } 92%, 100% { opacity: 0; } }
.fc-v { stroke-dasharray: 100; stroke-dashoffset: 100; opacity: 0; animation: fcV 6.6s cubic-bezier(.5, 0, .2, 1) infinite; }
@keyframes fcV { 0%, 45% { stroke-dashoffset: 100; opacity: 0; } 46% { opacity: 1; } 53%, 82% { stroke-dashoffset: 0; opacity: 1; } 87%, 100% { stroke-dashoffset: 0; opacity: 0; } }
.fc-onda { opacity: 0; transform-origin: 50% 50%; animation: fcOnda 6.6s ease-out infinite; }
@keyframes fcOnda { 0%, 47% { transform: scale(.6); opacity: 0; } 48% { opacity: .8; } 63% { transform: scale(1.7); opacity: 0; } 100% { opacity: 0; } }
.fc-faiscas { opacity: 0; transform-origin: 50% 50%; animation: fcFaiscas 6.6s ease-out infinite; }
@keyframes fcFaiscas { 0%, 47% { transform: scale(.6); opacity: 0; } 52% { opacity: 1; } 65% { transform: scale(1.25); opacity: 0; } 100% { opacity: 0; } }
/* acesso discreto, no fundo do ecrã */
.fc-pe { position: absolute; left: 0; right: 0; bottom: calc(18px + env(safe-area-inset-bottom, 0px)); z-index: 2; display: grid; justify-items: center; gap: 6px; padding: 0 16px; }
.fc-acesso { width: 34px; height: 34px; border-radius: 50%; border: 0; background: transparent; cursor: pointer; display: grid; place-items: center; font-size: .9rem; opacity: .35; transition: opacity .15s; }
.fc-acesso:hover, .fc-acesso:focus-visible { opacity: .9; }
.fc-branco .fc-acesso { color: #1E40E6; }
.fc-azul .fc-acesso { color: #FFFFFF; }
.fc .cr-cod { width: min(380px, 100%); }
.fc-branco .cr-cod-f input { border: 1.5px solid #C9D3F5; }
.fc-branco .cr-cod-ok { background: #1E40E6; }
.fc-branco .cr-cod-msg { color: #C0263B; }
.fc-conta { font-size: .82rem; opacity: .6; }
.fc-branco .fc-conta .cr-link { color: #1E40E6; }
#faixa-fecho { position: fixed; left: 50%; transform: translateX(-50%); bottom: calc(16px + env(safe-area-inset-bottom, 0px)); z-index: 96; display: flex; align-items: center; gap: 10px; max-width: min(760px, calc(100vw - 24px)); padding: 10px 14px; border-radius: 16px; background: #101633; color: #fff; font-size: .86rem; box-shadow: 0 12px 30px rgba(16, 22, 51, .3); }
#faixa-fecho a { color: #AFC0FF; font-weight: 700; white-space: nowrap; }
@media (max-width: 760px) { #faixa-fecho { bottom: calc(84px + env(safe-area-inset-bottom, 0px)); font-size: .8rem; } }
@media (prefers-reduced-motion: reduce) { .fc::before, .fc-doc, .fc-frente, .fc-folha, .fc-v, .fc-onda, .fc-faiscas { animation: none; } .fc-frente { transform: scaleY(1); } .fc-v { stroke-dashoffset: 0; opacity: 1; } }
/* painel: escolher o fundo e pré-visualizar */
.av-temas { display: flex; gap: 8px; }
.av-tema { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 999px; border: 1.5px solid var(--linha-2); background: var(--sup); font: inherit; font-weight: 700; cursor: pointer; }
.av-tema span { width: 18px; height: 18px; border-radius: 50%; border: 1.5px solid var(--linha-2); }
.av-tema-branco span { background: #fff; }
.av-tema-azul span { background: #1E40E6; border-color: #1E40E6; }
.av-tema.on { border-color: var(--bic); background: var(--azul-suave); color: var(--bic); }
.av-fe-prev.fc { position: relative; border-radius: 16px; min-height: 230px; padding: 16px; display: grid; justify-items: center; align-content: center; gap: 8px; border: 1px solid var(--linha); }
.av-fe-prev .fc-mini { width: 120px; position: relative; z-index: 1; }
.av-fe-prev .fc-msg { position: relative; z-index: 1; font-size: .82rem; }


/* =========================================================
   Site bloqueado (com data ou sem data): um só ecrã, fundo azul ou branco
   ========================================================= */
body.em-bloqueio { overflow: hidden; }
#bq-raiz.bq { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 2147483000; }
.bq { overflow: hidden; display: grid; place-items: center; }
.bq-azul { background: radial-gradient(70% 55% at 50% 42%, #2B4DF2 0%, #1E40E6 55%, #1A36CF 100%); color: #FFFFFF; }
.bq-branco { background: #FFFFFF; color: #101633; }
.bq-fundo { position: absolute; top: 0; right: 0; bottom: 0; left: 0; overflow: hidden; pointer-events: none; }
.bq-fundo i { position: absolute; top: -240px; right: -240px; bottom: -240px; left: -240px; animation: crFundo 24s linear infinite; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240' viewBox='0 0 240 240'%3E%3Cg fill='none' stroke='%23ffffff' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 30h6l6 13 9-26h22'/%3E%3Cg transform='translate(170 22)'%3E%3Cellipse cx='14' cy='14' rx='14' ry='5.5'/%3E%3Cellipse cx='14' cy='14' rx='14' ry='5.5' transform='rotate(60 14 14)'/%3E%3Cellipse cx='14' cy='14' rx='14' ry='5.5' transform='rotate(-60 14 14)'/%3E%3Ccircle cx='14' cy='14' r='1.8' fill='%23ffffff'/%3E%3C/g%3E%3Cpath d='M104 74v14l-12 22a4 4 0 0 0 3.5 6h25a4 4 0 0 0 3.5-6l-12-22V74M100 74h16M95 102h26'/%3E%3Cpath d='M22 120l26-26 6 6-26 26-8 2z M44 98l6 6'/%3E%3Cpath d='M168 104h26a4 4 0 0 1 4 4v28h-26a4 4 0 0 0-4 4z M172 112h20M172 118h16'/%3E%3Cpath d='M30 176l30 30H30z M36 196h8'/%3E%3Cpath d='M150 196h70M156 196v-6M166 196v-4M176 196v-6M186 196v-4M196 196v-6M206 196v-4M216 196v-6'/%3E%3Cpath d='M96 168l22-10 22 10-22 10z M106 172v8c8 5 16 5 24 0v-8 M140 168v12'/%3E%3C/g%3E%3Cg fill='%23ffffff' font-family='Georgia, serif' font-style='italic'%3E%3Ctext x='66' y='38' font-size='17'%3Ef(x)%3C/text%3E%3Ctext x='124' y='52' font-size='20'%3E%CF%80%3C/text%3E%3Ctext x='204' y='84' font-size='19' font-style='normal'%3E%CE%A3%3C/text%3E%3Ctext x='70' y='150' font-size='24'%3E%E2%88%AB%3C/text%3E%3Ctext x='190' y='164' font-size='14'%3Ex%C2%B2%3C/text%3E%3Ctext x='16' y='230' font-size='13' font-style='normal'%3EH%E2%82%82O%3C/text%3E%3Ctext x='118' y='226' font-size='14'%3Ea+b%3C/text%3E%3C/g%3E%3C/svg%3E"); }
.bq-azul .bq-fundo i { opacity: .045; }
.bq-branco .bq-fundo i { opacity: .32; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240' viewBox='0 0 240 240'%3E%3Cg fill='none' stroke='%23E3E8FA' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 30h6l6 13 9-26h22'/%3E%3Cg transform='translate(170 22)'%3E%3Cellipse cx='14' cy='14' rx='14' ry='5.5'/%3E%3Cellipse cx='14' cy='14' rx='14' ry='5.5' transform='rotate(60 14 14)'/%3E%3Cellipse cx='14' cy='14' rx='14' ry='5.5' transform='rotate(-60 14 14)'/%3E%3Ccircle cx='14' cy='14' r='1.8' fill='%23E3E8FA'/%3E%3C/g%3E%3Cpath d='M104 74v14l-12 22a4 4 0 0 0 3.5 6h25a4 4 0 0 0 3.5-6l-12-22V74M100 74h16M95 102h26'/%3E%3Cpath d='M22 120l26-26 6 6-26 26-8 2z M44 98l6 6'/%3E%3Cpath d='M168 104h26a4 4 0 0 1 4 4v28h-26a4 4 0 0 0-4 4z M172 112h20M172 118h16'/%3E%3Cpath d='M30 176l30 30H30z M36 196h8'/%3E%3Cpath d='M150 196h70M156 196v-6M166 196v-4M176 196v-6M186 196v-4M196 196v-6M206 196v-4M216 196v-6'/%3E%3Cpath d='M96 168l22-10 22 10-22 10z M106 172v8c8 5 16 5 24 0v-8 M140 168v12'/%3E%3C/g%3E%3Cg fill='%23E3E8FA' font-family='Georgia, serif' font-style='italic'%3E%3Ctext x='66' y='38' font-size='17'%3Ef(x)%3C/text%3E%3Ctext x='124' y='52' font-size='20'%3E%CF%80%3C/text%3E%3Ctext x='204' y='84' font-size='19' font-style='normal'%3E%CE%A3%3C/text%3E%3Ctext x='70' y='150' font-size='24'%3E%E2%88%AB%3C/text%3E%3Ctext x='190' y='164' font-size='14'%3Ex%C2%B2%3C/text%3E%3Ctext x='16' y='230' font-size='13' font-style='normal'%3EH%E2%82%82O%3C/text%3E%3Ctext x='118' y='226' font-size='14'%3Ea+b%3C/text%3E%3C/g%3E%3C/svg%3E"); }
.bq-cx { position: relative; z-index: 1; display: grid; justify-items: center; gap: clamp(10px, 2vh, 16px); text-align: center; width: min(560px, 100%); padding: 24px 18px 96px; }
.bq-cena { width: min(220px, 50vw); height: auto; overflow: visible; }
.bq-cena * { transform-box: fill-box; }
.bq-tit { font-size: clamp(1.5rem, 4.2vw, 2.4rem); font-weight: 800; line-height: 1.1; margin: 0; }
.bq-msg { font-size: clamp(1rem, 2.4vw, 1.18rem); font-weight: 600; line-height: 1.45; max-width: 36ch; margin: 0; opacity: .92; }
.bq-rel { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(6px, 1.6vw, 14px); width: min(520px, 100%); }
.bq-u { display: grid; justify-items: center; gap: 6px; }
.bq-n { width: 100%; display: grid; place-items: center; height: clamp(56px, 11vh, 96px); border-radius: 16px; font-size: clamp(1.6rem, 5vh, 2.8rem); font-weight: 800; font-variant-numeric: tabular-nums; }
.bq-azul .bq-n { background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .24); color: #FFFFFF; }
.bq-branco .bq-n { background: #EEF2FF; border: 1px solid #DCE4FF; color: #1E40E6; }
.bq-r { font-size: .7rem; font-weight: 750; text-transform: uppercase; letter-spacing: .12em; opacity: .75; }
.bq-quando { font-size: .86rem; font-weight: 650; opacity: .85; margin: 0; }
.bq-pe { position: absolute; left: 0; right: 0; bottom: calc(14px + env(safe-area-inset-bottom, 0px)); z-index: 2; display: grid; justify-items: center; gap: 6px; padding: 0 16px; }
.bq-chave { width: 36px; height: 36px; border-radius: 50%; border: 0; background: transparent; cursor: pointer; display: grid; place-items: center; font-size: .92rem; opacity: .35; transition: opacity .15s; color: inherit; }
.bq-chave:hover, .bq-chave:focus-visible { opacity: .95; }
.bq-branco .bq-chave { color: #1E40E6; }
.bq .cr-cod { width: min(380px, 100%); }
.bq-branco .cr-cod-f input { border: 1.5px solid #C9D3F5; }
.bq-branco .cr-cod-ok { background: #1E40E6; }
.bq-branco .cr-cod-msg { color: #C0263B; }
.bq-conta { font-size: .82rem; opacity: .6; margin: 0; }
.bq-link { background: none; border: 0; color: inherit; text-decoration: underline; cursor: pointer; font: inherit; font-weight: 700; padding: 0; }
#faixa-bloqueio { position: fixed; left: 50%; transform: translateX(-50%); bottom: calc(16px + env(safe-area-inset-bottom, 0px)); z-index: 96; display: flex; align-items: center; gap: 10px; max-width: min(760px, calc(100vw - 24px)); padding: 10px 14px; border-radius: 16px; background: #101633; color: #fff; font-size: .86rem; box-shadow: 0 12px 30px rgba(16, 22, 51, .3); }
#faixa-bloqueio a { color: #AFC0FF; font-weight: 700; white-space: nowrap; }
@media (max-width: 760px) { #faixa-bloqueio { bottom: calc(84px + env(safe-area-inset-bottom, 0px)); font-size: .8rem; } .bq-rel { gap: 6px; } .bq-n { border-radius: 12px; } }
@media (max-height: 640px) { .bq-cena { width: min(150px, 40vw); } .bq-quando { display: none; } }
/* pré-visualização no painel (pequena, dentro da página) */
.bq-mini { position: relative; min-height: 320px; border-radius: 18px; border: 1px solid var(--linha); }
.bq-mini .bq-cx { padding: 16px 12px; gap: 8px; }
.bq-mini .bq-cena { width: 110px; }
.bq-mini .bq-tit { font-size: 1.1rem; }
.bq-mini .bq-msg { font-size: .8rem; }
.bq-mini .bq-rel { gap: 5px; width: 100%; }
.bq-mini .bq-n { height: 38px; font-size: 1.05rem; border-radius: 10px; }
.bq-mini .bq-r { font-size: .55rem; }
.bq-mini .bq-quando { font-size: .74rem; }
/* painel: o formulário do bloqueio */
.av-bq.on { border-color: #F3B4BC; background: #FFF7F8; }
.av-bq-g { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 320px); gap: 18px; align-items: start; margin-top: 12px; }
.av-bq-f { display: grid; gap: 12px; }
.av-bq-modos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.av-bq-modo { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 10px; align-items: center; padding: 12px; border-radius: 14px; border: 1.5px solid var(--linha-2); background: var(--sup); color: inherit; font: inherit; text-align: left; cursor: pointer; }
.av-bq-modo i { width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; background: var(--sup-2); color: var(--bic); }
.av-bq-modo span { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.av-bq-modo small { color: var(--tinta-2); font-size: .82rem; line-height: 1.35; }
.av-bq-modo.on { border-color: var(--bic); background: var(--azul-suave); }
.av-bq-modo.on i { background: var(--marca); color: #fff; }
.av-bq-acoes { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
@media (max-width: 900px) { .av-bq-g { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 520px) { .av-bq-modos { grid-template-columns: minmax(0, 1fr); } }


/* ---------- Bloqueio: texto do topo, mensagem formatada, chave e "Feito por" ---------- */
.bq-topo { position: absolute; top: calc(18px + env(safe-area-inset-top, 0px)); left: 50%; transform: translateX(-50%); z-index: 2; margin: 0; padding: 7px 16px; border-radius: 999px; font-size: .82rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; max-width: calc(100% - 32px); overflow: hidden; text-overflow: ellipsis; }
.bq-azul .bq-topo { background: rgba(255, 255, 255, .14); color: #fff; }
.bq-branco .bq-topo { background: #EEF2FF; color: #1E40E6; }
.bq-msg { display: grid; gap: .5em; }
.bq-msg p { margin: 0; }
.t-p { font-size: .82em; }
.t-g { font-size: 1.3em; }
.t-gg { font-size: 1.75em; line-height: 1.2; }
.bq-feito { display: inline-flex; align-items: center; gap: 6px; font-size: .8rem; text-decoration: none; color: inherit; opacity: .75; }
.bq-feito:hover { opacity: 1; }
.bq-feito span { opacity: .8; }
.bq-mini .bq-topo { top: 10px; font-size: .66rem; padding: 4px 10px; }
.bq-mini .bq-pe { bottom: 8px; gap: 2px; }
.bq-mini .bq-chave { width: 22px; height: 22px; font-size: .66rem; }
.bq-mini .bq-feito { font-size: .66rem; }
/* editor da mensagem */
.bq-ed-barra { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; padding: 6px; border: 1.5px solid var(--linha-2); border-bottom: 0; border-radius: 12px 12px 0 0; background: var(--sup-2); }
.bq-ed-b { min-width: 34px; height: 32px; padding: 0 8px; border: 0; border-radius: 8px; background: transparent; color: var(--tinta); font: inherit; font-weight: 800; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 1px; }
.bq-ed-b small { font-size: .7em; }
.bq-ed-b:hover { background: var(--sup); }
.bq-ed-sep { width: 1px; height: 20px; background: var(--linha-2); margin: 0 4px; }
.bq-ed { min-height: 96px; max-height: 260px; overflow-y: auto; padding: 12px 14px; border: 1.5px solid var(--linha-2); border-radius: 0 0 12px 12px; background: var(--sup); color: var(--tinta); line-height: 1.5; outline: none; }
.bq-ed:focus { border-color: var(--bic); }
.bq-ed p { margin: 0 0 .5em; }
.bq-ed:empty::before { content: attr(data-vazio); color: var(--tinta-3); }

/* imagem pequena por baixo de tudo, no ecrã do bloqueio */
.bq-img { display: block; max-width: min(320px, 70vw); max-height: 120px; width: auto; height: auto; object-fit: contain; border-radius: 14px; margin-top: 4px; }
.bq-azul .bq-img { box-shadow: 0 10px 30px rgba(8, 18, 90, .25); }
.bq-branco .bq-img { border: 1px solid #E3E8FA; }
.bq-mini .bq-img { max-width: 140px; max-height: 54px; border-radius: 8px; }
@media (max-height: 700px) { .bq-img { max-height: 80px; } }


/* ---------- Bloqueio, estilo "Imagem": logo pequeno no topo, a imagem em grande e a mensagem ---------- */
.bq-logo-topo { position: absolute; top: calc(18px + env(safe-area-inset-top, 0px)); left: 50%; transform: translateX(-50%); z-index: 2; display: inline-flex; align-items: center; gap: 8px; font-size: 1rem; }
.bq-logo-ic { width: 30px; height: 30px; border-radius: 9px; display: grid; place-items: center; background: #fff; }
.bq-branco .bq-logo-ic { background: #EEF2FF; }
.bq-logo-ic svg { width: 22px; height: 22px; }
.bq-logo-topo strong { font-weight: 800; letter-spacing: -.02em; }
.bq-cx-img { gap: clamp(12px, 2.4vh, 20px); padding-top: calc(70px + env(safe-area-inset-top, 0px)); }
.bq-topo-img { position: static; transform: none; }
.bq-imagem { display: block; border-radius: 18px; width: auto; height: auto; }
.bq-tam-p { max-width: min(380px, 82vw); max-height: 34vh; }
.bq-tam-m { max-width: min(560px, 88vw); max-height: 48vh; }
.bq-tam-g { max-width: min(760px, 92vw); max-height: 62vh; }
.bq-aj-inteira { object-fit: contain; }
.bq-aj-preencher { object-fit: cover; aspect-ratio: 16 / 10; }
.bq-aj-preencher.bq-tam-p { width: min(380px, 82vw); }
.bq-aj-preencher.bq-tam-m { width: min(560px, 88vw); }
.bq-aj-preencher.bq-tam-g { width: min(760px, 92vw); }
.bq-azul .bq-imagem { box-shadow: 0 18px 50px rgba(8, 18, 90, .35); }
.bq-branco .bq-imagem { box-shadow: 0 14px 40px rgba(16, 22, 51, .14); }
.bq-rel-curta { width: min(380px, 100%); }
.bq-rel-curta .bq-n { height: clamp(44px, 8vh, 64px); font-size: clamp(1.2rem, 3.6vh, 1.8rem); }
.bq-mini .bq-logo-topo { top: 8px; font-size: .66rem; gap: 4px; }
.bq-mini .bq-logo-ic { width: 16px; height: 16px; border-radius: 5px; }
.bq-mini .bq-logo-ic svg { width: 12px; height: 12px; }
.bq-mini .bq-cx-img { padding-top: 30px; gap: 8px; }
.bq-mini .bq-tam-p { max-width: 120px; max-height: 70px; }
.bq-mini .bq-tam-m { max-width: 170px; max-height: 100px; }
.bq-mini .bq-tam-g { max-width: 220px; max-height: 130px; }
.bq-mini .bq-aj-preencher.bq-tam-p { width: 120px; }
.bq-mini .bq-aj-preencher.bq-tam-m { width: 170px; }
.bq-mini .bq-aj-preencher.bq-tam-g { width: 220px; }
.bq-mini .bq-imagem { border-radius: 10px; }
.av-bq-ops { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; margin-top: 10px; }
.av-bq-ops .rotulo-g { display: block; margin-bottom: 6px; }


/* ---------- Abrir ou atualizar o site: só uma barra fina no topo (sem ecrã de carregamento) ---------- */
.barra-arranque { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 400; overflow: hidden; pointer-events: none; }
.barra-arranque i { position: absolute; top: 0; left: 0; height: 100%; width: 40%; background: var(--marca, #1E40E6); border-radius: 0 3px 3px 0; animation: barraArranque 1.1s ease-in-out infinite; }
@keyframes barraArranque { 0% { transform: translateX(-100%); } 100% { transform: translateX(260%); } }
.barra-arranque.fim { opacity: 0; transition: opacity .35s ease; }
.carregar[hidden] { display: none !important; }

.roda-btn { width: 16px; height: 16px; border-width: 2px; margin-right: 8px; border-color: currentColor; border-right-color: transparent; vertical-align: -3px; }


/* ---------- Boas-vindas (criar conta): o ciclo completo com os livros de todas as áreas, depois "Bem-vindo" e "Começar" ---------- */
.carregar:not([data-modo="boasvindas"]) .cr-livro { display: none; }
.cr-bv { display: none; }
.carregar[data-modo="boasvindas"] .cr-marca { display: flex; flex-direction: column; align-items: center; gap: 10px; }
.carregar[data-modo="boasvindas"] .carregar-msg, .carregar[data-modo="boasvindas"] .carregar-dica { display: none; }
.carregar[data-modo="boasvindas"] .cr-frente { transform: scaleY(.5); }
.cr-anima[data-modo="boasvindas"] .cr-doc { animation: crCai .7s cubic-bezier(.35, .2, .2, 1) var(--a, 0s) both, crCai 2.8s cubic-bezier(.35, .2, .2, 1) var(--l, 5s) infinite; }
.cr-d5 { --dx: -24px; --r0: -30deg; --r1: -10deg; }
.cr-d6 { --dx: 22px; --r0: 28deg; --r1: 8deg; }
.cr-d7 { --dx: -2px; --r0: -18deg; --r1: -4deg; }
.cr-d8 { --dx: 26px; --r0: 34deg; --r1: 12deg; }
.cr-d9 { --dx: -18px; --r0: -22deg; --r1: -6deg; }
.cr-d10 { --dx: 8px; --r0: 18deg; --r1: 5deg; }
.cr-anima[data-modo="boasvindas"] .cr-d1 { --a: .35s; --l: 4.95s; }
.cr-anima[data-modo="boasvindas"] .cr-d5 { --a: .57s; --l: 5.23s; }
.cr-anima[data-modo="boasvindas"] .cr-d2 { --a: .79s; --l: 5.51s; }
.cr-anima[data-modo="boasvindas"] .cr-d6 { --a: 1.01s; --l: 5.79s; }
.cr-anima[data-modo="boasvindas"] .cr-d3 { --a: 1.23s; --l: 6.07s; }
.cr-anima[data-modo="boasvindas"] .cr-d7 { --a: 1.45s; --l: 6.35s; }
.cr-anima[data-modo="boasvindas"] .cr-d4 { --a: 1.67s; --l: 6.63s; }
.cr-anima[data-modo="boasvindas"] .cr-d8 { --a: 1.89s; --l: 6.91s; }
.cr-anima[data-modo="boasvindas"] .cr-d9 { --a: 2.11s; --l: 7.19s; }
.cr-anima[data-modo="boasvindas"] .cr-d10 { --a: 2.33s; --l: 7.47s; }
.cr-anima[data-modo="boasvindas"] .cr-frente { animation: crPastaFrente .5s cubic-bezier(.2, 1.4, .4, 1) both, crFecha .32s cubic-bezier(.3, 1.5, .5, 1) 3.05s both, crAbre .4s cubic-bezier(.3, 1.3, .5, 1) 4.6s both; }
.cr-anima[data-modo="boasvindas"] .cr-folha { animation: crAparece .25s ease 3s both, crSome .25s ease 4.45s both; }
.cr-anima[data-modo="boasvindas"] .cr-v { animation: crV .4s cubic-bezier(.5, 0, .2, 1) 3.35s both, crSome .3s ease 4.4s both; }
.cr-anima[data-modo="boasvindas"] .cr-onda { animation: crOnda .8s ease-out 3.5s both; transform-origin: 50% 50%; }
.cr-anima[data-modo="boasvindas"] .cr-faiscas { animation: crFaiscas .85s ease-out 3.5s both; transform-origin: 50% 50%; }
.cr-anima[data-modo="boasvindas"] .cr-nome i { animation: crLetra .34s cubic-bezier(.2, 1.3, .4, 1) calc(3.8s + var(--k) * .045s) both; }
.carregar[data-modo="boasvindas"] .cr-bv { display: grid; justify-items: center; gap: 10px; margin-top: 6px; }
.cr-bv > * { opacity: 0; }
.cr-anima[data-modo="boasvindas"] .cr-bv-t { animation: crSobe .45s ease 4.5s both; }
.cr-anima[data-modo="boasvindas"] .cr-bv-s { animation: crSobe .45s ease 4.7s both; }
.cr-anima[data-modo="boasvindas"] .cr-bv-btn { animation: crPop .45s cubic-bezier(.2, 1.5, .4, 1) 5s both; }
.cr-bv-t { font-size: clamp(1.4rem, 4.6vw, 2rem); font-weight: 800; letter-spacing: -.02em; margin: 0; }
.cr-bv-s { color: rgba(255, 255, 255, .86); font-size: 1rem; margin: 0; }
.cr-bv-btn { margin-top: 8px; padding: 14px 34px; border-radius: 999px; border: 0; background: #FFFFFF; color: #1E40E6; font: inherit; font-weight: 800; font-size: 1.05rem; cursor: pointer; box-shadow: 0 14px 34px rgba(8, 18, 90, .3); transition: transform .15s; }
.cr-bv-btn:hover { transform: translateY(-1px); }
.cr-bv-btn:focus-visible { outline: 3px solid rgba(255, 255, 255, .6); outline-offset: 3px; }
@keyframes crSobe { from { transform: translateY(10px); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes crPop { from { transform: scale(.6); opacity: 0; } to { transform: scale(1); opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .cr-anima[data-modo="boasvindas"] * { animation-duration: .01s !important; animation-delay: 0s !important; } .cr-bv > * { opacity: 1; } }

/* capa do bloqueio enviada pelo servidor: tapa tudo até o browser decidir quem entra */
#bq-pre.bq { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 2147483001; }


/* =========================================================
   Cabeçalho que se esconde ao descer e volta ao subir (como nas grandes apps)
   ========================================================= */
:root { --topo-vis: var(--topo-h); }
body.topo-escondido { --topo-vis: 0px; }
.topo { transition: transform .28s ease; }
/* o cabeçalho fica sempre fixo (sem esconder ao descer) */
.lateral { top: var(--topo-vis); height: calc(100vh - var(--topo-vis)); transition: top .28s ease, height .28s ease; }
.facetas { transition: top .28s ease, max-height .28s ease; }
@media (min-width: 901px) { .facetas { top: calc(var(--topo-vis) + 16px); max-height: calc(100vh - var(--topo-vis) - 32px); } }
.painel-doc, .pedidos-lado, .ed-pagina .ed-lado { top: calc(var(--topo-vis) + 20px); transition: top .28s ease; }
.leitor-barra { top: var(--topo-vis); transition: top .28s ease; }
.tax-lista { top: calc(var(--topo-vis) + 16px); transition: top .28s ease; }
@media (prefers-reduced-motion: reduce) { .topo, .lateral, .facetas, .painel-doc, .leitor-barra { transition: none; } }

@keyframes crAbre { from { transform: scaleY(1); } to { transform: scaleY(.5); } }
@keyframes crSome { from { opacity: 1; } to { opacity: 0; } }


/* ---------- Passo do avatar depois de criar a conta ---------- */
.pa { display: grid; grid-template-columns: minmax(0, 300px) minmax(0, 1fr); gap: 24px; align-items: start; width: min(1080px, 100%); margin: 0 auto; }
.pa-lado { display: flex; flex-direction: column; align-items: center; gap: 14px; text-align: center; position: sticky; top: 0; }
.pa-intro { color: var(--tinta-2); font-size: .95rem; line-height: 1.5; margin: 0; }
.pa-previa { width: min(220px, 60vw); aspect-ratio: 1; border-radius: 50%; overflow: hidden; background: var(--azul-suave); }
.pa-previa svg, .pa-previa img { width: 100%; height: 100%; }
.pa-aleatorio { width: 100%; justify-content: center; }
.pa-pe { display: flex; justify-content: flex-end; gap: 10px; width: 100%; }
@media (max-width: 760px) {
  .pa { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .pa-lado { position: static; }
  .pa-previa { width: 150px; }
  .pa-pe { justify-content: stretch; } .pa-pe .btn { flex: 1; justify-content: center; }
}
/* o avatar nas boas-vindas */
.cr-bv-av { width: 92px; height: 92px; border-radius: 50%; overflow: hidden; background: #FFFFFF; border: 4px solid #FFFFFF; box-shadow: 0 14px 34px rgba(8, 18, 90, .35); opacity: 0; }
.cr-bv-av[hidden] { display: none; }
.cr-bv-av svg, .cr-bv-av img { width: 100%; height: 100%; display: block; }
.cr-anima[data-modo="boasvindas"] .cr-bv-av { animation: crPop .5s cubic-bezier(.2, 1.5, .4, 1) 4.3s both; }


/* =========================================================
   Ao abrir ou atualizar: as pessoas veem o esqueleto da página (formas cinzentas a brilhar) até a aplicação
   estar pronta; a versão simples do servidor fica no código para os motores de pesquisa e para quem não tem JavaScript.
   ========================================================= */
.esqueleto { display: none; }
.js .seo-ssr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.js .esqueleto { display: block; padding: 8px 0 40px; }
.esqueleto i, .esqueleto b, .esq-tit, .esq-sub { display: block; border-radius: 12px; background: linear-gradient(90deg, var(--sup-2) 0%, var(--linha) 40%, var(--sup-2) 80%); background-size: 200% 100%; animation: esqBrilho 1.4s ease-in-out infinite; }
@keyframes esqBrilho { 0% { background-position: 100% 0; } 100% { background-position: -100% 0; } }
.esq-tit { width: min(420px, 70%); height: 40px; margin-bottom: 14px; }
.esq-sub { width: min(680px, 90%); height: 16px; margin-bottom: 28px; border-radius: 8px; }
.esq-g { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 24px; }
.esq-lado { display: grid; gap: 12px; align-content: start; padding: 18px; border-radius: 20px; background: var(--sup); border: 1px solid var(--linha); }
.esq-lado i { height: 18px; border-radius: 8px; }
.esq-lado i:nth-child(2n) { width: 70%; }
.esq-lista { display: grid; gap: 14px; }
.esq-card { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 18px; padding: 16px; border-radius: 20px; background: var(--sup); border: 1px solid var(--linha); }
.esq-card b { height: 190px; border-radius: 12px; }
.esq-card span { display: grid; gap: 12px; align-content: start; padding-top: 6px; }
.esq-card span i { height: 18px; border-radius: 8px; }
.esq-card span i:first-child { width: 85%; height: 22px; }
.esq-card span i:nth-child(2) { width: 60%; }
.esq-card span i:nth-child(3) { width: 40%; height: 26px; border-radius: 999px; }
@media (max-width: 900px) { .esq-g { grid-template-columns: minmax(0, 1fr); } .esq-lado { display: none; } .esq-card { grid-template-columns: 96px minmax(0, 1fr); } .esq-card b { height: 120px; } }
@media (prefers-reduced-motion: reduce) { .esqueleto i, .esqueleto b, .esq-tit, .esq-sub { animation: none; } }

.js .esq-menu { display: grid; gap: 14px; padding: 8px 6px; }
.esq-menu i { height: 34px; border-radius: 12px; }
.esq-menu i:nth-child(3n) { width: 80%; }


/* =========================================================
   Paginação dos resultados (como nos grandes sites)
   ========================================================= */
.paginacao { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 18px; margin: 22px 0 8px; padding: 14px 16px; border-radius: 18px; background: var(--sup); border: 1px solid var(--linha); }
.pg-info { margin: 0; color: var(--tinta-2); font-size: .9rem; }
.pg-info strong { color: var(--tinta); }
.pg-botoes { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.pg-b { min-width: 40px; height: 40px; padding: 0 12px; border-radius: 12px; border: 1px solid var(--linha-2); background: var(--sup); color: var(--tinta); font: inherit; font-weight: 750; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 6px; }
.pg-b:hover:not(:disabled):not(.on) { border-color: var(--bic); color: var(--bic); }
.pg-b.on { background: var(--marca); border-color: var(--marca); color: #fff; cursor: default; }
.pg-b:disabled { opacity: .4; cursor: not-allowed; }
.pg-b svg { width: 16px; height: 16px; }
.pg-seta { padding: 0 14px; }
.pg-sep { min-width: 24px; text-align: center; color: var(--tinta-3); font-weight: 800; }
@media (max-width: 640px) {
  .paginacao { justify-content: center; text-align: center; }
  .pg-info { width: 100%; }
  .pg-seta span { display: none; }
  .pg-b { min-width: 36px; height: 38px; padding: 0 10px; }
}
.pg-dir { display: inline-flex; transform: scaleX(-1); }
.pg-seta .pg-dir span, .pg-dir { }

.xchip-q svg { width: 14px; height: 14px; }
.xchip-limpar { color: var(--vermelho); border-color: transparent; background: transparent; font-weight: 700; }


/* Explorar: a pesquisa do cabeçalho só aparece quando a pesquisa grande da página sai do ecrã */
body.rota-explorar .busca-topo { opacity: 0; visibility: hidden; transform: translateY(-6px); transition: opacity .2s ease, transform .2s ease, visibility .2s; }
body.rota-explorar.busca-fora .busca-topo { opacity: 1; visibility: visible; transform: none; }

.bi textarea { white-space: pre-wrap; overflow-wrap: anywhere; }

.partilhar > .rasc-b { grid-column: 1 / -1; margin-bottom: 4px; }


/* ---------- Publicar: deixar gratuito ---------- */
.gratuito-op { display: grid; grid-template-columns: 44px minmax(0, 1fr) 46px; align-items: center; gap: 12px; margin-top: 14px; padding: 12px 14px; border-radius: 16px; border: 1.5px solid var(--linha-2); background: var(--sup); cursor: pointer; }
.gratuito-op input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.go-ic { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--sup-2); color: var(--bic); font-size: 1.1rem; }
.go-t { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.go-t small { color: var(--tinta-2); font-size: .82rem; line-height: 1.4; }
.go-int { width: 46px; height: 26px; border-radius: 999px; background: var(--linha-2); position: relative; transition: background .15s; }
.go-int::after { content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .2); transition: transform .15s; }
.gratuito-op.on { border-color: var(--bic); background: var(--azul-suave); }
.gratuito-op.on .go-ic { background: var(--marca); color: #fff; }
.gratuito-op.on .go-int { background: var(--marca); }
.gratuito-op.on .go-int::after { transform: translateX(20px); }
.gratuito-op:focus-within { outline: 3px solid var(--azul-claro); outline-offset: 2px; }
.preco-gratis { background: var(--marca) !important; color: #fff !important; }
/* ---------- Perfil: separador "Perfil público" ---------- */
.pp-nota { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin: 0 0 18px; padding: 12px 14px; border-radius: 16px; background: var(--azul-suave); color: var(--tinta-2); font-size: .9rem; }
.pp-nota i { color: var(--bic); }
.pp-nota span { flex: 1 1 260px; }
.pp-nota strong { color: var(--tinta); }
.pessoa-embutida { display: grid; gap: 18px; }


/* =========================================================
   Ranking e pessoas: bonecos a flutuar, separadores e filtro da universidade
   ========================================================= */
.rk-hero { position: relative; overflow: hidden; min-height: 330px; border-radius: 28px; padding: 34px 20px; display: grid; place-items: center; text-align: center; color: #fff; background: radial-gradient(80% 70% at 50% 40%, #2B4DF2 0%, #1E40E6 55%, #1A36CF 100%); margin-bottom: 22px; }
.rk-rostos { position: absolute; inset: 0; pointer-events: none; }
.rk-rosto { position: absolute; left: var(--x); top: var(--y); width: var(--t); height: var(--t); border-radius: 50%; overflow: hidden; background: #fff; border: 3px solid rgba(255, 255, 255, .9); box-shadow: 0 10px 26px rgba(8, 18, 90, .3); transform: translate(-50%, -50%); animation: rkFlutua var(--v) ease-in-out var(--d) infinite; opacity: .95; }
.rk-rosto svg, .rk-rosto img { width: 100%; height: 100%; display: block; }
@keyframes rkFlutua { 0%, 100% { transform: translate(-50%, -50%) translateY(0) rotate(-3deg); } 50% { transform: translate(-50%, -50%) translateY(-12px) rotate(3deg); } }
.rk-centro { position: relative; z-index: 1; display: grid; justify-items: center; gap: 10px; max-width: 520px; padding: 18px 22px; border-radius: 24px; background: rgba(20, 38, 190, .55); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.rk-ic { width: 54px; height: 54px; border-radius: 16px; display: grid; place-items: center; background: #fff; color: #F5A524; font-size: 1.5rem; box-shadow: 0 10px 24px rgba(8, 18, 90, .3); }
.rk-centro h1 { margin: 0; font-size: clamp(1.6rem, 4vw, 2.3rem); color: #fff; }
.rk-centro p { margin: 0; color: rgba(255, 255, 255, .88); line-height: 1.45; }
.rk-abas { margin-top: 6px; background: rgba(255, 255, 255, .16); }
.rk-abas button { color: #fff; }
.rk-abas button[aria-selected="true"] { background: #fff; color: var(--bic); }
.rk-abas button i, .rk-abas button svg { margin-right: 6px; }
.rk-filtro { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin: 0 0 18px; }
.rk-filtro-r { font-weight: 800; color: var(--tinta-2); font-size: .9rem; }
.rk-uni { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: 999px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta); font: inherit; font-weight: 750; cursor: pointer; }
.rk-uni:hover { border-color: var(--bic); }
.rk-uni.on { border-color: var(--bic); background: var(--azul-suave); color: var(--bic); }
.rk-uni i:first-child { color: var(--bic); }
.rk-uni-x { width: 34px; height: 34px; border-radius: 50%; border: 0; background: var(--sup-2); color: var(--tinta-2); cursor: pointer; display: grid; place-items: center; }
.rk-uni-x svg { width: 14px; height: 14px; }
.rk-uni-nome { color: var(--tinta-3); font-size: .84rem; }
.pod-lugar { font-weight: 800; }
.pes-procura { display: grid; gap: 12px; margin-bottom: 18px; }
.rk-busca { max-width: none; }
.rk-busca input { font-size: 1.02rem; }
.pes-g { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(280px, 100%), 1fr)); gap: 12px; }
.pes-c { display: grid; grid-template-columns: 56px minmax(0, 1fr) 16px; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 18px; background: var(--sup); border: 1px solid var(--linha); color: inherit; text-decoration: none; transition: border-color .15s, transform .15s; }
.pes-c:hover { border-color: var(--bic); transform: translateY(-1px); }
.pes-c.eu { border-color: var(--bic); background: var(--azul-suave); }
.pes-av { width: 56px; height: 56px; border-radius: 50%; overflow: hidden; background: var(--azul-suave); }
.pes-av svg, .pes-av img { width: 100%; height: 100%; display: block; }
.pes-t { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pes-t strong { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pes-t em { font-style: normal; color: var(--bic); font-weight: 700; }
.pes-t small { color: var(--tinta-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pes-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.pes-tags span { font-size: .76rem; font-weight: 750; padding: 2px 8px; border-radius: 999px; background: var(--sup-2); color: var(--tinta-2); }
.pes-tags .pes-eq { background: var(--marca); color: #fff; }
.pes-c > i { color: var(--tinta-3); }
@media (max-width: 640px) {
  .rk-hero { min-height: 300px; border-radius: 22px; padding: 26px 14px; }
  .rk-rosto { width: calc(var(--t) * .72); height: calc(var(--t) * .72); }
  .rk-centro { padding: 14px 14px; }
  .rk-abas { width: 100%; }
  .rk-abas button { flex: 1; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) { .rk-rosto { animation: none; } }
@media (max-width: 640px) {
  /* no telemóvel os bonecos flutuam numa faixa por cima do título, sem ficarem escondidos atrás dele */
  .rk-hero { padding-top: 128px; }
  .rk-rosto { top: calc(var(--y) * .3 + 14px); }
  .rk-centro { background: rgba(20, 38, 190, .35); backdrop-filter: none; -webkit-backdrop-filter: none; }
}


/* =========================================================
   Filtros em overlay: ao centro no computador, de baixo para cima no telemóvel
   ========================================================= */
.folha-filtros.ff-nova { position: fixed; z-index: 270; left: 50%; top: 50%; transform: translate(-50%, -50%); width: min(720px, calc(100vw - 32px)); max-height: min(86vh, 860px); display: flex; flex-direction: column; background: var(--sup); border-radius: 24px; box-shadow: 0 30px 80px rgba(16, 22, 51, .35); animation: ffEntra .22s ease; bottom: auto; right: auto; }
@keyframes ffEntra { from { opacity: 0; transform: translate(-50%, -46%); } to { opacity: 1; transform: translate(-50%, -50%); } }
.ff-veu { position: fixed; inset: 0; z-index: 265; background: rgba(10, 14, 40, .45); backdrop-filter: blur(2px); -webkit-backdrop-filter: blur(2px); }
.ff-nova .ff-pega { display: none; }
.ff-cab { display: flex; align-items: center; justify-content: space-between; padding: 16px 18px 10px; border-bottom: 1px solid var(--linha); }
.ff-cab h2 { margin: 0; font-size: 1.25rem; }
.ff-nova .ff-corpo { flex: 1; overflow-y: auto; padding: 14px 18px 18px; overscroll-behavior: contain; }
.ff-sec + .ff-sec { margin-top: 18px; }
.ff-sec h3 { margin: 0 0 10px; font-size: .95rem; }
.ff-cats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.ff-cat { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 12px; border-radius: 16px; border: 1.5px solid var(--linha-2); background: var(--sup); color: inherit; font: inherit; text-align: left; cursor: pointer; transition: border-color .15s, background .15s; }
.ff-cat:hover:not(:disabled) { border-color: var(--bic); }
.ff-cat:disabled { opacity: .45; cursor: not-allowed; }
.ff-cat-ic { width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; background: var(--sup-2); color: var(--bic); }
.ff-cat-t { display: flex; flex-direction: column; min-width: 0; }
.ff-cat-t small { color: var(--tinta-2); font-size: .82rem; line-height: 1.3; }
.ff-cat b { font-size: .82rem; padding: 2px 9px; border-radius: 999px; background: var(--sup-2); color: var(--tinta-2); }
.ff-cat.on { border-color: var(--bic); background: var(--azul-suave); }
.ff-cat.on .ff-cat-ic { background: var(--marca); color: #fff; }
.ff-cat.on b { background: var(--marca); color: #fff; }
.ff-facetas .facetas-cab { display: none; }
.ff-nova .ff-pe { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 18px calc(12px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--linha); }
.ff-nova .ff-ver { flex: 1; max-width: 340px; justify-content: center; }
.xchip-cat i { color: var(--bic); }
.xchip-cat.on i { color: inherit; }
@media (max-width: 760px) {
  .folha-filtros.ff-nova { left: 0; right: 0; top: auto; bottom: 0; transform: none; width: 100%; max-height: 88vh; border-radius: 24px 24px 0 0; animation: ffSobe .26s cubic-bezier(.2, .9, .3, 1); }
  @keyframes ffSobe { from { transform: translateY(100%); } to { transform: none; } }
  .ff-nova .ff-pega { display: block; width: 44px; height: 5px; border-radius: 999px; background: var(--linha-2); margin: 10px auto 0; }
  .ff-cats { grid-template-columns: minmax(0, 1fr); }
}


/* =========================================================
   Perfil público, como numa rede social
   ========================================================= */
.perfil-social { display: grid; gap: 20px; }
.ps-cartao { position: relative; border-radius: 26px; overflow: hidden; background: var(--sup); border: 1px solid var(--linha); }
.ps-capa { position: relative; height: 150px; background: linear-gradient(120deg, #1A36CF 0%, #1E40E6 45%, #3B5BFF 100%); }
.ps-capa-padrao { position: absolute; inset: 0; opacity: .12; background-image: radial-gradient(circle at 20% 30%, #fff 0 2px, transparent 3px), radial-gradient(circle at 70% 60%, #fff 0 2px, transparent 3px); background-size: 46px 46px, 64px 64px; }
.ps-linha { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: end; gap: 18px; padding: 0 24px 18px; margin-top: -54px; position: relative; }
.ps-av { width: 128px; height: 128px; border-radius: 50%; overflow: hidden; border: 6px solid var(--sup); background: var(--azul-suave); box-shadow: 0 12px 30px rgba(16, 22, 51, .18); }
.ps-av svg, .ps-av img, .ps-av .av-g { width: 100% !important; height: 100% !important; display: block; }
.ps-quem { min-width: 0; padding-bottom: 4px; }
.ps-quem h1 { margin: 0 0 4px; font-size: clamp(1.5rem, 3.4vw, 2.1rem); line-height: 1.1; }
.ps-onde { margin: 0 0 8px; color: var(--tinta-2); display: flex; align-items: center; gap: 8px; }
.ps-onde i { color: var(--bic); }
.ps-acoes { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; padding-bottom: 6px; align-self: end; }
.ps-nums { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--linha); }
.ps-num { display: flex; align-items: center; gap: 12px; padding: 16px 20px; }
.ps-num + .ps-num { border-left: 1px solid var(--linha); }
.ps-num i { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--azul-suave); color: var(--bic); flex: none; }
.ps-num span { display: flex; flex-direction: column; min-width: 0; }
.ps-num b { font-size: 1.25rem; line-height: 1.1; }
.ps-num small { color: var(--tinta-2); font-size: .8rem; }
.ps-filtros { display: grid; gap: 12px; margin-bottom: 14px; }
.ps-chips { margin: 0; }
.ps-chips b, .xchip b { font-size: .79rem; margin-left: 4px; opacity: .75; }
@media (max-width: 760px) {
  .ps-capa { height: 110px; }
  .ps-linha { grid-template-columns: minmax(0, 1fr); justify-items: start; gap: 10px; padding: 0 16px 16px; margin-top: -48px; }
  .ps-av { width: 104px; height: 104px; border-width: 5px; }
  .ps-acoes { justify-content: flex-start; width: 100%; }
  .ps-acoes .btn { flex: 1; justify-content: center; }
  .ps-nums { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ps-num { padding: 12px 14px; }
  .ps-num:nth-child(3) { border-left: 0; }
  .ps-num:nth-child(n+3) { border-top: 1px solid var(--linha); }
}


/* =========================================================
   Ranking (novo desenho): cabeçalho com bonecos, pódio 2–1–3 e lista com barras
   ========================================================= */
.rk2 .rk-cab { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 18px; padding: 22px 24px; border-radius: 24px; background: var(--sup); border: 1px solid var(--linha); margin-bottom: 16px; overflow: hidden; }
.rk-cab-t { display: flex; align-items: center; gap: 14px; min-width: 0; }
.rk2 .rk-ic { width: 52px; height: 52px; border-radius: 16px; display: grid; place-items: center; background: linear-gradient(135deg, #FFC94D, #F5A524); color: #fff; font-size: 1.4rem; flex: none; box-shadow: 0 10px 22px rgba(245, 165, 36, .35); }
.rk-cab-t h1 { margin: 0; font-size: clamp(1.5rem, 3.4vw, 2.1rem); }
.rk-cab-t p { margin: 2px 0 0; color: var(--tinta-2); }
.rk2 .rk-rostos { position: static; display: flex; align-items: center; }
.rk2 .rk-rosto { position: relative; left: auto; top: auto; width: 46px; height: 46px; margin-left: -10px; border-radius: 50%; overflow: hidden; background: #fff; border: 3px solid var(--sup); box-shadow: 0 6px 16px rgba(16, 22, 51, .16); transform: none; animation: rkSobe var(--v) ease-in-out var(--d) infinite; }
.rk2 .rk-rosto:first-child { margin-left: 0; }
.rk2 .rk-rosto svg, .rk2 .rk-rosto img { width: 100%; height: 100%; display: block; }
@keyframes rkSobe { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-7px); } }
.rk2 .rk-abas { margin-bottom: 14px; }
.rk2 .rk-abas button i { margin-right: 6px; }
.rk-barra { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 18px; }
.rk-barra .rk-busca { flex: 1 1 320px; max-width: none; margin: 0; }
.rk-filtro { display: inline-flex; align-items: center; gap: 6px; margin: 0; }
.rk-uni { display: inline-flex; align-items: center; gap: 10px; padding: 8px 14px; border-radius: 16px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta); font: inherit; font-weight: 800; cursor: pointer; min-height: 50px; }
.rk-uni span { display: flex; flex-direction: column; align-items: flex-start; line-height: 1.15; }
.rk-uni small { font-size: .74rem; font-weight: 700; color: var(--tinta-3); text-transform: uppercase; letter-spacing: .05em; }
.rk-uni:hover { border-color: var(--bic); }
.rk-uni.on { border-color: var(--bic); background: var(--azul-suave); }
.rk-uni > i:first-child { color: var(--bic); }
/* pódio */
.rk-podio { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: end; gap: 14px; margin: 6px 0 18px; }
.rk-deg { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 4px; padding: 18px 12px 0; border-radius: 22px 22px 18px 18px; background: var(--sup); border: 1px solid var(--linha); color: inherit; text-decoration: none; overflow: hidden; transition: transform .15s; }
.rk-deg:hover { transform: translateY(-2px); }
.rk-deg strong { font-size: 1rem; max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rk-deg small { color: var(--tinta-2); font-size: .8rem; max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rk-deg-av { width: 76px; height: 76px; border-radius: 50%; overflow: hidden; border: 4px solid #fff; box-shadow: 0 10px 24px rgba(16, 22, 51, .16); background: var(--azul-suave); margin-bottom: 4px; }
.rk-deg-av svg, .rk-deg-av img { width: 100%; height: 100%; display: block; }
.rk-deg-n { font-weight: 800; color: var(--bic); font-size: .9rem; }
.rk-base { width: calc(100% + 24px); margin-top: 10px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; color: #fff; padding: 10px 0 12px; }
.rk-base b { font-size: 1.5rem; line-height: 1; }
.rk-base span { font-size: .76rem; font-weight: 700; opacity: .9; }
.rk-deg-1 .rk-base { background: linear-gradient(135deg, #FFC94D, #F5A524); min-height: 92px; }
.rk-deg-2 .rk-base { background: linear-gradient(135deg, #C9D3E8, #9AA8C7); min-height: 66px; }
.rk-deg-3 .rk-base { background: linear-gradient(135deg, #E7B48A, #C98B5A); min-height: 52px; }
.rk-deg-1 { border-color: #FFD77A; box-shadow: 0 16px 36px rgba(245, 165, 36, .18); }
.rk-deg-1 .rk-deg-av { width: 92px; height: 92px; }
.rk-coroa { position: absolute; top: 6px; left: 50%; transform: translateX(-50%); color: #F5A524; font-size: 1.1rem; }
.rk-deg-1 { padding-top: 26px; }
/* lista */
.rk-lista { display: grid; gap: 8px; }
.rk-lin { display: grid; grid-template-columns: 44px 48px minmax(0, 1fr) auto 150px; align-items: center; gap: 12px; padding: 10px 14px; border-radius: 16px; background: var(--sup); border: 1px solid var(--linha); color: inherit; text-decoration: none; transition: border-color .15s; }
.rk-lin:hover { border-color: var(--bic); }
.rk-lin.eu { border-color: var(--bic); background: var(--azul-suave); }
.rk-pos { width: 36px; height: 36px; border-radius: 12px; display: grid; place-items: center; font-weight: 800; background: var(--sup-2); color: var(--tinta-2); }
.rk-pos.top { background: var(--marca); color: #fff; }
.rkl-av { width: 48px; height: 48px; border-radius: 50%; overflow: hidden; background: var(--azul-suave); }
.rkl-av svg, .rkl-av img { width: 100%; height: 100%; display: block; }
.rkl-quem { display: flex; flex-direction: column; min-width: 0; }
.rkl-quem strong { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rkl-quem em, .pes-t em { font-style: normal; font-size: .76rem; font-weight: 800; padding: 1px 7px; border-radius: 999px; background: var(--marca); color: #fff; margin-left: 4px; vertical-align: 2px; }
.rkl-quem small { color: var(--tinta-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: .82rem; }
.rk-pat { display: inline-flex; align-items: center; gap: 6px; font-size: .8rem; font-weight: 750; color: var(--tinta-2); padding: 4px 10px; border-radius: 999px; background: var(--sup-2); white-space: nowrap; }
.rk-mat { position: relative; display: grid; grid-template-columns: auto 1fr; align-items: baseline; column-gap: 6px; padding-bottom: 8px; }
.rk-mat b { font-size: 1.1rem; }
.rk-mat small { color: var(--tinta-3); font-size: .82rem; }
.rk-mat i { position: absolute; left: 0; right: 0; bottom: 0; height: 5px; border-radius: 999px; background: var(--sup-2); overflow: hidden; }
.rk-mat i::after { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: var(--w); border-radius: 999px; background: linear-gradient(90deg, #3B5BFF, #1E40E6); }
#pes-res.a-atualizar, #mural-lista.a-atualizar { opacity: .55; transition: opacity .15s; }
@media (max-width: 760px) {
  .rk2 .rk-cab { grid-template-columns: minmax(0, 1fr); padding: 18px; }
  .rk2 .rk-rostos { justify-content: flex-start; }
  .rk2 .rk-rosto { width: 38px; height: 38px; }
  .rk2 .rk-abas { width: 100%; } .rk2 .rk-abas button { flex: 1; justify-content: center; }
  .rk-filtro { width: 100%; } .rk-uni { flex: 1; }
  .rk-podio { gap: 8px; }
  .rk-deg { padding: 14px 6px 0; }
  .rk-deg-av { width: 56px; height: 56px; } .rk-deg-1 .rk-deg-av { width: 68px; height: 68px; }
  .rk-deg small { display: none; }
  .rk-lin { grid-template-columns: 36px 42px minmax(0, 1fr) 70px; gap: 10px; padding: 10px; }
  .rk-pat { display: none; }
  .rk-pos { width: 32px; height: 32px; }
  .rkl-av { width: 42px; height: 42px; }
}
@media (prefers-reduced-motion: reduce) { .rk2 .rk-rosto { animation: none; } }
.rk2 .rk-abas { background: var(--sup-3); margin-top: 0; }
.rk2 .rk-abas button { color: var(--tinta-2); }
.rk2 .rk-abas button[aria-selected="true"] { background: var(--sup); color: var(--bic); box-shadow: 0 2px 8px rgba(16, 22, 51, .08); }

/* =========================================================
   Perfil público (sem capa, sem sombras), pesquisa de pessoas e escolha da escola
   ========================================================= */
.pf { display: grid; gap: 18px; }
.pf-cab { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 20px; padding: 22px 24px; border-radius: 22px; background: var(--sup); border: 1px solid var(--linha); }
.pf-av { width: 96px; height: 96px; border-radius: 50%; overflow: hidden; background: var(--azul-suave); flex: none; }
.pf-av svg, .pf-av img, .pf-av .av-g { width: 100% !important; height: 100% !important; display: block; box-shadow: none !important; }
.pf-quem { min-width: 0; }
.pf-quem h1 { margin: 0; font-size: clamp(1.45rem, 3vw, 1.9rem); line-height: 1.15; letter-spacing: -.01em; }
.pf-onde { margin: 4px 0 0; color: var(--tinta-2); font-size: .98rem; }
.pf-meta { margin: 6px 0 0; color: var(--tinta-3); font-size: .86rem; font-weight: 650; }
.pf-acoes { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; align-self: center; }
.pf-nums { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.pf-num { display: flex; flex-direction: column; gap: 2px; padding: 14px 16px; border-radius: 16px; background: var(--sup); border: 1px solid var(--linha); }
.pf-num b { font-size: 1.3rem; line-height: 1.15; }
.pf-num small { color: var(--tinta-2); font-size: .82rem; }
.pf-mats h2 { margin: 6px 0 12px; font-size: 1.15rem; }
.pf-procura { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 14px; }
.pf-procura .pessoa-busca { flex: 1 1 280px; max-width: 520px; margin: 0; }
.pf-filtros { display: inline-flex; align-items: center; gap: 6px; }
.pf-filtro { display: inline-flex; align-items: center; gap: 8px; height: 46px; padding: 0 16px; border-radius: 14px; border: 1px solid var(--linha-2); background: var(--sup); color: var(--tinta); font: inherit; font-weight: 700; cursor: pointer; }
.pf-filtro:hover { border-color: var(--bic); }
.pf-filtro i { color: var(--bic); }
.pf-filtro.on { border-color: var(--bic); background: var(--azul-suave); color: var(--bic); }
.pf-tirar, .rk-esc-x { width: 34px; height: 34px; border-radius: 50%; border: 0; background: #101633; color: #fff; display: grid; place-items: center; cursor: pointer; font-size: .9rem; }
.pf-tirar:hover, .rk-esc-x:hover { background: var(--vermelho); }
@media (max-width: 760px) {
  .pf-cab { grid-template-columns: auto minmax(0, 1fr); padding: 16px; gap: 14px; }
  .pf-av { width: 72px; height: 72px; }
  .pf-acoes { grid-column: 1 / -1; justify-content: stretch; } .pf-acoes .btn { flex: 1; justify-content: center; }
  .pf-nums { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* Pesquisar pessoas: cartões simples (texto, sem etiquetas nem sombras) */
.pes-g { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(280px, 100%), 1fr)); gap: 10px; }
.pes-c { display: grid; grid-template-columns: 52px minmax(0, 1fr); align-items: center; gap: 12px; padding: 12px 14px; border-radius: 16px; background: var(--sup); border: 1px solid var(--linha); color: inherit; text-decoration: none; box-shadow: none; transform: none; transition: border-color .15s; }
.pes-c:hover { border-color: var(--bic); transform: none; }
.pes-av { width: 52px; height: 52px; border-radius: 50%; overflow: hidden; background: var(--azul-suave); }
.pes-t { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.pes-nome { font-weight: 750; font-size: 1rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: flex; align-items: center; gap: 6px; }
.pes-tu { font-size: .74rem; font-weight: 800; padding: 1px 7px; border-radius: 999px; background: var(--marca); color: #fff; flex: none; }
.pes-onde { color: var(--tinta-2); font-size: .86rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pes-meta { color: var(--tinta-3); font-size: .8rem; font-weight: 600; }
/* Escolher a escola: um botão simples (letra normal) e um X bem visível */
.rk-esc { display: inline-flex; align-items: center; gap: 8px; }
.rk-esc-b { display: inline-flex; align-items: center; gap: 10px; height: 50px; padding: 0 16px; border-radius: 14px; border: 1px solid var(--linha-2); background: var(--sup); color: var(--tinta); font: inherit; font-size: .98rem; font-weight: 650; cursor: pointer; }
.rk-esc-b:hover { border-color: var(--bic); }
.rk-esc-b > i:first-child { color: var(--bic); }
.rk-esc-seta { color: var(--tinta-3); font-size: .8rem; }
.rk-esc.on .rk-esc-b { border-color: var(--bic); background: var(--azul-suave); color: var(--bic); }
@media (max-width: 760px) { .rk-esc { width: 100%; } .rk-esc-b { flex: 1; } }
/* sem sombras nas partes novas */
.rk2 .rk-ic, .rk2 .rk-rosto, .rk-deg, .rk-deg-1, .rk-deg-av, .ps-av, .folha-filtros.ff-nova, .rk-lin, .pes-c, .pf-cab, .pf-num { box-shadow: none !important; }

.pf-tirar svg, .rk-esc-x svg { width: 14px; height: 14px; stroke: #fff; color: #fff; }
.pf-tirar, .rk-esc-x { width: 38px; height: 38px; }
.pf-tirar svg, .rk-esc-x svg { width: 18px; height: 18px; stroke-width: 2.8; }


/* ---------- Carteira: o saldo numa linha inteira; "de onde vêm" e "onde os gastaste" por baixo, lado a lado ---------- */
.cart-topo.cart-linha { grid-template-columns: minmax(0, 1fr); }
.saldo-linha { display: grid; grid-template-columns: auto minmax(0, 1fr) minmax(0, 1.1fr); align-items: center; gap: 22px 28px; }
.saldo-linha .sl-saldo { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.saldo-linha .mini-contas { margin: 0; padding: 0 0 0 26px; border-top: 0; border-left: 1px solid rgba(255, 255, 255, .22); }
.saldo-linha .teto-aviso { grid-column: 1 / -1; margin: 0; }
.saldo-linha .sl-acoes { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.saldo-linha .sl-acoes .linha-btn { margin: 0; }
.saldo-linha .sl-acoes > *:last-child { margin: 0; }
.cart-fluxos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-top: 18px; }
.cart-fluxos .fluxo { margin: 0; }
@media (max-width: 1100px) {
  .saldo-linha { grid-template-columns: auto minmax(0, 1fr); }
  .saldo-linha .sl-acoes { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; align-items: center; }
  .saldo-linha .sl-acoes > *:last-child { flex: 1 1 320px; }
}
@media (max-width: 760px) {
  .saldo-linha { grid-template-columns: minmax(0, 1fr); }
  .saldo-linha .mini-contas { padding: 14px 0 0; border-left: 0; border-top: 1px solid rgba(255, 255, 255, .22); }
  .cart-fluxos { grid-template-columns: minmax(0, 1fr); }
}

/* =========================================================
   Pontos: saldo máximo, cupões de pontos grátis, pedidos, dar/pedir, página explicativa
   (sem sombras)
   ========================================================= */
.sl-teto { display: inline-flex; align-items: center; gap: 8px; margin-top: 6px; font-size: .86rem; font-weight: 650; color: rgba(255, 255, 255, .88); }
.sl-teto-i { width: 22px; height: 22px; border-radius: 50%; border: 1.5px solid rgba(255, 255, 255, .6); background: transparent; color: #fff; font: inherit; font-size: .79rem; font-weight: 800; cursor: pointer; display: grid; place-items: center; padding: 0; }
.sm-teto { display: block; margin-top: 4px; font-size: .8rem; opacity: .85; }
/* cupões, como bilhetes */
.cupoes { margin: 0 0 18px; }
.cupoes .bloco-cab { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 12px; margin-bottom: 10px; }
.cupoes .bloco-cab h2 { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 1.15rem; }
.cupoes .bloco-cab h2 i { color: var(--bic); }
.cupoes .bloco-cab small { color: var(--tinta-3); }
.cup-g { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(320px, 100%), 1fr)); gap: 12px; }
.cup { position: relative; display: grid; grid-template-columns: 92px minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 14px 16px 14px 0; border-radius: 18px; background: var(--sup); border: 1.5px dashed var(--bic); overflow: hidden; }
.cup::before, .cup::after { content: ""; position: absolute; left: 92px; width: 18px; height: 18px; border-radius: 50%; background: var(--mesa); border: 1.5px dashed var(--bic); transform: translateX(-50%); }
.cup::before { top: -10px; } .cup::after { bottom: -10px; }
.cup-v { display: flex; flex-direction: column; align-items: center; justify-content: center; align-self: stretch; margin: -14px 0; background: var(--azul-suave); color: var(--bic); border-right: 1.5px dashed var(--bic); }
.cup-v b { font-size: 1.6rem; line-height: 1; font-weight: 800; }
.cup-v small { font-size: .76rem; font-weight: 700; }
.cup-t { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.cup-t strong { font-size: 1rem; }
.cup-t p { margin: 0; color: var(--tinta-2); font-size: .86rem; }
.cup-t small { color: var(--tinta-3); font-size: .82rem; }
.cup-ok { display: inline-flex; align-items: center; gap: 6px; font-weight: 750; color: var(--tinta-3); font-size: .88rem; }
.cup.feito { border-color: var(--linha-2); }
.cup.feito .cup-v { background: var(--sup-2); color: var(--tinta-3); border-color: var(--linha-2); }
.cup.feito::before, .cup.feito::after { border-color: var(--linha-2); }
@media (max-width: 520px) { .cup-g { grid-template-columns: minmax(0, 1fr); } .cup { grid-template-columns: 78px minmax(0, 1fr); } .cup::before, .cup::after { left: 78px; } .cup-a { grid-column: 2; } }
/* pedidos de pontos */
.pp { margin-top: 18px; }
.pp .bloco-cab h2 { display: flex; align-items: center; gap: 8px; margin: 0 0 6px; font-size: 1.1rem; }
.pp .bloco-cab h2 i { color: var(--bic); }
.pp-sub { margin: 14px 0 6px; font-size: .82rem; text-transform: uppercase; letter-spacing: .05em; color: var(--tinta-3); }
.pp-l { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 10px 14px; padding: 10px 0; border-top: 1px solid var(--linha); }
.pp-quem { display: inline-flex; align-items: center; gap: 10px; min-width: 0; color: inherit; text-decoration: none; }
.pp-quem svg, .pp-quem img { width: 38px; height: 38px; border-radius: 50%; flex: none; }
.pp-quem strong { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pp-v { display: flex; flex-direction: column; font-weight: 750; text-align: right; }
.pp-v small { font-weight: 500; color: var(--tinta-2); font-size: .8rem; max-width: 260px; }
.pp-a { display: flex; gap: 6px; }
.pp-est { font-size: .82rem; font-weight: 800; padding: 3px 10px; border-radius: 999px; background: var(--sup-2); color: var(--tinta-2); }
.pp-aceite { background: var(--azul-suave); color: var(--bic); }
@media (max-width: 640px) { .pp-l { grid-template-columns: minmax(0, 1fr) auto; } .pp-a { grid-column: 1 / -1; justify-content: flex-end; } .pp-v { text-align: right; } }
/* dar / pedir pontos */
.dp { display: grid; gap: 14px; text-align: left; }
.dp-cab { display: flex; align-items: center; gap: 12px; }
.dp-cab .dp-av, .dp-cab svg { width: 56px; height: 56px; border-radius: 50%; flex: none; }
.dp-cab h2 { margin: 0; font-size: 1.2rem; }
.dp-cab p { margin: 2px 0 0; color: var(--tinta-2); font-size: .9rem; }
.dp-ops { display: flex; flex-wrap: wrap; gap: 8px; margin: 6px 0 4px; }
.dp-op { min-width: 64px; height: 46px; padding: 0 14px; border-radius: 14px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta); font: inherit; font-weight: 800; font-size: 1.05rem; cursor: pointer; }
.dp-op.on { border-color: var(--bic); background: var(--azul-suave); color: var(--bic); }
.dp-outro input { width: 110px; height: 46px; padding: 0 12px; border-radius: 14px; border: 1.5px solid var(--linha-2); font: inherit; font-weight: 700; }
.dp-info { margin: 0; color: var(--tinta-2); font-size: .88rem; }
/* contadores de novidades da carteira */
.pts-novo { min-width: 18px; height: 18px; padding: 0 5px; margin-left: 6px; border-radius: 999px; background: var(--vermelho); color: #fff; font-size: .74rem; font-weight: 800; display: inline-grid; place-items: center; }
.nav-badge { margin-left: auto; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 999px; background: var(--vermelho); color: #fff; font-size: .76rem; font-weight: 800; display: inline-grid; place-items: center; }
.aviso-pts { display: grid; grid-template-columns: 44px minmax(0, 1fr) 16px; align-items: center; gap: 12px; margin: 0 0 16px; padding: 12px 16px; border-radius: 18px; background: var(--azul-suave); border: 1px solid #C9D3F5; color: inherit; text-decoration: none; }
.aviso-pts .ap-ic { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--marca); color: #fff; font-size: 1.1rem; }
.aviso-pts span:nth-child(2) { display: flex; flex-direction: column; min-width: 0; }
.aviso-pts small { color: var(--tinta-2); }
.aviso-pts > i { color: var(--bic); }
/* página "Como funcionam os pontos" */
.cp-passos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.cp-passo { position: relative; display: grid; gap: 6px; padding: 18px 16px; border-radius: 18px; background: var(--sup); border: 1px solid var(--linha); }
.cp-passo i { font-size: 1.3rem; color: var(--bic); }
.cp-passo strong { font-size: 1.02rem; }
.cp-passo p { margin: 0; color: var(--tinta-2); font-size: .9rem; line-height: 1.45; }
.cp-n { position: absolute; top: 12px; right: 14px; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: var(--marca); color: #fff; font-size: .8rem; font-weight: 800; }
.cp-g { grid-template-columns: repeat(auto-fill, minmax(min(260px, 100%), 1fr)); }
.regras-pts li small { display: block; color: var(--tinta-3); font-size: .8rem; font-weight: 500; }
.pt-tu { font-style: normal; font-size: .74rem; font-weight: 800; padding: 2px 8px; border-radius: 999px; background: var(--marca); color: #fff; margin-left: 6px; }
@media (max-width: 900px) { .cp-passos { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .cp-passos { grid-template-columns: minmax(0, 1fr); } }
/* painel: cupões */
.cup-adm .adm-sec header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.cup-nums { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 12px 0 16px; }
.cup-nums div { padding: 12px 14px; border-radius: 14px; background: var(--sup-2); display: flex; flex-direction: column; }
.cup-nums b { font-size: 1.3rem; }
.cup-nums small { color: var(--tinta-2); }
.cup-est { font-size: .8rem; font-weight: 800; padding: 3px 10px; border-radius: 999px; background: var(--sup-2); color: var(--tinta-2); }
.cup-on { background: var(--azul-suave); color: var(--bic); }
.cup-agenda { background: #FFF4E5; color: #6B3A00; }
.cup-ed { display: grid; gap: 12px; text-align: left; }
.cup-ed h2 { margin: 0; }
.cup-ed-g { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
@media (max-width: 520px) { .cup-ed-g, .cup-nums { grid-template-columns: minmax(0, 1fr); } }


/* ---------- Telemóvel: ranking centrado com bonecos maiores; perfil centrado com os botões no canto ---------- */
@media (max-width: 760px) {
  .rk2 .rk-cab { justify-items: center; text-align: center; gap: 14px; }
  .rk-cab-t { flex-direction: column; align-items: center; text-align: center; gap: 10px; }
  .rk2 .rk-ic { width: 58px; height: 58px; font-size: 1.5rem; }
  .rk2 .rk-rostos { justify-content: center; }
  .rk2 .rk-rosto { width: 56px; height: 56px; margin-left: -12px; border-width: 3px; }
  .rk2 .rk-rosto:first-child { margin-left: 0; }
  .pf-cab { position: relative; grid-template-columns: minmax(0, 1fr); justify-items: center; text-align: center; padding: 22px 16px 18px; gap: 10px; }
  .pf-av { width: 104px; height: 104px; }
  .pf-quem { display: flex; flex-direction: column; align-items: center; }
  /* os botões ficam no canto de cima, só com o ícone, sempre à mão */
  .pf-acoes { position: absolute; top: 12px; right: 12px; grid-column: auto; display: flex; gap: 8px; }
  .pf-acoes .btn { flex: none; width: 42px; height: 42px; min-height: 0; padding: 0; border-radius: 50%; justify-content: center; }
  .pf-acoes .pf-b span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .pf-acoes .pf-b i { margin: 0; font-size: 1rem; }
  .pf-cab:has(.pf-acoes .pf-b:nth-child(3)) { padding-top: 64px; }
  .pf-cab:has(.pf-acoes .pf-b:nth-child(2)) { padding-top: 64px; }
}
@media (min-width: 761px) { .rk2 .rk-rosto { width: 50px; height: 50px; } }

/* ---------- Carteira: separadores ---------- */
.cart-abas { display: flex; gap: 6px; margin: 18px 0 14px; padding: 5px; border-radius: 16px; background: var(--sup-3); overflow-x: auto; scrollbar-width: none; }
.cart-abas::-webkit-scrollbar { display: none; }
.cart-ab { flex: 1 0 auto; display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 44px; padding: 0 16px; border-radius: 12px; border: 0; background: transparent; color: var(--tinta-2); font: inherit; font-weight: 750; cursor: pointer; white-space: nowrap; transition: background .15s, color .15s; }
.cart-ab:hover { color: var(--tinta); }
.cart-ab.on { background: var(--sup); color: var(--bic); }
.cart-ab b { min-width: 20px; height: 20px; padding: 0 6px; border-radius: 999px; background: var(--vermelho); color: #fff; font-size: .76rem; display: inline-grid; place-items: center; }
.cart-aba { min-height: 160px; animation: cartEntra .18s ease; }
@keyframes cartEntra { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
.cart-aba .pp { margin-top: 0; }
.pp-como { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 12px 0 0; padding: 12px 14px; border-radius: 14px; background: var(--sup-2); color: var(--tinta-2); font-size: .88rem; }
.pp-como i { color: var(--bic); }
.pp-como span { flex: 1 1 240px; }
@media (max-width: 640px) { .cart-ab { flex: 0 0 auto; padding: 0 14px; } }
@media (prefers-reduced-motion: reduce) { .cart-aba { animation: none; } }


/* =========================================================
   Carteira: cartão do saldo (duas linhas, nada cortado) — sem sombras
   ========================================================= */
.sb2 { position: relative; overflow: hidden; display: grid; gap: 18px; padding: clamp(20px, 3vw, 28px); border-radius: 26px; background: var(--bic); color: #fff; }
.sb2 > svg:first-child { position: absolute; right: -40px; top: -30px; width: 260px; height: auto; opacity: .08; pointer-events: none; }
.sb2-topo { position: relative; display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 18px 28px; }
.sb2-saldo { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.sb2-saldo .rot { color: rgba(255, 255, 255, .82); font-weight: 650; }
.sb2-saldo .val { display: flex; align-items: center; gap: 12px; font-size: clamp(2.4rem, 5vw, 3.4rem); font-weight: 800; line-height: 1; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.sb2-saldo .val small { font-size: 1rem; font-weight: 700; letter-spacing: 0; color: rgba(255, 255, 255, .88); }
.sb2-saldo .val svg { width: 52px; height: 52px; flex: none; }
.sb2-nums { display: flex; flex-wrap: wrap; gap: 8px; }
.sb2-nums div { min-width: 104px; display: flex; flex-direction: column; gap: 2px; padding: 10px 14px; border-radius: 16px; background: rgba(255, 255, 255, .12); }
.sb2-nums b { font-size: 1.35rem; line-height: 1.1; }
.sb2-nums span { font-size: .8rem; color: rgba(255, 255, 255, .86); }
.sb2-acoes { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.sb2-acoes .btn { height: 46px; }
.sb2-video { display: inline-flex; align-items: center; gap: 10px; height: 46px; padding: 0 16px 0 6px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .35); background: rgba(255, 255, 255, .1); color: #fff; font: inherit; font-weight: 750; text-decoration: none; cursor: pointer; }
.sb2-video:hover { background: rgba(255, 255, 255, .18); }
.sb2-play { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: #fff; color: var(--bic); font-size: .8rem; }
.sb2-video > span:last-child { display: flex; flex-direction: column; line-height: 1.15; text-align: left; }
.sb2-video small { font-size: .76rem; font-weight: 600; opacity: .8; }
.sb2 .teto-aviso { position: relative; margin: 0; }
@media (max-width: 640px) {
  .sb2-topo { flex-direction: column; align-items: stretch; }
  .sb2-nums div { flex: 1 1 calc(50% - 8px); min-width: 0; }
  .sb2-acoes .btn, .sb2-video { flex: 1 1 100%; justify-content: center; }
}
@media (max-width: 640px) {
  /* telemóvel: os quatro separadores cabem todos (ícone por cima do nome) e os números ficam lado a lado */
  .cart-abas { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; overflow: visible; }
  .cart-ab { position: relative; flex-direction: column; gap: 4px; height: auto; min-height: 58px; padding: 8px 4px; font-size: .78rem; white-space: normal; text-align: center; line-height: 1.15; }
  .cart-ab i { font-size: 1.05rem; }
  .cart-ab b { position: absolute; top: 4px; right: 6px; min-width: 18px; height: 18px; font-size: .7rem; }
  .sb2-nums { flex-wrap: nowrap; }
  .sb2-nums div { flex: 1 1 0; min-width: 0; padding: 10px; }
  .sb2-nums b { font-size: 1.15rem; }
  .sb2-nums span { font-size: .76rem; }
}


/* ---------- Sair da conta: a pasta a respirar, os documentos a entrar e "A terminar a tua sessão" ---------- */
.cr-anima[data-modo="sair"] .cr-doc { animation: crCai 2.8s cubic-bezier(.35, .2, .2, 1) infinite; }
.cr-anima[data-modo="sair"] .cr-d1 { animation-delay: .15s; }
.cr-anima[data-modo="sair"] .cr-d2 { animation-delay: .85s; }
.cr-anima[data-modo="sair"] .cr-d3 { animation-delay: 1.55s; }
.cr-anima[data-modo="sair"] .cr-d4 { animation-delay: 2.25s; }
.cr-anima[data-modo="sair"] .cr-frente { animation: crPastaFrente .5s cubic-bezier(.2, 1.4, .4, 1) both, crRespira 2.4s ease-in-out .5s infinite; }
.carregar[data-modo="sair"] .cr-livro, .carregar[data-modo="sair"] .cr-marca, .carregar[data-modo="sair"] .cr-bv { display: none; }
.carregar[data-modo="sair"] .carregar-msg, .carregar[data-modo="sair"] .carregar-dica { position: static !important; width: auto !important; height: auto !important; margin: 0 !important; overflow: visible !important; clip: auto !important; white-space: normal !important; text-align: center; }
.carregar[data-modo="sair"] .carregar-msg { margin-top: 10px !important; font-size: 1.2rem; font-weight: 800; color: #fff; }
.carregar[data-modo="sair"] .carregar-msg::after { content: ""; display: inline-block; width: 1.2em; text-align: left; animation: crPontos 1.2s steps(4, end) infinite; }
.carregar[data-modo="sair"] .carregar-dica { margin-top: 6px !important; font-size: .95rem; color: rgba(255, 255, 255, .85); max-width: 30ch; }
@keyframes crPontos { 0% { content: ""; } 25% { content: "."; } 50% { content: ".."; } 75%, 100% { content: "..."; } }


/* =========================================================
   Despedida ao sair da conta (diferente do carregamento): avatar com anel, mão a acenar, "Até já, Nome!"
   ========================================================= */
.adeus { position: fixed; inset: 0; z-index: 2147482000; display: grid; place-items: center; padding: 24px; overflow: hidden; color: #fff; text-align: center;
  background: radial-gradient(120% 90% at 50% 0%, #3557F5 0%, #1E40E6 45%, #142FB8 100%); opacity: 0; transition: opacity .3s ease; }
.adeus.ver { opacity: 1; }
.adeus.sai { opacity: 0; transition: opacity .4s ease; }
.adeus.sai .ad-cx { transform: scale(.96); }
body.com-adeus { overflow: hidden; }
.ad-bolhas i { position: absolute; border-radius: 50%; background: rgba(255, 255, 255, .07); animation: adBolha 7s ease-in-out infinite; }
.ad-bolhas i:nth-child(1) { width: 260px; height: 260px; left: -70px; top: 8%; }
.ad-bolhas i:nth-child(2) { width: 160px; height: 160px; right: -40px; top: 18%; animation-delay: -2s; }
.ad-bolhas i:nth-child(3) { width: 90px; height: 90px; left: 18%; bottom: 12%; animation-delay: -4s; }
.ad-bolhas i:nth-child(4) { width: 220px; height: 220px; right: 8%; bottom: -80px; animation-delay: -1s; }
.ad-bolhas i:nth-child(5) { width: 54px; height: 54px; left: 62%; top: 10%; animation-delay: -3s; }
@keyframes adBolha { 0%, 100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-18px) scale(1.05); } }
.ad-cx { position: relative; display: grid; justify-items: center; gap: 10px; max-width: 420px; transition: transform .4s ease; animation: adSobe .5s cubic-bezier(.2, 1, .3, 1) both; }
@keyframes adSobe { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.ad-av { position: relative; width: 148px; height: 148px; margin-bottom: 8px; }
.ad-anel { position: absolute; inset: 0; width: 100%; height: 100%; transform: rotate(-90deg); }
.ad-trilho { fill: none; stroke: rgba(255, 255, 255, .18); stroke-width: 5; }
.ad-prog { fill: none; stroke: #fff; stroke-width: 5; stroke-linecap: round; stroke-dasharray: 100; stroke-dashoffset: 100; animation: adAnel 1.55s cubic-bezier(.45, .05, .25, 1) .1s forwards; }
@keyframes adAnel { to { stroke-dashoffset: 0; } }
.ad-img { position: absolute; inset: 12px; border-radius: 50%; overflow: hidden; background: rgba(255, 255, 255, .92); animation: adPop .55s cubic-bezier(.2, 1.5, .4, 1) .05s both; }
.ad-img img, .ad-img svg { width: 100%; height: 100%; display: block; }
@keyframes adPop { from { transform: scale(.6); opacity: 0; } to { transform: scale(1); opacity: 1; } }
.ad-mao { position: absolute; right: -2px; bottom: 6px; width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; background: #FFC94D; color: #6B3A00; font-size: 1.2rem; transform-origin: 70% 90%; animation: adPop .45s cubic-bezier(.2, 1.5, .4, 1) .25s both, adAceno 1s ease-in-out .7s 2; }
@keyframes adAceno { 0%, 100% { transform: rotate(0); } 20% { transform: rotate(-18deg); } 40% { transform: rotate(14deg); } 60% { transform: rotate(-12deg); } 80% { transform: rotate(8deg); } }
.ad-cx h2 { margin: 0; font-size: clamp(1.6rem, 6vw, 2.2rem); font-weight: 800; letter-spacing: -.02em; color: #fff; }
.ad-txt { margin: 0; font-size: 1.02rem; font-weight: 650; color: rgba(255, 255, 255, .9); }
.ad-txt::after { content: ""; display: inline-block; width: 1.2em; text-align: left; animation: crPontos 1.2s steps(4, end) infinite; }
.ad-cx small { color: rgba(255, 255, 255, .72); font-size: .88rem; max-width: 32ch; }
@media (prefers-reduced-motion: reduce) { .ad-bolhas i, .ad-mao, .ad-img, .ad-cx { animation: none; } .ad-prog { animation-duration: .01s; } }
.ad-bolhas { position: absolute; inset: 0; pointer-events: none; }
.lim-pt > span { display: flex; flex-direction: column; gap: 3px; }
.lim-pt > span strong { font-size: 1rem; }


/* ---------- Sair da conta: ecrã simples (logo, roda e "A terminar a sessão…"), depois a página abre de novo ---------- */
.saida { position: fixed; inset: 0; z-index: 2147482000; display: grid; place-items: center; background: var(--mesa); opacity: 0; transition: opacity .2s ease; }
.saida.ver { opacity: 1; }
.sd-cx { display: grid; justify-items: center; gap: 16px; }
.sd-logo { width: 64px; height: 64px; }
.sd-roda { width: 28px; height: 28px; border-radius: 50%; border: 3px solid var(--linha-2); border-top-color: var(--bic); animation: sdRoda .8s linear infinite; }
@keyframes sdRoda { to { transform: rotate(360deg); } }
.sd-cx p { margin: 0; color: var(--tinta-2); font-weight: 650; }
.sd-cx p::after { content: ""; display: inline-block; width: 1.2em; text-align: left; animation: crPontos 1.2s steps(4, end) infinite; }
body.com-saida { overflow: hidden; }
@media (prefers-reduced-motion: reduce) { .sd-roda { animation-duration: 2s; } }


/* ---------- Bónus: público, avanço e quem apanhou; relatório de estudantes por universidade ---------- */
.cup-h-sub { font-size: .82rem; font-weight: 600; color: var(--tinta-3); margin-left: 6px; }
.cup-pub { display: inline-block; font-size: .82rem; font-weight: 800; padding: 3px 10px; border-radius: 999px; background: var(--sup-2); color: var(--tinta-2); }
.cup-pub.cup-pub-uni { background: var(--azul-suave); color: var(--bic); }
.cup-av { min-width: 160px; display: grid; gap: 4px; }
.cup-av-b { height: 8px; border-radius: 999px; background: var(--sup-2); overflow: hidden; }
.cup-av-b i { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, #3B5BFF, #1E40E6); }
.cup-av small { color: var(--tinta-2); font-size: .82rem; }
.pub-esc { display: inline-flex; align-items: center; gap: 10px; width: 100%; height: 48px; padding: 0 14px; border-radius: 14px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta); font: inherit; font-weight: 700; cursor: pointer; text-align: left; }
.pub-esc span { flex: 1; }
.pub-esc > i:first-child { color: var(--bic); }
.pub-esc:hover { border-color: var(--bic); }
.rel-unis td small { color: var(--tinta-3); font-size: .8rem; }
.rel-barra { display: block; height: 5px; margin-top: 6px; border-radius: 999px; background: var(--sup-2); overflow: hidden; max-width: 260px; }
.rel-barra i { display: block; height: 100%; border-radius: 999px; background: var(--bic); }
.rel-sem td { color: var(--tinta-2); }


/* ---------- Bónus: secções separadas, seletor do público dentro do formulário, "quem apanhou" com avatares ---------- */
.cup-adm { display: grid; gap: 18px; }
.cup-adm .cup-nums { margin: 0; }
.pub-sel { display: grid; gap: 10px; }
.pub-modo { width: 100%; }
.pub-modo button { flex: 1; justify-content: center; }
.pub-modo button i { margin-right: 6px; }
.pub-uni { display: grid; gap: 8px; padding: 12px; border-radius: 16px; background: var(--sup-2); }
.pub-uni[hidden] { display: none; }
.pub-busca { margin: 0; max-width: none; }
.pub-lista { max-height: 240px; overflow-y: auto; display: grid; gap: 4px; overscroll-behavior: contain; }
.pub-op { display: grid; grid-template-columns: 78px minmax(0, 1fr) 18px; align-items: center; gap: 10px; padding: 9px 12px; border-radius: 12px; border: 1.5px solid transparent; background: var(--sup); color: inherit; font: inherit; text-align: left; cursor: pointer; }
.pub-op:hover { border-color: var(--linha-2); }
.pub-op strong { font-size: .9rem; }
.pub-op span { color: var(--tinta-2); font-size: .86rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pub-op i { color: var(--bic); }
.pub-op.on { border-color: var(--bic); background: var(--azul-suave); }
.pub-escolhida { display: flex; align-items: center; gap: 8px; margin: 0; padding: 8px 12px; border-radius: 12px; background: var(--azul-suave); color: var(--tinta); font-size: .9rem; }
.pub-escolhida i { color: var(--bic); }
.pub-alcance { display: flex; align-items: center; gap: 8px; margin: 0; color: var(--tinta-2); font-size: .88rem; }
.pub-alcance i { color: var(--bic); }
.cup-quem-cx .intro { margin-bottom: 4px; }
.cup-quem { list-style: none; margin: 0; padding: 0; max-height: 58vh; overflow-y: auto; display: grid; gap: 6px; }
.cup-quem li { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 14px; border: 1px solid var(--linha); border-top: 1px solid var(--linha); }
.cq-av { width: 44px; height: 44px; border-radius: 50%; overflow: hidden; display: block; background: var(--azul-suave); }
.cq-av svg, .cq-av img { width: 100%; height: 100%; display: block; }
.cq-t { display: flex; flex-direction: column; min-width: 0; }
.cq-t strong { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cq-t small { color: var(--tinta-2); font-size: .82rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cq-q { display: flex; flex-direction: column; align-items: flex-end; }
.cq-q b { color: var(--bic); }
.cq-q small { color: var(--tinta-3); font-size: .82rem; }

/* seletor com várias universidades */
.pub-op { grid-template-columns: 22px 74px minmax(0, 1fr); }
.pub-caixa { width: 22px; height: 22px; border-radius: 7px; border: 2px solid var(--linha-2); display: grid; place-items: center; background: var(--sup); color: #fff; font-size: .74rem; }
.pub-op.on .pub-caixa { background: var(--marca); border-color: var(--marca); }
.pub-nome { color: var(--tinta-2); font-size: .86rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pub-chips { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.pub-chip { display: inline-flex; align-items: center; gap: 4px; padding: 4px 6px 4px 12px; border-radius: 999px; background: var(--marca); color: #fff; font-size: .82rem; font-weight: 800; }
.pub-chip button { width: 22px; height: 22px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .22); color: #fff; display: grid; place-items: center; cursor: pointer; padding: 0; }
.pub-chip button svg { width: 12px; height: 12px; }
.pub-limpar { font-size: .82rem; }
.pub-dica { margin: 0; color: var(--tinta-2); font-size: .86rem; }

/* campo do código com o botão "Colar" */
.cod-linha { display: flex; gap: 8px; align-items: stretch; }
.cod-linha .codigo-6 { flex: 1; min-width: 0; }
.cod-colar { flex: none; height: auto; min-height: 48px; padding: 0 16px; }


/* =========================================================
   Segurança e proteção de dados: privacidade, cookies, contas ligadas, definições
   ========================================================= */
.priv-g { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(320px, 100%), 1fr)); gap: 14px; }
.priv-sec { padding: 18px 20px; border-radius: 18px; background: var(--sup); border: 1px solid var(--linha); }
.priv-sec h2 { display: flex; align-items: center; gap: 10px; margin: 0 0 10px; font-size: 1.08rem; }
.priv-sec h2 i { color: var(--bic); }
.priv-sec ul { margin: 0; padding-left: 18px; display: grid; gap: 6px; color: var(--tinta-2); line-height: 1.45; }
.priv-nota { margin: 18px 0 0; color: var(--tinta-3); font-size: .86rem; }
.aceita-txt { margin: 4px 0 10px; color: var(--tinta-2); font-size: .84rem; line-height: 1.4; }
.aviso-cookies { position: fixed; z-index: 9000; left: 50%; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); transform: translateX(-50%); width: min(720px, calc(100vw - 24px)); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; padding: 14px 16px; border-radius: 18px; background: var(--sup); border: 1px solid var(--linha-2); }
.aviso-cookies p { margin: 0; flex: 1 1 300px; color: var(--tinta-2); font-size: .9rem; line-height: 1.4; }
.aviso-cookies p strong { color: var(--tinta); margin-right: 6px; }
.ligadas-cart { display: grid; grid-template-columns: 44px minmax(0, 1fr) 16px; align-items: center; gap: 12px; width: 100%; margin: 0 0 14px; padding: 12px 16px; border-radius: 16px; border: 1px solid #F5C77A; background: #FFF8EC; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.lg-ic { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: #F5A524; color: #fff; }
.ligadas-cart span:nth-child(2) { display: flex; flex-direction: column; }
.ligadas-cart small { color: var(--tinta-2); }
.ligadas { display: grid; gap: 12px; text-align: left; }
.ligadas h2 { margin: 0; }
.lg-grupo { padding: 12px 14px; border-radius: 16px; border: 1px solid var(--linha); }
.lg-mot { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.lg-mot span { font-size: .8rem; font-weight: 800; padding: 3px 10px; border-radius: 999px; background: #FFF4E5; color: #6B3A00; }
.lg-grupo ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.lg-grupo li { display: flex; flex-direction: column; }
.lg-grupo li small { color: var(--tinta-2); font-size: .82rem; }
.lg-susp { color: var(--vermelho); }
.seg .av-int span small { display: block; color: var(--tinta-2); font-weight: 500; font-size: .84rem; }
.seg-lista { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 8px; color: var(--tinta-2); font-size: .9rem; }
.seg-lista i { color: var(--bic); margin-right: 8px; }
/* aviso de cookies: os dois botões separados */
.aviso-cookies .linha-btn { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; }
.aviso-cookies .linha-btn .btn { margin: 0; }
@media (max-width: 520px) { .aviso-cookies .linha-btn { width: 100%; } .aviso-cookies .linha-btn .btn { flex: 1; justify-content: center; } }

/* os ícones da lista de sugestões ficam ao lado do texto, nunca por cima */
.busca-topo .sug svg, .busca-hero .sug svg { position: static; left: auto; pointer-events: none; }

.rk2 .rk-ic { background: linear-gradient(135deg, #3B5BFF, #1E40E6); color: #fff; }
@media (min-width: 761px) { .rk2 .rk-rosto { width: 62px; height: 62px; margin-left: -12px; } }
@media (max-width: 760px) { .rk2 .rk-rosto { width: 64px; height: 64px; margin-left: -14px; } }

.js .esqueleto { display: none !important; }
.carga-pag { display: none; }
.js .carga-pag { display: flex; justify-content: center; padding: 22vh 0; }
/* (270.ª parte, revista) com ou sem conta, mostra-se a roda de carregar até o site arrancar — sem página intermédia a piscar */
.carga-roda { width: 30px; height: 30px; border-radius: 50%; border: 3px solid var(--linha-2); border-top-color: var(--bic); opacity: 0; animation: cargaAparece .25s ease .45s forwards, sdRoda .8s linear infinite; }
@keyframes cargaAparece { to { opacity: 1; } }
/* Definições: espaço entre as caixas (Segurança, Email, …) */
.adm-sec.seg { margin-bottom: 20px; }
.adm-def .adm-sec + .adm-sec { margin-top: 20px; }

/* publicar: a confirmação obrigatória a vermelho quando falta */
.verif.verif-falta { outline: 2px solid var(--vermelho); outline-offset: 4px; border-radius: 12px; background: #FFF1F1; }
/* perfil: os números com ícones */
.pf-num { flex-direction: row; align-items: center; gap: 12px; }
.pf-num-ic { width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; background: var(--azul-suave); color: var(--bic); flex: none; font-size: 1.05rem; }
.pf-num-t { display: flex; flex-direction: column; gap: 2px; min-width: 0; }

/* moderação: envios que falharam */
.falhas summary { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 12px; cursor: pointer; list-style: none; }
.falhas summary::-webkit-details-marker { display: none; }
.falhas summary h3 { display: flex; align-items: center; gap: 8px; margin: 0; }
.falhas summary h3 i { color: var(--vermelho); }
.falhas summary small { color: var(--tinta-3); }
.falhas-l { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 8px; }
.falhas-l li { display: grid; grid-template-columns: minmax(180px, 260px) minmax(0, 1fr); gap: 6px 14px; padding: 10px 12px; border-radius: 12px; background: #FFF6F6; border: 1px solid #F5D0D0; }
.fl-q { display: flex; flex-direction: column; }
.fl-q em { font-style: normal; font-size: .8rem; font-weight: 800; color: #6B3A00; }
.fl-q small { color: var(--tinta-3); }
.fl-m { color: var(--tinta); font-size: .9rem; }
@media (max-width: 640px) { .falhas-l li { grid-template-columns: minmax(0, 1fr); } }

/* publicar: o ficheiro foi comprimido para caber no limite */
.fx-comp { display: inline-flex; align-items: center; gap: 6px; margin: 0 4px; padding: 2px 9px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); font-weight: 750; font-size: .8rem; }

/* publicar: descrição com IA */
.desc-cab { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 6px; }
.desc-cab label { margin: 0; }
.desc-ia i { color: var(--bic); }

/* menu das ações de cada utilizador: papéis primeiro, contacto e pontos, e por fim suspender e apagar */
.menu-uti-l .mu-g { margin: 6px 10px 2px; font-size: .74rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--tinta-3); }
.menu-uti-l hr { border: 0; border-top: 1px solid var(--linha); margin: 6px 0; }


/* =========================================================
   Painel: separadores, números 3 a 3, relatórios, avisos, ligados agora e robô
   ========================================================= */
/* separadores do painel: barra limpa com ícones, o ativo em azul */
.abas-adm { display: flex; flex-wrap: wrap !important; gap: 6px !important; padding: 6px !important; margin-bottom: 18px; border: 1px solid var(--linha) !important; border-radius: 18px; background: var(--sup); }
.abas-adm .aba { border: 0 !important; border-radius: 12px !important; padding: 9px 13px !important; background: transparent !important; color: var(--tinta-2); font-weight: 700; font-size: .9rem; transition: background .15s, color .15s; }
.abas-adm .aba i { width: 16px; text-align: center; color: var(--tinta-3); opacity: 1 !important; }
.abas-adm .aba:hover { background: var(--sup-2) !important; color: var(--tinta); }
.abas-adm .aba[aria-selected="true"] { background: var(--azul-suave) !important; color: var(--bic) !important; }
.abas-adm .aba[aria-selected="true"] i { color: var(--bic); }
/* números da visão geral: 3 por linha */
.adm-vg .kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
@media (max-width: 700px) { .adm-vg .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* caixa do relatório (no fim da visão geral e nos avisos) */
.rel-caixa header small { color: var(--tinta-3); }
.rel-caixa h3 i { color: var(--vermelho); }
.rel-linha { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.rel-linha input[type="date"] { height: 38px; border-radius: 10px; border: 1.5px solid var(--linha-2); padding: 0 10px; font: inherit; background: var(--sup); color: var(--tinta); }
.rel-datas { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px 14px; margin-bottom: 12px; }
.rel-d { display: grid; gap: 5px; font-size: .8rem; font-weight: 750; color: var(--tinta-2); }
.rel-d input { height: 42px; min-width: 168px; border-radius: 12px; border: 1.5px solid var(--linha-2); padding: 0 12px; font: inherit; font-weight: 650; font-size: .95rem; background: var(--sup); color: var(--tinta); }
.rel-d input:focus-visible { outline: 3px solid var(--azul-claro); outline-offset: 1px; border-color: var(--bic); }
.rel-dias { margin: 0 0 11px; color: var(--tinta-3); font-size: .84rem; font-weight: 650; }
.rel-ats { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.rel-at { height: 32px; padding: 0 12px; border-radius: 999px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta-2); font: inherit; font-size: .82rem; font-weight: 700; cursor: pointer; }
.rel-at:hover { border-color: var(--bic); color: var(--bic); }
.rel-at[aria-pressed="true"] { background: var(--azul-suave); border-color: var(--bic); color: var(--bic); }
.rel-at:focus-visible { outline: 3px solid var(--azul-claro); outline-offset: 2px; }
.rel-est { display: grid; gap: 20px; }
.rel-est > header { margin-bottom: 0; }
.rel-bloco { min-width: 0; }
.rel-bloco h4 { margin: 0 0 12px; font-size: .95rem; }
.adm-g2.rel-g2 { margin-bottom: 0; }
@media (max-width: 560px) { .rel-d { flex: 1 1 140px; } .rel-d input { min-width: 0; width: 100%; } .rel-dias { flex-basis: 100%; margin: 0; } }
/* editor dos anúncios e publicidades: secções */
.ave-sec { padding: 16px 18px; border-radius: 16px; background: var(--sup); border: 1px solid var(--linha); margin-bottom: 14px; }
.ave-sec h4 { display: flex; align-items: center; gap: 8px; margin: 0 0 12px; font-size: .98rem; }
.ave-sec h4 i { color: var(--bic); width: 18px; text-align: center; }
.ave-sec h4 small { margin-left: auto; font-size: .8rem; font-weight: 700; color: var(--tinta-3); }
.ave-sec .campo:last-child { margin-bottom: 0; }
.ave-sec code { background: var(--sup-2); padding: 1px 6px; border-radius: 6px; font-size: .84em; }
.ave-pub-tipos { width: 100%; margin-bottom: 10px; }
.ave-pub-tipos button { flex: 1; justify-content: center; gap: 6px; }
.ave-erro { flex: 1; margin: 0; padding: 9px 12px; border-radius: 12px; background: #FFF1F1; color: #A11A1A; font-weight: 650; font-size: .9rem; }
.ave-pe { gap: 12px; }
/* cartões dos avisos: quem viu, quem clicou, taxa e público */
.avc-est-n { display: flex; flex-wrap: wrap; gap: 6px 12px; margin-top: 6px; color: var(--tinta-2); font-size: .82rem; font-weight: 700; }
.avc-est-n span { display: inline-flex; align-items: center; gap: 5px; }
.avc-est-n i { color: var(--bic); }
.avc-pub-p { color: var(--tinta-3); font-weight: 600; }
/* ligados agora: cartões com localização, aparelho e tempo */
.lg-l { display: grid; gap: 10px; }
.lg-i { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; grid-template-areas: "av t a" "av m a"; gap: 4px 14px; align-items: center; padding: 14px 16px; border-radius: 18px; background: var(--sup); border: 1px solid var(--linha); }
.lg-av { grid-area: av; position: relative; width: 52px; height: 52px; }
.lg-av .av, .lg-av svg, .lg-av img { width: 52px !important; height: 52px !important; border-radius: 50%; }
.lg-pt { position: absolute; right: 1px; bottom: 1px; width: 13px; height: 13px; border-radius: 50%; background: #F5A524; border: 2.5px solid var(--sup); }
.lg-pt.on { background: #1632A3; }
.lg-t { grid-area: t; display: flex; flex-direction: column; min-width: 0; }
.lg-t strong { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.lg-t small { color: var(--tinta-2); font-size: .82rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lg-t small i { color: var(--tinta-3); margin-right: 5px; }
.lg-et-ed { background: #F3E8FF !important; color: #6B21A8 !important; }
.lg-meta { grid-area: m; display: flex; flex-wrap: wrap; gap: 6px; }
.lg-m { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; background: var(--sup-2); color: var(--tinta-2); font-size: .8rem; font-weight: 650; }
.lg-m i { color: var(--bic); }
.lg-m em { font-style: normal; color: var(--tinta-3); }
.lg-a { grid-area: a; display: flex; flex-direction: column; gap: 6px; }
@media (max-width: 640px) { .lg-i { grid-template-columns: 44px minmax(0, 1fr); grid-template-areas: "av t" "m m" "a a"; } .lg-av, .lg-av .av, .lg-av svg, .lg-av img { width: 44px !important; height: 44px !important; } .lg-a { flex-direction: row; } }
/* robô de IA: botão ao lado da seta de subir e painel de conversa */
.robo-btn { position: fixed; right: 76px; bottom: calc(22px + env(safe-area-inset-bottom, 0px)); z-index: 81; width: 48px; height: 48px; border-radius: 50%; border: 0; background: linear-gradient(135deg, #6D28D9, #1E40E6); color: #fff; font-size: 1.15rem; cursor: pointer; box-shadow: 0 12px 26px rgba(30, 64, 230, .3); }
.robo-btn:hover { transform: translateY(-2px); }
.robo { position: fixed; right: 18px; bottom: calc(82px + env(safe-area-inset-bottom, 0px)); z-index: 2147482400; width: min(440px, calc(100vw - 24px)); height: min(620px, calc(100vh - 110px)); display: flex; flex-direction: column; border-radius: 22px; background: var(--sup); border: 1px solid var(--linha-2); box-shadow: 0 24px 60px rgba(16, 22, 51, .25); overflow: hidden; }
.rb-cab { display: flex; align-items: center; gap: 10px; padding: 12px 12px 12px 16px; border-bottom: 1px solid var(--linha); }
.rb-cab div { flex: 1; display: flex; flex-direction: column; }
.rb-cab small { color: var(--tinta-3); font-size: .82rem; }
.rb-ic { width: 36px; height: 36px; border-radius: 12px; display: grid; place-items: center; background: linear-gradient(135deg, #6D28D9, #1E40E6); color: #fff; flex: none; }
.rb-corpo { flex: 1; overflow-y: auto; padding: 14px; display: flex; flex-direction: column; gap: 10px; background: var(--mesa); }
.rb-vazio { text-align: center; display: grid; justify-items: center; gap: 8px; padding: 8px 4px; }
.rb-vazio .rb-ic { width: 52px; height: 52px; border-radius: 16px; font-size: 1.4rem; }
.rb-vazio p { margin: 0; color: var(--tinta-2); font-size: .9rem; }
.rb-ex { display: flex; flex-direction: column; gap: 6px; width: 100%; }
.rb-ex .chip { white-space: normal; text-align: left; justify-content: flex-start; }
.rb-nota { font-size: .8rem !important; color: var(--tinta-3) !important; }
.rb-msg { max-width: 92%; padding: 10px 13px; border-radius: 16px; font-size: .9rem; line-height: 1.45; }
.rb-msg p { margin: 0 0 8px; } .rb-msg p:last-child { margin-bottom: 0; }
.rb-eu { align-self: flex-end; background: var(--bic); color: #fff; border-bottom-right-radius: 6px; white-space: pre-wrap; }
.rb-ia { align-self: flex-start; background: var(--sup); border: 1px solid var(--linha); border-bottom-left-radius: 6px; }
.rb-erro { background: #FFF1F1; border-color: #F5D0D0; color: #A11A1A; }
.rb-pensa { display: flex; align-items: center; gap: 10px; color: var(--tinta-2); }
.rb-ed { border: 1px solid var(--linha); border-radius: 12px; margin: 6px 0; overflow: hidden; }
.rb-ed summary { cursor: pointer; padding: 8px 10px; font-size: .82rem; font-weight: 700; background: var(--sup-2); }
.rb-ed summary i { color: var(--bic); margin-right: 6px; }
.rb-dif { display: grid; gap: 4px; padding: 6px; }
.rb-dif pre { margin: 0; padding: 8px; border-radius: 8px; font-size: .78rem; white-space: pre-wrap; word-break: break-word; max-height: 180px; overflow: auto; }
.rb-antes { background: #FFF1F1; color: #7A1010; }
.rb-depois { background: #ECEFFD; color: #0B1B5D; }
.rb-aviso { color: #A11A1A; font-weight: 650; }
.rb-rec { font-size: .82rem; color: var(--tinta-2); word-break: break-all; }
.rb-rec i { color: var(--bic); margin-right: 4px; }
.rb-hist { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.rb-hist li { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 10px; border-radius: 10px; background: var(--sup-2); }
.rb-hist li span { display: flex; flex-direction: column; min-width: 0; }
.rb-hist small { color: var(--tinta-3); font-size: .78rem; }
.rb-pe { display: flex; gap: 8px; padding: 10px; border-top: 1px solid var(--linha); background: var(--sup); }
.rb-pe textarea { flex: 1; resize: none; border-radius: 14px; border: 1.5px solid var(--linha-2); padding: 10px 12px; font: inherit; background: var(--sup); color: var(--tinta); }
.rb-pe .btn { align-self: flex-end; width: 46px; height: 46px; padding: 0; justify-content: center; }
@media (max-width: 640px) { .robo { right: 0; left: 0; bottom: 0; width: 100%; height: 100%; border-radius: 0; } }
@media print { .robo-btn, .robo { display: none !important; } }

/* robô: desenho novo (cabeçalho em degradé, exemplos em cartões, caixa de escrita com o botão por dentro) */
.robo, .robo * { box-sizing: border-box; }
.robo { width: min(420px, calc(100vw - 24px)); border: 0; box-shadow: 0 28px 70px rgba(16, 22, 51, .28), 0 0 0 1px rgba(16, 22, 51, .06); }
.robo .rb-cab { background: linear-gradient(135deg, #5B21B6 0%, #1E40E6 70%); color: #fff; border-bottom: 0; padding: 14px 10px 14px 16px; }
.robo .rb-cab small { color: rgba(255, 255, 255, .8); display: inline-flex; align-items: center; gap: 6px; }
.rb-pto { width: 7px; height: 7px; border-radius: 50%; background: #4A68DE; display: inline-block; }
.robo .rb-cab .rb-ic { background: rgba(255, 255, 255, .18); }
.robo .rb-cab .ib { color: #fff; background: transparent; border: 0; }
.robo .rb-cab .ib:hover { background: rgba(255, 255, 255, .16); }
.robo .rb-corpo { padding: 16px; gap: 12px; }
.robo .rb-vazio { text-align: left; justify-items: stretch; gap: 10px; padding: 0; }
.rb-ola { display: flex; gap: 12px; align-items: flex-start; padding: 14px; border-radius: 18px; background: var(--sup); border: 1px solid var(--linha); }
.rb-ola strong { display: block; font-size: 1.02rem; margin-bottom: 2px; }
.rb-ola p { margin: 0; color: var(--tinta-2); font-size: .88rem; line-height: 1.4; }
.rb-ic-g { width: 44px !important; height: 44px !important; border-radius: 14px !important; font-size: 1.2rem; flex: none; }
.rb-sec { margin: 6px 2px 0 !important; font-size: .76rem !important; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: var(--tinta-3) !important; }
.robo .rb-ex { display: grid; gap: 8px; }
.rb-ex-c { display: grid; grid-template-columns: 38px minmax(0, 1fr) 16px; align-items: center; gap: 12px; width: 100%; padding: 11px 12px; border-radius: 16px; border: 1px solid var(--linha); background: var(--sup); color: inherit; font: inherit; text-align: left; cursor: pointer; transition: border-color .15s, transform .15s; }
.rb-ex-c:hover { border-color: var(--bic); transform: translateY(-1px); }
.rb-ex-ic { width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; background: var(--azul-suave); color: var(--bic); }
.rb-ex-t { display: flex; flex-direction: column; min-width: 0; }
.rb-ex-t strong { font-size: .9rem; }
.rb-ex-t small { color: var(--tinta-2); font-size: .8rem; line-height: 1.35; white-space: normal; }
.rb-ex-s { color: var(--tinta-3); font-size: .8rem; }
.robo .rb-nota { display: flex; gap: 10px; align-items: flex-start; margin-top: 4px; padding: 10px 12px; border-radius: 14px; background: #F5F3FF; color: #4C1D95 !important; font-size: .8rem !important; line-height: 1.4; }
.robo .rb-nota i { margin-top: 2px; }
.robo .rb-pe { display: block; padding: 12px; }
.rb-caixa { position: relative; border-radius: 18px; border: 1.5px solid var(--linha-2); background: var(--sup); transition: border-color .15s, box-shadow .15s; }
.rb-caixa:focus-within { border-color: var(--bic); box-shadow: 0 0 0 4px rgba(30, 64, 230, .12); }
.robo .rb-pe textarea { display: block; width: 100%; min-width: 0; min-height: 52px; max-height: 140px; border: 0 !important; outline: 0; box-shadow: none !important; background: transparent; padding: 14px 58px 14px 14px; border-radius: 18px; resize: none; }
.rb-enviar { position: absolute; right: 8px; bottom: 8px; width: 38px; height: 38px; border-radius: 12px; border: 0; background: var(--bic); color: #fff; display: grid; place-items: center; cursor: pointer; }
.rb-enviar:disabled { background: var(--linha-2); cursor: default; }
.rb-dica { display: block; margin: 6px 4px 0; color: var(--tinta-3); font-size: .76rem; }
@media (max-width: 640px) { .robo { width: 100%; } .rb-dica { display: none; } }

/* =========================================================
   Lançamento: missões com prémio, comprar pontos, pioneiro e procura, prova social, ranking da semana,
   selos de pioneiro e a página das resoluções em cartões
   ========================================================= */
.mi-premio { display: grid; grid-template-columns: 46px minmax(0, 1fr) auto; align-items: center; gap: 14px; margin: 4px 0 14px; padding: 14px 16px; border-radius: 18px; background: linear-gradient(135deg, #FFF7E0, #FFEFC2); border: 1px solid #F5C77A; }
.mi-premio-ic { width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; background: #F5A524; color: #fff; font-size: 1.2rem; }
.mi-premio div { display: flex; flex-direction: column; }
.mi-premio small { color: #6B4A00; }
.mi-ok { font-size: .8rem; font-weight: 800; color: #1632A3; }
/* comprar pontos */
.btn-ouro { background: linear-gradient(135deg, #FFC83D, #F5A524) !important; color: #3D2A00 !important; border: 0 !important; font-weight: 800; box-shadow: 0 8px 20px rgba(245, 165, 36, .35); }
.btn-ouro:hover { filter: brightness(1.04); }
.btn-ouro .em-breve { margin-left: 8px; padding: 2px 8px; border-radius: 999px; background: rgba(61, 42, 0, .14); font-size: .74rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.missao-compra { background: #FFF8E7; border-radius: 14px; }
.missao-compra .ic { background: #F5A524 !important; color: #fff !important; }
.cp { text-align: center; }
.cp-selo { display: inline-block; margin-bottom: 8px; padding: 4px 12px; border-radius: 999px; background: #FFF1CC; color: #7A5200; font-size: .8rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.cp-g { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 16px 0; }
.cp-p { position: relative; display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 18px 10px 14px; border-radius: 18px; border: 1.5px solid var(--linha-2); background: var(--sup); }
.cp-p.on { border-color: #F5A524; background: #FFFBF0; }
.cp-mais { position: absolute; top: -11px; left: 50%; transform: translateX(-50%); white-space: nowrap; padding: 3px 10px; border-radius: 999px; background: #F5A524; color: #fff; font-size: .74rem; font-weight: 800; }
.cpk-nome { font-size: .8rem; font-weight: 700; color: var(--tinta-2); }
.cp-p b { font-size: 2rem; line-height: 1.1; color: var(--tinta); }
.cp-p small { color: var(--tinta-3); font-size: .82rem; }
.cp-kz { margin-top: 6px; font-weight: 800; color: var(--bic); }
.cp-dica { font-size: .78rem; color: var(--tinta-3); }
.cp-nota { margin: 10px 0 0; font-size: .82rem; color: var(--tinta-3); }
@media (max-width: 520px) { .cp-g { grid-template-columns: 1fr; } }
/* pioneiro e procura */
.pioneiro { text-align: center; padding: 34px 20px; border-radius: 24px; background: var(--sup); border: 1.5px dashed var(--linha-2); display: grid; justify-items: center; gap: 10px; }
.pi-ic { width: 60px; height: 60px; border-radius: 18px; display: grid; place-items: center; background: linear-gradient(135deg, #1632A3, #0E278A); color: #fff; font-size: 1.5rem; }
.pioneiro h3 { margin: 4px 0 0; font-size: 1.25rem; }
.pioneiro p { margin: 0; max-width: 560px; color: var(--tinta-2); line-height: 1.5; }
.pioneiro .btn.on { border-color: #1632A3; color: #1632A3; }
.pi-proc { font-size: .9rem; }
.pi-proc i { color: var(--bic); margin-right: 6px; }
/* prova social */
.prova-soc { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; font-size: .88rem; color: var(--tinta-2); }
.prova-soc > span { display: inline-flex; align-items: center; gap: 6px; }
.prova-soc i { color: var(--bic); }
.ps-quente { padding: 3px 10px; border-radius: 999px; background: #FFF1E6; color: #B4410B !important; font-weight: 800; }
.ps-quente i { color: #EA580C !important; }
/* ranking da semana */
.rk-modo { margin: 12px 0; }
.rks { display: grid; gap: 12px; }
.rks-cab strong { display: block; font-size: 1.05rem; }
.rks-cab small { color: var(--tinta-2); }
.rks-l { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.rks-l li { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 10px 14px; border-radius: 16px; background: var(--sup); border: 1px solid var(--linha); }
.rks-l a { display: flex; align-items: center; gap: 10px; min-width: 0; color: inherit; text-decoration: none; }
.rks-l a .av, .rks-l a svg { width: 40px !important; height: 40px !important; flex: none; }
.rks-l a span { display: flex; flex-direction: column; min-width: 0; }
.rks-l small { color: var(--tinta-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rks-pos { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: var(--sup-2); font-weight: 800; }
.rks-pos.top { background: linear-gradient(135deg, #FFC83D, #F5A524); color: #3D2A00; }
.rks-l b { color: var(--bic); white-space: nowrap; }
.rks-vazio { text-align: center; padding: 22px; border-radius: 18px; background: var(--sup); border: 1.5px dashed var(--linha-2); }
/* selos de pioneiro no perfil */
.pi-selos { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0 0 14px; }
.pi-tit { font-weight: 800; font-size: .85rem; color: #0E278A; display: inline-flex; align-items: center; gap: 6px; margin-right: 4px; }
.pi-selo { padding: 4px 11px; border-radius: 999px; background: #E9ECF9; color: #0B1B5D; font-size: .82rem; font-weight: 700; }
.pi-selo small { color: #263983; font-weight: 600; }
/* resoluções: cartões lado a lado */
.expl-l { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(290px, 100%), 1fr)); gap: 16px; }
.expl-c { display: flex !important; flex-direction: column; padding: 0 !important; overflow: hidden; border-radius: 20px; border: 1px solid var(--linha); background: var(--sup); transition: transform .15s, border-color .15s, box-shadow .15s; }
.expl-c:hover { transform: translateY(-2px); border-color: var(--linha-2); box-shadow: 0 14px 30px rgba(16, 22, 51, .08); }
.expl-c .expl-th { position: relative; display: block; width: 100% !important; height: 150px !important; border-radius: 0 !important; overflow: hidden; background: var(--sup-2); border: 0 !important; }
.expl-c .expl-th img, .expl-c .expl-th .th, .expl-c .expl-th > *:not(.expl-tipo) { width: 100% !important; height: 100% !important; object-fit: cover; object-position: top; }
.expl-tipo { position: absolute !important; left: 12px; bottom: 10px; width: auto !important; height: auto !important; padding: 4px 10px; border-radius: 999px; background: rgba(16, 22, 51, .82); color: #fff; font-size: .78rem; font-weight: 800; }
.expl-c .expl-t { flex: 1; display: flex; flex-direction: column; gap: 8px; padding: 14px 16px 6px; }
.expl-c .expl-t strong { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: .98rem; line-height: 1.35; }
.expl-meta { display: flex; flex-direction: column; gap: 4px; color: var(--tinta-2); font-size: .82rem; }
.expl-meta span { display: flex; align-items: center; gap: 7px; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.expl-meta i { width: 14px; color: var(--tinta-3); }
.expl-c .expl-a { padding: 8px 16px 16px; }
.expl-c .expl-a .btn { width: 100%; justify-content: center; }

.proc-l { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.proc-l li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 10px; border-radius: 12px; background: var(--sup-2); }
.proc-l li span { display: flex; flex-direction: column; min-width: 0; }
.proc-l small { color: var(--tinta-2); font-size: .8rem; }
.proc-l b { color: var(--bic); white-space: nowrap; }
.proc-int { margin: 0; color: var(--tinta-2); }
.proc-int b { font-size: 1.6rem; color: var(--tinta); margin-right: 6px; }

/* perfil: o papel (equipa, editor) numa etiqueta ao lado da patente; a escola aparece sempre */
.pf-papel { display: inline-block; margin-left: 10px; padding: 2px 10px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); font-size: .82rem; font-weight: 800; vertical-align: middle; }
.pf-papel-ed { background: #F3E8FF; color: #6B21A8; }

/* cartões dos materiais: o nome de quem publicou e a universidade aparecem inteiros (quebram de linha, sem "…") */
.cartao .quem .n { white-space: normal !important; overflow: visible !important; text-overflow: clip !important; flex-wrap: wrap; line-height: 1.25; }
.cartao .quem .quem-t small { white-space: normal !important; overflow: visible !important; text-overflow: clip !important; }
/* menu da conta: o nome e o email levam ao perfil */
a.mc-cab { color: inherit; text-decoration: none; border-radius: 14px; }
a.mc-cab:hover { background: var(--sup-2); }
/* editor do boneco: as categorias em várias linhas (sem deslizar para o lado) */
.ed-cats { display: flex !important; flex-wrap: wrap !important; overflow: visible !important; gap: 6px; }
.ed-cats .chip { flex: none; }

/* faixa do site bloqueado: no telemóvel fica curta e arrumada, por cima da barra de baixo */
@media (max-width: 760px) {
  #faixa-bloqueio { left: 12px; right: 12px; transform: none; max-width: none; width: auto; justify-content: space-between; padding: 10px 14px; border-radius: 16px; font-size: .82rem; line-height: 1.3; }
  #faixa-bloqueio .fb-longo { display: none; }
  #faixa-bloqueio .fb-t { flex: 1; min-width: 0; }
  #faixa-bloqueio a { padding: 6px 10px; border-radius: 10px; background: rgba(255, 255, 255, .12); }
}
/* "Ainda não há materiais do teu curso": no telemóvel em coluna, com o botão inteiro */
@media (max-width: 640px) {
  .aviso-sug { flex-direction: column; align-items: flex-start; gap: 10px; padding: 16px; }
  .aviso-sug p { font-size: .92rem; line-height: 1.45; }
  .aviso-sug strong { margin-bottom: 4px; }
  .aviso-sug .btn { width: 100%; justify-content: center; }
}
/* ranking e pessoas: a frase leve com os colegas */
.rk-leve { display: flex; align-items: center; gap: 8px; margin: 10px 2px 2px; color: var(--tinta-2); font-size: .9rem; line-height: 1.4; }
.rk-leve i { color: var(--bic); }
/* partilhar: o cartão do material e o número de materiais no cartão do perfil */
.ppo-mat { grid-template-columns: 72px minmax(0, 1fr) !important; }
.ppo-th { width: 72px; height: 92px; border-radius: 10px; overflow: hidden; background: var(--sup-2); display: block; }
.ppo-th img, .ppo-th > * { width: 100% !important; height: 100% !important; object-fit: cover; object-position: top; }
.ppo-n { display: flex; flex-direction: column; align-items: center; font-size: .82rem; color: var(--tinta-2); }
.ppo-n b { font-size: 1.5rem; color: var(--bic); line-height: 1.1; }

/* utilizadores: última atividade */
.ua { display: inline-flex; align-items: center; gap: 7px; font-weight: 650; white-space: nowrap; }
.ua i { width: 8px; height: 8px; border-radius: 50%; background: var(--linha-2); flex: none; }
.ua.ua-on { color: #152A80; } .ua.ua-on i { background: #1632A3; box-shadow: 0 0 0 3px rgba(22, 50, 163, .18); }
.ua.ua-rec i { background: #F5A524; }
.ua.ua-nunca { color: var(--tinta-3); font-weight: 600; }

/* cartões dos materiais em qualquer grelha: o nome de quem publicou e a universidade aparecem inteiros
   (a regra antiga cortava-os numa linha com "…" e empurrava o ícone da patente para cima da universidade) */
.grelha-docs .cartao .quem .n, .cartao .quem .n { display: flex !important; flex-wrap: wrap; align-items: center; gap: 4px; -webkit-line-clamp: unset !important; -webkit-box-orient: unset !important; white-space: normal !important; overflow: visible !important; text-overflow: clip !important; line-height: 1.25; }
.grelha-docs .cartao .quem .quem-t small, .cartao .quem .quem-t small { display: block !important; -webkit-line-clamp: unset !important; -webkit-box-orient: unset !important; white-space: normal !important; overflow: visible !important; text-overflow: clip !important; line-height: 1.3; }
.cartao .quem .n .ins, .cartao .quem .n .selo-papel { position: static !important; flex: none; vertical-align: middle; }

/* painel → materiais: materiais sem as páginas verdadeiras na pré-visualização */
.prv-aviso { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin: 0 0 14px; padding: 12px 16px; border-radius: 16px; background: #FFF8EC; border: 1px solid #F5C77A; color: #5B3B00; }
.prv-aviso > i { font-size: 1.2rem; color: #B45309; }
.prv-aviso span { flex: 1 1 280px; }

/* ==========================================================================
   O meu perfil: o perfil público em cima e as minhas abas por baixo
   ========================================================================== */
.pf-aba { min-width: 0; }
.pf-aba > .pf-mats { margin-top: 2px; }
.pf-aba > .pf-mats > .pf-procura { margin-top: 0; }
/* o avatar do dono tem o botão para o editar */
.pf-av-w { position: relative; flex: none; justify-self: center; }
.pf-av-ed { position: absolute; right: -2px; bottom: -2px; width: 34px; height: 34px; padding: 0; border-radius: 50%; border: 0; background: var(--marca); color: #fff; display: grid; place-items: center; box-shadow: 0 0 0 3px var(--sup); cursor: pointer; transition: transform .15s; }
.pf-av-ed:hover { transform: scale(1.06); }
.pf-av-ed svg { width: 16px; height: 16px; }
.pf-av-ed:focus-visible { outline: 3px solid var(--azul-claro); outline-offset: 2px; }

/* ==========================================================================
   Explorar: um só botão "Ordenar" (a ordem e o que mostrar vão para um overlay)
   ========================================================================== */
.res-cab .res-esq { min-width: 0; }
.ord-btn { position: relative; flex: none; display: inline-flex; align-items: center; gap: 8px; height: 42px; padding: 0 8px 0 14px; border-radius: 14px; border: 1px solid var(--linha-2); background: var(--sup); color: var(--tinta); font: inherit; font-size: .9rem; font-weight: 700; white-space: nowrap; cursor: pointer; transition: border-color .15s, background .15s; }
.ord-btn > i { color: var(--bic); font-size: .95rem; }
.ord-btn:hover { border-color: var(--bic); }
.ord-btn:focus-visible { outline: 3px solid var(--azul-claro); outline-offset: 2px; }
.ord-btn-v { padding: 4px 10px; border-radius: 10px; background: var(--azul-suave); color: var(--bic); font-size: .8rem; font-weight: 750; }
.ord-btn.on { border-color: var(--bic); }
.res-tok { display: inline-flex; align-items: center; gap: 7px; height: 32px; padding: 0 8px 0 11px; border-radius: 999px; border: 0; background: var(--azul-suave); color: var(--bic); font: inherit; font-size: .82rem; font-weight: 750; white-space: nowrap; cursor: pointer; }
.res-tok i { font-size: .8rem; }
.res-tok svg { width: 14px; height: 14px; }
.res-tok:hover { background: var(--azul-claro); }
@media (max-width: 760px) {
  .ord-btn { height: 40px; padding: 0 14px; }
  .ord-btn-v { display: none; }
  .ord-btn.on::after { content: ""; position: absolute; top: 7px; right: 7px; width: 8px; height: 8px; border-radius: 50%; background: var(--bic); box-shadow: 0 0 0 2px var(--sup); }
  .res-tok span { max-width: 34vw; overflow: hidden; text-overflow: ellipsis; }
}
/* entre 901 e 1060 px a coluna dos filtros aparece (antes ficava escondida e a lista ficava espremida numa coluna estreita) */
@media (min-width: 901px) and (max-width: 1060px) {
  .facetas { display: block; }
  .exp-chips { display: none; }
}
/* um filtro fechado mostra o que está escolhido: o texto encolhe (com …) e a seta e o número continuam à vista */
.fac h3 .fac-tit { min-width: 0; }
/* a folha dos filtros (telemóvel) já tem o título e o "Limpar tudo" em baixo: não repete */
.folha-filtros .fac-cab { display: none; }
.folha-filtros .ff-facetas { margin-top: 0; }

/* Overlay "Ordenar e mostrar": no telemóvel ocupa o ecrã, no computador abre ao centro */
.ord2 { display: grid; gap: 26px; max-width: 640px; margin: 0 auto; }
.ord2-sec h3 { margin: 0 0 12px; font-family: var(--f-tit); font-size: 1.02rem; font-weight: 700; letter-spacing: normal; word-spacing: normal; color: var(--tinta); }
.ord2-g { display: grid; gap: 10px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ord2-i { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 12px; min-width: 0; padding: 14px 14px 15px; border-radius: 18px; border: 1.5px solid var(--linha); background: var(--sup); color: var(--tinta); font: inherit; text-align: left; cursor: pointer; transition: border-color .15s, background .15s, transform .12s; }
.ord2-i:hover:not(:disabled) { border-color: var(--linha-2); }
.ord2-i:active:not(:disabled) { transform: scale(.98); }
.ord2-i:focus-visible { outline: 3px solid var(--azul-claro); outline-offset: 2px; }
.ord2-ic { width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; background: var(--azul-suave); color: var(--bic); font-size: 1.12rem; transition: background .15s, color .15s; }
.ord2-t { display: block; min-width: 0; }
.ord2-t strong { display: block; font-size: .95rem; line-height: 1.25; }
.ord2-t small { display: block; margin-top: 3px; color: var(--tinta-2); font-size: .82rem; line-height: 1.35; }
.ord2-i[aria-pressed="true"] { border-color: var(--bic); background: var(--azul-suave); }
.ord2-i[aria-pressed="true"] .ord2-ic { background: var(--bic); color: var(--sobre-bic); }
.ord2-ok { position: absolute; top: 10px; right: 10px; width: 24px; height: 24px; border-radius: 50%; background: var(--bic); color: var(--sobre-bic); display: grid; place-items: center; }
.ord2-ok svg { width: 14px; height: 14px; stroke-width: 3; }
.ord2-i:disabled { opacity: .45; cursor: not-allowed; }
.ord2-pe { display: flex; align-items: center; justify-content: space-between; gap: 12px; max-width: 640px; margin: 0 auto; }
.ord2-pe .btn-pri { flex: 1 1 auto; justify-content: center; max-width: 340px; }
@media (max-width: 760px) {
  .ecra-ordem .eo-rolo { padding-top: 20px; }
  .ord2-pe .btn-pri { max-width: none; }
}
@media (min-width: 761px) {
  .ord2-mostrar { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .ord2-ordem { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ecra-ov.ecra-ordem { align-items: center; justify-content: center; padding: 24px; background: rgba(16, 22, 51, .5); }
  .ecra-ordem .eo-topo, .ecra-ordem .eo-rolo, .ecra-ordem .eo-pe { width: min(700px, 100%); animation: ord2In .22s ease-out; }
  .ecra-ordem .eo-topo { border-radius: 24px 24px 0 0; padding: 16px 20px 14px 24px; }
  .ecra-ordem .eo-rolo { flex: 0 1 auto; padding: 22px 24px 24px; background: var(--mesa); }
  .ecra-ordem .eo-pe { border-radius: 0 0 24px 24px; padding: 14px 24px; }
}
@keyframes ord2In { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .ecra-ordem .eo-topo, .ecra-ordem .eo-rolo, .ecra-ordem .eo-pe { animation: none; } }
/* telemóveis estreitos: a etiqueta do que se está a mostrar (ex.: Gratuitos ✕) passa para baixo do número */
.res-tok { flex: none; }
@media (max-width: 420px) {
  .res-cab .res-esq { flex-wrap: wrap; row-gap: 6px; }
  .res-tok span { max-width: none; }
}
/* perfil no telemóvel: a data de "no Veteraano desde" cabe no cartão */
@media (max-width: 760px) { .pf-num:last-child .pf-num-t b { font-size: clamp(.95rem, 4vw, 1.3rem); white-space: nowrap; } }
@media (max-width: 420px) { .pf-nums .pf-num-ic { width: 34px; height: 34px; font-size: .9rem; } }

/* ==========================================================================
   Comentários nos materiais
   ========================================================================== */
.coms { max-width: 880px; }
.coms-cab h2 { display: flex; align-items: center; gap: 10px; }
.coms-n { padding: 2px 10px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); font-size: .82rem; font-weight: 750; letter-spacing: normal; }
.coms-lista { display: grid; gap: 18px; margin: 2px 0 22px; }
.com { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 12px; align-items: start; }
.com-r { grid-template-columns: 32px minmax(0, 1fr); gap: 10px; }
.com-av { display: block; width: 42px; height: 42px; border-radius: 50%; overflow: hidden; background: var(--azul-suave); flex: none; }
.com-r .com-av, .com-form-r .com-av { width: 32px; height: 32px; }
.com-av > *, .com-av svg, .com-av img { width: 100% !important; height: 100% !important; display: block; box-shadow: none !important; }
.com-c { min-width: 0; }
.com-bolha { display: inline-block; max-width: 100%; padding: 11px 16px 12px; border-radius: 6px 20px 20px 20px; background: var(--sup); border: 1px solid var(--linha); }
.com-quem { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; margin-bottom: 3px; }
.com-quem a { color: var(--tinta); font-weight: 750; font-size: .92rem; text-decoration: none; }
.com-quem a:hover { text-decoration: underline; }
.com-selo { padding: 1px 8px; border-radius: 999px; background: var(--bic); color: var(--sobre-bic); font-size: .72rem; font-weight: 800; line-height: 1.5; }
.com-selo-2 { background: var(--azul-suave); color: var(--bic); }
.com-p { margin: 0; color: var(--tinta); font-size: .95rem; line-height: 1.55; overflow-wrap: anywhere; }
.com-para { color: var(--bic); font-weight: 750; text-decoration: none; }
.com-acoes { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 16px; margin: 6px 0 0 8px; color: var(--tinta-3); font-size: .8rem; }
.com-b { border: 0; background: none; padding: 2px 0; font: inherit; font-weight: 750; color: var(--tinta-2); cursor: pointer; }
.com-b:hover { color: var(--bic); }
.com-b-apagar:hover { color: var(--vermelho); }
.com-b:focus-visible, .com-mais:focus-visible { outline: 3px solid var(--azul-claro); outline-offset: 2px; border-radius: 6px; }
.com-resps { display: grid; gap: 14px; margin: 14px 0 0; padding-left: 14px; border-left: 2px solid var(--linha); }
.com-mais { justify-self: start; border: 0; background: none; padding: 2px 0; font: inherit; font-size: .84rem; font-weight: 750; color: var(--bic); cursor: pointer; }
.com-novo .com-bolha { animation: comNovo 1.8s ease-out; }
@keyframes comNovo { from { background: var(--azul-claro); border-color: var(--bic); } to { background: var(--sup); border-color: var(--linha); } }
.com-form { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 12px; align-items: start; padding: 14px 16px; border-radius: 22px; background: var(--sup); border: 1.5px solid var(--linha); transition: border-color .15s, box-shadow .15s; }
.com-form:focus-within { border-color: var(--bic); box-shadow: 0 0 0 4px var(--azul-suave); }
.com-form-r { grid-template-columns: 32px minmax(0, 1fr); gap: 10px; padding: 10px 12px; border-radius: 18px; }
.com-campo { min-width: 0; }
.com-txt { display: block; width: 100%; min-height: 46px; max-height: 280px; padding: 8px 2px; border: 0; outline: 0; resize: none; background: transparent; color: var(--tinta); font: inherit; font-size: .96rem; line-height: 1.5; }
.com-form-r .com-txt { min-height: 36px; padding: 6px 2px; }
.com-txt::placeholder { color: var(--tinta-3); }
.com-pe { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 8px; padding-top: 10px; border-top: 1px solid var(--linha); }
.com-conta { color: var(--tinta-3); font-size: .82rem; font-variant-numeric: tabular-nums; }
.com-conta.perto { color: var(--vermelho); font-weight: 700; }
.com-enviar svg { width: 16px; height: 16px; }
.com-a-resp { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 0 0 2px; color: var(--tinta-2); font-size: .82rem; }
.com-bloq { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; padding: 16px 18px; border-radius: 20px; background: var(--azul-suave); color: var(--tinta-2); }
.com-bloq > svg { width: 22px; height: 22px; flex: none; color: var(--bic); }
.com-bloq p { flex: 1 1 260px; margin: 0; line-height: 1.5; }
.com-bloq strong { color: var(--tinta); }
.coms-vazio { display: flex; align-items: center; gap: 14px; margin: 2px 0 18px; padding: 18px; border-radius: 20px; border: 1.5px dashed var(--linha-2); color: var(--tinta-2); }
.coms-vazio > svg { width: 30px; height: 30px; flex: none; color: var(--bic); }
.coms-vazio p { margin: 0; display: grid; gap: 2px; }
.coms-vazio strong { color: var(--tinta); }
@media (max-width: 760px) {
  .com { grid-template-columns: 36px minmax(0, 1fr); gap: 10px; }
  .com-av { width: 36px; height: 36px; }
  .com-r { grid-template-columns: 28px minmax(0, 1fr); }
  .com-r .com-av, .com-form-r .com-av { width: 28px; height: 28px; }
  .com-resps { padding-left: 10px; }
  .com-form { grid-template-columns: minmax(0, 1fr); padding: 12px 14px; }
  .com-form > .com-av-eu { display: none; }
  .com-form-r { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) { .com-novo .com-bolha { animation: none; } }

/* Explorar: botão "Pesquisar" dentro da caixa (pesquisa ao carregar nele ou em Enter) */
.bi .bi-ir { flex: none; align-self: center; height: 44px; padding: 0 18px; border-radius: 13px; gap: 8px; font-size: .92rem; transition: transform .12s, box-shadow .15s; }
.bi .bi-ir i { font-size: .9rem; }
.bi .bi-ir.pronto { box-shadow: 0 0 0 4px var(--azul-suave); }
.bi .bi-ir:active { transform: scale(.97); }
@media (max-width: 760px) { .bi .bi-ir { height: 40px; padding: 0 14px; } .bi .bi-ir span { display: none; } }
/* a caixa dos filtros (computador) tem a altura do que mostra: nunca fica cortada no fundo do ecrã */
@media (min-width: 1061px) { body.rota-explorar .facetas { height: auto; } }

/* ==========================================================================
   O meu perfil: cabeçalho compacto (foto, nome, curso, patente e números numa linha) com as abas por baixo, no mesmo cartão
   ========================================================================== */
.pf-dono { gap: 16px; }
.pfd { background: var(--sup); border: 1px solid var(--linha); border-radius: 24px; overflow: hidden; }
.pfd-topo { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 18px; align-items: center; padding: 20px 22px 16px; }
.pf-dono .pf-av { width: 78px; height: 78px; }
.pf-dono .pf-av-ed { width: 28px; height: 28px; right: -3px; bottom: -3px; box-shadow: 0 0 0 3px var(--sup); }
.pf-dono .pf-av-ed svg { width: 14px; height: 14px; }
.pfd-id { min-width: 0; }
.pfd-id h1 { margin: 0; font-family: var(--f-tit); font-size: 1.5rem; line-height: 1.15; overflow-wrap: anywhere; }
.pfd-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 6px 0 0; color: var(--tinta-2); font-size: .9rem; }
.pfd-pat { padding: 2px 10px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); font-size: .82rem; font-weight: 800; line-height: 1.6; }
.pfd-pat-2 { background: var(--sup-2); color: var(--tinta-2); }
.pfd-nums { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 10px 0 0; padding: 0; list-style: none; color: var(--tinta-2); font-size: .84rem; }
.pfd-nums li { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.pfd-nums i { color: var(--bic); font-size: .8rem; }
.pfd-nums b { color: var(--tinta); font-weight: 800; }
.pfd-acoes { display: flex; gap: 8px; align-self: start; }
.pfd-acoes .pfd-b { height: 40px; padding: 0 15px; border-radius: 12px; gap: 8px; font-size: .88rem; white-space: nowrap; }
.pfd-acoes .pfd-b i, .pfd-acoes .pfd-b svg { font-size: .85rem; width: 16px; height: 16px; }
.pf-dono .pfd-abas { display: flex; gap: 2px; margin: 0; padding: 0 12px; border: 0; border-top: 1px solid var(--linha); background: none; overflow-x: auto; scrollbar-width: none; position: static; top: auto; }
.pf-dono .pfd-abas::-webkit-scrollbar { display: none; }
.pfd-abas .aba { display: inline-flex; align-items: center; gap: 8px; flex: none; margin: 0; padding: 14px 12px 12px; border: 0; border-bottom: 3px solid transparent; border-radius: 0; background: none; color: var(--tinta-2); font: inherit; font-size: .9rem; font-weight: 700; white-space: nowrap; cursor: pointer; transition: color .15s, border-color .15s; }
.pfd-abas .aba i { font-size: .85rem; color: var(--tinta-3); transition: color .15s; }
.pfd-abas .aba:hover { color: var(--tinta); }
.pfd-abas .aba:hover i { color: var(--bic); }
.pfd-abas .aba[aria-selected="true"] { color: var(--bic); border-bottom-color: var(--bic); background: none; }
.pfd-abas .aba[aria-selected="true"] i { color: var(--bic); }
.pfd-abas .aba:focus-visible { outline: 3px solid var(--azul-claro); outline-offset: -3px; border-radius: 8px; }
@media (max-width: 760px) {
  .pfd { border-radius: 20px; }
  .pfd-topo { grid-template-columns: auto minmax(0, 1fr); gap: 12px 14px; padding: 16px 16px 12px; }
  .pf-dono .pf-av { width: 62px; height: 62px; }
  .pfd-id h1 { font-size: 1.2rem; }
  .pfd-meta { font-size: .82rem; gap: 4px 8px; }
  .pfd-nums { gap: 4px 14px; font-size: .82rem; margin-top: 8px; }
  .pfd-acoes { grid-column: 1 / -1; }
  .pfd-acoes .pfd-b { flex: 1; justify-content: center; height: 40px; }
  .pf-dono .pfd-abas { padding: 0 6px; margin: 0; }
  .pfd-abas .aba { padding: 13px 10px 11px; font-size: .86rem; }
}

/* Pesquisa do cabeçalho: cantos como a do Explorar e botão "Pesquisar" (ou Enter) */
.busca-topo { border-radius: 14px; padding-right: 5px; }
.busca-topo input { padding: 0 12px 0 18px; }
.busca-topo .bt-ir { flex: none; display: inline-flex; align-items: center; gap: 7px; height: 36px; padding: 0 14px; border: 0; border-radius: 10px; background: var(--bic); color: var(--sobre-bic); font: inherit; font-size: .86rem; font-weight: 750; cursor: pointer; transition: transform .12s, filter .15s; }
.busca-topo .bt-ir svg { position: static; width: 16px; height: 16px; color: currentColor; pointer-events: none; }
.busca-topo .bt-ir:hover { filter: brightness(1.08); }
.busca-topo .bt-ir:active { transform: scale(.97); }
@media (max-width: 1180px) { .busca-topo .bt-ir span { display: none; } .busca-topo .bt-ir { padding: 0 11px; } }
/* Explorar: a caixa já não tem a lupa à esquerda */
.bi[data-modo="exp"] { padding-left: 20px; }

/* Comentários: quando não carregam, mostra o motivo e "Tentar de novo" */
.com-erro { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; padding: 16px 18px; border-radius: 20px; border: 1.5px dashed var(--linha-2); color: var(--tinta-2); }
.com-erro > svg { width: 22px; height: 22px; flex: none; color: var(--bic); }
.com-erro p { flex: 1 1 260px; margin: 0; display: grid; gap: 2px; }
.com-erro strong { color: var(--tinta); }

/* Medalha nova: celebração no ecrã (só fecha nos botões) */
body.med-aberta { overflow: hidden; }
.med-ov { position: fixed; inset: 0; z-index: 400; display: grid; place-items: center; padding: 20px; background: rgba(12, 18, 46, .62); backdrop-filter: blur(3px); animation: medFundo .25s ease-out; }
.med-conf { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.med-conf i { position: absolute; top: -20px; left: var(--x); width: var(--w); height: calc(var(--w) * .45); border-radius: 2px; background: var(--c); opacity: 0; animation: medConf var(--d) cubic-bezier(.25, .6, .4, 1) var(--a) forwards; }
.med-card { position: relative; width: min(420px, 100%); padding: 34px 26px 24px; border-radius: 28px; background: var(--sup); text-align: center; box-shadow: 0 30px 80px -20px rgba(10, 20, 80, .55); animation: medEntra .55s cubic-bezier(.2, 1.3, .4, 1); overflow: hidden; }
.med-brilho { position: absolute; left: 50%; top: 78px; width: 260px; height: 260px; margin: -130px 0 0 -130px; border-radius: 50%; background: conic-gradient(from 0deg, transparent 0 10%, var(--azul-suave) 10% 15%, transparent 15% 35%, var(--azul-suave) 35% 40%, transparent 40% 60%, var(--azul-suave) 60% 65%, transparent 65% 85%, var(--azul-suave) 85% 90%, transparent 90%); animation: medGira 9s linear infinite; opacity: .9; }
.med-ic { position: relative; width: 104px; height: 104px; margin: 0 auto 14px; border-radius: 50%; display: grid; place-items: center; background: linear-gradient(145deg, #6E86FF, var(--bic) 55%, #2A3FC0); color: #fff; box-shadow: 0 0 0 8px var(--azul-suave), 0 18px 40px -12px var(--bic); animation: medPulsa 1.8s ease-in-out .6s infinite; }
.med-ic svg { width: 54px; height: 54px; }
.med-sup { position: relative; margin: 0; color: var(--bic); font-size: .82rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.med-card h2 { position: relative; margin: 6px 0 6px; font-family: var(--f-tit); font-size: 1.55rem; line-height: 1.2; color: var(--tinta); }
.med-d { position: relative; margin: 0 auto; max-width: 30ch; color: var(--tinta-2); line-height: 1.5; }
.med-mais { position: relative; margin: 10px 0 0; color: var(--bic); font-size: .86rem; font-weight: 750; }
.med-btns { position: relative; display: flex; gap: 10px; justify-content: center; margin-top: 22px; flex-wrap: wrap; }
.med-btns .btn { flex: 1 1 150px; justify-content: center; }
@keyframes medFundo { from { opacity: 0; } to { opacity: 1; } }
@keyframes medEntra { 0% { opacity: 0; transform: translateY(24px) scale(.86); } 100% { opacity: 1; transform: none; } }
@keyframes medGira { to { transform: rotate(360deg); } }
@keyframes medPulsa { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.06); } }
@keyframes medConf { 0% { opacity: 1; transform: translateY(0) rotate(0); } 85% { opacity: 1; } 100% { opacity: 0; transform: translateY(105vh) rotate(var(--r)); } }
@media (prefers-reduced-motion: reduce) { .med-conf { display: none; } .med-card, .med-ic, .med-brilho, .med-ov { animation: none; } }
/* perfil compacto: as 6 abas cabem numa linha; "Alterar perfil" fica só no botão do cabeçalho (marcado quando está aberto) */
.pfd-abas .aba { padding: 14px 10px 12px; gap: 7px; font-size: .88rem; }
.pfd-acoes .pfd-b.on { border-color: var(--bic); color: var(--bic); background: var(--azul-suave); }
.pfd-ct { display: none; }
@media (max-width: 760px) {
  .pfd-topo { align-items: start; }
  .pfd-lg { display: none; }
  .pfd-ct { display: inline; }
}

/* ==========================================================================
   O meu perfil: o cabeçalho de sempre e, por baixo, os números e as abas no mesmo cartão (sem números nas abas, sem sombras)
   ========================================================================== */
.pf-painel { background: var(--sup); border: 1px solid var(--linha); border-radius: 24px; overflow: hidden; }
.pfp-nums { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pfp-num { display: flex; align-items: center; gap: 12px; min-width: 0; padding: 16px 20px; }
.pfp-num + .pfp-num { border-left: 1px solid var(--linha); }
.pfp-ic { width: 42px; height: 42px; flex: none; border-radius: 13px; display: grid; place-items: center; background: var(--azul-suave); color: var(--bic); font-size: 1rem; }
.pfp-t { display: grid; gap: 1px; min-width: 0; }
.pfp-t b { font-family: var(--f-tit); font-size: 1.22rem; line-height: 1.15; color: var(--tinta); }
.pfp-t small { color: var(--tinta-2); font-size: .8rem; line-height: 1.3; }
.pf .pfp-abas { display: flex; gap: 0; margin: 0; padding: 0 10px; border: 0; border-top: 1px solid var(--linha); background: none; overflow-x: auto; scrollbar-width: none; position: static; top: auto; }
.pf .pfp-abas::-webkit-scrollbar { display: none; }
.pfp-abas .aba { display: inline-flex; align-items: center; gap: 7px; flex: none; margin: 0; padding: 14px 10px 12px; border: 0; border-bottom: 3px solid transparent; border-radius: 0; background: none; color: var(--tinta-2); font: inherit; font-size: .88rem; font-weight: 700; white-space: nowrap; cursor: pointer; transition: color .15s, border-color .15s; }
.pfp-abas .aba i { font-size: .84rem; color: var(--tinta-3); transition: color .15s; }
.pfp-abas .aba:hover { color: var(--tinta); }
.pfp-abas .aba:hover i { color: var(--bic); }
.pfp-abas .aba[aria-selected="true"], .pfp-abas .aba[aria-selected="true"]:hover { color: var(--bic); border-bottom-color: var(--bic); background: none; }
.pfp-abas .aba[aria-selected="true"] i { color: var(--bic); }
.pfp-abas .aba:focus-visible { outline: 3px solid var(--azul-claro); outline-offset: -3px; border-radius: 8px; }
/* sem sombras no perfil (cartões, botões e avatar) */
.pf .pf-cab, .pf .pf-num, .pf .pf-painel, .pf .pf-b, .pf .btn, .pf .pf-av, .pf .pf-av-w, .pf .pfp-ic { box-shadow: none !important; }
.pf .pf-av-ed { box-shadow: none !important; border: 3px solid var(--sup); }
@media (max-width: 760px) {
  .pf-painel { border-radius: 20px; }
  .pfp-nums { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pfp-num { padding: 12px 14px; gap: 10px; }
  .pfp-num + .pfp-num { border-left: 0; }
  .pfp-num:nth-child(even) { border-left: 1px solid var(--linha); }
  .pfp-num:nth-child(n+3) { border-top: 1px solid var(--linha); }
  .pfp-ic { width: 36px; height: 36px; border-radius: 11px; font-size: .9rem; }
  .pfp-t b { font-size: 1.05rem; }
  .pfp-t small { font-size: .78rem; }
  .pf .pfp-abas { padding: 0 4px; }
  .pfp-abas .aba { padding: 13px 10px 11px; font-size: .86rem; }
}
/* Nova patente: a mesma celebração das medalhas, com a insígnia grande e o prémio */
.med-ic.med-ic-pat > * { width: 66px !important; height: 66px !important; font-size: 2rem; }
.med-ic.med-ic-pat svg { width: 60px; height: 60px; }
.med-premio { position: relative; display: inline-block; margin: 12px 0 0; padding: 6px 14px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); font-size: .9rem; font-weight: 800; }
/* No sino: a notificação de patente nova fica destacada */
.np-i.np-destaque { position: relative; background: linear-gradient(120deg, var(--azul-suave), transparent 80%); box-shadow: inset 3px 0 0 var(--bic); }
.np-i.np-destaque .np-ic { background: var(--bic); color: var(--sobre-bic); }
.np-i.np-destaque .np-txt { font-weight: 800; color: var(--tinta); }
.np-i.np-destaque .np-txt::before { content: "Nova patente"; display: block; margin-bottom: 2px; color: var(--bic); font-size: .72rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }

/* ==========================================================================
   O meu perfil: cabeçalho e números de sempre; as abas numa faixa (cartão) com o ícone e o texto lado a lado,
   sem números por cima e sem sombras
   ========================================================================== */
.pf .pf-abas { display: flex; gap: 4px; margin: 0; padding: 6px; border: 1px solid var(--linha); border-radius: 22px; background: var(--sup); overflow-x: auto; scrollbar-width: none; position: static; top: auto; box-shadow: none; }
.pf .pf-abas::-webkit-scrollbar { display: none; }
.pf-abas .aba { position: relative; flex: 1 0 auto; display: inline-flex; flex-direction: row; align-items: center; justify-content: center; gap: 8px; margin: 0; padding: 9px 10px; border: 0; border-radius: 15px; background: none; color: var(--tinta-2); font: inherit; font-size: .84rem; font-weight: 750; line-height: 1.2; white-space: nowrap; cursor: pointer; box-shadow: none; transition: background .15s, color .15s; }
.pf-abas .aba:hover { background: var(--sup-2); color: var(--tinta); }
.pf-abas .aba:focus-visible { outline: 3px solid var(--azul-claro); outline-offset: 2px; }
.pfa-ic { width: 32px; height: 32px; flex: none; border-radius: 10px; display: grid; place-items: center; background: var(--azul-suave); color: var(--bic); font-size: .84rem; box-shadow: none; transition: background .15s, color .15s; }
.pfa-t { display: block; }
.pf-abas .aba[aria-selected="true"], .pf-abas .aba[aria-selected="true"]:hover { background: var(--azul-suave); color: var(--bic); border: 0; }
.pf-abas .aba[aria-selected="true"] .pfa-ic { background: var(--bic); color: var(--sobre-bic); box-shadow: none; }
.pf-abas .aba[aria-selected="true"]::after { content: none; }
@media (max-width: 760px) {
  .pf .pf-abas { gap: 2px; padding: 5px; border-radius: 18px; }
  .pf-abas .aba { flex: none; padding: 7px 12px 7px 7px; gap: 8px; font-size: .84rem; border-radius: 13px; }
  .pfa-ic { width: 30px; height: 30px; border-radius: 9px; font-size: .8rem; }
}
/* as 7 abas cabem numa linha nos portáteis (1366 px); nos ecrãs largos esticam até ao fim */
@media (min-width: 761px) {
  .pf .pf-abas { gap: 2px; padding: 5px; }
  .pf-abas .aba { gap: 6px; padding: 7px 7px; font-size: .8rem; border-radius: 14px; }
  .pfa-ic { width: 28px; height: 28px; border-radius: 9px; font-size: .82rem; }
}
@media (min-width: 1500px) {
  .pf-abas .aba { gap: 8px; padding: 9px 10px; font-size: .86rem; }
  .pfa-ic { width: 32px; height: 32px; border-radius: 10px; font-size: .84rem; }
}

/* ==========================================================================
   Perfil: os números contam de 0 até ao valor e os ícones mexem-se
   (ao entrar: cada cartão e cada ícone entram com um salto e o ícone faz o seu gesto; depois, de vez em quando,
   um gesto pequeno; ao passar o rato, repete-se). --pf-passou mantém as entradas no ponto certo quando a página
   se volta a desenhar enquanto carrega. Quem pediu menos movimento no aparelho não vê animações.
   ========================================================================== */
.pf-num-ic { transform-origin: 50% 60%; }
.pf-num-ic i { display: inline-block; transform-origin: 50% 70%; }
.pf-nums .pf-num-t b { display: inline-block; transform-origin: 0 70%; font-variant-numeric: tabular-nums; }
.pf-nums.anim .pf-num { animation: pfCartao .55s cubic-bezier(.2, .9, .3, 1.2) both; animation-delay: calc(0s - var(--pf-passou, 0ms)); }
.pf-nums.anim .pf-num:nth-child(2) { animation-delay: calc(.08s - var(--pf-passou, 0ms)); }
.pf-nums.anim .pf-num:nth-child(3) { animation-delay: calc(.16s - var(--pf-passou, 0ms)); }
.pf-nums.anim .pf-num:nth-child(4) { animation-delay: calc(.24s - var(--pf-passou, 0ms)); }
.pf-nums.anim .pf-num-ic { animation: pfIcEntra .75s cubic-bezier(.2, 1.4, .4, 1) both; animation-delay: calc(.05s - var(--pf-passou, 0ms)); }
.pf-nums.anim .pf-num:nth-child(2) .pf-num-ic { animation-delay: calc(.19s - var(--pf-passou, 0ms)); }
.pf-nums.anim .pf-num:nth-child(3) .pf-num-ic { animation-delay: calc(.33s - var(--pf-passou, 0ms)); }
.pf-nums.anim .pf-num:nth-child(4) .pf-num-ic { animation-delay: calc(.47s - var(--pf-passou, 0ms)); }
/* o gesto de cada ícone: o papel salta, o cadeado abana a abrir, o polegar dá um "gosto", o calendário vira */
.pf-num:nth-child(1) .pf-num-ic i { animation: pfSalta 7s ease-in-out 1.2s infinite; }
.pf-num:nth-child(2) .pf-num-ic i { animation: pfAbana 7s ease-in-out 2.5s infinite; }
.pf-num:nth-child(3) .pf-num-ic i { animation: pfGosto 7s ease-in-out 3.8s infinite; }
.pf-num:nth-child(4) .pf-num-ic i { animation: pfVira 7s ease-in-out 5.1s infinite; }
.pf-num:hover:nth-child(1) .pf-num-ic i { animation: pfSalta 1.1s ease-in-out; }
.pf-num:hover:nth-child(2) .pf-num-ic i { animation: pfAbana 1.1s ease-in-out; }
.pf-num:hover:nth-child(3) .pf-num-ic i { animation: pfGosto 1.1s ease-in-out; }
.pf-num:hover:nth-child(4) .pf-num-ic i { animation: pfVira 1.1s ease-in-out; }
.pf-nums .pf-num-t b.pf-pop { animation: pfPop .45s cubic-bezier(.2, 1.6, .4, 1); }
.pf-data { display: inline-flex; overflow: hidden; }
.pf-data span { display: inline-block; }
.pf-nums.anim .pf-data span { animation: pfDigito .5s cubic-bezier(.2, .9, .3, 1.1) both; animation-delay: calc(.55s + var(--i) * 45ms - var(--pf-passou, 0ms)); }
@keyframes pfCartao { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes pfIcEntra { 0% { opacity: 0; transform: scale(.3) rotate(-25deg); } 70% { opacity: 1; transform: scale(1.12) rotate(6deg); } 100% { opacity: 1; transform: none; } }
@keyframes pfSalta { 0%, 14%, 100% { transform: none; } 3% { transform: translateY(-5px) rotate(-6deg); } 6% { transform: translateY(1px); } 9% { transform: translateY(-2px) rotate(3deg); } }
@keyframes pfAbana { 0%, 14%, 100% { transform: none; } 2.5% { transform: rotate(-16deg); } 5% { transform: rotate(13deg); } 7.5% { transform: rotate(-8deg); } 10% { transform: rotate(4deg); } }
@keyframes pfGosto { 0%, 14%, 100% { transform: none; } 4% { transform: rotate(-22deg) scale(1.28); } 8% { transform: rotate(4deg) scale(.96); } 11% { transform: rotate(0) scale(1.05); } }
@keyframes pfVira { 0%, 14%, 100% { transform: none; } 5% { transform: perspective(120px) rotateX(180deg); } 10% { transform: perspective(120px) rotateX(360deg); } }
@keyframes pfPop { 0% { transform: scale(1); } 45% { transform: scale(1.22); color: var(--bic); } 100% { transform: scale(1); } }
@keyframes pfDigito { from { opacity: 0; transform: translateY(80%); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  .pf-nums.anim .pf-num, .pf-nums.anim .pf-num-ic, .pf-num .pf-num-ic i, .pf-nums .pf-num-t b.pf-pop, .pf-nums.anim .pf-data span { animation: none !important; }
}

/* ==========================================================================
   Política de privacidade: mais compacta e arrumada (resumo em 3 pontos e secções em cartões)
   ========================================================================== */
.priv .cab-pag h1 { font-size: clamp(1.45rem, 2.3vw, 1.85rem); }
.priv .cab-pag p { font-size: .95rem; max-width: 62ch; }
.priv-resumo { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 2px 0 16px; }
.priv-resumo > div { display: flex; align-items: center; gap: 12px; padding: 13px 15px; border-radius: 18px; background: var(--azul-suave); color: var(--tinta-2); font-size: .87rem; line-height: 1.4; }
.priv-resumo i { width: 36px; height: 36px; flex: none; border-radius: 11px; display: grid; place-items: center; background: var(--bic); color: var(--sobre-bic); font-size: .88rem; }
.priv-resumo strong { color: var(--tinta); }
.priv .priv-g { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; align-items: start; }
.priv .priv-sec { margin: 0; padding: 18px 20px; border-radius: 20px; background: var(--sup); border: 1px solid var(--linha); box-shadow: none; }
.priv .priv-sec h2 { display: flex; align-items: center; gap: 10px; margin: 0 0 10px; font-family: var(--f-tit); font-size: 1rem; line-height: 1.25; }
.priv .priv-sec h2 i { width: 32px; height: 32px; flex: none; border-radius: 10px; display: grid; place-items: center; background: var(--azul-suave); color: var(--bic); font-size: .82rem; }
.priv .priv-sec ul { display: grid; gap: 7px; margin: 0; padding-left: 18px; }
.priv .priv-sec li { color: var(--tinta-2); font-size: .88rem; line-height: 1.5; }
.priv .priv-sec li::marker { color: var(--bic); }
.priv .priv-sec li strong { color: var(--tinta); }
.priv .priv-sec .link, .priv .priv-sec button.link { font-size: inherit; }
.priv-nota { margin: 16px 0 0; color: var(--tinta-3); font-size: .84rem; }
@media (max-width: 760px) {
  .priv-resumo { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .priv .priv-g { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .priv .priv-sec { padding: 15px 16px; border-radius: 18px; }
}
.priv .priv-sec h2, .priv-resumo strong { letter-spacing: normal; word-spacing: normal; }

/* Comentários: reportar (janela com o motivo) e aviso para a equipa */
.com-b-rep:hover { color: var(--vermelho); }
.com-reportado { color: var(--tinta-3); cursor: default; }
.com-selo.com-selo-rep { background: var(--sup-2); color: var(--vermelho); }
.com-rep { padding: 4px 4px 0; }
.com-rep h2 { margin: 0 0 6px; font-family: var(--f-tit); font-size: 1.25rem; }
.com-rep-l { display: grid; gap: 8px; margin: 14px 0 18px; }
.com-rep-o { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 14px; border: 1.5px solid var(--linha); background: var(--sup); cursor: pointer; font-weight: 650; color: var(--tinta); }
.com-rep-o:has(input:checked) { border-color: var(--bic); background: var(--azul-suave); }
.com-rep-o input { accent-color: var(--bic); width: 18px; height: 18px; }
/* Painel: comentários reportados */
.crep-l { display: grid; gap: 12px; }
.crep-i { padding: 14px 16px; border-radius: 16px; border: 1px solid var(--linha); background: var(--sup); }
.crep-topo { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; }
.crep-n { padding: 1px 9px; border-radius: 999px; background: var(--sup-2); color: var(--vermelho); font-size: .78rem; font-weight: 800; }
.crep-topo small { color: var(--tinta-2); }
.crep-txt { margin: 8px 0; color: var(--tinta); line-height: 1.5; overflow-wrap: anywhere; }
.crep-mot { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 10px; }
.crep-mot span { padding: 2px 10px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); font-size: .8rem; font-weight: 750; }
.crep-acoes { display: flex; flex-wrap: wrap; gap: 8px; }


/* ==========================================================================
   Estude ao Vivo
   ========================================================================== */
.aov { display: grid; gap: 16px; }
.av-abas { display: inline-flex; flex-wrap: wrap; gap: 4px; padding: 4px; border-radius: 14px; background: var(--sup-2); justify-self: start; }
.av-aba { border: 0; background: none; padding: 8px 16px; border-radius: 10px; font: inherit; font-weight: 750; color: var(--tinta-2); cursor: pointer; }
.av-aba b { margin-left: 4px; padding: 0 7px; border-radius: 999px; background: var(--bic); color: var(--sobre-bic); font-size: .76rem; }
.av-aba[aria-selected="true"] { background: var(--sup); color: var(--bic); }
.av-grelha { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(270px, 100%), 1fr)); gap: 14px; }
.av-card { display: grid; gap: 6px; padding: 16px 18px; border-radius: 20px; background: var(--sup); border: 1px solid var(--linha); color: var(--tinta); text-decoration: none; transition: transform .15s ease, border-color .15s ease; }
.av-card:hover { transform: translateY(-2px); border-color: var(--bic); }
.av-card-topo, .av-ficha-topo { display: flex; align-items: center; gap: 8px; }
.av-preco { margin-left: auto; padding: 2px 10px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); font-weight: 800; font-size: .82rem; }
.av-tit { font-family: var(--f-tit); font-size: 1.05rem; line-height: 1.3; }
.av-cad { color: var(--tinta-2); font-size: .86rem; }
.av-quando { color: var(--tinta-2); font-size: .82rem; text-transform: capitalize; }
.av-quando i { margin-right: 6px; color: var(--bic); }
.av-card-pe { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 4px; }
.av-anf { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; font-size: .86rem; }
.av-anf .avatar, .av-anf img, .av-anf svg { width: 28px; height: 28px; border-radius: 50%; }
.av-vagas { color: var(--tinta-3); font-size: .8rem; font-weight: 750; }
.av-vagas i { margin-right: 5px; }
.av-est { display: inline-flex; align-items: center; gap: 6px; padding: 2px 10px; border-radius: 999px; background: var(--sup-2); color: var(--tinta-2); font-size: .78rem; font-weight: 800; }
.av-est.av-vivo { background: #DC2626; color: #fff; }
.av-est.av-vivo i { width: 7px; height: 7px; border-radius: 50%; background: #fff; animation: av-pisca 1.2s ease-in-out infinite; }
.av-est.av-aberta { background: var(--azul-suave); color: var(--bic); }
.av-est.av-fim { color: var(--tinta-3); }
@keyframes av-pisca { 50% { opacity: .25; } }
.av-pag { display: grid; gap: 14px; max-width: 860px; }
.av-voltar { justify-self: start; }
.av-ficha { padding: 24px; border-radius: 24px; background: var(--sup); border: 1px solid var(--linha); display: grid; gap: 12px; }
.av-ficha h1 { margin: 4px 0 0; font-family: var(--f-tit); font-size: clamp(1.4rem, 2.6vw, 1.9rem); }
.av-media { color: #F59E0B; font-weight: 800; font-size: .86rem; }
.av-dl { display: grid; grid-template-columns: max-content 1fr; gap: 6px 16px; margin: 4px 0; }
.av-dl dt { color: var(--tinta-3); font-weight: 750; font-size: .86rem; }
.av-dl dd { margin: 0; text-transform: none; }
.av-dl dd:first-of-type { text-transform: capitalize; }
.av-temas { display: flex; flex-wrap: wrap; gap: 6px; }
.av-temas span { padding: 2px 10px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); font-size: .8rem; font-weight: 750; }
.av-desc { margin: 0; color: var(--tinta-2); line-height: 1.55; }
.av-acoes { display: flex; flex-wrap: wrap; gap: 8px; }
.av-acoes .btn svg { width: 18px; height: 18px; }
.av-form { display: grid; gap: 14px; max-width: 720px; margin: 0 auto; }
.av-form .campo { display: grid; gap: 6px; }
.av-form .campo > span { font-weight: 750; font-size: .9rem; }
.av-form input, .av-form select, .av-form textarea { width: 100%; padding: 11px 13px; border-radius: 12px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta); font: inherit; }
.av-form-l3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.av-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.av-chip { padding: 8px 14px; border-radius: 999px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta); font: inherit; font-weight: 700; font-size: .84rem; cursor: pointer; }
.av-chip[aria-pressed="true"] { border-color: var(--bic); background: var(--azul-suave); color: var(--bic); }
.av-estrelas { display: flex; flex-direction: row-reverse; justify-content: flex-end; gap: 4px; margin-bottom: 12px; }
.av-estrelas input { position: absolute; opacity: 0; pointer-events: none; }
.av-estrelas span { font-size: 2rem; color: var(--linha-2); cursor: pointer; }
.av-estrelas label:has(input:checked) span, .av-estrelas label:has(input:checked) ~ label span { color: #F59E0B; }
/* a sala */
body.sala-aberta { overflow: hidden; }
#sala-raiz { position: fixed; inset: 0; z-index: 9000; background: var(--fundo); }
.sala { position: absolute; inset: 0; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; }
.sala-topo { display: flex; align-items: center; gap: 12px; padding: 10px 16px; padding-top: calc(10px + env(safe-area-inset-top, 0px)); background: var(--sup); border-bottom: 1px solid var(--linha); }
.sala-tt { min-width: 0; flex: 1; }
.sala-tt strong { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sala-tt small { color: var(--tinta-3); }
.sala-info { display: flex; flex-wrap: wrap; gap: 12px; color: var(--tinta-2); font-weight: 750; font-size: .86rem; }
.sala-info i { margin-right: 5px; color: var(--bic); }
.sala-falam { color: #DC2626; }
.sala-falam i { color: #DC2626 !important; }
.sala-corpo { display: grid; grid-template-columns: minmax(0, 1fr) 320px; min-height: 0; }
.sala-palco { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; gap: 8px; padding: 10px; min-height: 0; min-width: 0; }
.sala-quadro { position: relative; display: grid; place-items: center; min-height: 0; overflow: hidden; border-radius: 16px; background: var(--sup-2); }
.sala-quadro canvas { position: absolute; border-radius: 10px; box-shadow: 0 2px 14px rgba(15, 23, 42, .08); touch-action: none; }
#sq-tinta { cursor: crosshair; }
.sq-laser { position: absolute; width: 16px; height: 16px; margin: -8px 0 0 -8px; border-radius: 50%; background: #EF4444; box-shadow: 0 0 0 6px rgba(239, 68, 68, .25), 0 0 18px #EF4444; opacity: 0; transition: opacity .25s; pointer-events: none; z-index: 2; }
.sq-laser.on { opacity: 1; }
.sq-reacoes { position: absolute; inset: 0; pointer-events: none; overflow: hidden; z-index: 3; }
.sq-reac-voa { position: absolute; bottom: 10px; padding: 4px 10px; border-radius: 999px; background: var(--sup); box-shadow: 0 4px 14px rgba(15, 23, 42, .15); font-weight: 800; animation: sq-voa 2.6s ease-out forwards; }
@keyframes sq-voa { from { transform: translateY(0); opacity: 1; } to { transform: translateY(-260px); opacity: 0; } }
.sq-espera { position: absolute; inset: 0; z-index: 4; display: grid; place-content: center; justify-items: center; gap: 6px; text-align: center; padding: 20px; background: rgba(255, 255, 255, .86); color: var(--tinta-2); }
.sq-espera i { font-size: 1.8rem; color: var(--bic); }
.sq-espera strong { color: var(--tinta); font-size: 1.15rem; }
.sq-ferr { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; padding: 6px; border-radius: 14px; background: var(--sup); border: 1px solid var(--linha); }
.sq-b { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-width: 34px; height: 34px; padding: 0 8px; border: 0; border-radius: 10px; background: none; color: var(--tinta-2); font: inherit; font-weight: 750; cursor: pointer; }
.sq-b:hover { background: var(--sup-2); }
.sq-b.on { background: var(--azul-suave); color: var(--bic); }
.sq-pdf { background: var(--azul-suave); color: var(--bic); }
.sq-cor { width: 24px; height: 24px; border-radius: 50%; border: 2px solid var(--sup); box-shadow: 0 0 0 1.5px var(--linha-2); background: var(--c); cursor: pointer; padding: 0; }
.sq-cor.on { box-shadow: 0 0 0 2.5px var(--bic); }
.sq-esp i { display: block; width: 18px; border-radius: 4px; background: currentColor; }
.sq-sep { width: 1px; height: 22px; margin: 0 4px; background: var(--linha); }
.sq-fundo { height: 34px; padding: 0 8px; border-radius: 10px; border: 1px solid var(--linha-2); background: var(--sup); color: var(--tinta); font: inherit; font-size: .84rem; }
.sala-paginas { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px; color: var(--tinta-2); font-weight: 750; font-size: .86rem; }
.sq-pdf-nav { display: inline-flex; align-items: center; gap: 4px; color: var(--bic); }
.sala-lado { display: grid; grid-template-rows: auto auto minmax(0, 1fr); gap: 10px; padding: 10px; border-left: 1px solid var(--linha); background: var(--sup); min-height: 0; overflow: auto; }
.sala-lado h4 { margin: 0 0 6px; font-size: .86rem; color: var(--tinta-2); }
.sala-lado h4 b { padding: 0 7px; border-radius: 999px; background: #DC2626; color: #fff; font-size: .76rem; }
.sl-ped { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding: 8px 10px; border-radius: 12px; background: var(--sup-2); margin-bottom: 6px; }
.sl-ped span { flex: 1; font-weight: 700; font-size: .86rem; }
.sl-vazio { color: var(--tinta-3); font-size: .84rem; margin: 0; }
.sl-chat { display: grid; grid-template-rows: auto minmax(120px, 1fr) auto; min-height: 0; }
.sl-msgs { overflow-y: auto; display: grid; align-content: start; gap: 6px; padding-right: 4px; }
.sl-msg { margin: 0; font-size: .88rem; line-height: 1.4; overflow-wrap: anywhere; }
.sl-msg b { color: var(--bic); }
.sl-apagar { border: 0; background: none; color: var(--tinta-3); cursor: pointer; font-size: 1rem; }
.sl-escrever { display: flex; gap: 6px; margin-top: 8px; }
.sl-escrever input { flex: 1; min-width: 0; padding: 9px 12px; border-radius: 12px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta); font: inherit; }
.sl-sond { display: grid; gap: 6px; padding: 12px; border-radius: 14px; background: var(--azul-suave); }
.sl-sond-o { padding: 9px 12px; border-radius: 12px; border: 1.5px solid var(--bic); background: var(--sup); color: var(--tinta); font: inherit; font-weight: 700; text-align: left; cursor: pointer; }
.sl-sond-o.on { background: var(--bic); color: var(--sobre-bic); }
.sl-sond-r { position: relative; display: flex; justify-content: space-between; gap: 8px; padding: 6px 10px; border-radius: 10px; background: var(--sup); overflow: hidden; font-size: .86rem; }
.sl-sond-r span, .sl-sond-r b { position: relative; z-index: 1; }
.sl-sond-r i { position: absolute; inset: 0 auto 0 0; background: rgba(30, 64, 230, .14); }
.sala-barra { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px; padding: 10px 16px; padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px)); background: var(--sup); border-top: 1px solid var(--linha); }
.sala-reac { display: inline-flex; flex-wrap: wrap; gap: 6px; }
.sq-reac { padding: 8px 12px; border-radius: 999px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta); font: inherit; font-weight: 750; font-size: .84rem; cursor: pointer; }
.sala-replay .sala-corpo { grid-template-columns: minmax(0, 1fr); }
.sala-replay .sala-barra input[type=range] { flex: 1; max-width: 520px; accent-color: var(--bic); }
.sala-replay .sala-barra select { padding: 6px 10px; border-radius: 10px; border: 1px solid var(--linha-2); background: var(--sup); color: var(--tinta); font: inherit; }
/* painel */
.adm-av { display: grid; gap: 14px; }
.adm-av .campo { display: grid; gap: 6px; margin-top: 10px; }
.adm-av .campo > span { font-weight: 750; font-size: .9rem; }
.adm-av .campo input { padding: 10px 12px; border-radius: 12px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta); font: inherit; }
.av-sw { display: flex; gap: 12px; align-items: flex-start; cursor: pointer; }
.av-sw input { width: 20px; height: 20px; margin-top: 2px; accent-color: var(--bic); }
.av-sw small { display: block; color: var(--tinta-3); }
.av-ok { color: #052296; font-style: normal; font-weight: 800; }
.av-teste { color: var(--tinta-2); font-size: .88rem; }
.av-copiar { display: flex; gap: 6px; }
.av-copiar input { flex: 1; min-width: 0; }
.av-barra { margin: 4px 0 10px; height: 8px; border-radius: 999px; background: var(--sup-3); overflow: hidden; }
.av-barra span { display: block; height: 100%; background: var(--bic); }
.adm-av-l { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.adm-av-l li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 14px; border-radius: 14px; border: 1px solid var(--linha); background: var(--sup); }
.adm-av-l small { display: block; color: var(--tinta-2); }
.adm-av-ac { display: flex; flex-wrap: wrap; gap: 6px; }
@media (max-width: 900px) {
  .sala-corpo { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1.4fr) minmax(0, 1fr); }
  .sala-lado { border-left: 0; border-top: 1px solid var(--linha); }
  .av-form-l3 { grid-template-columns: minmax(0, 1fr); }
  .sala-info span:not(:first-child) { display: none; }
}
/* Estude ao Vivo: correções de layout (fundo opaco da sala, quadro com altura própria, nada a alargar a página) */
.aov, .av-pag { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.aov > *, .av-pag > * { min-width: 0; }
.av-abas, .av-voltar { align-self: flex-start; max-width: 100%; }
#sala-raiz, .sala { background: var(--sup-2); }
.sala-palco { display: flex; flex-direction: column; }
.sala-quadro { flex: 1 1 auto; min-height: 180px; }
@media (max-width: 900px) {
  .sala-palco { padding: 6px; gap: 6px; }
  .sq-ferr { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .sala-barra .btn { padding-inline: 12px; }
}
.aov, .av-pag { width: 100%; }
.sala { grid-template-columns: minmax(0, 1fr); }
.sala-topo > * { min-width: 0; }

/* ==========================================================================
   Estude ao Vivo — design (flyers, lista, página da sessão, sala escura)
   ========================================================================== */
.nav-breve { margin-left: auto; padding: 2px 8px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); font-size: .68rem; font-weight: 800; letter-spacing: .02em; text-transform: uppercase; }
.nav-vivo { margin-left: auto; display: inline-flex; align-items: center; gap: 5px; padding: 2px 8px; border-radius: 999px; background: #DC2626; color: #fff; font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.nav-vivo i { width: 6px; height: 6px; border-radius: 50%; background: #fff; animation: av-pisca 1.2s ease-in-out infinite; }
/* flyer */
.av-flyer { position: relative; overflow: hidden; isolation: isolate; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px; align-items: center; padding: clamp(20px, 3vw, 32px); border-radius: 28px; color: #fff; text-decoration: none;
  background: radial-gradient(120% 140% at 100% 0%, color-mix(in srgb, var(--c2) 85%, #fff 15%) 0%, var(--c2) 35%, var(--c1) 100%); box-shadow: 0 18px 40px -18px color-mix(in srgb, var(--c2) 70%, transparent); transition: transform .2s ease, box-shadow .2s ease; }
.av-flyer:hover { transform: translateY(-3px); box-shadow: 0 26px 50px -20px color-mix(in srgb, var(--c2) 80%, transparent); }
.av-flyer::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: radial-gradient(rgba(255,255,255,.14) 1px, transparent 1.2px); background-size: 18px 18px; mask-image: linear-gradient(90deg, transparent, #000 60%); }
.avf-ondas { position: absolute; left: 0; right: 0; bottom: 0; width: 100%; height: 55%; z-index: -1; }
.avf-esq { display: grid; gap: 8px; min-width: 0; }
.avf-topo { display: flex; align-items: center; gap: 10px; }
.avf-marca { display: inline-flex; align-items: center; gap: 8px; padding: 5px 12px 5px 8px; border-radius: 999px; background: rgba(255,255,255,.14); backdrop-filter: blur(6px); font-size: .8rem; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; }
.avf-marca svg { width: 16px; height: 16px; }
.avf-vivo { display: inline-flex; align-items: center; gap: 8px; padding: 5px 12px; border-radius: 999px; background: #EF4444; font-size: .8rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; box-shadow: 0 0 0 4px rgba(239,68,68,.25); }
.avf-vivo i { width: 8px; height: 8px; border-radius: 50%; background: #fff; animation: av-pisca 1.1s ease-in-out infinite; }
.avf-barras { display: inline-flex; align-items: flex-end; gap: 3px; height: 18px; }
.avf-barras i { width: 4px; height: 100%; border-radius: 3px; background: currentColor; opacity: .9; animation: av-onda 1s ease-in-out infinite; transform-origin: bottom; }
@keyframes av-onda { 0%, 100% { transform: scaleY(.3); } 50% { transform: scaleY(1); } }
.avf-kicker { color: rgba(255,255,255,.78); font-size: .82rem; font-weight: 700; letter-spacing: .02em; }
.avf-tit { margin: 0; font-family: var(--f-tit); font-size: clamp(1.45rem, 3vw, 2.2rem); line-height: 1.08; letter-spacing: -.01em; max-width: 22ch; }
.avf-sub { margin: 0; color: rgba(255,255,255,.85); font-size: .92rem; }
.avf-sub b { color: #fff; }
.avf-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.avf-chips span { padding: 3px 10px; border-radius: 999px; background: rgba(255,255,255,.16); font-size: .8rem; font-weight: 700; }
.avf-cta { justify-self: start; display: inline-flex; align-items: center; gap: 10px; margin-top: 6px; padding: 11px 18px; border-radius: 999px; background: #fff; color: var(--c1); font-weight: 800; font-size: .92rem; box-shadow: 0 8px 20px -8px rgba(0,0,0,.4); }
.avf-cta i { transition: transform .2s ease; }
.av-flyer:hover .avf-cta i { transform: translateX(4px); }
.avf-dir { display: grid; justify-items: center; gap: 10px; }
.avf-data { display: grid; justify-items: center; min-width: 128px; padding: 16px 18px; border-radius: 22px; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.22); backdrop-filter: blur(8px); text-align: center; }
.avf-dia { font-size: .82rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.85); }
.avf-hora { font-family: var(--f-tit); font-size: 2.3rem; line-height: 1.05; }
.avf-dt { font-size: .8rem; color: rgba(255,255,255,.8); text-transform: capitalize; }
.avf-vagas { font-size: .8rem; font-weight: 700; color: rgba(255,255,255,.85); }
.avf-vagas i { margin-right: 6px; }
.av-inicio { margin-bottom: 18px; }
.avf-inicio .avf-tit { font-size: clamp(1.25rem, 2.4vw, 1.7rem); }
/* "Brevemente" */
.av-breve { position: relative; overflow: hidden; isolation: isolate; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 28px; align-items: center; padding: clamp(24px, 4vw, 48px); border-radius: 32px; color: #fff;
  background: radial-gradient(120% 140% at 100% 0%, color-mix(in srgb, var(--c2) 85%, #fff 15%) 0%, var(--c2) 35%, var(--c1) 100%); }
.av-breve::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: radial-gradient(rgba(255,255,255,.14) 1px, transparent 1.2px); background-size: 18px 18px; }
.avb-txt { display: grid; gap: 14px; justify-items: start; }
.avb-selo { padding: 6px 14px; border-radius: 999px; background: #fff; color: var(--c1); font-weight: 900; font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; }
.av-breve h1 { margin: 0; font-family: var(--f-tit); font-size: clamp(1.8rem, 4.4vw, 3rem); line-height: 1.04; letter-spacing: -.015em; }
.av-breve p { margin: 0; max-width: 54ch; color: rgba(255,255,255,.86); line-height: 1.6; }
.avb-l { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 6px 0; padding: 0; list-style: none; }
.avb-l li { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 14px; background: rgba(255,255,255,.12); font-weight: 700; font-size: .88rem; }
.avb-btn { background: #fff; color: var(--c1); }
.avb-arte { position: relative; display: grid; place-items: center; color: #fff; }
.avb-quadro { position: relative; width: min(100%, 360px); aspect-ratio: 16 / 10; border-radius: 20px; background: #fff; box-shadow: 0 30px 60px -25px rgba(0,0,0,.6); transform: rotate(-3deg); }
.avb-quadro span { position: absolute; border-radius: 6px; }
.avb-l1 { left: 10%; top: 18%; width: 46%; height: 8px; background: #CBD5F5; }
.avb-l2 { left: 10%; top: 34%; width: 62%; height: 8px; background: #E2E8F8; }
.avb-l3 { left: 10%; top: 62%; width: 70%; height: 4px; background: var(--c2); transform: rotate(-4deg); }
.avb-circ { right: 12%; top: 46%; width: 70px; height: 40px; border: 3px solid #EF4444; border-radius: 50% !important; }
.avb-arte .avf-barras { position: absolute; right: 8%; bottom: 6%; height: 34px; }
.avb-arte .avf-barras i { width: 6px; }
/* lista */
.av-cab { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 14px; }
.av-cab h1 { margin: 6px 0 4px; font-family: var(--f-tit); font-size: clamp(1.6rem, 3vw, 2.2rem); letter-spacing: -.01em; }
.av-cab p { margin: 0; color: var(--tinta-2); }
.av-sobre { display: inline-flex; align-items: center; gap: 8px; color: var(--bic); font-weight: 800; font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; }
.av-sobre svg { width: 18px; height: 18px; }
.av-aviso-eq { display: flex; gap: 12px; align-items: flex-start; padding: 12px 16px; border-radius: 16px; background: var(--azul-suave); color: var(--tinta-2); font-size: .9rem; }
.av-aviso-eq i { color: var(--bic); margin-top: 3px; }
.av-lista { display: grid; gap: 12px; }
.av-item { display: grid; grid-template-columns: 96px minmax(0, 1fr) auto; gap: 16px; align-items: center; padding: 12px 18px 12px 12px; border-radius: 22px; background: var(--sup); border: 1px solid var(--linha); color: var(--tinta); text-decoration: none; transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease; }
.av-item:hover { border-color: color-mix(in srgb, var(--bic) 40%, var(--linha)); transform: translateY(-1px); box-shadow: 0 12px 26px -18px rgba(30, 64, 230, .45); }
.avi-data { display: grid; justify-items: center; align-content: center; height: 96px; border-radius: 18px; color: #fff; background: linear-gradient(150deg, var(--c2), var(--c1)); text-align: center; }
.avi-data span { font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; opacity: .85; }
.avi-data b { font-family: var(--f-tit); font-size: 2rem; line-height: 1; }
.avi-data small { font-size: .74rem; opacity: .85; text-transform: capitalize; }
.avi-corpo { display: grid; gap: 6px; min-width: 0; }
.avi-topo { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.avi-cad { color: var(--tinta-3); font-size: .8rem; font-weight: 700; }
.avi-tit { font-family: var(--f-tit); font-size: 1.08rem; line-height: 1.25; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.avi-pe { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; color: var(--tinta-2); font-size: .82rem; }
.avi-meta { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; }
.avi-ocup { width: 44px; height: 6px; border-radius: 999px; background: var(--sup-3); overflow: hidden; display: inline-block; }
.avi-ocup i { display: block; height: 100%; border-radius: inherit; background: var(--bic); }
.avi-preco { align-self: start; padding: 4px 12px; border-radius: 999px; background: var(--sup-2); color: var(--tinta); font-weight: 800; font-size: .8rem; white-space: nowrap; }
.avi-preco.gratis { background: #DCE2FC; color: #162665; }
.av-vazio { display: grid; justify-items: center; gap: 6px; padding: 36px 20px; border-radius: 22px; border: 1.5px dashed var(--linha-2); color: var(--tinta-2); text-align: center; }
.av-vazio svg { width: 36px; height: 36px; color: var(--bic); }
.av-vazio strong { color: var(--tinta); }
/* página da sessão */
.av-voltar { display: inline-flex; align-items: center; gap: 8px; color: var(--tinta-2); font-weight: 700; text-decoration: none; }
.av-voltar:hover { color: var(--bic); }
.av-pag { max-width: 1080px; }
.av-capa { position: relative; overflow: hidden; isolation: isolate; display: grid; gap: 10px; justify-items: start; padding: clamp(22px, 3.5vw, 36px); border-radius: 28px; color: #fff; background: radial-gradient(120% 140% at 100% 0%, color-mix(in srgb, var(--c2) 85%, #fff 15%) 0%, var(--c2) 35%, var(--c1) 100%); }
.av-capa::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: radial-gradient(rgba(255,255,255,.14) 1px, transparent 1.2px); background-size: 18px 18px; mask-image: linear-gradient(90deg, transparent, #000 70%); }
.av-capa h1 { margin: 0; font-family: var(--f-tit); font-size: clamp(1.6rem, 3.6vw, 2.5rem); line-height: 1.08; max-width: 24ch; }
.avc-topo { display: flex; align-items: center; gap: 10px; }
.avc-topo .av-est:not(.av-vivo) { background: rgba(255,255,255,.16); color: #fff; }
.avc-media { color: #FDE68A; font-weight: 800; }
.avc-anf { display: inline-flex; align-items: center; gap: 10px; margin-top: 4px; padding: 6px 14px 6px 6px; border-radius: 999px; background: rgba(255,255,255,.14); }
.avc-anf .avatar, .avc-anf img, .avc-anf svg { width: 36px; height: 36px; border-radius: 50%; }
.avc-anf small { display: block; font-size: .74rem; opacity: .8; }
.av-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 18px; align-items: start; }
.av-info { display: grid; gap: 14px; }
.av-bloco { padding: 20px 22px; border-radius: 22px; background: var(--sup); border: 1px solid var(--linha); }
.av-bloco h3 { margin: 0 0 10px; font-family: var(--f-tit); font-size: 1.05rem; }
.av-bloco p { margin: 0; color: var(--tinta-2); line-height: 1.6; }
.av-como { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.av-como li { display: flex; gap: 12px; align-items: flex-start; color: var(--tinta-2); font-size: .9rem; }
.av-como i { width: 34px; height: 34px; flex: none; display: grid; place-items: center; border-radius: 12px; background: var(--azul-suave); color: var(--bic); }
.av-como b { display: block; color: var(--tinta); }
.av-bilhete { position: sticky; top: 84px; display: grid; gap: 14px; padding: 16px; border-radius: 24px; background: var(--sup); border: 1px solid var(--linha); box-shadow: 0 20px 40px -30px rgba(15, 23, 42, .35); }
.avt-data { display: grid; justify-items: center; padding: 16px; border-radius: 18px; color: #fff; background: linear-gradient(150deg, var(--c2), var(--c1)); text-align: center; }
.avt-data span { font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; opacity: .85; }
.avt-data b { font-family: var(--f-tit); font-size: 2.4rem; line-height: 1.05; }
.avt-data small { font-size: .82rem; opacity: .85; text-transform: capitalize; }
.avt-linhas { display: grid; gap: 8px; }
.avt-linhas > div:not(.avt-ocup) { display: flex; justify-content: space-between; gap: 10px; font-size: .9rem; }
.avt-linhas span { color: var(--tinta-3); }
.avt-linhas b { text-align: right; }
.avt-ocup { height: 6px; border-radius: 999px; background: var(--sup-3); overflow: hidden; }
.avt-ocup i { display: block; height: 100%; background: var(--bic); border-radius: inherit; }
.avt-cta { width: 100%; justify-content: center; }
.avt-cta svg { width: 18px; height: 18px; }
.avt-ok { display: flex; gap: 10px; align-items: center; padding: 12px 14px; border-radius: 14px; background: #DCE2FC; color: #162665; font-weight: 700; font-size: .88rem; }
.avt-extra { display: flex; flex-wrap: wrap; gap: 6px; }
.avt-extra .btn { flex: 1 1 auto; justify-content: center; }
.avt-nota { margin: 0; color: var(--tinta-3); font-size: .82rem; line-height: 1.45; }
/* a sala (escura, como nas plataformas de aulas ao vivo) */
#sala-raiz, .sala { background: #0A0F1E; color: #E8ECF8; }
.sala { --sl-sup: #111831; --sl-sup2: #18213F; --sl-linha: rgba(255,255,255,.08); --sl-t2: #A5AFCB; }
.sala-topo { gap: 16px; padding: 10px 18px; padding-top: calc(10px + env(safe-area-inset-top, 0px)); background: var(--sl-sup); border-bottom: 1px solid var(--sl-linha); justify-content: space-between; }
.st-esq { display: flex; align-items: center; gap: 12px; min-width: 0; }
.st-dir { display: flex; align-items: center; gap: 8px; }
.sala-tt strong { color: #fff; font-family: var(--f-tit); }
.sala-tt small { color: var(--sl-t2); }
.sala-info { gap: 6px; }
.st-pill { display: inline-flex; align-items: center; gap: 6px; padding: 6px 11px; border-radius: 999px; background: var(--sl-sup2); color: #E8ECF8; font-weight: 750; font-size: .8rem; }
.st-pill i { color: #8FA4FF !important; margin: 0 !important; }
.st-falam { background: rgba(239, 68, 68, .16); color: #FCA5A5; }
.st-falam i { color: #F87171 !important; }
.st-sair { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border: 0; border-radius: 999px; background: var(--sl-sup2); color: #E8ECF8; font: inherit; font-weight: 750; cursor: pointer; }
.st-sair:hover { background: #DC2626; color: #fff; }
.sala .av-est.av-aberta { background: rgba(143, 164, 255, .16); color: #C7D2FE; }
.sala-palco { padding: 12px; gap: 10px; }
.sala-quadro { background: radial-gradient(circle at 50% 40%, #141C38 0%, #0A0F1E 75%); border-radius: 18px; }
.sala-quadro canvas { border-radius: 12px; box-shadow: 0 30px 60px -30px rgba(0,0,0,.8), 0 0 0 1px rgba(255,255,255,.06); }
.sq-espera { background: rgba(10, 15, 30, .82); color: var(--sl-t2); backdrop-filter: blur(4px); }
.sq-espera strong { color: #fff; font-family: var(--f-tit); font-size: 1.3rem; }
.sq-espera .avf-barras { color: #8FA4FF; height: 28px; }
.sq-ferr { gap: 6px; padding: 6px; border: 0; background: transparent; justify-content: center; }
.sq-grupo { display: inline-flex; align-items: center; gap: 2px; padding: 4px; border-radius: 14px; background: var(--sl-sup); border: 1px solid var(--sl-linha); }
.sala .sq-b { color: #C9D2EE; }
.sala .sq-b:hover { background: var(--sl-sup2); color: #fff; }
.sala .sq-b.on { background: #2547F5; color: #fff; }
.sala .sq-pdf { background: rgba(143, 164, 255, .14); color: #C7D2FE; }
.sala .sq-cor { border-color: var(--sl-sup); box-shadow: 0 0 0 1.5px rgba(255,255,255,.18); }
.sala .sq-cor.on { box-shadow: 0 0 0 2.5px #8FA4FF; }
.sala .sq-fundo { background: var(--sl-sup2); color: #E8ECF8; border-color: var(--sl-linha); }
.sala-paginas { color: var(--sl-t2); }
.sp-grupo { display: inline-flex; align-items: center; gap: 4px; padding: 3px 6px; border-radius: 999px; background: var(--sl-sup); border: 1px solid var(--sl-linha); }
.sp-pdf { color: #C7D2FE; }
.sala-lado { padding: 0; border-left: 1px solid var(--sl-linha); background: var(--sl-sup); grid-template-rows: auto minmax(0, 1fr); gap: 0; overflow: hidden; }
.sl-abas { display: flex; gap: 4px; padding: 10px; border-bottom: 1px solid var(--sl-linha); }
.sl-aba { flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 8px 10px; border: 0; border-radius: 10px; background: none; color: var(--sl-t2); font: inherit; font-weight: 750; font-size: .86rem; cursor: pointer; }
.sl-aba[aria-selected="true"] { background: var(--sl-sup2); color: #fff; }
.sl-aba b { padding: 0 6px; border-radius: 999px; background: #EF4444; color: #fff; font-size: .72rem; }
.sl-conteudo { min-height: 0; overflow: auto; padding: 10px; display: grid; }
.sl-chat { display: grid; grid-template-rows: minmax(0, 1fr) auto; min-height: 0; height: 100%; }
.sl-msgs { gap: 10px; padding: 4px 2px; }
.sl-msg { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; gap: 8px; align-items: start; margin: 0; }
.sl-msg-av { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; background: var(--c); color: #fff; font-weight: 800; font-size: .82rem; }
.sl-msg b { display: block; color: #C7D2FE; font-size: .82rem; }
.sl-msg p { margin: 1px 0 0; color: #E8ECF8; font-size: .9rem; line-height: 1.4; overflow-wrap: anywhere; }
.sl-msg.minha b { color: #8FA4FF; }
.sala .sl-apagar { color: var(--sl-t2); }
.sl-escrever { gap: 8px; margin-top: 10px; padding: 6px; border-radius: 16px; background: var(--sl-sup2); }
.sl-escrever input { border: 0; background: transparent; color: #fff; padding: 8px 10px; }
.sl-escrever input::placeholder { color: var(--sl-t2); }
.sl-escrever button { width: 40px; height: 40px; flex: none; border: 0; border-radius: 12px; background: #2547F5; color: #fff; cursor: pointer; }
.sl-vazio { display: grid; justify-items: center; gap: 8px; padding: 30px 14px; color: var(--sl-t2); text-align: center; font-size: .86rem; }
.sl-vazio i, .sl-vazio .sb-emoji { font-size: 1.6rem; color: #8FA4FF; }
.sl-pedidos { display: grid; gap: 8px; align-content: start; }
.sl-ped { display: flex; align-items: center; gap: 10px; padding: 10px; border-radius: 14px; background: var(--sl-sup2); margin: 0; }
.sl-ped.aceite { box-shadow: inset 3px 0 0 #2243C5; }
.sl-ped-ic { font-size: 1.2rem; }
.sl-ped-t { flex: 1; min-width: 0; }
.sl-ped-t b { display: block; color: #fff; font-size: .9rem; }
.sl-ped-t small { color: var(--sl-t2); }
.sl-mini { min-width: 34px; height: 34px; padding: 0 10px; border: 0; border-radius: 10px; background: #263159; color: #E8ECF8; font: inherit; font-weight: 750; font-size: .8rem; cursor: pointer; }
.sl-mini.ok { background: #1632A3; color: #fff; }
.sl-mini.perigo:hover { background: #DC2626; }
.sl-sond { display: grid; gap: 8px; padding: 14px; border-radius: 16px; background: var(--sl-sup2); align-content: start; }
.sl-sond-k { color: #8FA4FF; font-size: .76rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.sl-sond strong { color: #fff; font-size: 1rem; }
.sl-sond-o { display: flex; gap: 10px; align-items: center; padding: 11px 12px; border-radius: 12px; border: 1.5px solid #2E3A66; background: transparent; color: #E8ECF8; font: inherit; font-weight: 700; text-align: left; cursor: pointer; }
.sl-sond-o b { width: 24px; height: 24px; flex: none; display: grid; place-items: center; border-radius: 8px; background: #263159; font-size: .82rem; }
.sl-sond-o.on { border-color: #2547F5; background: rgba(37, 71, 245, .22); }
.sl-sond-r { background: #0F1630; color: #E8ECF8; }
.sl-sond-r i { background: rgba(37, 71, 245, .45); }
.sl-sond-r em { font-style: normal; font-weight: 800; position: relative; z-index: 1; }
.sl-sond-t { color: var(--sl-t2); }
.sala-barra { gap: 10px; padding: 10px 16px; padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px)); background: var(--sl-sup); border-top: 1px solid var(--sl-linha); }
.sb-b { display: grid; justify-items: center; gap: 4px; min-width: 76px; padding: 4px 6px; border: 0; background: none; color: var(--sl-t2); font: inherit; cursor: pointer; }
.sb-ic { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; background: var(--sl-sup2); color: #fff; font-size: 1.05rem; transition: background .15s ease, transform .15s ease; }
.sb-b:hover .sb-ic { background: #263159; transform: translateY(-1px); }
.sb-b.on .sb-ic { background: #2547F5; }
.sb-b.off .sb-ic { background: #3B1D2A; color: #FCA5A5; }
.sb-b.perigo .sb-ic { background: #DC2626; }
.sb-b.perigo:hover .sb-ic { background: #B91C1C; }
.sb-rot { font-size: .76rem; font-weight: 750; white-space: nowrap; }
.sb-emoji { font-size: 1.25rem; line-height: 1; }
.sb-comecar { display: inline-flex; align-items: center; gap: 10px; height: 48px; padding: 0 22px; border: 0; border-radius: 999px; background: #EF4444; color: #fff; font: inherit; font-weight: 800; cursor: pointer; box-shadow: 0 0 0 4px rgba(239, 68, 68, .2); }
.sb-comecar:hover { background: #DC2626; }
.sb-reac-w { position: relative; }
.sb-reac { position: absolute; bottom: calc(100% + 8px); left: 50%; transform: translateX(-50%); display: flex; gap: 6px; padding: 8px; border-radius: 16px; background: var(--sl-sup2); box-shadow: 0 16px 40px -10px rgba(0,0,0,.6); white-space: nowrap; z-index: 5; }
.sala .sq-reac { border-color: #2E3A66; background: #111831; color: #fff; }
.sq-reac-voa { background: #fff; color: #111827; }
.sala-replay .sala-barra input[type=range] { accent-color: #8FA4FF; }
.sala-replay .sala-barra select { background: var(--sl-sup2); color: #fff; border-color: var(--sl-linha); }
@media (max-width: 900px) {
  .av-flyer { grid-template-columns: minmax(0, 1fr); }
  .avf-dir { grid-auto-flow: column; justify-content: start; align-items: center; }
  .avf-data { min-width: 0; padding: 10px 14px; grid-auto-flow: column; gap: 10px; align-items: baseline; }
  .avf-hora { font-size: 1.6rem; }
  .av-breve { grid-template-columns: minmax(0, 1fr); }
  .avb-arte { display: none; }
  .avb-l { grid-template-columns: minmax(0, 1fr); }
  .av-grid { grid-template-columns: minmax(0, 1fr); }
  .av-bilhete { position: static; order: -1; }
  .av-item { grid-template-columns: 72px minmax(0, 1fr); padding: 10px 12px 10px 10px; gap: 12px; }
  .avi-data { height: 78px; border-radius: 16px; }
  .avi-data b { font-size: 1.6rem; }
  .avi-preco { grid-column: 2; justify-self: start; }
  .sala-topo { padding-inline: 10px; }
  .st-sair span, .sala-tt small { display: none; }
  .sb-b { min-width: 62px; }
  .sb-ic { width: 44px; height: 44px; }
  .sq-ferr { justify-content: flex-start; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .sq-grupo { flex: none; }
  .sala-lado { border-left: 0; border-top: 1px solid var(--sl-linha); }
}
.aov, .av-pag { align-items: stretch; }
.aov > *, .av-pag > * { flex-shrink: 0; }

/* Estude ao Vivo: página de criar/editar a sessão */
.avn { display: flex; flex-direction: column; gap: 16px; width: 100%; max-width: 1100px; }
.avn > * { flex-shrink: 0; min-width: 0; }
.avn-cab h1 { margin: 6px 0 0; font-family: var(--f-tit); font-size: clamp(1.6rem, 3vw, 2.1rem); }
.avn-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.avn-col { display: grid; gap: 16px; }
.avn-sec { display: grid; gap: 14px; padding: 20px 22px; border-radius: 22px; background: var(--sup); border: 1px solid var(--linha); }
.avn-sec h3 { display: flex; align-items: center; gap: 10px; margin: 0; font-family: var(--f-tit); font-size: 1.05rem; }
.avn-sec h3 span { width: 26px; height: 26px; display: grid; place-items: center; border-radius: 9px; background: var(--azul-suave); color: var(--bic); font-size: .8rem; font-weight: 900; }
.avn-ajuda { margin: -6px 0 0; color: var(--tinta-3); font-size: .84rem; }
.avn-campo { display: grid; gap: 6px; }
.avn-campo > span { font-weight: 750; font-size: .9rem; }
.avn-campo small { color: var(--tinta-3); font-weight: 600; }
.avn-campo input, .avn-campo select, .avn-campo textarea { width: 100%; padding: 11px 13px; border-radius: 12px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta); font: inherit; }
.avn-campo input:focus, .avn-campo select:focus, .avn-campo textarea:focus { outline: none; border-color: var(--bic); box-shadow: 0 0 0 3px var(--azul-suave); }
.avn-linha { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 12px; align-items: start; padding-top: 12px; border-top: 1px solid var(--linha); }
.avn-linha:first-of-type { border-top: 0; padding-top: 0; }
.avn-rot { padding-top: 7px; font-weight: 750; font-size: .9rem; }
.avn-tags { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.av-tag { display: inline-flex; align-items: center; gap: 6px; padding: 5px 6px 5px 12px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); font-weight: 750; font-size: .84rem; }
.av-tag button { width: 22px; height: 22px; display: grid; place-items: center; border: 0; border-radius: 50%; background: rgba(30, 64, 230, .14); color: var(--bic); font-size: 1rem; line-height: 1; cursor: pointer; }
.av-tag button:hover { background: var(--bic); color: var(--sobre-bic); }
.av-tag-todos { padding-right: 12px; background: var(--sup-2); color: var(--tinta-2); }
.av-tag-todos i { font-size: .8rem; }
.avn-mais { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; border: 1.5px dashed var(--linha-2); background: none; color: var(--tinta-2); font: inherit; font-weight: 750; font-size: .84rem; cursor: pointer; }
.avn-mais:hover { border-color: var(--bic); color: var(--bic); }
.avn-temas { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; min-height: 48px; padding: 6px 8px; border-radius: 12px; border: 1.5px solid var(--linha-2); background: var(--sup); cursor: text; }
.avn-temas:focus-within { border-color: var(--bic); box-shadow: 0 0 0 3px var(--azul-suave); }
.avn-temas input { flex: 1 1 140px; min-width: 120px; border: 0; padding: 6px; background: transparent; color: var(--tinta); font: inherit; }
.avn-temas input:focus { outline: none; }
.avn-hora { display: flex; gap: 8px; }
.avn-hora input { flex: 1; min-width: 0; }
.avn-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.avn-acoes { display: grid; gap: 8px; }
.avn-acoes .btn { justify-content: center; }
.avn-ir { background: #EF4444 !important; box-shadow: 0 0 0 4px rgba(239, 68, 68, .18); }
.avn-ir svg, .avt-ir svg { width: 18px; height: 18px; }
.avt-ir { background: #EF4444 !important; }
.sl-pessoas { display: grid; gap: 6px; align-content: start; }
.sl-n { margin: 0 0 4px; color: var(--sl-t2); font-size: .84rem; }
.sl-n b { color: #fff; font-size: 1.1rem; }
.sl-pessoa { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 12px; background: var(--sl-sup2); }
.sl-pessoa small.eq { color: #8FA4FF; }
.st-ver { background: rgba(37, 71, 245, .22); color: #fff; }
@media (max-width: 900px) {
  .avn-grid { grid-template-columns: minmax(0, 1fr); }
  .avn-linha { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .avn-rot { padding-top: 0; }
}

/* Estude ao Vivo: sem sombras pesadas, só o azul do site */
.av-flyer, .av-flyer:hover, .av-item:hover, .av-bilhete, .avf-cta, .avb-quadro, .sq-reac-voa, .sb-reac, .avf-vivo, .sb-comecar, .avn-ir { box-shadow: none; }
.av-flyer:hover, .av-item:hover { transform: none; }
.av-item:hover { border-color: var(--bic); }
.sala-quadro canvas { box-shadow: 0 0 0 1px rgba(255, 255, 255, .08); }
.av-flyer, .av-breve, .av-capa { background: radial-gradient(120% 140% at 100% 0%, #3A5BFF 0%, var(--c2) 40%, var(--c1) 100%); }

/* Estude ao Vivo: chamada à ação, dias, flyer com imagem e avatar, carrossel, sala (avatares, microfones, reações) */
.aov-hero { position: relative; overflow: hidden; isolation: isolate; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 20px; align-items: center; padding: clamp(20px, 3vw, 30px) clamp(20px, 3vw, 32px); border-radius: 26px; color: #fff; background: radial-gradient(120% 140% at 100% 0%, #3A5BFF 0%, var(--c2) 40%, var(--c1) 100%); }
.aov-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: radial-gradient(rgba(255,255,255,.14) 1px, transparent 1.2px); background-size: 18px 18px; mask-image: linear-gradient(90deg, transparent, #000 60%); }
.aov-hero-t { display: grid; gap: 8px; justify-items: start; }
.aov-hero h1 { margin: 0; font-family: var(--f-tit); font-size: clamp(1.5rem, 3vw, 2.1rem); line-height: 1.08; }
.aov-hero p { margin: 0; color: rgba(255,255,255,.84); }
.aov-hero-b { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
.aov-hero-vivo, .aov-hero-criar { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border: 0; border-radius: 999px; font: inherit; font-weight: 800; cursor: pointer; }
.aov-hero-vivo { background: #EF4444; color: #fff; }
.aov-hero-vivo i { width: 8px; height: 8px; border-radius: 50%; background: #fff; animation: av-pisca 1.1s ease-in-out infinite; }
.aov-hero-criar { background: #fff; color: var(--c1); }
.aov-hero > .avf-barras { height: 46px; gap: 5px; }
.aov-hero > .avf-barras i { width: 7px; opacity: .55; }
.aov-vivas { display: grid; gap: 14px; }
.aov-dia h3 { display: flex; align-items: baseline; gap: 10px; margin: 6px 0 10px; font-family: var(--f-tit); font-size: 1.05rem; }
.aov-dia h3 span { padding: 3px 12px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); font-size: .82rem; }
.aov-dia h3 small { color: var(--tinta-3); font-weight: 650; text-transform: capitalize; }
.aov-dia + .aov-dia { margin-top: 6px; }
.avf-anf { display: inline-flex; align-items: center; gap: 10px; padding: 6px 14px 6px 6px; border-radius: 999px; background: rgba(255,255,255,.14); color: #fff; }
.avf-anf .av, .avf-anf img, .avf-anf svg { width: 34px; height: 34px; border-radius: 50%; flex: none; }
.avf-anf small { display: block; font-size: .72rem; opacity: .8; }
.avf-anf b { font-size: .86rem; }
.av-flyer.com-capa, .av-capa.com-capa { background: linear-gradient(90deg, var(--c1) 0%, color-mix(in srgb, var(--c1) 84%, transparent) 52%, color-mix(in srgb, var(--c1) 35%, transparent) 100%), var(--capa) center / cover no-repeat; }
.avi-data.com-capa { background: linear-gradient(rgba(21, 48, 184, .55), rgba(21, 48, 184, .75)), var(--capa) center / cover no-repeat; }
.av-inicio { position: relative; }
.avf-nav { display: flex; align-items: center; justify-content: center; gap: 12px; margin-top: 8px; }
.avf-seta { width: 36px; height: 36px; border: 1px solid var(--linha-2); border-radius: 50%; background: var(--sup); color: var(--tinta); cursor: pointer; }
.avf-seta:hover { border-color: var(--bic); color: var(--bic); }
.avf-pontos { display: inline-flex; gap: 6px; }
.avf-pontos i { width: 8px; height: 8px; border-radius: 50%; background: var(--linha-2); }
.avf-pontos i.on { background: var(--bic); width: 22px; border-radius: 999px; }
.avn-capa { display: flex; gap: 14px; align-items: center; }
.avn-capa-img, .avn-capa-vazia { width: 96px; height: 96px; flex: none; border-radius: 16px; object-fit: cover; background: var(--sup-2); display: grid; place-items: center; color: var(--tinta-3); font-size: 1.6rem; }
.avn-capa-b { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.avn-capa-b small { flex-basis: 100%; color: var(--tinta-3); font-size: .8rem; }
.sl-msg .av, .sl-msg img.av, .sl-pessoa .av, .sl-pessoa img.av { width: 30px; height: 30px; border-radius: 50%; flex: none; font-size: .82rem; }
.sl-sys { padding: 4px 10px; border-radius: 999px; background: var(--sl-sup2); color: var(--sl-t2); font-size: .82rem; justify-self: center; }
.sl-mic { color: var(--sl-t2); font-size: .9rem; }
.sl-mic.on { color: #2243C5; animation: av-pisca 1s ease-in-out infinite; }
.sq-reac-voa { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px 6px 6px; border-radius: 999px; background: #fff; color: #111827; }
.sq-reac-voa .av, .sq-reac-voa img.av { width: 26px; height: 26px; border-radius: 50%; font-size: .76rem; }
.sq-reac-voa b { font-size: 1.05rem; }
.sq-reac-voa small { color: #4B5563; font-weight: 750; }
.sb-reac { max-width: min(92vw, 520px); overflow-x: auto; scrollbar-width: none; padding: 8px 10px; }
.sb-reac::-webkit-scrollbar { display: none; }
.sb-reac .sq-reac { flex: none; }
.adm-av-st { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 6px; color: var(--tinta-2); font-size: .8rem; }
.adm-av-st b { color: var(--tinta); }
@media (max-width: 900px) {
  .aov-hero { grid-template-columns: minmax(0, 1fr); }
  .aov-hero > .avf-barras { display: none; }
  .sb-reac { left: 0; right: 0; transform: none; justify-content: flex-start; }
}

/* Estude ao Vivo: as janelas de confirmação aparecem por cima da sala (antes ficavam por trás) */
body.sala-aberta .fundo, body.sala-aberta .lp-fundo { z-index: 9600; }
/* título simples da área */
.aov-cab { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.aov-cab h1 { display: flex; align-items: center; gap: 12px; margin: 0; font-family: var(--f-tit); font-size: clamp(1.6rem, 3vw, 2.1rem); letter-spacing: -.01em; }
.aov-ic { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 14px; background: var(--azul-suave); color: var(--bic); }
.aov-ic svg { width: 24px; height: 24px; }
/* flyer na página da sessão */
.avc-flyer { position: absolute; right: clamp(16px, 3vw, 32px); top: 50%; transform: translateY(-50%); width: clamp(110px, 18vw, 190px); aspect-ratio: 1; object-fit: cover; border-radius: 18px; border: 3px solid rgba(255, 255, 255, .85); }
.av-capa:has(.avc-flyer) { padding-right: calc(clamp(110px, 18vw, 190px) + clamp(32px, 5vw, 60px)); min-height: calc(clamp(110px, 18vw, 190px) + 48px); }
/* sem verde à toa: tudo no azul do site */
.avt-ok { background: var(--azul-suave); color: var(--bic); }
.avi-preco.gratis { background: var(--azul-suave); color: var(--bic); }
.av-ok { color: var(--bic); }
.sl-ped.aceite { box-shadow: inset 3px 0 0 #2547F5; }
.sl-mini.ok, .sl-mini.on { background: #2547F5; color: #fff; }
.sl-mic.on { color: #8FA4FF; }
/* topo: Terminar (anfitrião) */
.st-terminar { background: #DC2626; color: #fff; }
.st-terminar:hover { background: #B91C1C; }
/* barra: microfone bloqueado, mão levantada, folhas (reações e microfones) por cima da barra, sem cortes */
.sala-barra { position: relative; }
.sb-b.bloq .sb-ic { background: #1F2547; color: #6B7598; }
.sb-b.mao .sb-ic { background: #F59E0B; color: #111827; }
.sb-folha { position: absolute; left: 50%; bottom: calc(100% + 10px); transform: translateX(-50%); z-index: 20; display: flex; gap: 8px; width: max-content; max-width: calc(100vw - 24px); padding: 10px; border-radius: 18px; background: #18213F; border: 1px solid rgba(255, 255, 255, .1); overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.sb-folha::-webkit-scrollbar { display: none; }
.sb-folha .sq-reac { flex: none; padding: 9px 14px; font-size: .95rem; }
.sb-mics { flex-direction: column; width: min(320px, calc(100vw - 24px)); overflow: visible; }
.sb-op { display: flex; align-items: center; gap: 10px; width: 100%; padding: 11px 12px; border: 0; border-radius: 12px; background: transparent; color: #E8ECF8; font: inherit; font-weight: 700; text-align: left; cursor: pointer; }
.sb-op:hover { background: #263159; }
.sb-op.on { background: rgba(37, 71, 245, .25); }
.sb-op.perigo { color: #FCA5A5; }
.sb-op .sb-ok { margin-left: auto; color: #8FA4FF; }
.sb-mics small { color: #A5AFCB; padding: 4px 6px 0; font-size: .8rem; }
.sb-reac-w, .sb-reac { display: none; }
@media (max-width: 900px) {
  .sb-rot { display: none; }
  .sb-b { min-width: 52px; }
  .sala-barra { gap: 14px; }
  .sb-folha { left: 12px; right: 12px; transform: none; width: auto; }
  .sb-mics { left: 12px; right: auto; }
}

.st-pill { white-space: nowrap; }
@media (max-width: 900px) { .st-txt { display: none; } .st-dir { gap: 6px; } .sala-topo { gap: 10px; } }

/* Estude ao Vivo: mãos levantadas (texto em cima, botões em baixo) */
.sl-ped-v { display: grid; gap: 10px; padding: 12px; }
.sl-ped-cab { display: flex; align-items: center; gap: 10px; min-width: 0; }
.sl-ped-cab .av, .sl-ped-cab img.av { width: 36px; height: 36px; border-radius: 50%; flex: none; font-size: .8rem; }
.sl-ped-cab .sl-ped-t b { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sl-ped-acoes { display: flex; gap: 8px; }
.sl-ped-acoes .sl-mini { flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 40px; font-size: .86rem; }
.sl-ped-acoes .sl-mini.x { flex: 0 0 44px; }
/* topo: título e quem dá a aula (com avatar), também no telemóvel */
.st-sub { display: flex; align-items: center; gap: 10px; min-width: 0; margin-top: 2px; }
.st-anf { display: inline-flex; align-items: center; gap: 6px; min-width: 0; color: #C7D2FE; font-size: .8rem; font-weight: 700; text-decoration: none; }
.st-anf .av, .st-anf img.av { width: 20px; height: 20px; border-radius: 50%; flex: none; font-size: .6rem; }
.st-anf span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.st-cad { color: var(--sl-t2); font-size: .8rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* quadro maior: menos margens, páginas na barra de ferramentas ou num selo no canto, botão de ecrã inteiro */
.sala-palco { padding: 6px 8px; gap: 6px; }
.sala-corpo { grid-template-columns: minmax(0, 1fr) 300px; }
.sq-pags { display: inline-flex; gap: 4px; align-items: center; }
.sq-pags:empty { display: none; }
.sq-pags .sp-grupo { padding: 2px 4px; }
.sq-pag-ind { position: absolute; left: 10px; top: 10px; z-index: 5; display: inline-flex; gap: 6px; }
.sq-pag-ind .sp-grupo { padding: 3px 10px; background: rgba(15, 22, 48, .78); border: 0; color: #E8ECF8; font-size: .8rem; }
.sq-cheio { position: absolute; top: 10px; right: 10px; z-index: 5; width: 38px; height: 38px; display: grid; place-items: center; border: 0; border-radius: 12px; background: rgba(15, 22, 48, .78); color: #fff; cursor: pointer; }
.sq-cheio:hover { background: #2547F5; }
body.sala-cheia .sala-lado { display: none; }
body.sala-cheia .sala-corpo { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); }
body.sala-cheia .sala-topo { padding-block: 6px; }
body.sala-cheia .st-sub { display: none; }
body.sala-cheia .sala-replay .sala-topo { display: none; }
.sala-replay .sala-barra { flex-wrap: nowrap; }
.rp-cheio { flex: none; }
@media (max-width: 900px) {
  .sala-tt strong { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.2; font-size: .95rem; }
  .sala-tt small { display: block; }
  .st-cad { display: none; }
  .sala-palco { padding: 4px; }
  .sala-quadro { border-radius: 12px; }
  .sala-replay .sala-barra { gap: 8px; padding-inline: 10px; }
}
/* telemóvel na horizontal: o quadro ocupa o ecrã (o chat volta ao rodar para a vertical) */
@media (orientation: landscape) and (max-height: 560px) {
  .sala-corpo { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); }
  .sala-lado { display: none; }
  .sala-topo { padding: 4px 10px; padding-top: calc(4px + env(safe-area-inset-top, 0px)); }
  .st-sub { display: none; }
  .sala-tt strong { -webkit-line-clamp: 1; }
  .sala-barra { padding: 4px 10px; padding-bottom: calc(4px + env(safe-area-inset-bottom, 0px)); gap: 10px; }
  .sb-ic { width: 38px; height: 38px; }
  .sb-rot { display: none; }
  .sq-ferr { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; justify-content: flex-start; }
  .sala-replay .sala-topo { padding-block: 2px; }
}
/* acertos: avatar das mãos levantadas não estica; telemóvel na vertical volta a ter o quadro em cima; na horizontal os botões passam para o lado */
.sl-ped-cab > :first-child { flex: 0 0 auto; }
.sl-ped-cab .sl-ped-t { flex: 1; text-align: left; min-width: 0; }
@media (max-width: 900px) {
  .sala-corpo { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1.25fr) minmax(0, 1fr); }
}
@media (orientation: landscape) and (max-height: 560px) {
  .sala-corpo { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); }
  .sala:not(.sala-replay) { grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto minmax(0, 1fr); }
  .sala:not(.sala-replay) .sala-topo { grid-column: 1 / -1; }
  .sala:not(.sala-replay) .sala-corpo { grid-column: 1; grid-row: 2; }
  .sala:not(.sala-replay) .sala-barra { grid-column: 2; grid-row: 2; flex-direction: column; flex-wrap: nowrap; justify-content: center; gap: 8px; border-top: 0; border-left: 1px solid var(--sl-linha); padding: 6px calc(6px + env(safe-area-inset-right, 0px)) 6px 6px; }
  .sala:not(.sala-replay) .sb-folha { left: auto; right: calc(100% + 8px); top: auto; bottom: 6px; transform: none; width: max-content; max-width: 70vw; }
  .sala:not(.sala-replay) .sb-mics { bottom: 6px; }
}

/* ==========================================================================
   Responsividade (auditoria de 320 px a 1440 px): nada passa da largura do ecrã
   ========================================================================== */
/* regras de segurança: campos e imagens nunca empurram a página para os lados */
input, select, textarea { max-width: 100%; min-width: 0; }
img, video, canvas, svg { max-width: 100%; }
.etiquetas { flex-wrap: wrap; min-width: 0; max-width: 100%; }
.et { max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
/* Alterar perfil: o bloco do avatar parte em duas linhas em ecrãs estreitos */
.def-boneco { flex-wrap: wrap; }
.def-boneco > div { flex: 1 1 170px; min-width: 0; }
/* painel → Ao Vivo: a lista das sessões cabe sempre */
.adm-av-l li > div { flex: 1 1 220px; min-width: 0; overflow-wrap: anywhere; }
/* criar sessão: as grelhas não podem crescer com o tamanho natural dos campos */
.avn-grid > *, .avn-col > *, .avn-sec > * { min-width: 0; }
.avn-2 { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.avn-campo input, .avn-campo select, .avn-campo textarea, .avn-hora input { min-width: 0; width: 100%; }
@media (max-width: 380px) {
  .avn-2 { grid-template-columns: minmax(0, 1fr); }
  .avn-hora { flex-wrap: wrap; }
  .avn-hora .btn { flex: 1 1 auto; justify-content: center; }
  .avn-capa { flex-wrap: wrap; }
  .avn-sec { padding: 16px; }
}
/* sala em ecrãs pequenos na vertical: "Ao vivo" em cima e o título por baixo, com a largura toda */
@media (max-width: 700px) and (orientation: portrait) {
  .sala-topo { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "sinal dir" "tt tt"; align-items: center; row-gap: 6px; column-gap: 8px; padding: 8px 12px; padding-top: calc(8px + env(safe-area-inset-top, 0px)); }
  .sala-topo .st-esq { display: contents; }
  .sala-topo .sala-sinal { grid-area: sinal; justify-self: start; }
  .sala-topo .sala-tt { grid-area: tt; }
  .sala-topo .st-dir { grid-area: dir; }
  .sala-tt strong { -webkit-line-clamp: 2; font-size: 1rem; }
  .st-sub { margin-top: 4px; }
  .st-cad { display: inline; }
  .sala-replay .sala-topo .av-est { grid-area: sinal; justify-self: start; }
}

/* rede de segurança: nenhuma sobra de 1 ou 2 px cria deslize para o lado */
html, body { max-width: 100%; overflow-x: clip; }
@media (max-width: 900px) { body:not(.sem-lateral) .rodape { margin-inline: -16px; padding-inline: 16px; } }
.adm-av-l { grid-template-columns: minmax(0, 1fr); }
.adm-av-l li { min-width: 0; }
.adm-av-ac .btn { white-space: normal; text-align: center; }
.avn-hora { flex-wrap: wrap; }
.avn-hora input { flex: 1 1 210px; }
.avn-hora .btn { flex: 0 0 auto; }
@media (max-width: 360px) {
  .btn { white-space: normal; text-align: center; }
  .uni { padding: 14px; }
}
@media (max-width: 340px) { .avn-hora input { font-size: .8rem; padding: 9px 6px; } .avn-sec { padding: 14px 12px; } }
/* sala: os 5 botões cabem numa linha em ecrãs estreitos; a barra de ferramentas desliza em vez de ocupar 2 linhas */
@media (max-width: 420px) { .sala-barra { gap: 6px; padding-inline: 8px; } .sb-b { min-width: 48px; padding: 4px 2px; } }
@media (max-width: 1180px) { .sq-ferr { flex-wrap: nowrap; overflow-x: auto; justify-content: flex-start; scrollbar-width: none; } .sq-ferr::-webkit-scrollbar { display: none; } .sq-grupo { flex: none; } }
/* ecrãs estreitos: cartaz da sessão (data, quem dá a aula e inscritos em linha que parte), números do perfil e da carteira */
@media (max-width: 600px) {
  .avf-dir { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; justify-content: flex-start; }
  .avf-data { display: inline-flex; align-items: baseline; gap: 8px; padding: 8px 12px; border-radius: 14px; min-width: 0; }
  .avf-hora { font-size: 1.35rem; }
  .avf-anf { padding: 4px 12px 4px 4px; }
  .avf-anf .av, .avf-anf img, .avf-anf svg { width: 28px; height: 28px; }
  .av-flyer { gap: 14px; }
}
@media (max-width: 420px) {
  .pf-num { padding: 12px; gap: 8px; min-width: 0; }
  .pf-num > div, .pf-num span, .pf-num b, .pf-num strong { min-width: 0; overflow-wrap: anywhere; }
  .pf-num b, .pf-num strong { font-size: 1.05rem; }
  .sb2-nums { flex-wrap: wrap; gap: 8px; }
  .sb2-nums > div { flex: 1 1 calc(50% - 8px); min-width: 0; }
  .sb2-nums span { overflow-wrap: anywhere; }
}
/* números do perfil em ecrãs estreitos: ícone em cima e texto com a largura toda (sem partir palavras) */
@media (max-width: 420px) {
  .pf-num { flex-direction: column; align-items: flex-start; gap: 8px; }
  .pf-num > div, .pf-num span, .pf-num b, .pf-num strong { overflow-wrap: break-word; word-break: normal; }
  .pf-num b, .pf-num strong { font-size: 1rem; }
}
@media (max-width: 300px) { .avn-hora input { font-size: .74rem; padding: 8px 4px; } }

/* Painel → Diagnóstico */
.adm-diag { display: grid; gap: 14px; }
.adm-diag header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
.diag-l, .diag-erros { display: grid; gap: 8px; margin: 10px 0 0; padding: 0; list-style: none; }
.diag-l li { display: flex; align-items: flex-start; gap: 12px; padding: 12px 14px; border-radius: 14px; border: 1px solid var(--linha); background: var(--sup); }
.diag-l li > i { margin-top: 3px; color: var(--bic); }
.diag-l li.mal { border-color: color-mix(in srgb, #DC2626 40%, var(--linha)); }
.diag-l li.mal > i { color: #DC2626; }
.diag-l li div { flex: 1; min-width: 0; }
.diag-l li strong { display: block; }
.diag-l li small { display: block; color: var(--tinta-2); overflow-wrap: anywhere; }
.diag-l li em { font-style: normal; color: var(--tinta-3); font-size: .82rem; white-space: nowrap; }
.diag-erros li { padding: 12px 14px; border-radius: 14px; border: 1px solid var(--linha); background: var(--sup); min-width: 0; }
.diag-e-topo { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; }
.diag-e-topo b { color: #DC2626; }
.diag-e-topo small { color: var(--tinta-3); margin-left: auto; }
.diag-erros p { margin: 6px 0; overflow-wrap: anywhere; }
.diag-erros code { display: block; color: var(--tinta-2); font-size: .82rem; overflow-wrap: anywhere; }

/* a lista com pesquisa e as janelas aparecem por cima dos ecrãs inteiros (criar treino, criar sessão…) */
.lp-fundo { z-index: 170; }
.fundo { z-index: 280; }
.pl-barra { height: 8px; border-radius: 999px; background: var(--sup-3); overflow: hidden; }
.pl-barra span { display: block; height: 100%; border-radius: inherit; background: var(--bic); transition: width .4s ease; }

.sl-mini2 { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 10px; border: 1px solid var(--linha-2); background: var(--sup); color: var(--tinta-2); cursor: pointer; }
.sl-mini2:hover:not(:disabled) { border-color: var(--bic); color: var(--bic); }
.sl-mini2:disabled { opacity: .4; cursor: default; }

/* ==========================================================================
   Estude ao Vivo: fim da sessão, chat no ecrã inteiro, zoom, texto no quadro, replay em vídeo, gráficos
   ========================================================================== */
.av-abas { flex-wrap: nowrap; overflow-x: auto; max-width: 100%; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.av-abas::-webkit-scrollbar { display: none; }
.av-abas > * { flex: none; }
.av-flyer-img { display: block; width: 100%; max-width: 440px; margin-top: 12px; border-radius: 18px; border: 1px solid var(--linha); }
.sl-fim { position: absolute; inset: 0; z-index: 60; display: grid; place-items: center; padding: 16px; background: rgba(6, 10, 26, .82); backdrop-filter: blur(6px); }
.sl-fim-c { display: grid; justify-items: center; gap: 12px; width: min(440px, 100%); padding: 26px 22px; border-radius: 24px; background: #141B36; border: 1px solid rgba(255, 255, 255, .1); text-align: center; }
.sl-fim-c > svg { width: 48px; height: 48px; color: #8FA4FF; }
.sl-fim-c h2 { margin: 0; font-family: var(--f-tit); }
.sl-fim-c p { margin: 0; color: #C7D0EA; }
.sl-fim-c small { color: #A5AFCB; }
.sl-fim-q { display: grid; gap: 8px; justify-items: center; }
.sl-fim-b { display: flex; gap: 10px; }
.sl-fim-v { display: grid; justify-items: center; gap: 4px; min-width: 110px; padding: 12px 16px; border-radius: 16px; border: 1.5px solid rgba(255, 255, 255, .15); background: #1C2547; color: #E8ECF8; font: inherit; font-weight: 800; cursor: pointer; }
.sl-fim-v span { font-size: 1.8rem; }
.sl-fim-v.on, .sl-fim-v:hover { border-color: #4C6BFF; background: rgba(37, 71, 245, .25); }
.sl-fim-acoes { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.sq-chat-b { position: absolute; top: 56px; right: 10px; z-index: 5; width: 38px; height: 38px; display: grid; place-items: center; border: 0; border-radius: 12px; background: rgba(15, 22, 48, .78); color: #fff; cursor: pointer; }
.sq-chat-b.on { background: #2547F5; }
.sq-chat-n { position: absolute; top: -5px; right: -5px; min-width: 18px; height: 18px; padding: 0 4px; border-radius: 999px; background: #DC2626; color: #fff; font-size: .72rem; display: grid; place-items: center; }
body.sala-cheia:not(.sala-sem-lado) .sala-lado { display: flex; }
body.sala-cheia:not(.sala-sem-lado) .sala-corpo { grid-template-columns: minmax(0, 1fr) 300px; }
body.sala-sem-lado .sala-lado { display: none !important; }
body.sala-sem-lado .sala-corpo { grid-template-columns: minmax(0, 1fr) !important; grid-template-rows: minmax(0, 1fr) !important; }
.sq-zoom { position: absolute; right: 10px; bottom: 10px; z-index: 5; display: inline-flex; align-items: center; gap: 2px; padding: 4px; border-radius: 14px; background: rgba(15, 22, 48, .82); }
.sq-zoom .sq-b { width: 34px; height: 32px; color: #E8ECF8; }
.sq-zoom .sq-zoom-v { width: auto; min-width: 52px; padding: 0 8px; font-size: .82rem; font-weight: 800; color: #E8ECF8; }
.sq-zoom-ver { padding: 6px 10px; }
.sq-texto-in { position: absolute; z-index: 6; min-width: 160px; max-width: 60%; padding: 6px 10px; border-radius: 10px; border: 2px solid #2547F5; background: rgba(255, 255, 255, .96); font: 600 1rem var(--f-tit, inherit); transform: translateY(-50%); outline: 0; }
.sala-video .rp-video { flex: 1; display: grid; place-items: center; padding: 12px; min-height: 0; background: #070B1A; }
.sala-video video { width: 100%; max-width: 1200px; max-height: calc(100dvh - 120px); border-radius: 14px; background: #000; }
.adm-grafs { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr)); gap: 12px; }
.adm-graf { width: 100%; height: 120px; display: block; }
.adm-graf rect { fill: var(--bic); }
.adm-graf rect:hover { fill: #4C6BFF; }
.adm-graf-r { display: flex; justify-content: space-around; gap: 2px; color: var(--tinta-3); font-size: .7rem; overflow: hidden; }
.adm-graf-r span { flex: 1; text-align: center; white-space: nowrap; overflow: hidden; }
.adm-fixe { display: grid; gap: 8px; }
.adm-fixe-b { height: 14px; border-radius: 999px; background: #FECACA; overflow: hidden; }
.adm-fixe-b span { display: block; height: 100%; background: var(--bic); }
.adm-fixe p { margin: 0; }
body.sala-cheia:not(.sala-sem-lado) .sala-lado { display: grid; }

/* ==========================================================================
   Sala ao vivo como página (nada do site por trás) e modo horizontal
   ========================================================================== */
body.sala-aberta { overflow: hidden; background: #0B1022; }
body.sala-aberta > :not(#sala-raiz):not(#modal-raiz):not(#lista-raiz):not(#toasts):not(script):not(style):not(svg) { display: none !important; }
body.sala-aberta #sala-raiz { position: relative; inset: auto; width: 100%; height: 100dvh; z-index: 1; }
html:has(body.sala-aberta) { background: #0B1022; }
.sq-chat-b { display: none !important; }
/* ver o quadro na horizontal: no telemóvel na vertical a sala roda (iPhone); com ecrã inteiro o telemóvel roda sozinho (Android) */
body.sala-horizontal .sala-lado { display: none !important; }
body.sala-horizontal .sala-corpo { grid-template-columns: minmax(0, 1fr) !important; grid-template-rows: minmax(0, 1fr) !important; }
body.sala-horizontal .sala:not(.sala-replay) { grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto minmax(0, 1fr); }
body.sala-horizontal .sala:not(.sala-replay) .sala-topo { grid-column: 1 / -1; display: flex; padding: 4px 12px; }
body.sala-horizontal .sala:not(.sala-replay) .sala-topo .st-esq { display: flex; }
body.sala-horizontal .st-sub { display: none; }
body.sala-horizontal .sala-tt strong { -webkit-line-clamp: 1; }
body.sala-horizontal .sala:not(.sala-replay) .sala-corpo { grid-column: 1; grid-row: 2; }
body.sala-horizontal .sala:not(.sala-replay) .sala-barra { grid-column: 2; grid-row: 2; flex-direction: column; flex-wrap: nowrap; justify-content: center; gap: 8px; border-top: 0; border-left: 1px solid var(--sl-linha); padding: 6px; }
body.sala-horizontal .sb-rot { display: none; }
body.sala-horizontal .sb-ic { width: 40px; height: 40px; }
body.sala-horizontal .sala:not(.sala-replay) .sb-folha { left: auto; right: calc(100% + 8px); top: auto; bottom: 6px; transform: none; width: max-content; max-width: 70vh; }
body.sala-horizontal .sala-palco { padding: 4px; }
@media (orientation: portrait) {
  body.sala-aberta.sala-horizontal #sala-raiz { position: fixed; top: 0; left: 100vw; width: 100vh; height: 100vw; transform: rotate(90deg); transform-origin: top left; }
  @supports (height: 100dvh) { body.sala-aberta.sala-horizontal #sala-raiz { width: 100dvh; height: 100dvw; left: 100dvw; } }
}
/* fim da sessão: Gostei / Não gostei com ícones */
.sl-fim-v { display: inline-flex; flex-direction: row; align-items: center; gap: 10px; min-width: 0; padding: 12px 18px; font-size: 1rem; }
.sl-fim-v i { font-size: 1.25rem; }
.sl-fim-v.on i, .sl-fim-v[aria-pressed="true"] i { color: #8FA4FF; }
.sl-fim-acoes .btn.on { background: #1C2547; color: #C7D2FE; }
/* replay: página com o leitor de vídeo */
.avr { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.avr-player { position: relative; width: 100%; aspect-ratio: 16 / 9; border-radius: 20px; overflow: hidden; background: #000; }
.avr-player video { position: absolute; inset: 0; width: 100%; height: 100%; background: #000; }
.avr-acoes { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
.avr-vel { display: flex; gap: 6px; }
.avr-sem { display: grid; justify-items: center; gap: 12px; padding: 30px 20px; border-radius: 20px; background: var(--sup); border: 1px solid var(--linha); text-align: center; }
.avr-sem p { margin: 0; color: var(--tinta-2); max-width: 52ch; }
.avr-info { display: grid; gap: 10px; padding: 18px 20px; border-radius: 20px; background: var(--sup); border: 1px solid var(--linha); }
.avr-info h1 { margin: 0; font-family: var(--f-tit); font-size: clamp(1.3rem, 2.8vw, 1.8rem); line-height: 1.2; }
.avr-info p { margin: 0; color: var(--tinta-2); line-height: 1.55; }
.avr-anf { display: inline-flex; align-items: center; gap: 10px; }
.avr-anf .av, .avr-anf img.av { width: 38px; height: 38px; border-radius: 50%; }
.avr-anf span { display: grid; }
.avr-anf small { color: var(--tinta-3); }
/* criar sessão: entrada livre */
.avn-livre { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; border-radius: 14px; border: 1.5px solid var(--linha-2); background: var(--sup); cursor: pointer; }
.avn-livre input { width: 20px; height: 20px; margin-top: 2px; accent-color: var(--bic); flex: none; }
.avn-livre span { display: grid; gap: 2px; }
.avn-livre small { color: var(--tinta-2); }
.avn-livre:has(input:checked) { border-color: var(--bic); background: var(--azul-suave); }
.avn-livre-on label:nth-child(2) { display: none; }
.avn-livre-on { grid-template-columns: minmax(0, 1fr) !important; }

/* ==========================================================================
   Carteira (saldo claro, como as apps de banco) e "Ganhar pontos"
   ========================================================================== */
.wl { display: grid; gap: 18px; padding: clamp(20px, 3vw, 28px); border-radius: 28px; background: var(--sup); border: 1px solid var(--linha); }
.wl-topo { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.wl-saldo { display: grid; gap: 6px; min-width: 0; }
.wl-rot { color: var(--tinta-2); font-weight: 700; font-size: .9rem; }
.wl-val { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.wl-val b { font-family: var(--f-tit); font-size: clamp(2.6rem, 7vw, 3.6rem); line-height: 1; letter-spacing: -.02em; color: var(--tinta); }
.wl-val span { color: var(--tinta-2); font-weight: 700; font-size: 1.05rem; }
.wl-teto { display: inline-flex; align-items: center; gap: 8px; justify-self: start; padding: 5px 12px; border-radius: 999px; background: var(--sup-2); color: var(--tinta-2); font-size: .82rem; font-weight: 700; }
.wl-moeda { width: 56px; height: 56px; flex: none; display: grid; place-items: center; border-radius: 18px; background: var(--azul-suave); color: var(--bic); }
.wl-moeda svg { width: 30px; height: 30px; }
.wl-aviso { margin: 0; display: flex; gap: 8px; align-items: center; padding: 10px 14px; border-radius: 14px; background: var(--azul-suave); color: var(--bic); font-weight: 650; font-size: .9rem; }
.wl-acoes { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.wl-a { display: grid; justify-items: center; gap: 8px; padding: 6px 4px; border: 0; background: none; color: var(--tinta); font: inherit; font-weight: 700; font-size: .86rem; text-align: center; text-decoration: none; cursor: pointer; border-radius: 16px; }
.wl-a-ic { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 50%; background: var(--bic); color: var(--sobre-bic); font-size: 1.15rem; transition: transform .15s; }
.wl-a:hover .wl-a-ic { transform: translateY(-2px); }
.wl-a small { margin-top: -6px; color: var(--tinta-3); font-size: .74rem; font-weight: 700; }
.wl-a-breve .wl-a-ic { background: var(--sup-3); color: var(--tinta-2); }
.wl-nums { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(130px, 100%), 1fr)); gap: 0; border-top: 1px solid var(--linha); padding-top: 14px; }
.wl-nums > div { display: grid; gap: 2px; padding: 4px 12px; border-left: 1px solid var(--linha); }
.wl-nums > div:first-child { border-left: 0; padding-left: 0; }
.wl-nums span { color: var(--tinta-2); font-size: .8rem; font-weight: 650; }
.wl-nums b { font-family: var(--f-tit); font-size: 1.3rem; }
.wl-mais { color: var(--bic); }
@media (max-width: 520px) {
  .wl-acoes { gap: 4px; }
  .wl-a-ic { width: 48px; height: 48px; }
  .wl-a { font-size: .82rem; }
  .wl-nums { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 10px; }
  .wl-nums > div:nth-child(odd) { border-left: 0; padding-left: 0; }
}
.gn { margin: 0; padding: 0; list-style: none; display: grid; border-radius: 22px; background: var(--sup); border: 1px solid var(--linha); overflow: hidden; }
.gn-i { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border-top: 1px solid var(--linha); flex-wrap: wrap; }
.gn-i:first-child { border-top: 0; }
.gn-ic { width: 44px; height: 44px; flex: none; display: grid; place-items: center; border-radius: 14px; background: var(--azul-suave); color: var(--bic); font-size: 1.05rem; }
.gn-t { display: grid; gap: 2px; flex: 1 1 180px; min-width: 0; }
.gn-t strong { font-size: .98rem; }
.gn-t small { color: var(--tinta-2); }
.gn-v { padding: 4px 12px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); font-weight: 800; font-size: .9rem; white-space: nowrap; }
.gn-feito { color: var(--tinta-3); font-weight: 700; font-size: .86rem; }
/* Explorar: o painel dos filtros não muda de largura quando aparece a barra de deslizar */
.facetas { scrollbar-gutter: stable; overflow-y: auto; }

/* página do material: atalhos pequenos (resoluções e comentários) ao lado de quem publicou */
.doc-topo-l { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 12px; }
.doc-topo-l .autor-topo { margin: 0; }
.doc-ats { display: inline-flex; flex-wrap: wrap; gap: 8px; }
.doc-at { display: inline-flex; align-items: center; gap: 7px; height: 42px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--linha); background: var(--sup); color: var(--tinta); font: inherit; font-size: .88rem; font-weight: 700; cursor: pointer; transition: border-color .15s, transform .15s; }
.doc-at i { color: var(--bic); font-size: 1rem; }
.doc-at b { font-weight: 800; }
.doc-at span { color: var(--tinta-2); font-weight: 650; }
.doc-at:hover { border-color: var(--bic); transform: translateY(-1px); }
@media (max-width: 480px) { .doc-at { height: 38px; padding: 0 12px; } .doc-at span { display: none; } }

/* página do material: espaço entre os atalhos e o título */
.doc-topo-l { margin-bottom: 18px; }
/* menu lateral: linhas mais juntas */
.nav-l { padding: 7px 12px; }
.lateral nav, .nav-lat { gap: 2px; }
/* carteira: o saldo num cartão azul (menos branco), botões brancos e números claros */
.wl { background: linear-gradient(135deg, #1E3FD8 0%, #2547F5 55%, #4C6BFF 100%); border: 0; color: #fff; }
.wl-rot { color: rgba(255, 255, 255, .78); }
.wl-val b { color: #fff; }
.wl-val span { color: rgba(255, 255, 255, .85); }
.wl-teto { background: rgba(255, 255, 255, .16); color: #fff; }
.wl-moeda { background: rgba(255, 255, 255, .16); color: #fff; }
.wl-aviso { background: rgba(255, 255, 255, .16); color: #fff; }
.wl-a { color: #fff; }
.wl-a-ic { background: #fff; color: var(--bic); }
.wl-a small { color: rgba(255, 255, 255, .72); }
.wl-a-breve .wl-a-ic { background: rgba(255, 255, 255, .22); color: #fff; }
.wl-nums { border-top-color: rgba(255, 255, 255, .2); }
.wl-nums > div { border-left-color: rgba(255, 255, 255, .2); }
.wl-nums span { color: rgba(255, 255, 255, .75); }
.wl-nums b, .wl-mais { color: #fff; }
/* "Ganhar pontos": cartões claros (o quê, quanto, ação) */
.missoes:has(.gn-grid) { background: none; border: 0; padding: 0; }
.gn-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(250px, 100%), 1fr)); gap: 12px; }
.gn-c { display: grid; gap: 6px; align-content: start; padding: 16px; border-radius: 20px; background: var(--sup); border: 1px solid var(--linha); }
.gn-c-topo { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 4px; }
.gn-c strong { font-size: 1rem; }
.gn-txt { color: var(--tinta-2); line-height: 1.45; }
.gn-c .gn-v { font-family: var(--f-tit); font-size: 1.15rem; padding: 4px 12px; }
.gn-c .gn-v small { margin-left: 3px; font-size: .74rem; font-weight: 700; opacity: .8; }
.gn-ac { margin-top: 8px; }
.gn-ecra { display: grid; gap: 14px; max-width: 900px; margin: 0 auto; }
.gn-mais { display: inline-flex; align-items: center; gap: 8px; justify-self: center; color: var(--bic); font-weight: 750; text-decoration: none; }
/* painel → Ao Vivo: botão de apagar a sessão */
.adm-av-x:hover { border-color: #DC2626 !important; color: #DC2626 !important; }
.pd-cod { display: grid; gap: 12px; }
.pd-cod input[name="codigo"] { letter-spacing: .4em; font-size: 1.3rem; text-align: center; }

/* ==========================================================================
   Replay: leitor como um vídeo (tamanho certo, controlos, ecrã inteiro) e grelha de replays
   ========================================================================== */
.rp { position: relative; width: min(100%, calc((100dvh - 230px) * 16 / 9)); min-width: min(100%, 300px); margin: 0 auto; border-radius: 18px; overflow: hidden; background: #0B1022; box-shadow: 0 1px 0 var(--linha); }
.rp-tela { position: relative; aspect-ratio: 16 / 9; background: #fff; }
.rp-quadro { position: absolute !important; inset: 0; width: 100%; height: 100%; border-radius: 0 !important; background: #fff; display: block !important; }
.rp-quadro canvas { position: absolute; inset: 0; }
.rp-grande { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 76px; height: 76px; display: grid; place-items: center; border: 0; border-radius: 50%; background: rgba(15, 22, 48, .78); color: #fff; font-size: 1.6rem; cursor: pointer; transition: opacity .2s; }
.rp-grande i { margin-left: 4px; }
.rp.a-ver .rp-grande { opacity: 0; pointer-events: none; }
.rp-ctl { display: flex; align-items: center; gap: 10px; padding: 10px 14px; background: #0F1630; color: #E8ECF8; }
.rp-b { width: 38px; height: 38px; flex: none; display: grid; place-items: center; border: 0; border-radius: 10px; background: transparent; color: #fff; font-size: 1.05rem; cursor: pointer; }
.rp-b:hover { background: rgba(255, 255, 255, .1); }
.rp-tempo { font-variant-numeric: tabular-nums; font-size: .82rem; color: #C7D0EA; flex: none; }
.rp-barra { flex: 1; min-width: 60px; height: 6px; appearance: none; -webkit-appearance: none; border-radius: 999px; background: linear-gradient(90deg, #4C6BFF var(--p, 0%), rgba(255, 255, 255, .2) var(--p, 0%)); cursor: pointer; }
.rp-barra::-webkit-slider-thumb { -webkit-appearance: none; width: 16px; height: 16px; border-radius: 50%; background: #fff; border: 0; }
.rp-barra::-moz-range-thumb { width: 16px; height: 16px; border-radius: 50%; background: #fff; border: 0; }
.rp-vel { flex: none; padding: 6px 8px; border-radius: 8px; border: 0; background: rgba(255, 255, 255, .1); color: #fff; font: inherit; font-size: .82rem; font-weight: 700; }
.rp-vel option { color: #111; }
.rp:fullscreen { width: 100vw; max-width: none; height: 100vh; border-radius: 0; display: flex; flex-direction: column; justify-content: center; background: #000; }
.rp:fullscreen .rp-tela { width: min(100vw, calc((100vh - 58px) * 16 / 9)); margin: 0 auto; }
.rp.rp-cheio { position: fixed; inset: 0; z-index: 9000; width: 100vw; height: 100dvh; max-width: none; border-radius: 0; display: flex; flex-direction: column; justify-content: center; background: #000; }
.rp.rp-cheio .rp-tela { width: min(100vw, calc((100dvh - 58px) * 16 / 9)); margin: 0 auto; }
@media (orientation: portrait) {
  .rp.rp-cheio { top: 0; left: 100vw; width: 100dvh; height: 100vw; transform: rotate(90deg); transform-origin: top left; }
  .rp.rp-cheio .rp-tela { width: min(100dvh, calc((100vw - 58px) * 16 / 9)); }
}
body.rp-tela-cheia { overflow: hidden; }
@media (max-width: 600px) { .rp { border-radius: 14px; } .rp-ctl { gap: 6px; padding: 8px 10px; } .rp-tempo#rp-total { display: none; } .rp-grande { width: 60px; height: 60px; font-size: 1.3rem; } }
.avr-info { gap: 12px; }
.avr-meta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
/* grelha de replays */
.rpl-busca { position: relative; max-width: 560px; }
.rpl-busca i { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); color: var(--tinta-3); }
.rpl-busca input { width: 100%; padding: 13px 16px 13px 44px; border-radius: 999px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta); font: inherit; }
.rpl-busca input:focus { outline: 0; border-color: var(--bic); }
.rpl-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(260px, 100%), 1fr)); gap: 18px 14px; }
.rpl { display: grid; gap: 10px; color: var(--tinta); text-decoration: none; min-width: 0; }
.rpl-mini { position: relative; aspect-ratio: 16 / 9; border-radius: 16px; overflow: hidden; background: linear-gradient(135deg, #1E3FD8, #2547F5 55%, #4C6BFF); background-image: var(--mini, linear-gradient(135deg, #1E3FD8, #2547F5 55%, #4C6BFF)); background-size: cover; background-position: center; border: 1px solid var(--linha); }
.rpl-mini-t { position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: 8px; padding: 14px; color: #fff; text-align: center; }
.rpl-mini-t svg { width: 34px; height: 34px; opacity: .9; }
.rpl-mini-t b { font-family: var(--f-tit); font-size: 1rem; line-height: 1.25; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.rpl-play { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%) scale(.9); width: 54px; height: 54px; display: grid; place-items: center; border-radius: 50%; background: rgba(15, 22, 48, .72); color: #fff; opacity: 0; transition: opacity .15s, transform .15s; }
.rpl:hover .rpl-play { opacity: 1; transform: translate(-50%, -50%) scale(1); }
.rpl-dur { position: absolute; right: 8px; bottom: 8px; padding: 2px 7px; border-radius: 6px; background: rgba(0, 0, 0, .78); color: #fff; font-size: .78rem; font-weight: 750; font-variant-numeric: tabular-nums; }
.rpl-t { display: flex; gap: 10px; align-items: flex-start; min-width: 0; }
.rpl-t .av, .rpl-t img.av { width: 36px; height: 36px; flex: none; border-radius: 50%; }
.rpl-t > div { display: grid; gap: 2px; min-width: 0; }
.rpl-t strong { font-size: .98rem; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.rpl-t small { color: var(--tinta-2); font-size: .82rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* sala: quem está a falar, com o avatar */
.st-falam { gap: 8px; }
.st-falam-av { display: inline-flex; }
.st-falam-av > * { width: 24px !important; height: 24px !important; border-radius: 50%; border: 2px solid #1C2547; margin-left: -6px; font-size: .6rem; }
.st-falam-av > *:first-child { margin-left: 0; }
.st-falam-av img, .st-falam-av svg { width: 100%; height: 100%; }
@media (max-width: 600px) { .st-falam-n { display: none; } }
/* pesquisa do topo: só a lupa */
.busca-topo .bt-ir { gap: 0; padding-inline: 14px; min-width: 46px; justify-content: center; }
.busca-topo .bt-ir span { display: none; }
.sala-info .st-falam .st-falam-av, .sala-info .st-falam .st-falam-av span { display: inline-flex !important; }
.sala-info .st-falam .st-falam-av > * { display: inline-grid !important; place-items: center; overflow: hidden; }
/* replay: volume e ecrã inteiro mais cuidado (também no telemóvel na vertical) */
.rp-som { display: inline-flex; align-items: center; gap: 2px; flex: none; }
.rp-vol { width: 84px; height: 5px; appearance: none; -webkit-appearance: none; border-radius: 999px; background: linear-gradient(90deg, #fff var(--p, 100%), rgba(255, 255, 255, .25) var(--p, 100%)); cursor: pointer; }
.rp-vol::-webkit-slider-thumb { -webkit-appearance: none; width: 13px; height: 13px; border-radius: 50%; background: #fff; border: 0; }
.rp-vol::-moz-range-thumb { width: 13px; height: 13px; border-radius: 50%; background: #fff; border: 0; }
.rp-fechar { display: none; position: absolute; top: calc(10px + env(safe-area-inset-top, 0px)); right: calc(10px + env(safe-area-inset-right, 0px)); z-index: 5; width: 42px; height: 42px; place-items: center; border: 0; border-radius: 50%; background: rgba(15, 22, 48, .75); color: #fff; font-size: 1.1rem; cursor: pointer; }
.rp:fullscreen .rp-fechar, .rp.rp-cheio .rp-fechar { display: grid; }
.rp:fullscreen .rp-ctl, .rp.rp-cheio .rp-ctl { width: min(100%, 1200px); margin: 0 auto; padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px)); }
.rp.rp-cheio { z-index: 99999; }
.rp.rp-cheio .rp-b { width: 44px; height: 44px; }
@media (orientation: portrait) {
  .rp.rp-cheio { padding: env(safe-area-inset-right, 0px) 0 env(safe-area-inset-left, 0px); }
  .rp.rp-cheio .rp-tela { width: min(100dvh, calc((100dvw - 64px) * 16 / 9)); }
  .rp.rp-cheio .rp-ctl { width: min(100dvh, 1200px); }
}
@media (max-width: 600px) { .rp-vol { display: none; } }
/* indicador da gravação (só o anfitrião vê) */
.st-grav { display: inline-flex; align-items: center; gap: 7px; border: 0; font: inherit; cursor: default; }
.st-grav i { width: 9px; height: 9px; border-radius: 50%; background: #EF4444; animation: av-pisca 1.4s ease-in-out infinite; }
.st-grav.aviso { background: rgba(245, 158, 11, .2); color: #FCD34D; }
.st-grav.aviso i { background: #F59E0B; }
.st-grav.erro { background: #DC2626; color: #fff; cursor: pointer; }
.st-grav.erro i { background: #fff; animation: none; }
@keyframes av-pisca { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }
@media (max-width: 600px) { .sala-info .st-grav { display: inline-flex !important; } }

/* ==========================================================================
   Sala: câmara do anfitrião, avisos de ligação e gráficos de funções
   ========================================================================== */
.sq-cam { position: absolute; top: 12px; right: 58px; z-index: 6; width: clamp(84px, 11vw, 132px); aspect-ratio: 1; border-radius: 50%; overflow: hidden; background: #0F1630; border: 3px solid #fff; box-shadow: 0 6px 18px rgba(8, 12, 30, .35); cursor: grab; touch-action: none; }
.sq-cam:active { cursor: grabbing; }
.sq-cam video { width: 100%; height: 100%; object-fit: cover; display: block; }
.sq-cam.local video { transform: scaleX(-1); }
.sq-cam-x { position: absolute; top: 4px; right: 4px; width: 26px; height: 26px; display: grid; place-items: center; border: 0; border-radius: 50%; background: rgba(15, 22, 48, .78); color: #fff; font-size: .8rem; cursor: pointer; opacity: 0; transition: opacity .15s; }
.sq-cam:hover .sq-cam-x, .sq-cam:focus-within .sq-cam-x { opacity: 1; }
@media (hover: none) { .sq-cam-x { opacity: 1; } }
.sq-cam-ver { position: absolute; top: 12px; right: 58px; z-index: 6; display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border: 0; border-radius: 999px; background: rgba(15, 22, 48, .82); color: #fff; font: inherit; font-size: .82rem; font-weight: 750; cursor: pointer; }
.sq-fora { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); z-index: 7; display: grid; justify-items: center; gap: 6px; width: min(440px, calc(100% - 24px)); padding: 18px 20px; border-radius: 18px; background: rgba(15, 22, 48, .92); color: #fff; text-align: center; box-shadow: 0 10px 30px rgba(8, 12, 30, .35); }
.sq-fora > i { font-size: 1.5rem; color: #FCD34D; }
.sq-fora strong { font-size: 1.05rem; }
.sq-fora span { color: #C7D0EA; }
.sq-fora small { color: #A5AFCB; font-variant-numeric: tabular-nums; }
.sq-ligacao { top: 16px; transform: translateX(-50%); }
.sq-ligacao > i { color: #F87171; }
/* gráfico de funções: painel com pré-visualização */
.modal.gfp-modal { max-width: 980px; width: 100%; }
.gfp { display: grid; gap: 14px; }
.gfp h2 { display: flex; align-items: center; gap: 10px; }
.gfp-g { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 16px; align-items: start; }
.gfp-campos { display: grid; gap: 10px; }
.gfp-f { display: flex; align-items: center; gap: 8px; }
.gfp-cor { flex: none; min-width: 64px; padding: 6px 10px; border-radius: 10px; background: color-mix(in srgb, var(--c) 14%, transparent); color: var(--c); font-weight: 800; font-family: var(--f-tit); }
.gfp-f input { flex: 1; min-width: 0; padding: 10px 12px; border-radius: 12px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta); font: 600 1rem ui-monospace, SFMono-Regular, Menlo, monospace; }
.gfp-f input:focus { outline: 0; border-color: var(--bic); }
.gfp-erro { min-height: 1.2em; margin: 0; color: #B91C1C; font-weight: 650; font-size: .86rem; }
.gfp-dom { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.gfp-dom label { display: grid; gap: 4px; font-size: .8rem; font-weight: 700; color: var(--tinta-2); }
.gfp-dom input { width: 100%; padding: 8px 10px; border-radius: 10px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta); font: inherit; }
.gfp-ops { display: flex; flex-wrap: wrap; gap: 8px 16px; }
.gfp-ops label { display: inline-flex; align-items: center; gap: 6px; font-weight: 650; font-size: .9rem; }
.gfp-ops input { width: 18px; height: 18px; accent-color: var(--bic); }
.gfp-prev { width: 100%; aspect-ratio: 14 / 9; border-radius: 14px; border: 1px solid var(--linha); background: #fff; }
@media (max-width: 760px) { .gfp-g { grid-template-columns: minmax(0, 1fr); } .gfp-dom { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* câmara: círculo perfeito também no iPhone (o Safari não recorta o vídeo sem isto) */
.sq-cam { width: 128px; height: 128px; aspect-ratio: auto; z-index: 20; isolation: isolate; transform: translateZ(0); -webkit-mask-image: -webkit-radial-gradient(white, black); mask-image: radial-gradient(white, black); }
.sq-cam video { border-radius: 50%; }
@media (max-width: 700px) { .sq-cam { width: 92px; height: 92px; border-width: 2px; } }
/* flyer da sessão ao centro */
.av-flyer-img { margin-left: auto; margin-right: auto; }
/* Ciência: disciplinas e ferramentas */
.modal.cie-modal { max-width: 760px; width: 100%; }
.cie { display: grid; gap: 14px; }
.cie h2 { display: flex; align-items: center; gap: 10px; margin: 0; }
.cie-abas { display: flex; gap: 6px; padding: 5px; border-radius: 16px; background: var(--sup-2); overflow-x: auto; scrollbar-width: none; }
.cie-aba { flex: 1 0 auto; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 14px; border: 0; border-radius: 12px; background: transparent; color: var(--tinta-2); font: inherit; font-weight: 750; cursor: pointer; }
.cie-aba[aria-selected="true"] { background: var(--sup); color: var(--bic); box-shadow: 0 1px 0 var(--linha); }
.cie-fer { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(200px, 100%), 1fr)); gap: 10px; }
.cie-c { display: grid; gap: 6px; justify-items: start; padding: 16px; border-radius: 18px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta); font: inherit; text-align: left; cursor: pointer; transition: border-color .15s, transform .15s; }
.cie-c:hover { border-color: var(--bic); transform: translateY(-2px); }
.cie-ic { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 13px; background: var(--azul-suave); color: var(--bic); font-size: 1.1rem; }
.cie-c small { color: var(--tinta-2); }
.cie-campos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.cie-campo { display: grid; gap: 4px; font-size: .82rem; font-weight: 700; color: var(--tinta-2); }
.cie-campo:first-child:nth-last-child(1) { grid-column: 1 / -1; }
.cie-campo input { width: 100%; padding: 10px 12px; border-radius: 12px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta); font: 600 1rem inherit; }
.cie-campo input:focus { outline: 0; border-color: var(--bic); }
.cie-vet { grid-template-columns: 0.7fr 1fr 1fr; }
/* capas dos replays: o flyer ou uma capa desenhada (título, cadeira e a imagem do quadro) */
.rpl-mini { background: linear-gradient(135deg, #1E3FD8 0%, #2547F5 55%, #4C6BFF 100%); }
.rpl-mini.com-flyer { background: #0B1022 var(--capa) center / cover no-repeat; }
.rpl-capa-t { position: absolute; inset: 0; display: grid; align-content: start; gap: 6px; padding: 14px 16px; color: #fff; text-align: left; }
.rpl-capa-k { display: inline-flex; align-items: center; gap: 6px; justify-self: start; padding: 3px 10px; border-radius: 999px; background: rgba(255, 255, 255, .18); font-size: .76rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.rpl-capa-k svg { width: 14px; height: 14px; }
.rpl-capa-t b { font-family: var(--f-tit); font-size: 1.12rem; line-height: 1.2; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; max-width: 70%; }
.rpl-capa-t small { opacity: .85; font-weight: 650; font-size: .8rem; max-width: 70%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rpl-quadro { position: absolute; right: 10px; bottom: 10px; width: 42%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 8px; border: 2px solid rgba(255, 255, 255, .85); background: #fff; transform: rotate(-3deg); box-shadow: 0 6px 16px rgba(8, 12, 30, .3); }
.rpl-mini .rpl-dur { z-index: 2; }

/* botão de voltar ao topo: separado do resto (anel da cor do fundo) e sem tapar os botões da página */
.subir { box-shadow: 0 0 0 6px var(--fundo, #F4F6FB), 0 10px 24px rgba(37, 71, 245, .32); bottom: calc(28px + env(safe-area-inset-bottom, 0px)); right: 22px; }
.linha-votos { padding-right: 72px; }
@media (max-width: 600px) { .linha-votos { padding-right: 0; } .subir { bottom: calc(86px + env(safe-area-inset-bottom, 0px)); } }
/* barra de deslizar vertical um pouco mais grossa */
html { scrollbar-width: auto; scrollbar-color: #B6C0DA transparent; }
::-webkit-scrollbar { width: 12px; height: 12px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background-color: #C2CADF; border-radius: 999px; border: 3px solid transparent; background-clip: content-box; }
::-webkit-scrollbar-thumb:hover { background-color: #98A4C4; }
html[data-tema="escuro"] ::-webkit-scrollbar-thumb, body.escuro ::-webkit-scrollbar-thumb { background-color: #3A4466; }
/* Ciência no painel lateral da sala */
.cie2 { display: grid; gap: 10px; padding: 10px 12px 16px; align-content: start; overflow-y: auto; max-height: 100%; }
.cie2 .cie-abas { background: rgba(255, 255, 255, .06); }
.cie2 .cie-aba { color: #C7D0EA; padding: 8px 10px; font-size: .84rem; }
.cie2 .cie-aba[aria-selected="true"] { background: #2547F5; color: #fff; box-shadow: none; }
.cie2-busca { display: flex; align-items: center; gap: 8px; padding: 0 12px; border-radius: 12px; background: rgba(255, 255, 255, .08); color: #A5AFCB; }
.cie2-busca input { flex: 1; min-width: 0; padding: 10px 0; border: 0; background: transparent; color: #fff; font: inherit; outline: 0; }
.cie2-tema { margin: 6px 0 0; color: #8D98B8; font-size: .76rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.cie2-lista { display: grid; gap: 6px; }
.cie2-fer { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid rgba(255, 255, 255, .08); border-radius: 12px; background: rgba(255, 255, 255, .04); color: #E8ECF8; font: inherit; font-weight: 650; font-size: .9rem; text-align: left; cursor: pointer; }
.cie2-fer:hover { border-color: #4C6BFF; background: rgba(76, 107, 255, .12); }
.cie2-fer i { width: 28px; height: 28px; flex: none; display: grid; place-items: center; border-radius: 8px; background: rgba(76, 107, 255, .2); color: #A9B8FF; }
.cie2-cab { display: flex; align-items: center; gap: 10px; }
.cie2-cab small { display: block; color: #8D98B8; font-size: .78rem; font-weight: 700; }
.cie2-cab strong { color: #fff; display: flex; align-items: center; gap: 8px; }
.cie2-prev { width: 100%; border-radius: 12px; background: #fff; }
.cie2-campos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.cie2-campo { display: grid; gap: 4px; color: #A5AFCB; font-size: .8rem; font-weight: 700; }
.cie2-campo.largo { grid-column: 1 / -1; }
.cie2-campo input, .cie2-campo select { width: 100%; padding: 9px 10px; border-radius: 10px; border: 1px solid rgba(255, 255, 255, .14); background: rgba(255, 255, 255, .06); color: #fff; font: 600 .95rem ui-monospace, SFMono-Regular, Menlo, monospace; }
.cie2-campo select option { color: #0F172A; }
.cie2-campo input:focus, .cie2-campo select:focus { outline: 0; border-color: #4C6BFF; }
.cie2-check { display: inline-flex; align-items: center; gap: 6px; color: #E8ECF8; font-weight: 650; font-size: .86rem; }
.cie2-check input { width: 17px; height: 17px; accent-color: #4C6BFF; }
.cie2 .gfp-erro { color: #FCA5A5; margin: 0; }
.cie2-vivo { display: flex; align-items: center; gap: 8px; margin: 0; color: #869BEF; font-size: .8rem; font-weight: 700; }
.cie2-vivo i { font-size: .5rem; }
.cie2-btns { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.cie2-btns .btn { color: #E8ECF8; border-color: rgba(255, 255, 255, .16); }
.cie2-btns .btn.perigo { color: #FCA5A5; }
.cie2-por { width: 100%; }
.cie2 .ajuda { color: #8D98B8; }

/* ==========================================================================
   Sala: Ciência no lado esquerdo, modo claro, separadores, capas dos replays e Ciência no painel
   ========================================================================== */
body.sala-com-cie .sala-corpo { grid-template-columns: minmax(280px, 340px) minmax(0, 1fr) 320px; }
body.sala-com-cie.sala-sem-lado .sala-corpo { grid-template-columns: minmax(280px, 340px) minmax(0, 1fr); }
.sala-cie { min-height: 0; overflow: hidden; display: flex; flex-direction: column; border-right: 1px solid var(--sl-linha, rgba(255,255,255,.08)); background: var(--sl-sup, #111831); }
.sala-cie .cie2 { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 12px 14px 22px; }
.cie2-topo { display: flex; align-items: center; justify-content: space-between; gap: 8px; position: sticky; top: -12px; z-index: 2; margin: -12px -14px 0; padding: 12px 14px 8px; background: var(--sl-sup, #111831); }
.cie2-topo strong { display: flex; align-items: center; gap: 8px; font-family: var(--f-tit); color: inherit; }
.cie2-disc { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; overflow: visible; }
.cie2-disc .cie-aba { flex: none; flex-direction: column; gap: 4px; padding: 8px 4px; font-size: .8rem; white-space: nowrap; }
@media (max-width: 1100px) {
  body.sala-com-cie .sala-corpo { grid-template-columns: minmax(0, 1fr) 320px; }
  .sala-cie { position: fixed; z-index: 9550; left: 0; top: 0; bottom: 0; width: min(92vw, 360px); box-shadow: 18px 0 40px rgba(0, 0, 0, .35); padding-top: env(safe-area-inset-top, 0px); }
}
@media (max-width: 760px) { body.sala-com-cie .sala-corpo { grid-template-columns: minmax(0, 1fr); } }
/* botão do tema no topo da sala */
.sl-tema { flex: none; margin-left: 4px; }
/* modo claro da sala */
body.sala-clara #sala-raiz, body.sala-clara .sala { background: #EEF2F9; color: #0F172A; }
body.sala-clara .sala { --sl-sup: #FFFFFF; --sl-sup2: #F1F4FA; --sl-linha: rgba(15, 23, 42, .1); --sl-t2: #475569; }
body.sala-clara .sala-quadro { background: radial-gradient(circle at 50% 40%, #E3E9F7 0%, #D5DDEF 75%); }
body.sala-clara .sala-quadro canvas { box-shadow: 0 18px 40px -24px rgba(15, 23, 42, .35), 0 0 0 1px rgba(15, 23, 42, .08); }
body.sala-clara .sala-topo, body.sala-clara .sala-barra, body.sala-clara .sala-lado { background: #fff; color: #0F172A; border-color: rgba(15, 23, 42, .08); }
body.sala-clara .sala-tt strong, body.sala-clara .sala-lado strong { color: #0F172A; }
body.sala-clara .sala .sq-ferr, body.sala-clara .sala .sp-grupo, body.sala-clara .sala .sq-grupo { background: #fff; border-color: rgba(15, 23, 42, .1); color: #0F172A; }
body.sala-clara .sala .sq-b { color: #334155; }
body.sala-clara .sala .sq-b.on { color: #fff; }
body.sala-clara .sala .sl-msg, body.sala-clara .sala .sl-pessoa, body.sala-clara .sala .sl-ped { color: #0F172A; }
body.sala-clara .sala input, body.sala-clara .sala textarea, body.sala-clara .sala select { color: #0F172A; }
body.sala-clara .sala-cie, body.sala-clara .cie2-topo { background: #fff; color: #0F172A; }
body.sala-clara .cie2 .cie-abas { background: #F1F4FA; }
body.sala-clara .cie2 .cie-aba { color: #475569; }
body.sala-clara .cie2 .cie-aba[aria-selected="true"] { color: #fff; }
body.sala-clara .cie2-busca { background: #F1F4FA; color: #64748B; }
body.sala-clara .cie2-busca input, body.sala-clara .cie2-cab strong { color: #0F172A; }
body.sala-clara .cie2-fer { background: #F8FAFF; border-color: rgba(15, 23, 42, .1); color: #0F172A; }
body.sala-clara .cie2-fer i { background: #E8EDFF; color: #2547F5; }
body.sala-clara .cie2-campo input, body.sala-clara .cie2-campo select { background: #F8FAFF; border-color: rgba(15, 23, 42, .15); color: #0F172A; }
body.sala-clara .cie2-check, body.sala-clara .cie2-btns .btn { color: #0F172A; border-color: rgba(15, 23, 42, .15); }
body.sala-clara .cie2-vivo { color: #152A80; }
body.sala-clara .cie2 .ajuda, body.sala-clara .cie2-tema, body.sala-clara .cie2-cab small { color: #64748B; }
/* separadores do Estude ao Vivo no telemóvel: o escolhido passa para primeiro */
@media (max-width: 640px) {
  .av-abas { display: flex; overflow-x: auto; scrollbar-width: none; }
  .av-abas .av-aba[aria-selected="true"] { order: -1; animation: av-aba-primeiro .28s ease; }
}
@keyframes av-aba-primeiro { from { transform: translateX(14px); opacity: .4; } to { transform: none; opacity: 1; } }
/* capa dos replays: o flyer por cima da capa desenhada (se a imagem falhar, fica a desenhada) */
.rpl-flyer { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 1; }
.rpl-mini .rpl-play, .rpl-mini .rpl-dur { z-index: 2; }
/* painel: Ciência no quadro */
.admc .admc-criar { display: grid; gap: 10px; padding: 14px; border-radius: 16px; background: var(--azul-suave); }
.admc-lab { display: grid; gap: 6px; font-weight: 750; font-size: .86rem; color: var(--tinta-2); }
.admc-in { width: 100%; padding: 9px 12px; border-radius: 10px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta); font: inherit; }
.admc-linha { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.admc-linha .admc-in { flex: 1 1 240px; }
.admc-h { margin: 18px 0 8px; }
.admc-h small { color: var(--tinta-3); font-weight: 600; }
.admc-lista { display: grid; gap: 6px; }
.admc-l { display: grid; grid-template-columns: auto auto minmax(0, 1.4fr) minmax(0, 1fr) auto auto; gap: 8px; align-items: center; padding: 8px 10px; border-radius: 12px; border: 1px solid var(--linha); background: var(--sup); }
.admc-x .admc-l { grid-template-columns: auto auto minmax(0, 1fr) auto auto auto; }
.admc-n { display: flex; align-items: center; gap: 8px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admc-d { padding: 3px 8px; border-radius: 999px; font-size: .76rem; font-weight: 800; background: #EEF2FF; color: #3730A3; white-space: nowrap; }
.admc-d.d-fisica { background: #ECEFFD; color: #041B78; }
.admc-d.d-quimica { background: #FFF7ED; color: #C2410C; }
.admc-sw { position: relative; width: 38px; height: 22px; flex: none; }
.admc-sw input { position: absolute; inset: 0; opacity: 0; cursor: pointer; margin: 0; z-index: 1; }
.admc-sw span { position: absolute; inset: 0; border-radius: 999px; background: #CBD5E1; transition: background .15s; }
.admc-sw span::after { content: ""; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: #fff; transition: transform .15s; }
.admc-sw input:checked + span { background: var(--bic); }
.admc-sw input:checked + span::after { transform: translateX(16px); }
.admc-ed { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; padding: 12px; border: 1px solid var(--linha); border-top: 0; border-radius: 0 0 12px 12px; }
.admc-prev { width: 100%; border-radius: 12px; border: 1px solid var(--linha); background: #fff; }
.admc-ed-d { display: grid; gap: 10px; align-content: start; }
.admc-json { width: 100%; font: 12px/1.45 ui-monospace, SFMono-Regular, Menlo, monospace; padding: 10px; border-radius: 10px; border: 1.5px solid var(--linha-2); background: var(--sup-2); color: var(--tinta); resize: vertical; }
@media (max-width: 900px) { .admc-l, .admc-x .admc-l { grid-template-columns: auto auto minmax(0, 1fr) auto; } .admc-tema, .admc-l small { display: none; } .admc-ed { grid-template-columns: minmax(0, 1fr); } }
/* modo claro: contraste dos textos e controlos que ficavam pálidos */
body.sala-clara .sala .st-pill { background: #EEF2FF; color: #1E3A8A; opacity: 1; }
body.sala-clara .sala .st-pill.st-grav { background: #FEE2E2; color: #B91C1C; }
body.sala-clara .sala-lado p, body.sala-clara .sala-lado span:not(.sl-badge):not(.av-avatar), body.sala-clara .sala-lado strong, body.sala-clara .sala-lado small { color: #1E293B; opacity: 1; }
body.sala-clara .sala-lado [role="tab"], body.sala-clara .sala-lado .sl-aba { color: #334155; }
body.sala-clara .sala-lado [role="tab"][aria-selected="true"], body.sala-clara .sala-lado .sl-aba.on { background: #EEF2FF; color: #1E3A8A; }
body.sala-clara .sala .sq-zoom, body.sala-clara .sala .sq-zoom * { background: #fff; color: #0F172A; }
body.sala-clara .sala .sq-zoom { border: 1px solid rgba(15, 23, 42, .12); }
body.sala-clara .sala-barra .sb-rot { color: #334155; }

/* ==========================================================================
   Estude ao Vivo: cartões com capa (como os replays), um por linha no telemóvel; gostos e partilha; visitantes
   ========================================================================== */
.av-lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(330px, 100%), 1fr)); gap: 16px; }
.av-card { display: flex; flex-direction: column; padding: 0; overflow: hidden; border-radius: 20px; border: 1px solid var(--linha); background: var(--sup); color: inherit; text-decoration: none; transition: transform .15s, box-shadow .15s; position: relative; }
.av-card:hover { transform: translateY(-2px); box-shadow: 0 14px 30px -18px rgba(15, 23, 42, .35); }
.avc-capa { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: linear-gradient(135deg, var(--c1, #1E3FD8) 0%, var(--c2, #4C6BFF) 100%); }
.avc-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 1; }
.avc-capa-t { position: absolute; inset: 0; display: grid; align-content: start; gap: 8px; padding: 16px 18px; color: #fff; }
.avc-k { display: inline-flex; align-items: center; gap: 6px; justify-self: start; padding: 4px 11px; border-radius: 999px; background: rgba(255, 255, 255, .2); font-size: .78rem; font-weight: 800; letter-spacing: .02em; }
.avc-k svg { width: 14px; height: 14px; }
.avc-k.vivo { background: #DC2626; z-index: 2; position: relative; }
.avc-k.vivo i { width: 8px; height: 8px; border-radius: 50%; background: #fff; animation: av-pisca 1.4s ease-in-out infinite; }
.avc-k.aberta { background: #1632A3; z-index: 2; position: relative; }
.avc-capa-t b { font-family: var(--f-tit); font-size: 1.25rem; line-height: 1.2; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; max-width: 92%; }
.avc-capa-t small { opacity: .9; font-weight: 650; }
.avc-hora { position: absolute; right: 10px; bottom: 10px; z-index: 2; display: inline-flex; align-items: center; gap: 6px; padding: 4px 9px; border-radius: 8px; background: rgba(15, 22, 48, .78); color: #fff; font-size: .82rem; font-weight: 750; }
.av-card .avi-corpo { display: grid; gap: 10px; padding: 14px 16px 16px; }
.av-card .avi-tit { font-size: 1.02rem; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.av-card .avi-pe { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; }
.av-card .avi-preco { position: static; margin-left: auto; }
.av-card.vivo { border-color: #FCA5A5; box-shadow: 0 0 0 2px rgba(220, 38, 38, .15); }
/* capas dos replays um pouco maiores */
.rpl-grid { grid-template-columns: repeat(auto-fill, minmax(min(330px, 100%), 1fr)) !important; }
/* replay: gostos e partilhar */
.avr-tt { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.avr-tt h1 { margin: 0; flex: 1 1 260px; }
.avr-acoes { display: flex; align-items: center; gap: 8px; flex: none; }
.avr-gosto { display: inline-flex; align-items: center; gap: 7px; padding: 9px 14px; border-radius: 999px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta); font: inherit; font-weight: 750; cursor: pointer; }
.avr-gosto b { font-variant-numeric: tabular-nums; }
.avr-gosto.on { border-color: var(--bic); background: var(--azul-suave); color: var(--bic); }
.avr-part { border-radius: 999px; }
.modal.rpp-modal { max-width: 520px; width: 100%; }
.rpp { display: grid; gap: 12px; }
.rpp h2 { display: flex; align-items: center; gap: 10px; margin: 0; }
.rpp-busca { display: flex; align-items: center; gap: 10px; padding: 0 14px; border-radius: 14px; border: 1.5px solid var(--linha-2); background: var(--sup); }
.rpp-busca input { flex: 1; min-width: 0; padding: 12px 0; border: 0; background: transparent; color: var(--tinta); font: inherit; outline: 0; }
.rpp-esc { display: flex; flex-wrap: wrap; gap: 6px; }
.rpp-esc:empty { display: none; }
.rpp-chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 6px 4px 4px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); font-weight: 700; font-size: .86rem; }
.rpp-chip .av-avatar, .rpp-p .av-avatar { width: 26px; height: 26px; font-size: .74rem; }
.rpp-chip button { width: 22px; height: 22px; display: grid; place-items: center; border: 0; border-radius: 50%; background: transparent; color: inherit; cursor: pointer; }
.rpp-res { display: grid; gap: 4px; max-height: 280px; overflow-y: auto; }
.rpp-p { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border: 0; border-radius: 12px; background: transparent; color: var(--tinta); font: inherit; font-weight: 650; text-align: left; cursor: pointer; }
.rpp-p:hover { background: var(--sup-2); }
.rpp-p span { flex: 1; }
.rpp-p > i { color: var(--bic); }
/* quem não tem conta */
.aov-sub { margin: -4px 0 14px; color: var(--tinta-2); max-width: 720px; }
.aov-cta { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 14px 16px; margin-bottom: 18px; border-radius: 16px; background: var(--azul-suave); color: var(--tinta); }
/* pesquisa: as fichas do filtro e da ordem ficam numa linha própria por baixo de "N materiais" (no telemóvel) */
.res-cab { flex-wrap: wrap; }
.res-toks { display: flex; flex-wrap: wrap; gap: 8px; order: 1; flex: 1 1 auto; min-width: 0; }
.res-dir { order: 2; }
@media (max-width: 700px) { .res-toks { order: 3; flex-basis: 100%; } .res-cab { row-gap: 10px; } }
@media (max-width: 700px) { .res-cab > .res-esq { flex: 1 1 auto; width: auto; min-width: 0; } .res-cab > .res-dir { flex: none; margin-left: auto; width: auto; } }
/* pesquisa no telemóvel: linha 1 = "N materiais" + Ordenar; linha 2 = as fichas, lado a lado (descem para baixo só se não couberem) */
@media (max-width: 700px) {
  .res-cab { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: 12px; row-gap: 10px; }
  .res-cab > .res-esq { grid-column: 1; grid-row: 1; min-width: 0; }
  .res-cab > .res-dir { grid-column: 2; grid-row: 1; justify-self: end; margin: 0; }
  .res-cab > .res-toks { grid-column: 1 / -1; grid-row: 2; display: flex; flex-wrap: wrap; gap: 8px; order: 0; flex-basis: auto; }
  .res-toks .res-tok { flex: 0 1 auto; max-width: 100%; }
  .res-toks .res-tok span { max-width: 62vw; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}
@media (max-width: 700px) {
  .res-toks { gap: 6px; }
  .res-toks .res-tok { height: 30px; padding: 0 6px 0 9px; gap: 5px; font-size: .8rem; }
  .res-toks .res-tok i { font-size: .78rem; }
  .res-toks .res-tok svg { width: 12px; height: 12px; }
}
@media (max-width: 700px) {
  .res-cab > .res-toks { gap: 6px; }
  .res-cab > .res-toks .res-tok { padding: 0 5px 0 8px; gap: 4px; letter-spacing: -.01em; }
}

/* ==========================================================================
   Estude ao Vivo (19 de outubro): agenda, cartões com capa, sala, vinheta e replay em vídeo
   ========================================================================== */
/* a grelha da sala só tem a coluna da Ciência quando o painel está mesmo lá (o quadro nunca fica espremido) */
body.sala-com-cie .sala-corpo:not(:has(> .sala-cie)) { grid-template-columns: minmax(0, 1fr) 320px; }
body.sala-com-cie.sala-sem-lado .sala-corpo:not(:has(> .sala-cie)), body.sala-com-cie.sala-cheia.sala-sem-lado .sala-corpo:not(:has(> .sala-cie)) { grid-template-columns: minmax(0, 1fr); }
@media (max-width: 1100px) { body.sala-com-cie .sala-corpo { grid-template-columns: minmax(0, 1fr) 320px; } }
@media (max-width: 760px) { body.sala-com-cie .sala-corpo, body.sala-com-cie .sala-corpo:not(:has(> .sala-cie)) { grid-template-columns: minmax(0, 1fr); } }
.sala-palco, .sala-quadro { min-width: 0; }

/* nomes e textos da sala seguem o tema */
.sala { --sl-t1: #F3F5FC; }
body.sala-clara .sala { --sl-t1: #0F172A; }
.sala .sl-ped-t b, .sala .sl-n b, .sala .sl-pessoa b { color: var(--sl-t1); }
body.sala-clara .sala .sl-ped-t small { color: #475569; }

/* barras de deslizar visíveis no escuro (Ciência, chat, pessoas) */
:where(#sala-raiz) * { scrollbar-width: thin; scrollbar-color: rgba(255, 255, 255, .34) transparent; }
:where(#sala-raiz) ::-webkit-scrollbar { width: 9px; height: 9px; }
:where(#sala-raiz) ::-webkit-scrollbar-track { background: transparent; }
:where(#sala-raiz) ::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, .3); border-radius: 999px; border: 2px solid transparent; background-clip: padding-box; }
:where(#sala-raiz) ::-webkit-scrollbar-thumb:hover { background: rgba(255, 255, 255, .45); background-clip: padding-box; }
body.sala-clara :where(#sala-raiz) * { scrollbar-color: rgba(15, 23, 42, .3) transparent; }
body.sala-clara :where(#sala-raiz) ::-webkit-scrollbar-thumb { background: rgba(15, 23, 42, .28); background-clip: padding-box; }

/* sem verde no Estude ao Vivo: azul para o que está bem, vermelho para o que está ao vivo */
.avt-ok { background: #E6ECFF; color: #1733C2; }
.avi-preco.gratis { background: var(--azul-suave); color: var(--bic); }
.sl-ped.aceite { box-shadow: inset 3px 0 0 #2547F5; }
.sl-mini.ok { background: #2547F5; }
.sl-mic.on { color: #F87171; }
.cie2-vivo { color: #A5B4FC; }
body.sala-clara .cie2-vivo { color: #1E40E6; }
.av-ok { color: var(--bic); }
.av-est.av-prep { background: rgba(143, 164, 255, .16); color: #C7D2FE; }
body.sala-clara .av-est.av-prep { background: #EEF2FF; color: #1E3A8A; }
.avt-dica { display: flex; gap: 8px; margin: 0; padding: 10px 12px; border-radius: 12px; background: var(--sup-2); color: var(--tinta-2); font-size: .82rem; line-height: 1.45; }
.avt-dica i { color: var(--bic); margin-top: 2px; }

/* botões de baixo com cor */
.sala .sb-b.sb-mic.on .sb-ic { background: #2547F5; color: #fff; }
.sala .sb-b.off .sb-ic { background: #4A1621; color: #FCA5A5; }
.sala .sb-b.sb-mics-b .sb-ic { background: #33245F; color: #C4B5FD; }
.sala .sb-b.sb-mics-b.on .sb-ic { background: #6D28D9; color: #fff; }
.sala .sb-b.sb-pdf .sb-ic { background: #4A1B2C; color: #FDA4AF; }
.sala .sb-b.sb-quadro .sb-ic { background: #1E3A8A; color: #BFDBFE; }
.sala .sb-b.sb-vin .sb-ic { background: #4D1B3D; color: #F9A8D4; }
.sala .sb-b.sb-vin.on .sb-ic { background: #DB2777; color: #fff; }
.sala .sb-b.sb-reagir .sb-ic, .sala .sb-b.sb-mao-b .sb-ic { background: #47320F; color: #FCD34D; }
.sala .sb-b.sb-reagir.on .sb-ic, .sala .sb-b.sb-mao-b.on .sb-ic { background: #F59E0B; color: #111827; }
.sala .sb-b:hover .sb-ic { filter: brightness(1.15); }
.sala .sb-b.bloq .sb-ic { background: #1F2547; color: #6B7598; }
body.sala-clara .sala .sb-b .sb-ic { background: #EEF2F9; color: #334155; }
body.sala-clara .sala .sb-b.sb-mic.on .sb-ic { background: #2547F5; color: #fff; }
body.sala-clara .sala .sb-b.off .sb-ic { background: #FEE2E2; color: #DC2626; }
body.sala-clara .sala .sb-b.sb-mics-b .sb-ic { background: #EDE9FE; color: #6D28D9; }
body.sala-clara .sala .sb-b.sb-mics-b.on .sb-ic { background: #6D28D9; color: #fff; }
body.sala-clara .sala .sb-b.sb-pdf .sb-ic { background: #FFE4E6; color: #E11D48; }
body.sala-clara .sala .sb-b.sb-quadro .sb-ic { background: #DBEAFE; color: #1D4ED8; }
body.sala-clara .sala .sb-b.sb-vin .sb-ic { background: #FCE7F3; color: #DB2777; }
body.sala-clara .sala .sb-b.sb-vin.on .sb-ic { background: #DB2777; color: #fff; }
body.sala-clara .sala .sb-b.sb-reagir .sb-ic, body.sala-clara .sala .sb-b.sb-mao-b .sb-ic { background: #FEF3C7; color: #B45309; }
body.sala-clara .sala .sb-b.sb-reagir.on .sb-ic, body.sala-clara .sala .sb-b.sb-mao-b.on .sb-ic { background: #F59E0B; color: #111827; }
body.sala-clara .sala .sb-b.perigo .sb-ic { background: #DC2626; color: #fff; }
body.sala-clara .sala .sb-b.bloq .sb-ic { background: #E2E8F0; color: #94A3B8; }

/* quadro e PDF: o que está a mostrar e a passagem de um para o outro */
.sp-modo { padding: 3px; gap: 2px; }
.sp-m { display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 11px; border: 0; border-radius: 999px; background: transparent; color: var(--sl-t2); font: inherit; font-size: .8rem; font-weight: 750; cursor: pointer; }
.sp-m.on { background: #2547F5; color: #fff; }
.sp-m:not(.on):hover { background: var(--sl-sup2); color: var(--sl-t1); }
.sala .sq-b[disabled] { opacity: .35; cursor: default; }
.sala .sq-b.sp-x:hover { background: #DC2626; color: #fff; }
.sq-pag-ind .sp-grupo i { margin-right: 4px; color: #A5B4FC; }
.sq-prep { position: absolute; left: 50%; top: 12px; transform: translateX(-50%); z-index: 5; display: inline-flex; align-items: center; gap: 10px; max-width: calc(100% - 120px); padding: 8px 14px; border-radius: 999px; background: rgba(15, 22, 48, .86); color: #E8ECF8; font-size: .82rem; font-weight: 650; pointer-events: none; box-shadow: 0 8px 24px rgba(0, 0, 0, .3); }
.sq-prep i { width: 9px; height: 9px; flex: none; border-radius: 50%; background: #F59E0B; }
.sq-prep b { color: #fff; }
body.sala-clara .sq-prep { background: rgba(255, 255, 255, .94); color: #334155; }
body.sala-clara .sq-prep b { color: #0F172A; }
@media (max-width: 640px) { .sq-prep { top: auto; bottom: 10px; max-width: calc(100% - 20px); font-size: .8rem; } }

/* vinheta por cima do quadro */
.sq-vin { position: absolute; inset: 0; z-index: 8; display: grid; place-items: center; background: #000; border-radius: inherit; overflow: hidden; }
.sq-vin-v { width: 100%; height: 100%; object-fit: contain; background: #000; display: block; }
.sq-vin-topo { position: absolute; left: 10px; right: 10px; top: 10px; z-index: 2; display: flex; align-items: center; gap: 10px; min-width: 0; }
.sq-vin-k { display: inline-flex; align-items: center; gap: 7px; flex: none; padding: 5px 11px; border-radius: 999px; background: #DB2777; color: #fff; font-size: .82rem; font-weight: 800; }
.sq-vin-n { min-width: 0; color: #fff; font-weight: 700; font-size: .84rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-shadow: 0 1px 6px rgba(0, 0, 0, .7); }
.sq-vin-parar { margin-left: auto; flex: none; display: inline-flex; align-items: center; gap: 7px; padding: 7px 13px; border: 0; border-radius: 999px; background: rgba(15, 22, 48, .85); color: #fff; font: inherit; font-size: .8rem; font-weight: 800; cursor: pointer; }
.sq-vin-parar:hover { background: #DC2626; }
.sq-vin-som { position: absolute; left: 50%; bottom: 18px; transform: translateX(-50%); z-index: 3; display: inline-flex; align-items: center; gap: 10px; padding: 12px 20px; border: 0; border-radius: 999px; background: #fff; color: #0F172A; font: inherit; font-weight: 800; box-shadow: 0 10px 30px rgba(0, 0, 0, .45); cursor: pointer; animation: sq-som 1.6s ease-in-out infinite; }
.sq-vin-som[hidden] { display: none; }
.sq-vin-som i { color: #DB2777; }
@keyframes sq-som { 50% { transform: translateX(-50%) scale(1.05); } }

/* folha das vinhetas (anfitrião) */
.sb-folha.sb-vinf { flex-direction: column; align-items: stretch; width: min(400px, calc(100vw - 24px)); max-height: min(70vh, 520px); overflow-y: auto; overflow-x: hidden; gap: 10px; }
.sv-cab strong { display: flex; align-items: center; gap: 8px; color: #fff; }
.sv-cab strong i { color: #F472B6; }
.sv-cab small { display: block; margin-top: 3px; color: #A5AFCB; font-size: .8rem; line-height: 1.4; }
.sv-parar { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 10px; border: 0; border-radius: 12px; background: #DC2626; color: #fff; font: inherit; font-weight: 800; cursor: pointer; }
.sv-lista { display: grid; gap: 6px; }
.sv-i { display: flex; align-items: center; gap: 8px; padding: 6px; border-radius: 12px; background: rgba(255, 255, 255, .05); }
.sv-i.on { box-shadow: inset 0 0 0 1.5px #DB2777; }
.sv-tocar { width: 38px; height: 38px; flex: none; display: grid; place-items: center; border: 0; border-radius: 50%; background: #DB2777; color: #fff; cursor: pointer; }
.sv-n { flex: 1; min-width: 0; display: grid; }
.sv-n b { color: #fff; font-size: .86rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sv-n small { color: #A5AFCB; font-size: .78rem; }
.sv-auto, .sv-x { width: 34px; height: 34px; flex: none; display: grid; place-items: center; border: 0; border-radius: 10px; background: transparent; color: #A5AFCB; cursor: pointer; }
.sv-auto:hover, .sv-x:hover { background: rgba(255, 255, 255, .08); color: #fff; }
.sv-auto.on { background: #F59E0B; color: #111827; }
.sv-x:hover { background: #DC2626; }
.sv-vazio { margin: 0; padding: 8px 4px; color: #A5AFCB; font-size: .84rem; }
.sv-novo { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 11px; border: 1.5px dashed rgba(255, 255, 255, .25); border-radius: 12px; background: transparent; color: #fff; font: inherit; font-weight: 800; cursor: pointer; }
.sv-novo:hover { border-color: #F472B6; background: rgba(219, 39, 119, .12); }
.sv-novo.a-enviar i { animation: rp-gira 1s linear infinite; }
.sv-nota { color: #8D98B8; font-size: .76rem; line-height: 1.4; }
body.sala-clara .sb-folha { background: #fff; border-color: rgba(15, 23, 42, .1); box-shadow: 0 18px 40px -16px rgba(15, 23, 42, .35); }
body.sala-clara .sb-folha .sb-op, body.sala-clara .sv-cab strong, body.sala-clara .sv-n b, body.sala-clara .sv-novo { color: #0F172A; }
body.sala-clara .sb-folha .sb-op:hover { background: #F1F4FA; }
body.sala-clara .sv-i { background: #F5F7FC; }
body.sala-clara .sv-cab small, body.sala-clara .sv-n small, body.sala-clara .sv-vazio, body.sala-clara .sv-nota, body.sala-clara .sv-auto, body.sala-clara .sv-x { color: #64748B; }
body.sala-clara .sv-novo { border-color: rgba(15, 23, 42, .2); }

/* som bloqueado pelo aparelho: um toque liga-o */
.sl-som { position: fixed; left: 50%; bottom: calc(96px + env(safe-area-inset-bottom, 0px)); transform: translateX(-50%); z-index: 9600; display: inline-flex; align-items: center; gap: 10px; padding: 14px 22px; border: 0; border-radius: 999px; background: #2547F5; color: #fff; font: inherit; font-weight: 800; box-shadow: 0 12px 34px rgba(37, 71, 245, .45); cursor: pointer; animation: sl-som 1.8s ease-in-out infinite; }
@keyframes sl-som { 50% { box-shadow: 0 12px 34px rgba(37, 71, 245, .45), 0 0 0 10px rgba(37, 71, 245, .15); } }

/* menu recolhido: no Ao Vivo fica só o ponto vermelho a brilhar */
@media (min-width: 1061px) {
  body.lateral-recolhida .nav-vivo { position: absolute; top: 6px; right: 6px; width: 11px; height: 11px; min-width: 0; padding: 0; margin: 0; gap: 0; border-radius: 50%; font-size: 0; line-height: 0; background: #EF4444; animation: av-brilho 1.6s ease-out infinite; }
  body.lateral-recolhida .nav-vivo i { display: none; }
}
@keyframes av-brilho { 0% { box-shadow: 0 0 0 0 rgba(239, 68, 68, .7); } 70% { box-shadow: 0 0 0 8px rgba(239, 68, 68, 0); } 100% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0); } }

/* agenda: "A decorrer" e "Próximos eventos", por dia, com a data em cima */
.aov .av-abas .av-aba[aria-selected="true"] { order: 0; animation: none; }
.av-aba b.vivo { background: #DC2626; color: #fff; }
.avg-sec { display: grid; gap: 14px; margin-top: 6px; }
.avg-sec + .avg-sec { margin-top: 22px; }
.avg-tit { display: flex; align-items: center; gap: 10px; margin: 0; font-family: var(--f-tit); font-size: 1.25rem; }
.avg-ponto { width: 11px; height: 11px; border-radius: 50%; background: #EF4444; animation: av-brilho 1.6s ease-out infinite; }
.avg-dia { display: grid; gap: 12px; }
.avg-dia + .avg-dia { margin-top: 10px; padding-top: 14px; border-top: 1px solid var(--linha); }
.avg-data { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 10px; }
.avg-data b { padding: 4px 13px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); font-size: .86rem; font-weight: 800; }
.avg-data span { color: var(--tinta-2); font-weight: 650; text-transform: capitalize; }
.avg-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(330px, 100%), 1fr)); gap: 20px 16px; }
@media (max-width: 640px) { .avg-grade { grid-template-columns: minmax(0, 1fr); } }

/* cartão de sessão com o desenho dos replays */
.avs { display: grid; gap: 10px; min-width: 0; color: var(--tinta); text-decoration: none; }
.avs-capa { position: relative; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 16px; border: 1px solid var(--linha); background: linear-gradient(135deg, var(--c1, #1E3FD8) 0%, var(--c2, #2547F5) 55%, #4C6BFF 100%); transition: transform .15s ease, box-shadow .15s ease; }
.avs:hover .avs-capa { transform: translateY(-2px); box-shadow: 0 16px 30px -18px rgba(15, 23, 42, .45); }
.avs-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 1; }
.avs-capa-t { position: absolute; inset: 0; display: grid; align-content: start; gap: 6px; padding: 14px 16px; color: #fff; }
.avs-capa.com-img .avs-capa-t { z-index: 2; background: linear-gradient(180deg, rgba(8, 12, 30, .55) 0%, rgba(8, 12, 30, 0) 42%); }
.avs-capa.com-img .avs-capa-t b, .avs-capa.com-img .avs-capa-t small { display: none; }
.avs-selo { display: inline-flex; align-items: center; gap: 6px; justify-self: start; padding: 3px 10px; border-radius: 999px; background: rgba(255, 255, 255, .2); font-size: .76rem; font-weight: 800; letter-spacing: .03em; }
.avs-selo svg { width: 14px; height: 14px; }
.avs-selo.vivo { background: #DC2626; text-transform: uppercase; }
.avs-selo.vivo i { width: 8px; height: 8px; border-radius: 50%; background: #fff; animation: av-pisca 1.2s ease-in-out infinite; }
.avs-capa-t b { font-family: var(--f-tit); font-size: 1.15rem; line-height: 1.22; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; max-width: 92%; }
.avs-capa-t small { opacity: .88; font-weight: 650; font-size: .8rem; max-width: 80%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.avs-tag { position: absolute; right: 10px; top: 10px; z-index: 3; padding: 3px 9px; border-radius: 999px; background: rgba(15, 22, 48, .78); color: #fff; font-size: .76rem; font-weight: 800; }
.avs-dur { position: absolute; right: 8px; bottom: 8px; z-index: 3; padding: 2px 7px; border-radius: 6px; background: rgba(0, 0, 0, .78); color: #fff; font-size: .78rem; font-weight: 750; font-variant-numeric: tabular-nums; }
.avs.vivo .avs-capa { border-color: #F87171; box-shadow: 0 0 0 2px rgba(220, 38, 38, .25); }
.avs .avs-lug { color: var(--tinta-3); }
.rpl-t small.rpl-de, .rpl-t small.rpl-gostos { display: inline-flex; align-items: center; gap: 6px; }
.rpl-t small.rpl-de i { color: var(--bic); }
.rpl-t small.rpl-gostos { color: var(--tinta-2); font-weight: 700; }
.rpl-t small.rpl-gostos i { color: var(--bic); }

/* partilhar o replay: pessoa com o curso; quem já o tem não se escolhe */
.rpp-p-t { display: grid; min-width: 0; }
.rpp-p-t b { font-weight: 700; }
.rpp-p-t small { color: var(--tinta-3); font-size: .82rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rpp-p.tem { opacity: .6; cursor: default; }
.rpp-ja { padding: 2px 8px; border-radius: 999px; background: var(--sup-2); color: var(--tinta-2); font-size: .76rem; font-weight: 800; }

/* replay em vídeo: um só leitor */
.rp-v .rp-tela { position: relative; background: #000; }
.rp-v video { display: block; width: 100%; height: 100%; aspect-ratio: 16 / 9; max-height: 78vh; object-fit: contain; background: #000; }
.rp-v.a-ver .rp-grande { opacity: 0; pointer-events: none; }
.rp-carga { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 54px; height: 54px; display: none; place-items: center; border-radius: 50%; background: rgba(15, 22, 48, .7); color: #fff; font-size: 1.3rem; pointer-events: none; }
.rp-v.rp-esp .rp-carga { display: grid; }
.rp-carga i { animation: rp-gira 1s linear infinite; }
@keyframes rp-gira { to { transform: rotate(360deg); } }
.rp-msg { position: absolute; inset: 0; z-index: 4; display: grid; place-content: center; justify-items: center; gap: 8px; padding: 20px; background: rgba(8, 12, 30, .86); color: #E8ECF8; text-align: center; }
.rp-msg[hidden] { display: none; }
.rp-msg strong { color: #fff; font-size: 1.05rem; }
.rp-ctl input.rp-barra { height: 6px; }
.rp-cheio .rp-v video, :fullscreen.rp-v video { max-height: none; height: 100%; }

/* pesquisa: "N materiais" e Ordenar sempre na mesma linha; as fichas por baixo (lado a lado quando cabem) */
.res-cab { display: grid !important; grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: 12px; row-gap: 10px; }
.res-cab > .res-esq { grid-column: 1; grid-row: 1; min-width: 0; width: auto; }
.res-cab > .res-dir { grid-column: 2; grid-row: 1; justify-self: end; margin: 0; width: auto; order: 0; }
.res-cab > .res-toks { grid-column: 1 / -1; grid-row: 2; display: flex; flex-wrap: wrap; gap: 8px; order: 0; flex-basis: auto; min-width: 0; }
.res-toks .res-tok { flex: 0 1 auto; max-width: 100%; }
.res-toks .res-tok span { max-width: min(62vw, 360px); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.sl-conteudo, .sl-chat { grid-template-columns: minmax(0, 1fr); }
.sl-escrever { min-width: 0; }
.sl-escrever input { width: 0; }
.sl-fim-c { color: #F3F5FC; }
.sl-fim-c h2 { color: #fff; }
.sl-fim-q strong { color: #E8ECF8; }
body.sala-clara .sl-fim { background: rgba(15, 23, 42, .5); }
body.sala-clara .sl-fim-c { background: #fff; color: #0F172A; border-color: rgba(15, 23, 42, .1); box-shadow: 0 24px 60px -24px rgba(15, 23, 42, .5); }
body.sala-clara .sl-fim-c h2, body.sala-clara .sl-fim-q strong { color: #0F172A; }
body.sala-clara .sl-fim-c p { color: #334155; }
body.sala-clara .sl-fim-c small { color: #64748B; }
body.sala-clara .sl-fim-c > svg { color: #2547F5; }
body.sala-clara .sl-fim-v { background: #F1F4FA; color: #0F172A; border-color: rgba(15, 23, 42, .14); }
body.sala-clara .sl-fim-v.on, body.sala-clara .sl-fim-v:hover { background: #EEF2FF; border-color: #4C6BFF; }
body.sala-clara .sl-fim-v.on i, body.sala-clara .sl-fim-v[aria-pressed="true"] i { color: #2547F5; }
body.sala-clara .sl-fim-acoes .btn.on { background: #EEF2FF; color: #1E3A8A; }
body.sala-clara .st-anf { color: #1E40AF; }
body.sala-clara .st-sair:not(.st-terminar) { background: #F1F4FA; color: #0F172A; }
body.sala-clara .st-sair:not(.st-terminar):hover { background: #DC2626; color: #fff; }
.sala-quadro > .sq-cheio { top: calc((100% - var(--qh, 100%)) / 2 + 10px); right: calc((100% - var(--qw, 100%)) / 2 + 10px); }
.sala-quadro > .sq-zoom { bottom: calc((100% - var(--qh, 100%)) / 2 + 10px); right: calc((100% - var(--qw, 100%)) / 2 + 10px); }
.sala-quadro > .sq-pag-ind { top: calc((100% - var(--qh, 100%)) / 2 + 10px); left: calc((100% - var(--qw, 100%)) / 2 + 10px); }
@media (min-width: 641px) { .sala-quadro > .sq-prep { top: calc((100% - var(--qh, 100%)) / 2 + 12px); } }
.sala-quadro > .sq-vin { inset: auto; width: var(--qw, 100%); height: var(--qh, 100%); border-radius: 12px; }
.sala-quadro > .sq-vin .sq-vin-v { border-radius: 12px; }
.avg-ponto.parado { background: #CBD5E1; animation: none; }
.avg-nada { margin: 0; padding: 14px 18px; border-radius: 16px; border: 1px dashed var(--linha-2, var(--linha)); color: var(--tinta-2); font-size: .92rem; }

.cal { display: block; overflow: visible; }
.cal-olhos { transform-box: fill-box; transform-origin: center; animation: cal-pisca 5.5s ease-in-out infinite; }
.cal-acena { transform-box: view-box; transform-origin: 190px 122px; animation: cal-acena .45s ease-in-out 6 alternate; }
.cal-peso { transform-box: view-box; transform-origin: 192px 124px; animation: cal-levanta .7s ease-in-out 6 alternate; }
.cal-zzz text { animation: cal-zzz 2.4s ease-in-out 3; }
.cal-zzz text:nth-child(2) { animation-delay: .4s; }
.cal-zzz text:nth-child(3) { animation-delay: .8s; }
.cal-confetis { animation: cal-confetis 1.2s ease-out 1 both; }
.cal-entra { animation: cal-entra .55s cubic-bezier(.2, 1.5, .4, 1) both; }
@keyframes cal-pisca { 0%, 44%, 50%, 100% { transform: scaleY(1); } 47% { transform: scaleY(.08); } }
@keyframes cal-acena { from { transform: rotate(-8deg); } to { transform: rotate(14deg); } }
@keyframes cal-levanta { from { transform: rotate(0); } to { transform: rotate(-16deg) translateY(-4px); } }
@keyframes cal-zzz { 0%, 100% { opacity: 1; transform: translateY(0); } 50% { opacity: .35; transform: translateY(-5px); } }
@keyframes cal-confetis { from { opacity: 0; transform: translateY(-14px); } to { opacity: 1; transform: none; } }
@keyframes cal-entra { from { opacity: 0; transform: scale(.6) translateY(16px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .cal-olhos, .cal-acena, .cal-peso, .cal-zzz text, .cal-confetis, .cal-entra { animation: none; } }
.cal-fala { display: flex; align-items: center; gap: 4px; }
.cal-fala .cal { flex: none; }
.cal-balao { position: relative; margin: 0; padding: 10px 16px; border-radius: 18px; background: var(--sup); border: 2px solid var(--linha-2); color: var(--tinta); font-family: var(--mao); font-weight: 600; font-size: 1.35rem; line-height: 1.2; text-wrap: balance; }
.cal-fala .cal-balao::before { content: ""; position: absolute; left: -9px; top: 50%; width: 14px; height: 14px; background: inherit; border-left: 2px solid var(--linha-2); border-bottom: 2px solid var(--linha-2); transform: translateY(-50%) rotate(45deg); border-bottom-left-radius: 3px; }
.cal-fala-dir { flex-direction: row-reverse; }
.cal-fala-dir .cal-balao::before { left: auto; right: -9px; transform: translateY(-50%) rotate(225deg); }

.trp { --cor: #2547F5; }
.trh { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 8px 22px; padding: 18px 22px; border-radius: 26px; background: var(--sup); border: 1px solid var(--linha); }
.trh-cal .cal { width: 150px; height: auto; }
.trh-txt { display: grid; gap: 10px; justify-items: start; min-width: 0; }
.trh-txt h1 { font-size: clamp(1.5rem, 2.4vw, 2rem); }
.trh-balao { max-width: 34ch; }
.trh-balao::before { content: ""; position: absolute; left: -9px; top: 50%; width: 14px; height: 14px; background: inherit; border-left: 2px solid var(--linha-2); border-bottom: 2px solid var(--linha-2); transform: translateY(-50%) rotate(45deg); border-bottom-left-radius: 3px; }
.trh-stats { display: grid; grid-template-columns: auto auto; grid-template-areas: "fogo meta" "xp meta" "sem sem"; align-items: center; gap: 6px 18px; }
.trh-stats > .tr-fogo { grid-area: fogo; justify-self: start; }
.trh-st-t { display: none; }
.trh-xp { grid-area: xp; display: inline-flex; align-items: center; gap: 6px; color: #C98A00; }
.trh-xp svg { width: 22px; height: 22px; }
.trh-xp b { font-family: var(--f-tit); font-size: 1.25rem; color: var(--tinta); font-variant-numeric: tabular-nums; }
.trh-xp small, .tr-fogo small { color: var(--tinta-2); font-weight: 650; }
.tr-fogo { display: inline-flex; align-items: center; gap: 4px; color: #FF7A1A; }
.tr-fogo svg { width: 24px; height: 24px; }
.tr-fogo b { font-family: var(--f-tit); font-size: 1.25rem; color: var(--tinta); font-variant-numeric: tabular-nums; }
.tr-fogo.apagado { color: var(--tinta-3); filter: grayscale(1); opacity: .7; }
.tr-fogo.grande svg { width: 30px; height: 30px; }
.trh-meta { grid-area: meta; position: relative; display: grid; place-items: center; width: 92px; height: 92px; padding: 0; border: 0; background: none; color: var(--cor); cursor: pointer; border-radius: 50%; }
.trh-meta svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.trh-meta svg circle:last-child { transition: stroke-dashoffset .6s ease; }
.trh-meta span { position: relative; display: grid; justify-items: center; line-height: 1.1; }
.trh-meta b { font-family: var(--f-tit); font-size: 1.15rem; color: var(--tinta); font-variant-numeric: tabular-nums; }
.trh-meta b small { font-size: .74rem; color: var(--tinta-3); }
.trh-meta > span > small { font-size: .7rem; color: var(--tinta-2); font-weight: 700; }
.trh-meta.feita { color: #1632A3; }
.trh-semana { grid-area: sem; display: flex; gap: 6px; justify-content: space-between; }
.trh-dia { display: grid; justify-items: center; gap: 3px; font-size: .72rem; font-weight: 750; color: var(--tinta-3); }
.trh-dia i { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--sup-3); color: #fff; }
.trh-dia i svg { width: 14px; height: 14px; }
.trh-dia.feito i { background: #FF7A1A; }
.trh-dia.hoje { color: var(--tinta); }
.trh-dia.hoje i { box-shadow: 0 0 0 2px var(--sup), 0 0 0 4px var(--cor); }

.trb { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; margin-top: 16px; }
.trb-caixa { position: relative; display: flex; align-items: center; gap: 10px; padding: 6px 6px 6px 16px; border-radius: 18px; background: var(--sup); border: 2px solid var(--linha-2); transition: border-color .15s ease; }
.trb-caixa:focus-within { border-color: var(--cor); }
.trb-caixa > svg { width: 20px; height: 20px; flex: none; color: var(--tinta-3); }
.trb-caixa input { flex: 1 1 auto; width: 0; min-width: 0; border: 0; background: none; padding: 9px 0; font-size: 1rem; outline: none; color: var(--tinta); }
.trb-caixa input::-webkit-search-cancel-button { display: none; }
.trb-x { width: 34px; height: 34px; flex: none; border: 0; border-radius: 10px; background: var(--sup-2); color: var(--tinta-2); }
.trb-sug { position: absolute; left: 0; right: 0; top: calc(100% + 6px); z-index: 30; display: grid; padding: 6px; border-radius: 16px; background: var(--sup); border: 1px solid var(--linha); box-shadow: var(--sombra-pop); }
.trb-s { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 0; border-radius: 10px; background: none; text-align: left; color: var(--tinta); }
.trb-s:hover, .trb-s:focus { background: var(--sup-2); outline: none; }
.trb-s i { width: 18px; color: var(--cor); text-align: center; }
.trb-s span { flex: 1; font-weight: 650; }
.trb-s small { color: var(--tinta-3); font-size: .8rem; }
.trb-filtros { display: flex; flex-wrap: wrap; gap: 8px; }
.trb-f select { padding: 8px 12px; border-radius: 12px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta); font-weight: 650; font-size: .86rem; }

.tr-sec { display: grid; gap: 12px; margin-top: 26px; }
.tr-h { margin: 0; font-family: var(--f-tit); font-size: 1.2rem; }
.tr-h-l { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 14px; }
.trh-cont { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 14px; margin-top: 18px; padding: 14px 16px; border-radius: 20px; background: var(--sup); border: 2px solid var(--cor); color: var(--tinta); text-decoration: none; box-shadow: 0 4px 0 color-mix(in srgb, var(--cor) 35%, transparent); }
.trh-cont-ic { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: var(--cor); color: #fff; font-size: 1.1rem; }
.trh-cont-t { display: grid; min-width: 0; }
.trh-cont-t strong { font-size: 1.05rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.trh-cont-t small { color: var(--tinta-2); font-weight: 600; }
.trc-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(250px, 100%), 1fr)); gap: 14px; }
.trc { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "ic t" "n n" "p p" "pc pc"; gap: 6px 12px; padding: 18px 16px 14px; border-radius: 20px; background: var(--sup); border: 1px solid var(--linha); color: var(--tinta); text-decoration: none; overflow: hidden; transition: transform .15s ease, border-color .15s ease; }
.trc::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 6px; background: var(--cor); }
.trc:hover { border-color: var(--cor); transform: translateY(-2px); }
.trc-ic { grid-area: ic; display: grid; place-items: center; width: 46px; height: 46px; border-radius: 14px; background: color-mix(in srgb, var(--cor) 14%, var(--sup)); color: var(--cor); font-size: 1.25rem; }
.trc-t { grid-area: t; display: grid; align-content: center; min-width: 0; }
.trc-t strong { font-size: 1.05rem; line-height: 1.25; }
.trc-t small { color: var(--tinta-2); font-size: .8rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.trc > .trc-nums { grid-area: n; }
.trc-nums { color: var(--tinta-2); font-size: .84rem; font-weight: 600; }
.trc-prog { display: block; height: 10px; border-radius: 999px; background: var(--sup-3); overflow: hidden; }
.trc > .trc-prog { grid-area: p; }
.trc-prog i { display: block; height: 100%; border-radius: inherit; background: var(--cor); }
.trc-prog.fraco i { background: #E5484D; }
.trc > .trc-pc { grid-area: pc; }
.trc-pc { color: var(--tinta-3); font-size: .8rem; font-weight: 700; }
.tr-dupla { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 18px; align-items: start; }
.tr-dupla > .trcad { margin-top: 26px; }
.trr { display: grid; gap: 8px; }
.trr-i { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 16px; background: var(--sup); border: 1px solid var(--linha); color: var(--tinta); text-decoration: none; }
.trr-i:hover { border-color: var(--cor); }
.trr-ic { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; background: color-mix(in srgb, var(--cor) 14%, var(--sup)); color: var(--cor); }
.trr-i span:nth-child(2) { display: grid; min-width: 0; }
.trr-i small { color: var(--tinta-2); font-size: .82rem; }
.trr-i > i { color: var(--tinta-3); }
.trcad { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 16px; border-radius: 20px; background: linear-gradient(135deg, #FFF1F6, #FFE4EE); border: 1px solid #FFC9DC; color: #5B1530; text-decoration: none; }
.trcad-so { margin-top: 22px; }
.trcad-ic { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 14px; background: #E8558F; color: #fff; font-size: 1.15rem; }
.trcad span:nth-child(2) { display: grid; }
.trcad small { color: #8A3A5A; font-weight: 600; }
:root[data-theme="dark"] .trcad { background: linear-gradient(135deg, #3A1B2B, #2E1524); border-color: #5A2540; color: #FFD3E4; }
:root[data-theme="dark"] .trcad small { color: #F4A9C6; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .trcad { background: linear-gradient(135deg, #3A1B2B, #2E1524); border-color: #5A2540; color: #FFD3E4; } :root:not([data-theme="light"]) .trcad small { color: #F4A9C6; } }
.tr-vazio { display: grid; justify-items: center; gap: 14px; padding: 28px 16px; text-align: center; color: var(--tinta-2); }
.tr-vazio .cal-fala { max-width: 560px; text-align: left; }
.tr-breve { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 18px 28px; padding: 28px; border-radius: 28px; background: var(--sup); border: 1px solid var(--linha); }
.tr-breve > div { display: grid; gap: 14px; justify-items: start; }
.tr-breve h1 { font-size: clamp(1.8rem, 3vw, 2.4rem); }
.tr-breve-s { color: var(--tinta-2); max-width: 56ch; }
.tr-breve .cal-balao::before { content: ""; position: absolute; left: -9px; top: 22px; width: 14px; height: 14px; background: inherit; border-left: 2px solid var(--linha-2); border-bottom: 2px solid var(--linha-2); transform: rotate(45deg); border-bottom-left-radius: 3px; }
.tr-leitura { display: flex; align-items: center; gap: 10px; margin-top: 14px; padding: 12px 14px; border-radius: 14px; background: var(--azul-suave); color: var(--texto-suave); font-size: .9rem; font-weight: 600; }
.tr-dica-busca { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; padding: 10px 14px; border-radius: 18px; background: var(--sup); border: 1px solid var(--linha); }
.trs { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(280px, 100%), 1fr)); gap: 12px; }
.trs-i { display: grid; gap: 6px; align-content: start; justify-items: start; padding: 16px; border-radius: 18px; background: var(--sup); border: 1px solid var(--linha); border-top: 4px solid var(--cor); }
.trs-i h3 { font-size: 1.02rem; }
.trs-i h3 a { color: inherit; text-decoration: none; }
.trs-i h3 a:hover { color: var(--cor); }
.trs-i p { color: var(--tinta-2); font-size: .85rem; }
.trs-tipo { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 999px; background: color-mix(in srgb, var(--cor) 12%, var(--sup)); color: var(--cor); font-size: .78rem; font-weight: 800; }
.trs-meta { display: flex; flex-wrap: wrap; gap: 6px; font-size: .8rem; font-weight: 700; color: var(--tinta-2); }
.trs-meta > span { padding: 2px 8px; border-radius: 999px; background: var(--sup-2); }
.trs-dif.d1 { color: #152A80; }
.trs-dif.d2 { color: #B45309; }
.trs-dif.d3 { color: #B91C1C; }
.trs-est.e-concluido { color: #152A80; }
.trs-est.e-progresso { color: var(--cor); }
.trs-erros { display: inline-flex; align-items: center; gap: 5px; color: #BE185D; }
.trs-fora { color: var(--tinta-3); }
.trs-i .btn { margin-top: 6px; }

.trt { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 18px; margin-top: 8px; padding: 22px; border-radius: 26px; background: var(--sup); border: 1px solid var(--linha); color: var(--tinta); }
.trt-ic { display: grid; place-items: center; width: 68px; height: 68px; border-radius: 22px; background: var(--cor); color: #fff; font-size: 1.8rem; box-shadow: 0 5px 0 color-mix(in srgb, var(--cor) 62%, #000); }
.trt-t { display: grid; gap: 6px; min-width: 0; }
.trt-t h1 { font-size: clamp(1.5rem, 2.6vw, 2.1rem); }
.trt-t p { color: var(--tinta-2); }
.trt-prog { display: grid; gap: 4px; max-width: 420px; }
.trt-prog .trc-prog { background: var(--sup-3); }
.trt-prog .trc-prog i { background: var(--cor); }
.trt-prog small { font-weight: 700; color: var(--tinta-2); }
.trt .btn-pri { background: var(--cor); border-color: var(--cor); color: #fff; box-shadow: 0 4px 0 color-mix(in srgb, var(--cor) 62%, #000); }
.trt-feito { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: 14px; background: color-mix(in srgb, var(--cor) 12%, var(--sup)); color: var(--cor); font-weight: 800; }
.trm { margin-top: 26px; }
.trm-cab { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 4px 16px; width: min(640px, 100%); margin: 0 auto; padding: 16px 20px; border-radius: 20px; background: var(--cor); color: #fff; box-shadow: 0 5px 0 color-mix(in srgb, var(--cor) 62%, #000); }
.trm-cab > div { display: grid; gap: 2px; min-width: 0; }
.trm-n { color: rgba(255, 255, 255, .82); font-weight: 800; font-size: .82rem; }
.trm-cab h2 { font-size: 1.3rem; color: #fff; }
.trm-cab p { color: rgba(255, 255, 255, .9); font-size: .9rem; max-width: 60ch; }
.trm-p { padding: 6px 12px; border-radius: 999px; background: rgba(255, 255, 255, .2); color: #fff; font-size: .8rem; font-weight: 800; white-space: nowrap; }
.trn { position: relative; display: grid; justify-items: center; gap: 22px; padding: 30px 0 14px; }
.trn-no { position: relative; display: grid; justify-items: center; gap: 6px; width: 150px; transform: translateX(var(--off, 0)); }
.trn-b { display: grid; place-items: center; width: 74px; height: 70px; border: 0; border-radius: 50%; background: var(--sup-3); color: var(--tinta-3); font-size: 1.6rem; box-shadow: 0 7px 0 var(--linha-2); transition: transform .1s ease, box-shadow .1s ease; }
.trn-b:active { transform: translateY(5px); box-shadow: 0 2px 0 var(--linha-2); }
.trn-no.feito .trn-b { background: var(--cor); color: #fff; box-shadow: 0 7px 0 color-mix(in srgb, var(--cor) 62%, #000); }
.trn-no.atual .trn-b { background: var(--cor); color: #fff; box-shadow: 0 7px 0 color-mix(in srgb, var(--cor) 62%, #000), 0 0 0 7px color-mix(in srgb, var(--cor) 22%, transparent); }
.trn-no.sim .trn-b { background: #FFE9A8; color: #B87900; box-shadow: 0 7px 0 #E8C25A; }
.trn-no.sim.feito .trn-b { background: #F5B301; color: #fff; box-shadow: 0 7px 0 #C98A00; }
.trn-t { max-width: 150px; text-align: center; font-size: .84rem; font-weight: 700; line-height: 1.25; color: var(--tinta-2); }
.trn-no.atual .trn-t { color: var(--tinta); }
.trn-cal { position: absolute; right: calc(100% + 2px); top: -12px; display: flex; flex-direction: row-reverse; align-items: center; gap: 2px; width: max-content; pointer-events: none; }
.trn-cal .cal, .trm-deco .cal { width: 92px; max-width: none; height: auto; }
.trn-cal .cal-balao { white-space: nowrap; font-size: 1.15rem; padding: 4px 12px; }
.trn-no[style*="--off:-"] .trn-cal, .trn-no[style*="--off:0"] .trn-cal { right: auto; left: calc(100% + 2px); flex-direction: row; }
.trpop { display: grid; gap: 10px; }
.trpop-k { color: var(--cor); font-weight: 800; font-size: .84rem; }
.trpop-n { display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 4px 0; list-style: none; }
.trpop-n li { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border-radius: 12px; background: var(--sup-2); font-size: .86rem; font-weight: 650; color: var(--tinta-2); }
.trpop-n i { color: var(--cor); }
.trpop-erros { display: flex; gap: 8px; align-items: center; color: #BE185D; font-size: .88rem; font-weight: 650; }
.trpop .btn-pri { background: var(--cor); border-color: var(--cor); }

.tsi { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: center; gap: 24px; margin-top: 10px; }
.tsi-cal { display: grid; justify-items: center; }
.tsi-c { display: grid; gap: 12px; justify-items: start; padding: 24px; border-radius: 26px; background: var(--sup); border: 1px solid var(--linha); border-top: 6px solid var(--cor); }
.tsi-c h1 { font-size: clamp(1.4rem, 2.4vw, 1.9rem); }
.tsi-c > p { color: var(--tinta-2); }
.tsi-n { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; width: 100%; padding: 0; margin: 0; list-style: none; }
.tsi-n li { display: grid; gap: 2px; padding: 12px; border-radius: 14px; background: var(--sup-2); color: var(--tinta-2); font-size: .8rem; font-weight: 650; }
.tsi-n b { font-family: var(--f-tit); font-size: 1.4rem; color: var(--tinta); }
.tsi-regra { display: flex; gap: 10px; color: var(--tinta-2); font-size: .9rem; }
.tsi-regra i { color: var(--cor); margin-top: 3px; }
.tsi-esg { color: var(--tinta-2); font-weight: 650; }
.tsi .btn-pri { background: var(--cor); border-color: var(--cor); }
.tsi-l { display: grid; gap: 8px; }
.tsi-t { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 16px; background: var(--sup); border: 1px solid var(--linha); color: var(--tinta); text-decoration: none; }
.tsi-t span:nth-child(2) { display: grid; }
.tsi-t small { color: var(--tinta-2); }
.tsi-pc { display: grid; place-items: center; width: 54px; height: 40px; border-radius: 12px; font-family: var(--f-tit); font-weight: 800; }
.tsi-pc.bom { background: #DCE2FC; color: #152A80; }
.tsi-pc.medio { background: #FEF3C7; color: #B45309; }
.tsi-pc.fraco { background: #FEE2E2; color: #B91C1C; }

.tres { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 28px; margin-top: 10px; padding: 24px; border-radius: 26px; background: var(--sup); border: 1px solid var(--linha); }
.tres-anel { position: relative; display: grid; place-items: center; width: 168px; height: 168px; color: var(--cor); }
.tres-anel svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.tres-anel b { position: relative; font-family: var(--f-tit); font-size: 2.4rem; color: var(--tinta); line-height: 1; margin-top: -8px; }
.tres-anel small { position: absolute; bottom: 44px; color: var(--tinta-2); font-weight: 700; }
.tres-t { display: grid; gap: 14px; justify-items: start; }
.tres-t h1 { font-size: clamp(1.3rem, 2.2vw, 1.8rem); }
.tres-n { display: flex; flex-wrap: wrap; gap: 10px; padding: 0; margin: 0; list-style: none; }
.tres-n li { display: grid; padding: 8px 14px; border-radius: 14px; background: var(--sup-2); font-size: .8rem; font-weight: 650; color: var(--tinta-2); }
.tres-n b { font-family: var(--f-tit); font-size: 1.3rem; color: var(--tinta); }
.tres-n .ok b { color: #152A80; }
.tres-n .mal b { color: #B91C1C; }
.tres-n .xp b { color: #C98A00; }
.tres .btn-pri { background: var(--cor); border-color: var(--cor); }
.tres-cad { display: flex; align-items: baseline; gap: 8px; color: #BE185D; font-weight: 650; font-size: .9rem; }
.tres-cad a { color: inherit; }
.tres-temas { display: grid; gap: 10px; padding: 16px; border-radius: 20px; background: var(--sup); border: 1px solid var(--linha); }
.tres-tema { display: grid; grid-template-columns: minmax(120px, 1fr) minmax(0, 2fr) auto; align-items: center; gap: 12px; font-weight: 650; }
.tres-tema b { font-variant-numeric: tabular-nums; color: var(--tinta-2); }
.tres-pior { color: var(--tinta-2); }
.tr-seg { display: inline-flex; flex-wrap: wrap; gap: 4px; padding: 4px; border-radius: 14px; background: var(--sup-2); }
.tr-seg button { padding: 6px 12px; border: 0; border-radius: 10px; background: none; color: var(--tinta-2); font-weight: 700; font-size: .84rem; }
.tr-seg button[aria-pressed="true"] { background: var(--sup); color: var(--tinta); box-shadow: var(--sombra-leve); }
.tcor { display: grid; gap: 12px; }
.tcor-i { display: grid; gap: 10px; padding: 16px; border-radius: 18px; background: var(--sup); border: 1px solid var(--linha); border-left: 5px solid var(--tinta-3); }
.tcor-i.ok { border-left-color: #1632A3; }
.tcor-i.mal { border-left-color: #DC2626; }
.tcor-i header { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.tcor-n { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--sup-3); font-weight: 800; font-size: .84rem; }
.tcor-est { display: inline-flex; align-items: center; gap: 6px; font-weight: 800; font-size: .84rem; }
.tcor-i.ok .tcor-est { color: #152A80; }
.tcor-i.mal .tcor-est { color: #B91C1C; }
.tcor-i.branco .tcor-est { color: var(--tinta-2); }
.tcor-tema { margin-left: auto; color: var(--tinta-3); font-size: .8rem; font-weight: 650; }
.tcor-r { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr)); gap: 10px; margin: 0; }
.tcor-r div { padding: 10px 12px; border-radius: 12px; background: var(--sup-2); }
.tcor-r dt { font-size: .8rem; font-weight: 750; color: var(--tinta-2); }
.tcor-r dd { margin: 2px 0 0; font-weight: 700; }
.tcor-r dd.ok { color: #152A80; }
.tcor-r dd.mal { color: #B91C1C; }

.tcad-cab { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 22px; margin-top: 10px; padding: 22px; border-radius: 26px; background: var(--sup); border: 1px solid var(--linha); }
.tcad-cab > .cal-fala { flex-direction: column; max-width: 230px; }
.tcad-cab > .cal-fala .cal-balao { font-size: 1.15rem; text-align: center; }
.tcad-cab > .cal-fala .cal-balao::before { left: 50%; top: -9px; transform: translateX(-50%) rotate(135deg); }
.tcad-t { display: grid; gap: 12px; justify-items: start; }
.tcad-t h1 { font-size: clamp(1.5rem, 2.4vw, 2rem); }
.tcad-t > p { color: var(--tinta-2); max-width: 62ch; }
.tcad-n { display: flex; flex-wrap: wrap; gap: 10px; padding: 0; margin: 0; list-style: none; }
.tcad-n li { display: grid; padding: 8px 16px; border-radius: 14px; background: var(--sup-2); font-size: .8rem; font-weight: 650; color: var(--tinta-2); }
.tcad-n b { font-family: var(--f-tit); font-size: 1.35rem; color: var(--tinta); }
.tcad-n .hoje b { color: #E8558F; }
.tcad-n .ok b { color: #152A80; }
.tcad-mods { display: grid; gap: 8px; }
.tcad-mod { display: grid; grid-template-columns: minmax(140px, 1fr) minmax(0, 2fr) auto; align-items: center; gap: 12px; padding: 10px 14px; border-radius: 14px; background: var(--sup); border: 1px solid var(--linha); text-align: left; color: var(--tinta); }
.tcad-mod:hover { border-color: var(--cor); }
.tcad-mod-t { display: grid; }
.tcad-mod-t small { color: var(--tinta-2); font-size: .82rem; }
.tcad-barra { height: 10px; border-radius: 999px; background: var(--sup-3); overflow: hidden; }
.tcad-barra i { display: block; height: 100%; border-radius: inherit; background: #E8558F; }
.tcad-sel { padding: 8px 12px; border-radius: 12px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta); font-weight: 650; }
.tcad-l { display: grid; gap: 12px; }
.tcad-i { display: grid; gap: 10px; padding: 16px; border-radius: 18px; background: var(--sup); border: 1px solid var(--linha); border-left: 5px solid var(--cor); }
.tcad-i.devido { box-shadow: inset 0 0 0 1px #F9A8C9; }
.tcad-i header { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 12px; font-size: .8rem; font-weight: 700; color: var(--tinta-2); }
.tcad-o { display: inline-flex; align-items: center; gap: 6px; color: var(--cor); }
.tcad-hoje { padding: 2px 8px; border-radius: 999px; background: #FFE4EE; color: #BE185D; }
.tcad-dom { display: inline-flex; gap: 6px; align-items: center; padding: 2px 8px; border-radius: 999px; background: #DCE2FC; color: #152A80; }
.tcad-prox { color: var(--tinta-3); }
.tcad-en { font-weight: 600; }
.tcad-acoes { display: flex; flex-wrap: wrap; gap: 6px; }
.tcad-acoes .btn-pri { background: var(--cor); border-color: var(--cor); }

.trap { display: grid; justify-items: center; gap: 12px; text-align: center; }
.trap-cal .cal { width: 170px; height: auto; }
.trap h2 { font-size: 1.5rem; }
.trap > p { color: var(--tinta-2); max-width: 46ch; }
.trap-metas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; width: 100%; }
.trap-m { display: grid; gap: 2px; padding: 14px; border-radius: 16px; border: 2px solid var(--linha-2); background: var(--sup); color: var(--tinta); box-shadow: 0 4px 0 var(--linha-2); }
.trap-m small { color: var(--tinta-2); }
.trap-m.on { border-color: #2547F5; background: var(--azul-suave); box-shadow: 0 4px 0 #2547F5; }
.trap-pontos { display: flex; gap: 6px; }
.trap-pontos i { width: 8px; height: 8px; border-radius: 50%; background: var(--linha-2); }
.trap-pontos i.on { width: 22px; border-radius: 999px; background: #2547F5; }
.modal.trap-modal { max-width: 520px; }
.modal.trpop-modal { max-width: 480px; }

body.tr-aberto { overflow: hidden; }
.tr-raiz { position: fixed; inset: 0; z-index: 9500; background: var(--mesa); }
.tp { --cor: #2547F5; display: flex; flex-direction: column; height: 100%; height: 100dvh; background: var(--mesa); }
.tp > .tp-topo, .tp > .tp-previa, .tp > .ts-nav, .tp > .tp-pe { flex: none; }
.tp > .tp-palco { flex: 1 1 auto; min-height: 0; }
.tp-carregar { display: grid; place-items: center; }
.tp-topo { display: flex; align-items: center; gap: 14px; width: min(980px, 100%); margin: 0 auto; padding: 14px 18px calc(10px); padding-top: calc(14px + env(safe-area-inset-top, 0px)); }
.tp-x { display: grid; place-items: center; width: 42px; height: 42px; flex: none; border: 0; border-radius: 12px; background: none; color: var(--tinta-3); font-size: 1.4rem; }
.tp-x:hover { background: var(--sup-2); color: var(--tinta); }
.tp-barra { flex: 1; height: 16px; border-radius: 999px; background: var(--sup-3); overflow: hidden; }
.tp-barra i { display: block; height: 100%; min-width: 16px; border-radius: inherit; background: var(--cor); box-shadow: inset 0 -4px 0 rgba(0, 0, 0, .12), inset 0 4px 0 rgba(255, 255, 255, .25); transition: width .4s ease; }
.tp-n { flex: none; color: var(--tinta-2); font-weight: 800; font-variant-numeric: tabular-nums; }
.tp-previa { width: min(980px, calc(100% - 36px)); margin: 0 auto; display: flex; gap: 8px; align-items: center; padding: 8px 12px; border-radius: 12px; background: var(--azul-suave); color: var(--texto-suave); font-size: .84rem; font-weight: 650; }
.tp-palco { overflow-y: auto; overscroll-behavior: contain; padding: 18px 18px 30px; }
.tp-cena { display: grid; gap: 16px; width: min(720px, 100%); margin: 0 auto; }
.tp-cena > h2 { font-size: clamp(1.35rem, 2.6vw, 1.75rem); }
.tp-k { display: inline-flex; align-items: center; gap: 6px; justify-self: start; padding: 4px 11px; border-radius: 999px; background: color-mix(in srgb, var(--cor) 12%, var(--sup)); color: var(--cor); font-size: .82rem; font-weight: 800; }
.tp-pe { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 16px max(18px, calc((100% - 940px) / 2)); padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px)); border-top: 2px solid var(--linha); background: var(--sup); }
.tp-pe.ok { background: #D4DBF8; border-top-color: transparent; }
.tp-pe.mal { background: #FFE3E5; border-top-color: transparent; }
:root[data-theme="dark"] .tp-pe.ok { background: #101838; }
:root[data-theme="dark"] .tp-pe.mal { background: #3A1A20; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .tp-pe.ok { background: #101838; } :root:not([data-theme="light"]) .tp-pe.mal { background: #3A1A20; } }
.tp-fb { display: flex; align-items: center; gap: 10px; min-width: 0; }
.tp-fb .cal { width: 76px; height: auto; flex: none; }
.tp-fb strong { display: block; font-family: var(--f-tit); font-size: 1.3rem; }
.tp-pe.ok .tp-fb strong { color: #0B217A; }
.tp-pe.mal .tp-fb strong { color: #C2292E; }
.tp-fb .cal-balao { padding: 2px 0; border: 0; background: none; font-size: 1.5rem; line-height: 1.1; }
.tp-acoes { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.tp-b { min-width: 170px; justify-content: center; padding: 14px 24px; border: 0; border-radius: 16px; background: var(--cor); color: #fff; font-weight: 800; font-size: 1.02rem; box-shadow: 0 4px 0 color-mix(in srgb, var(--cor) 62%, #000); transition: transform .08s ease, box-shadow .08s ease; }
.tp-b:active:not(:disabled) { transform: translateY(3px); box-shadow: 0 1px 0 color-mix(in srgb, var(--cor) 62%, #000); }
.tp-b:disabled { background: var(--sup-3); color: var(--tinta-3); box-shadow: 0 4px 0 var(--linha-2); cursor: not-allowed; }
.tp-pe.ok .tp-b { background: #0021A7; box-shadow: 0 4px 0 #00187A; }
.tp-pe.mal .tp-b { background: #E5484D; box-shadow: 0 4px 0 #B32A30; }
.tp-fim { display: grid; justify-items: center; gap: 14px; width: min(560px, 100%); margin: 0 auto; padding-top: 4vh; text-align: center; }
.tp-fim .cal-fala { text-align: left; }
.tp-fim h2 { font-size: clamp(1.7rem, 3vw, 2.2rem); color: var(--cor); }
.tp-fim > .cal-balao { font-size: 1.4rem; }
.tp-res { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; padding: 0; margin: 0; list-style: none; }
.tp-res li { display: grid; justify-items: center; min-width: 110px; padding: 12px 16px; border-radius: 16px; border: 2px solid var(--linha); background: var(--sup); color: var(--tinta-2); font-size: .8rem; font-weight: 700; }
.tp-res b { font-family: var(--f-tit); font-size: 1.5rem; color: var(--tinta); }
.tp-res .xp { border-color: #F5B301; }
.tp-res .xp b { color: #C98A00; }
.tp-res .ok b { color: #152A80; }
.tp-res .mal b { color: #B91C1C; }
.tp-res .fogo { border-color: #FFB27A; }
.tp-meta { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 10px; width: 100%; font-weight: 700; color: var(--tinta-2); }
.tp-dom { color: var(--tinta-2); font-size: .92rem; }

.tb { margin: 0; }
.tb-texto { font-size: 1.08rem; line-height: 1.65; }
.tb-texto p + p { margin-top: .7em; }
.tb-texto ul, .tb-texto ol { margin: .4em 0; padding-left: 1.3em; }
.tb-texto h3 { font-size: 1.15rem; margin: .6em 0 .3em; }
.tb-texto mark { background: #FFF1A8; padding: 0 .15em; border-radius: 3px; }
.tb-img img { display: block; max-width: 100%; max-height: 52vh; margin: 0 auto; border-radius: 16px; }
.tb figcaption { margin-top: 6px; color: var(--tinta-2); font-size: .85rem; text-align: center; }
.tb-video video { display: block; width: 100%; max-height: 56vh; border-radius: 16px; background: #000; }
.tb-yt { position: relative; aspect-ratio: 16 / 9; border-radius: 16px; overflow: hidden; background: #000; }
.tb-yt iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.tb-formula { padding: 16px 18px; border-radius: 16px; background: var(--sup); border: 1px solid var(--linha); overflow-x: auto; }
.tb-tex { text-align: center; font-size: 1.15rem; }
.mt-cru { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .9rem; }
.mt .katex { font-size: 1.08em; }
.tb-dest { display: grid; gap: 6px; padding: 14px 16px; border-radius: 16px; border: 2px solid; }
.tb-dest-k { display: inline-flex; align-items: center; gap: 8px; font-weight: 800; font-size: .86rem; }
.tb-dica { background: #EEF2FF; border-color: #C7D2FE; color: #1E3A8A; }
.tb-atencao { background: #FFF7E6; border-color: #FCD9A1; color: #7C4A03; }
.tb-curiosidade { background: #FDF0FF; border-color: #EBC4F5; color: #6B1F80; }
.tb-lembra { background: #ECEFFD; border-color: #A5B2E5; color: #06185F; }
:root[data-theme="dark"] .tb-dest { background: var(--sup); color: var(--tinta); border-color: var(--linha-2); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .tb-dest { background: var(--sup); color: var(--tinta); border-color: var(--linha-2); } }
.tb-passos { padding: 16px 18px; border-radius: 16px; background: var(--sup); border: 1px solid var(--linha); }
.tb-passos h3 { margin-bottom: 8px; font-size: 1.05rem; }
.tb-passos ol { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; counter-reset: passo; }
.tb-passos li { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 10px; counter-increment: passo; }
.tb-passos li::before { content: counter(passo); display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--cor, #2547F5); color: #fff; font-weight: 800; font-size: .84rem; }

.ex { display: grid; gap: 14px; }
.ex-enun { font-size: 1.12rem; font-weight: 650; line-height: 1.55; }
.ex-img { display: block; max-width: 100%; max-height: 40vh; margin: 0 auto; border-radius: 14px; }
.ex-dica-t { color: var(--tinta-2); font-size: .88rem; font-weight: 600; }
.ex-ops { display: grid; gap: 10px; }
.ex-op { display: flex; align-items: center; gap: 12px; width: 100%; padding: 14px 16px; border: 2px solid var(--linha-2); border-radius: 16px; background: var(--sup); color: var(--tinta); text-align: left; font-size: 1.02rem; box-shadow: 0 4px 0 var(--linha-2); transition: transform .08s ease, border-color .12s ease, background .12s ease; }
.ex-op:hover:not(:disabled) { background: var(--sup-2); }
.ex-op:active:not(:disabled) { transform: translateY(2px); box-shadow: 0 2px 0 var(--linha-2); }
.ex-l { display: grid; place-items: center; width: 30px; height: 30px; flex: none; border-radius: 9px; border: 2px solid var(--linha-2); color: var(--tinta-2); font-weight: 800; font-size: .84rem; }
.ex-op-t { flex: 1; min-width: 0; }
.ex-op.on { border-color: var(--cor); background: color-mix(in srgb, var(--cor) 9%, var(--sup)); box-shadow: 0 4px 0 var(--cor); }
.ex-op.on .ex-l { border-color: var(--cor); background: var(--cor); color: #fff; }
.ex-op.ok { border-color: #0021A7; background: #D4DBF8; box-shadow: 0 4px 0 #0021A7; color: #061551; }
.ex-op.ok .ex-l { border-color: #0021A7; background: #0021A7; color: #fff; }
.ex-op.mal { border-color: #E5484D; background: #FFE3E5; box-shadow: 0 4px 0 #E5484D; color: #7A1015; }
.ex-op.mal .ex-l { border-color: #E5484D; background: #E5484D; color: #fff; }
.ex-op:disabled { cursor: default; }
.ex-vf { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.ex-vf-b { justify-content: center; padding: 18px; font-weight: 800; font-size: 1.05rem; }
.ex-vf-b i { font-size: 1.1rem; }
.ex-assoc { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.ex-col { display: grid; gap: 10px; align-content: start; }
.ex-par { display: flex; align-items: center; min-height: 56px; padding: 12px 14px; border: 2px solid var(--linha-2); border-radius: 14px; background: var(--sup); color: var(--tinta); text-align: left; box-shadow: 0 3px 0 var(--linha-2); }
.ex-par.sel { border-color: var(--cor); box-shadow: 0 3px 0 var(--cor); background: color-mix(in srgb, var(--cor) 9%, var(--sup)); }
.ex-par.feito { border-color: var(--pc, var(--cor)); box-shadow: 0 3px 0 var(--pc, var(--cor)); background: color-mix(in srgb, var(--pc, var(--cor)) 12%, var(--sup)); }
.ex-par.ok { border-color: #0021A7; box-shadow: 0 3px 0 #0021A7; background: #D4DBF8; color: #061551; }
.ex-par.mal { border-color: #E5484D; box-shadow: 0 3px 0 #E5484D; background: #FFE3E5; color: #7A1015; }
.ex-in { width: 100%; padding: 14px 16px; border: 2px solid var(--linha-2); border-radius: 16px; background: var(--sup); color: var(--tinta); font-size: 1.1rem; outline: none; }
.ex-in:focus { border-color: var(--cor); }
.ex-in.ok, .ex-gap.ok { border-color: #0021A7; background: #D4DBF8; color: #061551; }
.ex-in.mal, .ex-gap.mal { border-color: #E5484D; background: #FFE3E5; color: #7A1015; }
.ex-curta { display: grid; gap: 8px; }
.ex-certa { color: #0B217A; font-weight: 600; }
.ex-certa ul, .ex-certa ol { margin: 4px 0 0; padding-left: 1.2em; }
.ex-lac { font-size: 1.1rem; line-height: 2.3; }
.ex-gap { display: inline-block; min-width: 4ch; margin: 0 4px; padding: 4px 8px; border: 0; border-bottom: 3px solid var(--cor); border-radius: 8px 8px 4px 4px; background: color-mix(in srgb, var(--cor) 8%, var(--sup)); color: var(--tinta); font: inherit; font-weight: 700; text-align: center; outline: none; }
.ex-gap:focus { background: color-mix(in srgb, var(--cor) 16%, var(--sup)); }
.ex-gap-c { margin-right: 6px; color: #0B217A; font-weight: 800; font-size: .92rem; }
.ex-ord { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.ex-ord-i { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 10px 12px; border: 2px solid var(--linha-2); border-radius: 14px; background: var(--sup); box-shadow: 0 3px 0 var(--linha-2); cursor: grab; }
.ex-ord-i.a-arrastar { opacity: .5; }
.ex-ord-n { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: color-mix(in srgb, var(--cor) 14%, var(--sup)); color: var(--cor); font-weight: 800; font-size: .84rem; }
.ex-ord-b { display: inline-flex; gap: 4px; }
.ex-ord-b button { display: grid; place-items: center; width: 34px; height: 34px; border: 0; border-radius: 10px; background: var(--sup-2); color: var(--tinta-2); }
.ex-ord-b button:disabled { opacity: .35; }
.ex-ord-i.ok { border-color: #0021A7; box-shadow: 0 3px 0 #0021A7; background: #D4DBF8; }
.ex-ord-i.mal { border-color: #E5484D; box-shadow: 0 3px 0 #E5484D; background: #FFE3E5; }
.ex-expl { padding: 12px 14px; border-radius: 14px; background: var(--sup); border: 1px solid var(--linha); border-left: 4px solid #0021A7; }
.ex-expl.mal { border-left-color: #E5484D; }
.ex-res { border-radius: 14px; background: var(--sup); border: 1px solid var(--linha); }
.ex-res summary { display: flex; align-items: center; gap: 8px; padding: 12px 14px; font-weight: 750; color: var(--cor); cursor: pointer; list-style: none; }
.ex-res summary::-webkit-details-marker { display: none; }
.ex-res ol { display: grid; gap: 10px; margin: 0; padding: 0 14px 14px 14px; list-style: none; counter-reset: passo; }
.ex-res li { display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 10px; counter-increment: passo; }
.ex-res li::before { content: counter(passo); display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--cor); color: #fff; font-weight: 800; font-size: .8rem; }
:root[data-theme="dark"] .ex-op.ok, :root[data-theme="dark"] .ex-par.ok, :root[data-theme="dark"] .ex-ord-i.ok, :root[data-theme="dark"] .ex-in.ok, :root[data-theme="dark"] .ex-gap.ok { background: #101838; color: #9AABF0; }
:root[data-theme="dark"] .ex-op.mal, :root[data-theme="dark"] .ex-par.mal, :root[data-theme="dark"] .ex-ord-i.mal, :root[data-theme="dark"] .ex-in.mal, :root[data-theme="dark"] .ex-gap.mal { background: #3A1A20; color: #FFB4B8; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .ex-op.ok, :root:not([data-theme="light"]) .ex-par.ok, :root:not([data-theme="light"]) .ex-ord-i.ok, :root:not([data-theme="light"]) .ex-in.ok, :root:not([data-theme="light"]) .ex-gap.ok { background: #101838; color: #9AABF0; } :root:not([data-theme="light"]) .ex-op.mal, :root:not([data-theme="light"]) .ex-par.mal, :root:not([data-theme="light"]) .ex-ord-i.mal, :root:not([data-theme="light"]) .ex-in.mal, :root:not([data-theme="light"]) .ex-gap.mal { background: #3A1A20; color: #FFB4B8; } }

.ts-topo .ts-tt { display: grid; flex: 1; min-width: 0; }
.ts-tt strong { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ts-tt small { color: var(--tinta-2); font-weight: 650; }
.ts-tempo { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 12px; background: var(--sup); border: 2px solid var(--linha); font-family: var(--f-tit); font-weight: 800; font-size: 1.05rem; font-variant-numeric: tabular-nums; }
.ts-tempo.medio { border-color: #F5B301; color: #B45309; }
.ts-tempo.pouco { border-color: #E5484D; color: #C2292E; animation: ts-pulso 1s ease-in-out infinite; }
@keyframes ts-pulso { 50% { background: #FFE3E5; } }
.ts-nav { display: flex; gap: 6px; width: min(980px, 100%); margin: 0 auto; padding: 0 18px 10px; overflow-x: auto; scrollbar-width: thin; }
.ts-q-b { position: relative; display: grid; place-items: center; width: 40px; height: 40px; flex: none; border: 2px solid var(--linha-2); border-radius: 12px; background: var(--sup); color: var(--tinta-2); font-weight: 800; }
.ts-q-b.feita { background: color-mix(in srgb, var(--cor) 14%, var(--sup)); border-color: color-mix(in srgb, var(--cor) 50%, var(--linha-2)); color: var(--cor); }
.ts-q-b.atual { border-color: var(--cor); box-shadow: 0 0 0 3px color-mix(in srgb, var(--cor) 25%, transparent); color: var(--tinta); }
.ts-q-b.marcada::after { content: ""; position: absolute; top: -5px; right: -5px; width: 12px; height: 12px; border-radius: 50%; background: #F5B301; border: 2px solid var(--mesa); }
.ts-q-b.ok { background: #D4DBF8; border-color: #0021A7; color: #0B217A; }
.ts-q-b.mal { background: #FFE3E5; border-color: #E5484D; color: #C2292E; }
.ts-cal { display: flex; align-items: center; gap: 4px; width: min(720px, 100%); margin: 0 auto 6px; }
.ts-cal .cal { width: 60px; height: auto; flex: none; }
.ts-cal .cal-balao { padding: 4px 12px; font-size: 1.1rem; }
.ts-pe { justify-content: center; }
.ts-pe .btn-ghost { gap: 8px; }
.ts-marcar.on { color: #B45309; }
.ts-fb { display: grid; gap: 10px; padding: 14px; border-radius: 16px; }
.ts-fb.ok { background: #D4DBF8; color: #061551; }
.ts-fb.mal { background: #FFE3E5; color: #7A1015; }
.ts-fb strong { display: inline-flex; gap: 8px; align-items: center; font-size: 1.05rem; }

@media (max-width: 900px) {
  .trh { grid-template-columns: auto minmax(0, 1fr); }
  .trh-stats { grid-column: 1 / -1; grid-template-columns: auto auto auto; grid-template-areas: "fogo xp meta" "sem sem sem"; justify-content: space-between; }
  .tr-dupla { grid-template-columns: minmax(0, 1fr); }
  .tr-dupla > .trcad { margin-top: 0; }
  .tsi { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
  .trh { padding: 14px; gap: 6px 12px; }
  .trh-cal .cal { width: 104px; }
  .trh-txt h1 { font-size: 1.35rem; }
  .cal-balao { font-size: 1.15rem; }
  .trh-meta { width: 76px; height: 76px; }
  .tr-breve { grid-template-columns: minmax(0, 1fr); justify-items: center; text-align: center; padding: 20px; }
  .tr-breve > div { justify-items: center; }
  .tr-breve .cal-balao::before { left: 50%; top: -9px; transform: translateX(-50%) rotate(135deg); }
  .trt { grid-template-columns: auto minmax(0, 1fr); padding: 16px; }
  .trt > .btn, .trt > .trt-feito { grid-column: 1 / -1; justify-self: stretch; justify-content: center; }
  .trn-no { --s: .65; transform: translateX(calc(var(--off, 0px) * .65)); }
  .trn-cal { display: none; }
  .tres { grid-template-columns: minmax(0, 1fr); justify-items: center; text-align: center; }
  .tres-t { justify-items: center; }
  .tres-tema { grid-template-columns: minmax(0, 1fr) auto; }
  .tres-tema .trc-prog { grid-column: 1 / -1; grid-row: 2; }
  .tcad-cab { grid-template-columns: minmax(0, 1fr); justify-items: center; text-align: center; }
  .tcad-t { justify-items: center; }
  .tcad-mod { grid-template-columns: minmax(0, 1fr) auto; }
  .tcad-barra { grid-column: 1 / -1; grid-row: 2; }
  .tp-pe { flex-wrap: wrap; }
  .tp-fb { width: 100%; }
  .tp-fb .cal { width: 58px; }
  .tp-acoes { width: 100%; }
  .tp-acoes .btn { flex: 1; min-width: 0; }
  .tp-b { min-width: 0; }
  .ex-assoc { gap: 8px; }
  .ex-par { min-height: 50px; padding: 10px; font-size: .92rem; }
  .ts-pe .btn span { display: none; }
  .ts-topo .btn-pri { padding: 8px 12px; }
}
body.tr-aberto .fundo { z-index: 9600; }
body.tr-aberto .robo, body.tr-aberto .robo-btn, body.tr-aberto .subir { display: none; }
span.tx > p { display: inline; margin: 0; }
span.tx > p + p::before { content: " "; }
.ex-assoc-res { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.ex-assoc-res li { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto; align-items: center; gap: 6px 12px; padding: 12px 14px; border-radius: 14px; border: 2px solid var(--linha-2); background: var(--sup); }
.ex-assoc-res li.ok { border-color: #0021A7; background: #D4DBF8; color: #061551; }
.ex-assoc-res li.mal { border-color: #E5484D; background: #FFE3E5; color: #7A1015; }
.ex-assoc-res li > i { opacity: .7; }
.ex-ar-st { font-size: 1.05rem; opacity: 1 !important; }
.ex-ar-c { grid-column: 1 / -1; padding-top: 6px; border-top: 1px dashed currentColor; font-size: .9rem; font-weight: 700; }
.ex-assoc-res li.mal .ex-ar-c { color: #0B217A; border-top-color: rgba(122, 16, 21, .25); }
:root[data-theme="dark"] .ex-assoc-res li.ok { background: #101838; color: #9AABF0; }
:root[data-theme="dark"] .ex-assoc-res li.mal { background: #3A1A20; color: #FFB4B8; }
:root[data-theme="dark"] .ex-assoc-res li.mal .ex-ar-c { color: #9AABF0; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .ex-assoc-res li.ok { background: #101838; color: #9AABF0; } :root:not([data-theme="light"]) .ex-assoc-res li.mal { background: #3A1A20; color: #FFB4B8; } :root:not([data-theme="light"]) .ex-assoc-res li.mal .ex-ar-c { color: #9AABF0; } }
.trm-deco { position: absolute; top: 34px; pointer-events: none; }
.trm-deco .cal { width: 132px; }
.trm-deco.dir { left: calc(50% + 150px); }
.trm-deco.esq { right: calc(50% + 150px); }
@media (max-width: 760px) { .trm-deco { display: none; } }

:root[data-theme="dark"] .tp-pe.ok .tp-fb strong { color: #5F79E0; }
:root[data-theme="dark"] .tp-pe.mal .tp-fb strong { color: #FF8A8F; }
:root[data-theme="dark"] .tp-k, :root[data-theme="dark"] .ex-res summary, :root[data-theme="dark"] .trs-tipo, :root[data-theme="dark"] .trpop-k, :root[data-theme="dark"] .trc-ic, :root[data-theme="dark"] .trr-ic { color: color-mix(in srgb, var(--cor) 55%, #fff); }
:root[data-theme="dark"] .ex-certa, :root[data-theme="dark"] .ex-gap-c, :root[data-theme="dark"] .tcor-r dd.ok { color: #5F79E0; }
:root[data-theme="dark"] .tcor-r dd.mal { color: #FF8A8F; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .tp-pe.ok .tp-fb strong { color: #5F79E0; }
  :root:not([data-theme="light"]) .tp-pe.mal .tp-fb strong { color: #FF8A8F; }
  :root:not([data-theme="light"]) .tp-k, :root:not([data-theme="light"]) .ex-res summary, :root:not([data-theme="light"]) .trs-tipo, :root:not([data-theme="light"]) .trpop-k, :root:not([data-theme="light"]) .trc-ic, :root:not([data-theme="light"]) .trr-ic { color: color-mix(in srgb, var(--cor) 55%, #fff); }
  :root:not([data-theme="light"]) .ex-certa, :root:not([data-theme="light"]) .ex-gap-c, :root:not([data-theme="light"]) .tcor-r dd.ok { color: #5F79E0; }
  :root:not([data-theme="light"]) .tcor-r dd.mal { color: #FF8A8F; }
}

.gr { display: grid; gap: 10px; margin: 0; min-width: 0; }
.gr-vazio { margin: 0; padding: 22px 12px; border-radius: 14px; background: var(--sup-2); color: var(--tinta-3); font-size: .88rem; text-align: center; }
.gr-leg { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: .8rem; font-weight: 650; color: var(--tinta-2); }
.gr-leg span { display: inline-flex; align-items: center; gap: 6px; }
.gr-leg i { width: 10px; height: 10px; border-radius: 3px; }
.gr-corpo { display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-rows: var(--gr-h, 170px) auto; column-gap: 10px; row-gap: 6px; }
.gr-eixo { position: relative; min-width: 2.4em; font-size: .74rem; color: var(--tinta-3); font-variant-numeric: tabular-nums; }
.gr-eixo span { position: absolute; right: 0; line-height: 1; white-space: nowrap; transform: translateY(-50%); }
.gr-eixo span:nth-child(1) { top: 0; }
.gr-eixo span:nth-child(2) { top: 50%; }
.gr-eixo span:nth-child(3) { top: 100%; }
.gr-area { position: relative; display: flex; align-items: flex-end; gap: 3px; border-bottom: 1.5px solid var(--linha-2); background: linear-gradient(var(--linha) 1px, transparent 1px) 0 0 / 100% 50%; }
.gr-col { display: flex; flex: 1 1 0; align-items: flex-end; justify-content: center; gap: 2px; height: 100%; min-width: 0; }
.gr-col i { flex: 1 1 0; max-width: 34px; min-height: 2px; border-radius: 5px 5px 2px 2px; transition: opacity .15s ease; }
.gr-col i.z { min-height: 0; }
.gr-col:hover i { opacity: .78; }
.gr-rot { display: flex; gap: 3px; min-width: 0; font-size: .72rem; color: var(--tinta-3); font-variant-numeric: tabular-nums; }
.gr-rot span { flex: 1 1 0; min-width: 0; text-align: center; white-space: nowrap; }
.gr-rot-abs { position: relative; display: block; height: 1.2em; }
.gr-rot-abs span { position: absolute; top: 0; transform: translateX(-50%); }
.gr-rot-abs span:first-child { transform: none; }
.gr-rot-abs span:last-child { transform: translateX(-100%); }
.gr-linhas .gr-area { display: block; }
.gr-linhas svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.gr-alvos { position: absolute; inset: 0; display: flex; }
.gr-alvos span { flex: 1 1 0; }
.gr-alvos span:hover { background: linear-gradient(90deg, transparent calc(50% - 1px), var(--linha-2) calc(50% - 1px), var(--linha-2) calc(50% + 1px), transparent calc(50% + 1px)); }
.gr-donut { grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 20px; }
.gr-donut-c { position: relative; width: 156px; height: 156px; }
.gr-donut-c svg { display: block; width: 100%; height: 100%; }
.gr-donut-c span { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; line-height: 1.1; }
.gr-donut-c b { font-family: var(--f-tit); font-size: 1.55rem; color: var(--tinta); font-variant-numeric: tabular-nums; }
.gr-donut-c small { color: var(--tinta-3); font-size: .76rem; font-weight: 700; }
.gr-donut-l { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; min-width: 0; }
.gr-donut-l li { display: grid; grid-template-columns: 12px minmax(0, 1fr) auto 3.2em; align-items: center; gap: 8px; font-size: .86rem; }
.gr-donut-l i { width: 12px; height: 12px; border-radius: 4px; }
.gr-donut-l span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--tinta-2); font-weight: 600; }
.gr-donut-l b { font-variant-numeric: tabular-nums; }
.gr-donut-l small { color: var(--tinta-3); text-align: right; font-variant-numeric: tabular-nums; }
.gr-h ol { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }
.gr-h li { display: grid; grid-template-columns: minmax(96px, 34%) minmax(0, 1fr) auto; align-items: center; gap: 10px; font-size: .86rem; }
.gr-h-r { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 650; }
.gr-h-r small { display: block; overflow: hidden; text-overflow: ellipsis; color: var(--tinta-3); font-weight: 500; font-size: .78rem; }
.gr-h-b { height: 12px; border-radius: 999px; background: var(--sup-3); overflow: hidden; }
.gr-h-b i { display: block; height: 100%; border-radius: inherit; }
.gr-h li > b { min-width: 2.5ch; text-align: right; font-variant-numeric: tabular-nums; }
.gr-kpis { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(170px, 100%), 1fr)); gap: 12px; }
.gr-kpi { position: relative; display: grid; gap: 2px; align-content: start; padding: 14px 16px; border-radius: 18px; background: var(--sup); border: 1px solid var(--linha); }
.gr-kpi.com-cor { border-top: 4px solid var(--k); }
.gr-kpi-ic { position: absolute; top: 12px; right: 12px; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 10px; background: color-mix(in srgb, var(--k, #2547F5) 14%, var(--sup)); color: var(--k, #2547F5); font-size: .85rem; }
.gr-kpi b { font-family: var(--f-tit); font-size: 1.6rem; line-height: 1.1; color: var(--tinta); font-variant-numeric: tabular-nums; }
.gr-kpi b small { margin-left: 3px; font-size: .9rem; color: var(--tinta-3); }
.gr-kpi > span { color: var(--tinta-2); font-size: .84rem; font-weight: 650; }
.gr-kpi em { color: var(--tinta-3); font-size: .8rem; font-style: normal; }
@media (max-width: 560px) {
  .gr-donut { grid-template-columns: minmax(0, 1fr); justify-items: center; }
  .gr-donut-l { width: 100%; }
  .gr-h li { grid-template-columns: minmax(80px, 38%) minmax(0, 1fr) auto; }
}

.ta { display: grid; gap: 18px; --cor: #2547F5; }
.ta-hero { display: grid; grid-template-columns: auto minmax(0, 1fr) minmax(260px, 340px); align-items: center; gap: 18px 24px; padding: 20px 22px; border-radius: 24px; background: var(--sup); border: 1px solid var(--linha); }
.ta-hero.on { border-color: color-mix(in srgb, #1632A3 40%, var(--linha)); background: linear-gradient(120deg, color-mix(in srgb, #1632A3 7%, var(--sup)), var(--sup) 55%); }
.ta-hero-cal .cal { width: 128px; height: auto; }
.ta-hero-t { display: grid; gap: 8px; justify-items: start; min-width: 0; }
.ta-hero-t h2 { margin: 0; font-family: var(--f-tit); font-size: 1.35rem; }
.ta-hero-t p { margin: 0; color: var(--tinta-2); max-width: 60ch; }
.ta-hero-ac { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin-top: 4px; }
.ta-sw { display: inline-flex; align-items: center; gap: 10px; cursor: pointer; font-weight: 750; }
.ta-sw input { position: absolute; opacity: 0; pointer-events: none; }
.ta-sw-b { position: relative; width: 46px; height: 26px; flex: none; border-radius: 999px; background: var(--sup-3); transition: background .2s ease; }
.ta-sw-b::after { content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .25); transition: transform .2s ease; }
.ta-sw input:checked + .ta-sw-b { background: #1632A3; }
.ta-sw input:checked + .ta-sw-b::after { transform: translateX(20px); }
.ta-sw input:focus-visible + .ta-sw-b { outline: 3px solid var(--azul-claro, #C7D2FE); outline-offset: 2px; }
.ta-modos { display: grid; gap: 6px; }
.ta-modos-t { font-size: .82rem; font-weight: 800; color: var(--tinta-3); }
.ta-modo { display: grid; gap: 1px; padding: 8px 12px; border-radius: 12px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta); text-align: left; cursor: pointer; }
.ta-modo b { font-size: .88rem; }
.ta-modo small { color: var(--tinta-2); font-size: .78rem; line-height: 1.35; }
.ta-modo.on { border-color: var(--bic, #2547F5); background: var(--azul-suave); box-shadow: inset 0 0 0 1px var(--bic, #2547F5); }
.ta-dupla { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.ta-dupla > .caixa { margin: 0; }
.ta-sec { display: grid; gap: 12px; }
.ta-sec-h { display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 10px; }
.ta-sec-h h3 { margin: 0; font-family: var(--f-tit); font-size: 1.15rem; }
.ta-sec-h p { margin: 2px 0 0; color: var(--tinta-2); font-size: .86rem; }
.ta-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(260px, 100%), 1fr)); gap: 14px; }
.ta-c { position: relative; display: grid; align-content: start; gap: 6px; padding: 18px 16px 14px; border-radius: 20px; background: var(--sup); border: 1px solid var(--linha); color: var(--tinta); text-decoration: none; overflow: hidden; cursor: pointer; transition: border-color .15s ease, transform .15s ease; }
.ta-c::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 6px; background: var(--cor); }
.ta-c:hover { border-color: var(--cor); }
.ta-c.a-arrastar { opacity: .45; transform: scale(.98); }
.ta-c-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.ta-c-ic { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 14px; background: color-mix(in srgb, var(--cor) 14%, var(--sup)); color: var(--cor); font-size: 1.2rem; }
.ta-c > strong { font-size: 1.08rem; }
.ta-c > small { color: var(--tinta-2); }
.ta-c-n { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; margin-top: 6px; }
.ta-c-n span { display: grid; padding: 6px 10px; border-radius: 10px; background: var(--sup-2); color: var(--tinta-2); font-size: .78rem; font-weight: 650; }
.ta-c-n b { font-family: var(--f-tit); font-size: 1.02rem; color: var(--tinta); font-variant-numeric: tabular-nums; }
.ta-c-pub { display: flex; align-items: center; gap: 6px; margin-top: 2px; color: var(--tinta-3); font-size: .8rem; font-weight: 650; }
.ta-c-nova { place-content: center; justify-items: center; min-height: 190px; border: 2px dashed var(--linha-2); background: transparent; text-align: center; }
.ta-c-nova::before { display: none; }
.ta-c-nova:hover { border-color: var(--bic, #2547F5); background: var(--azul-suave); }
.ta-c-mais { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: var(--bic, #2547F5); color: #fff; font-size: 1.2rem; }
.ta-est { display: inline-flex; align-items: center; padding: 3px 9px; border-radius: 999px; font-size: .76rem; font-weight: 800; white-space: nowrap; }
.ta-est.e-rascunho { background: var(--sup-2); color: var(--tinta-2); }
.ta-est.e-revisao { background: #FEF3C7; color: #92400E; }
.ta-est.e-publicado { background: #DCE2FC; color: #162665; }
.ta-est.e-arquivado { background: #E2E8F0; color: #475569; }
.ta-pend { display: inline-flex; margin-left: 6px; padding: 3px 9px; border-radius: 999px; background: #FFE4EE; color: #9D174D; font-size: .76rem; font-weight: 800; white-space: nowrap; }
:root[data-theme="dark"] .ta-est.e-revisao { background: #3B2A0A; color: #FCD34D; }
:root[data-theme="dark"] .ta-est.e-publicado { background: #111939; color: #869BEF; }
:root[data-theme="dark"] .ta-est.e-arquivado, :root[data-theme="dark"] .ta-est.e-rascunho { background: var(--sup-3); color: var(--tinta-2); }
:root[data-theme="dark"] .ta-pend { background: #3A1A2B; color: #F9A8D4; }
.ta-form { display: grid; gap: 14px; }
.ta-form h2 { margin: 0; }
.ta-form h3 { margin: 4px 0 0; font-size: .95rem; }
.ta-form .intro { margin: -6px 0 0; }
.ta-discs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; border: 0; }
.ta-discs legend { margin-bottom: 6px; font-size: .86rem; font-weight: 680; }
.ta-disc { cursor: pointer; }
.ta-disc input { position: absolute; opacity: 0; pointer-events: none; }
.ta-disc span { display: inline-flex; align-items: center; gap: 7px; padding: 8px 12px; border-radius: 12px; border: 1.5px solid var(--linha-2); background: var(--sup); font-size: .86rem; font-weight: 700; }
.ta-disc span i { color: var(--cor); }
.ta-disc input:checked + span { border-color: var(--cor); background: color-mix(in srgb, var(--cor) 12%, var(--sup)); box-shadow: inset 0 0 0 1px var(--cor); }
.ta-disc input:focus-visible + span { outline: 3px solid var(--azul-claro, #C7D2FE); }
.ta-cor-c input[type="color"] { width: 64px; height: 40px; padding: 2px; border-radius: 10px; }
.ta-chk { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 12px; border: 1.5px solid var(--linha-2); cursor: pointer; font-size: .86rem; }
.ta-chk.on { border-color: var(--bic, #2547F5); background: var(--azul-suave); }
.ta-chk span { flex: 1; min-width: 0; color: var(--tinta-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ta-chk small { color: var(--tinta-3); font-weight: 700; }
.ta-pub-u, .ta-pub-c { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(230px, 100%), 1fr)); gap: 8px; max-height: 260px; overflow-y: auto; }
.modal.ta-pub, .fundo .modal:has(.ta-pub) { max-width: 720px; }
.ta-prop { display: grid; gap: 10px; max-height: 50vh; overflow-y: auto; }
.ta-prop-m { padding: 10px; border-radius: 14px; background: var(--sup-2); }
.ta-prop-m > .ta-chk { background: var(--sup); }
.ta-prop-m > .ta-chk span { white-space: normal; }
.ta-prop-m ul { display: grid; gap: 4px; margin: 8px 0 0; padding: 0 0 0 12px; list-style: none; }
.ta-prop-m li label { display: flex; gap: 8px; align-items: center; font-size: .88rem; cursor: pointer; }
.btn-ia { background: linear-gradient(135deg, #6D28D9, #2547F5); border-color: transparent; color: #fff; }
.btn-ia:hover:not(:disabled) { filter: brightness(1.08); }
.btn-ia:disabled { opacity: .7; }
.ta-voltar { display: inline-flex; align-items: center; gap: 6px; justify-self: start; color: var(--tinta-2); font-weight: 700; text-decoration: none; }
.ta-voltar svg { width: 18px; height: 18px; }
.ta-t-cab { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 14px 18px; padding: 18px 20px; border-radius: 22px; background: var(--sup); border: 1px solid var(--linha); border-top: 6px solid var(--cor); }
.ta-t-ic { display: grid; place-items: center; width: 60px; height: 60px; border-radius: 18px; background: var(--cor); color: #fff; font-size: 1.6rem; }
.ta-t-tit { display: grid; gap: 3px; min-width: 0; }
.ta-t-tit h2 { margin: 0; font-family: var(--f-tit); font-size: 1.45rem; }
.ta-t-tit p { margin: 0; color: var(--tinta-2); }
.ta-t-pub { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: .86rem; }
.ta-t-ac { display: grid; gap: 8px; justify-items: end; }
.ta-t-bts { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.ta-seg { display: inline-flex; padding: 4px; border-radius: 14px; background: var(--sup-2); gap: 3px; }
.ta-seg button { padding: 7px 12px; border: 0; border-radius: 10px; background: none; color: var(--tinta-2); font-weight: 750; font-size: .84rem; cursor: pointer; }
.ta-seg button[aria-pressed="true"] { background: var(--sup); color: var(--tinta); box-shadow: var(--sombra-leve); }
.ta-barra { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.ta-barra-dica { margin-left: auto; color: var(--tinta-3); font-size: .8rem; font-weight: 600; }
.ta-mods { display: grid; gap: 14px; }
.ta-m { display: grid; gap: 10px; padding: 14px; border-radius: 20px; background: var(--sup); border: 1px solid var(--linha); }
.ta-m.a-arrastar { opacity: .5; }
.ta-m-cab { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 10px; }
.ta-m-soltos .ta-m-cab { grid-template-columns: minmax(0, 1fr); }
.ta-m-mao { display: grid; place-items: center; width: 30px; height: 40px; border-radius: 10px; color: var(--tinta-3); cursor: grab; }
.ta-m-mao:hover { background: var(--sup-2); color: var(--tinta); }
.ta-m-cab h3 { margin: 0; font-family: var(--f-tit); font-size: 1.08rem; }
.ta-m-cab p { margin: 2px 0 0; color: var(--tinta-2); font-size: .84rem; }
.ta-m-n { color: var(--cor); font-size: .78rem; font-weight: 800; }
.ta-m-ac { display: flex; gap: 2px; }
.ta-m:first-child [data-action="ta-m-sobe"] { visibility: hidden; }
.ta-l { display: grid; gap: 6px; min-height: 52px; margin: 0; padding: 6px; border-radius: 14px; background: var(--sup-2); list-style: none; }
.ta-l-vazio { display: grid; place-items: center; min-height: 40px; color: var(--tinta-3); font-size: .84rem; font-weight: 600; text-align: center; }
.ta-l:has(.ta-i) .ta-l-vazio { display: none; }
.ta-i { display: grid; grid-template-columns: auto auto minmax(0, 1fr) auto auto; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 12px; background: var(--sup); border: 1px solid var(--linha); cursor: grab; }
.ta-i:hover { border-color: color-mix(in srgb, var(--cor) 50%, var(--linha)); }
.ta-i.a-arrastar { opacity: .4; }
.ta-i-mao { color: var(--tinta-3); }
.ta-i-ic { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; background: color-mix(in srgb, var(--cor) 13%, var(--sup)); color: var(--cor); }
.ta-i.sim .ta-i-ic { background: #FEF3C7; color: #B45309; }
.ta-i-t { display: grid; min-width: 0; color: var(--tinta); text-decoration: none; }
.ta-i-t strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ta-i-t:hover strong { color: var(--cor); text-decoration: underline; }
.ta-i-t small { color: var(--tinta-2); font-size: .82rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ta-i-ac { display: flex; gap: 2px; }
.ta-mob { display: none !important; }
@media (hover: none) { .ta-mob { display: grid !important; } .ta-i { cursor: default; } }
.ta-m-pe { display: flex; flex-wrap: wrap; gap: 6px; }
@media (max-width: 1000px) { .ta-hero { grid-template-columns: auto minmax(0, 1fr); } .ta-modos { grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); } .ta-modos-t { grid-column: 1 / -1; } }
@media (max-width: 760px) {
  .ta-dupla { grid-template-columns: minmax(0, 1fr); }
  .ta-hero { grid-template-columns: minmax(0, 1fr); justify-items: start; }
  .ta-hero-cal .cal { width: 96px; }
  .ta-modos { grid-template-columns: minmax(0, 1fr); }
  .ta-t-cab { grid-template-columns: auto minmax(0, 1fr); }
  .ta-t-ac { grid-column: 1 / -1; justify-items: start; }
  .ta-t-bts { justify-content: flex-start; }
  .ta-i { grid-template-columns: auto minmax(0, 1fr) auto; }
  .ta-i-mao { display: none; }
  .ta-i-est { grid-column: 2; grid-row: 2; }
  .ta-i-ac { grid-column: 1 / -1; justify-content: flex-end; }
  .ta-barra-dica { display: none; }
}

body.te-aberto { overflow: hidden; }
body.te-aberto .fundo { z-index: 9600; }
body.te-aberto .robo, body.te-aberto .robo-btn, body.te-aberto .subir { display: none; }
.te-raiz { position: fixed; inset: 0; z-index: 9400; background: var(--mesa); }
.te { --cor: #2547F5; display: flex; flex-direction: column; height: 100%; height: 100dvh; }
.te-carregar { display: grid; place-items: center; }
.te-topo { display: flex; align-items: center; gap: 10px; flex: none; padding: 10px 14px; padding-top: calc(10px + env(safe-area-inset-top, 0px)); background: var(--sup); border-bottom: 1px solid var(--linha); }
.te-voltar { display: inline-flex; align-items: center; gap: 8px; max-width: 220px; padding: 8px 10px; border: 0; border-radius: 12px; background: none; color: var(--tinta-2); font-weight: 750; cursor: pointer; }
.te-voltar span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.te-voltar:hover { background: var(--sup-2); color: var(--tinta); }
.te-tipo-k { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; background: color-mix(in srgb, var(--cor) 12%, var(--sup)); color: var(--cor); font-size: .8rem; font-weight: 800; white-space: nowrap; }
.te-titulo { flex: 1 1 200px; min-width: 120px; padding: 8px 10px; border: 1.5px solid transparent; border-radius: 10px; background: none; color: var(--tinta); font-family: var(--f-tit); font-size: 1.1rem; font-weight: 700; }
.te-titulo:hover { border-color: var(--linha-2); }
.te-titulo:focus { outline: none; border-color: var(--bic, #2547F5); background: var(--sup); }
.te-est { display: inline-flex; align-items: center; }
.te-g { display: inline-flex; align-items: center; gap: 6px; color: var(--tinta-3); font-size: .82rem; font-weight: 650; white-space: nowrap; }
.te-g.erro { color: #B91C1C; }
.te-g.sujo { color: var(--tinta-2); }
.te-topo-ac { display: flex; align-items: center; gap: 6px; margin-left: auto; }
.te-mob { display: none !important; }
.te-corpo { display: grid; grid-template-columns: 230px minmax(0, 1fr) 330px; flex: 1 1 auto; min-height: 0; }
.te-cenas { display: flex; flex-direction: column; min-height: 0; overflow-y: auto; background: var(--sup); border-right: 1px solid var(--linha); }
.te-cenas-cab { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; padding: 12px 14px 8px; background: var(--sup); }
.te-cenas-cab small { padding: 2px 8px; border-radius: 999px; background: var(--sup-2); color: var(--tinta-2); font-weight: 800; }
.te-cl { display: grid; gap: 8px; margin: 0; padding: 4px 12px 12px; list-style: none; }
.te-ci { position: relative; border-radius: 14px; }
.te-ci.a-arrastar { opacity: .4; }
.te-ci.alvo-antes::before, .te-ci.alvo-depois::after { content: ""; position: absolute; left: 6px; right: 6px; height: 3px; border-radius: 3px; background: var(--bic, #2547F5); }
.te-ci.alvo-antes::before { top: -6px; }
.te-ci.alvo-depois::after { bottom: -6px; }
.te-ci-b { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "n m p" "n t p"; align-items: center; gap: 4px 8px; width: 100%; padding: 8px 10px; border: 1.5px solid var(--linha); border-radius: 14px; background: var(--sup); color: var(--tinta); text-align: left; cursor: pointer; }
.te-ci-b:hover { border-color: var(--linha-2); background: var(--sup-2); }
.te-ci.on .te-ci-b { border-color: var(--cor); box-shadow: 0 0 0 3px color-mix(in srgb, var(--cor) 18%, transparent); background: var(--sup); }
.te-ci-n { grid-area: n; display: grid; place-items: center; width: 24px; height: 24px; border-radius: 8px; background: var(--sup-2); color: var(--tinta-2); font-size: .78rem; font-weight: 800; }
.te-ci.on .te-ci-n { background: var(--cor); color: #fff; }
.te-ci-mini { grid-area: m; display: flex; gap: 3px; height: 14px; }
.te-ci-mini i { flex: 1; max-width: 26px; border-radius: 3px; background: var(--sup-3); }
.te-ci-mini i.m-texto { background: color-mix(in srgb, var(--tinta-3) 35%, var(--sup-3)); }
.te-ci-mini i.m-formula { background: #C7D2FE; }
.te-ci-mini i.m-imagem, .te-ci-mini i.m-video { background: #BAE6FD; }
.te-ci-mini i.m-destaque { background: #FDE68A; }
.te-ci-mini i.m-passos { background: #BBC7F7; }
.te-ci-mini i.m-ex { background: color-mix(in srgb, var(--cor) 45%, var(--sup)); }
.te-ci-t { grid-area: t; display: flex; align-items: center; gap: 6px; min-width: 0; font-size: .8rem; font-weight: 650; color: var(--tinta-2); }
.te-ci-t i { color: var(--cor); font-size: .78rem; }
.te-ci-t span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.te-ci-prob { grid-area: p; color: #D97706; }
.te-cenas-pe { position: sticky; bottom: 0; margin-top: auto; padding: 10px 12px; background: linear-gradient(transparent, var(--sup) 30%); }
.te-cena-mais { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; padding: 10px; border: 2px dashed var(--linha-2); border-radius: 14px; background: var(--sup); color: var(--tinta-2); font-weight: 800; cursor: pointer; }
.te-cena-mais:hover { border-color: var(--cor); color: var(--cor); }
.te-palco { position: relative; min-height: 0; overflow-y: auto; padding: 26px 22px 120px; background-color: var(--mesa); background-image: radial-gradient(color-mix(in srgb, var(--tinta-3) 26%, transparent) 1px, transparent 1px); background-size: 20px 20px; }
.te-folha { position: relative; display: grid; gap: 12px; width: min(760px, 100%); margin: 0 auto; padding: 20px 22px 18px; border-radius: 24px; background: var(--sup); border: 1px solid var(--linha); box-shadow: 0 18px 40px -24px rgba(16, 22, 51, .35); }
.te-cena-cab { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }
.te-tipos, .te-ex-tipos { display: flex; flex-wrap: wrap; gap: 4px; padding: 4px; border-radius: 14px; background: var(--sup-2); }
.te-tipos button, .te-ex-tipos button { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border: 0; border-radius: 10px; background: none; color: var(--tinta-2); font-size: .8rem; font-weight: 750; cursor: pointer; }
.te-tipos button[aria-pressed="true"], .te-ex-tipos button[aria-pressed="true"] { background: var(--sup); color: var(--cor); box-shadow: var(--sombra-leve); }
.te-cena-ac { display: flex; align-items: center; gap: 2px; }
.te-cena-n { margin-right: 6px; color: var(--tinta-3); font-size: .82rem; font-weight: 750; }
.te-cena-tit { width: 100%; padding: 6px 2px; border: 0; border-bottom: 2px solid transparent; background: none; color: var(--tinta); font-family: var(--f-tit); font-size: 1.5rem; font-weight: 700; }
.te-cena-tit:hover { border-bottom-color: var(--linha); }
.te-cena-tit:focus { outline: none; border-bottom-color: var(--cor); }
.te-cena-tit::placeholder { color: var(--tinta-3); font-weight: 600; }
.te-blocos { display: grid; }
.te-ins { position: relative; display: grid; place-items: center; height: 22px; }
.te-ins::before { content: ""; position: absolute; left: 10px; right: 10px; top: 50%; height: 2px; border-radius: 2px; background: transparent; transition: background .12s ease; }
.te-ins-b { position: relative; display: grid; place-items: center; width: 26px; height: 26px; border: 1.5px solid var(--linha-2); border-radius: 50%; background: var(--sup); color: var(--tinta-3); font-size: .78rem; opacity: 0; cursor: pointer; transition: opacity .12s ease; }
.te-ins:hover .te-ins-b, .te-ins-b:focus-visible, .te-blocos:not(:has(.te-b)) .te-ins-b { opacity: 1; }
.te-ins:hover::before { background: var(--linha-2); }
.te-ins.alvo::before { height: 4px; background: var(--cor); }
.te-ins.alvo .te-ins-b { opacity: 1; border-color: var(--cor); color: var(--cor); }
.te-b { position: relative; border: 1.5px solid transparent; border-radius: 16px; transition: border-color .12s ease; }
.te-b:hover, .te-b:focus-within { border-color: var(--linha-2); }
.te-b:focus-within { border-color: color-mix(in srgb, var(--cor) 55%, var(--linha-2)); }
.te-b.a-arrastar { opacity: .4; }
.te-b-bar { display: flex; align-items: center; gap: 6px; padding: 4px 6px 0; opacity: .55; transition: opacity .12s ease; }
.te-b:hover .te-b-bar, .te-b:focus-within .te-b-bar { opacity: 1; }
.te-b-mao { display: grid; place-items: center; width: 24px; height: 28px; border-radius: 8px; color: var(--tinta-3); cursor: grab; }
.te-b-mao:hover { background: var(--sup-2); color: var(--tinta); }
.te-b-k { display: inline-flex; align-items: center; gap: 6px; color: var(--tinta-3); font-size: .76rem; font-weight: 800; }
.te-b-k i { color: var(--cor); }
.te-b-ac { display: flex; gap: 2px; margin-left: auto; }
.te-b-ac .ib, .te-cena-ac .ib, .te-mini-ac .ib, .te-ops .ib, .te-pares .ib { width: 30px; height: 30px; }
.te-b-corpo { display: grid; gap: 10px; padding: 4px 12px 12px; }
.te-q > .te-b-corpo { padding-top: 8px; }
.te-rt { min-height: 1.6em; padding: 8px 10px; border-radius: 10px; outline: none; color: var(--tinta); font-size: 1.04rem; line-height: 1.6; overflow-wrap: anywhere; cursor: text; }
.te-rt:hover { background: var(--sup-2); }
.te-rt:focus { background: var(--sup); box-shadow: inset 0 0 0 1.5px var(--linha-2); }
.te-rt:is(:empty, :has(> br:only-child))::before { content: attr(data-ph); color: var(--tinta-3); pointer-events: none; }
.te-rt p { margin: 0 0 .5em; }
.te-rt p:last-child { margin-bottom: 0; }
.te-rt ul, .te-rt ol { margin: .3em 0; padding-left: 1.3em; }
.te-rt h3 { margin: .3em 0; font-size: 1.15rem; }
.te-rt mark { background: #FFF1A8; padding: 0 .15em; border-radius: 3px; }
.te-rt-1 { padding: 6px 8px; font-size: .98rem; line-height: 1.45; }
.te-rt.a-pensar { opacity: .5; background: repeating-linear-gradient(90deg, var(--sup-2), var(--sup) 40%, var(--sup-2) 80%); background-size: 200% 100%; animation: te-pensar 1.2s linear infinite; }
@keyframes te-pensar { to { background-position: -200% 0; } }
.te-prev { padding: 8px 10px; border-radius: 10px; background: var(--sup-2); font-size: .95rem; }
.te-prev-k { display: block; margin-bottom: 4px; color: var(--tinta-3); font-size: .74rem; font-weight: 800; }
.te-in { width: 100%; padding: 9px 11px; border: 1.5px solid var(--linha-2); border-radius: 10px; background: var(--sup); color: var(--tinta); font: inherit; font-size: .92rem; }
.te-in:focus { outline: none; border-color: var(--bic, #2547F5); box-shadow: 0 0 0 3px var(--azul-claro, #C7D2FE); }
textarea.te-in { resize: vertical; min-height: 64px; }
.te-in-tit { font-weight: 700; }
.te-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.te-l { display: grid; gap: 4px; color: var(--tinta-2); font-size: .8rem; font-weight: 800; }
.te-l small { color: var(--tinta-3); font-weight: 600; }
.te-ajuda { margin: 0; color: var(--tinta-3); font-size: .82rem; }
.te-form { display: grid; gap: 8px; }
.te-tex-bar { display: flex; flex-wrap: wrap; gap: 4px; }
.te-tex-bar button { min-width: 34px; padding: 5px 8px; border: 1px solid var(--linha-2); border-radius: 8px; background: var(--sup); color: var(--tinta); font-size: .84rem; cursor: pointer; }
.te-tex-bar button:hover { border-color: var(--cor); color: var(--cor); }
.te-tex { width: 100%; padding: 10px 12px; border: 1.5px solid var(--linha-2); border-radius: 12px; background: var(--sup-2); color: var(--tinta); font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .92rem; resize: vertical; }
.te-tex:focus { outline: none; border-color: var(--bic, #2547F5); background: var(--sup); }
.te-tex-prev { display: grid; place-items: center; min-height: 60px; padding: 12px; border-radius: 12px; border: 1px dashed var(--linha-2); overflow-x: auto; font-size: 1.15rem; }
.te-tex-vazio { color: var(--tinta-3); font-size: .86rem; }
.te-img { position: relative; margin: 0; }
.te-img img { display: block; max-width: 100%; max-height: 380px; margin: 0 auto; border-radius: 14px; }
.te-img-ac { position: absolute; top: 8px; right: 8px; display: flex; gap: 6px; }
.te-img-ac .btn { background: var(--sup); }
.te-drop { display: grid; justify-items: center; gap: 6px; padding: 28px 16px; border: 2px dashed var(--linha-2); border-radius: 16px; background: var(--sup-2); color: var(--tinta-2); text-align: center; cursor: pointer; }
.te-drop i { font-size: 1.8rem; color: var(--cor); }
.te-drop span { font-size: .84rem; color: var(--tinta-3); max-width: 46ch; }
.te-drop:hover { border-color: var(--cor); }
.te-vid-l { display: flex; gap: 8px; align-items: center; }
.te-vid-l .te-in { flex: 1; }
.te-vid-p video { display: block; width: 100%; max-height: 320px; border-radius: 12px; background: #000; }
.te-tons { display: flex; flex-wrap: wrap; gap: 6px; }
.te-tom { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border: 1.5px solid var(--linha-2); border-radius: 10px; background: var(--sup); color: var(--tinta-2); font-size: .8rem; font-weight: 750; cursor: pointer; }
.te-tom[aria-pressed="true"] { border-color: currentColor; }
.te-tom.t-dica[aria-pressed="true"] { color: #1E3A8A; background: #EEF2FF; }
.te-tom.t-atencao[aria-pressed="true"] { color: #7C4A03; background: #FFF7E6; }
.te-tom.t-curiosidade[aria-pressed="true"] { color: #6B1F80; background: #FDF0FF; }
.te-tom.t-lembra[aria-pressed="true"] { color: #06185F; background: #ECEFFD; }
.te-dest { padding: 4px; }
.te-dest .te-rt:hover, .te-dest .te-rt:focus { background: rgba(255, 255, 255, .55); }
.te-passos, .te-ord, .te-ops, .te-pares { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.te-passos li, .te-ord li { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; align-items: start; gap: 8px; }
.te-n { display: grid; place-items: center; width: 26px; height: 26px; margin-top: 7px; border-radius: 50%; background: var(--cor); color: #fff; font-size: .82rem; font-weight: 800; }
.te-mini-ac { display: flex; gap: 2px; margin-top: 4px; }
.te-ops li { display: grid; grid-template-columns: auto auto minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 4px 6px; border-radius: 12px; border: 1.5px solid var(--linha); background: var(--sup); }
.te-ops li.certa { border-color: #0021A7; background: #E8ECFB; }
:root[data-theme="dark"] .te-ops li.certa { background: #101838; }
.te-certa { display: grid; place-items: center; width: 30px; height: 30px; border: 2px solid var(--linha-2); border-radius: 50%; background: var(--sup); color: transparent; cursor: pointer; }
.te-certa:hover { border-color: #0021A7; color: #0021A7; }
.te-certa[aria-pressed="true"] { border-color: #0021A7; background: #0021A7; color: #fff; }
.te-l-op { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 8px; border: 1.5px solid var(--linha-2); color: var(--tinta-2); font-size: .82rem; font-weight: 800; }
.te-pares li { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto; align-items: center; gap: 8px; }
.te-pares li > i { color: var(--tinta-3); }
.te-pares .te-rt, .te-ord .te-rt { border: 1.5px solid var(--linha); background: var(--sup); }
.te-vf { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.te-vf button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 12px; border: 2px solid var(--linha-2); border-radius: 14px; background: var(--sup); color: var(--tinta-2); font-weight: 800; cursor: pointer; }
.te-vf button[aria-pressed="true"] { border-color: #0021A7; background: #E8ECFB; color: #0B217A; }
:root[data-theme="dark"] .te-vf button[aria-pressed="true"] { background: #101838; color: #5F79E0; }
.te-chips { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding: 6px; border: 1.5px solid var(--linha-2); border-radius: 12px; background: var(--sup); }
.te-chip { display: inline-flex; align-items: center; gap: 4px; padding: 4px 6px 4px 10px; border-radius: 999px; background: color-mix(in srgb, var(--cor) 12%, var(--sup)); color: var(--tinta); font-size: .84rem; font-weight: 700; }
.te-chip button { display: grid; place-items: center; width: 20px; height: 20px; border: 0; border-radius: 50%; background: none; color: var(--tinta-2); cursor: pointer; }
.te-chip-in { flex: 1; min-width: 140px; border: 0; background: none; padding: 6px; color: var(--tinta); font: inherit; outline: none; }
.te-chk { display: flex; align-items: flex-start; gap: 8px; font-size: .88rem; font-weight: 650; color: var(--tinta); cursor: pointer; }
.te-chk input { margin-top: 3px; accent-color: var(--bic, #2547F5); }
.te-chk small { display: block; color: var(--tinta-3); font-weight: 500; }
.te-chks { display: grid; gap: 6px; }
.te-tol { max-width: 220px; }
.te-lac-ac { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.te-lac-prev { display: flex; flex-wrap: wrap; gap: 6px; }
.te-mais { display: inline-flex; align-items: center; justify-self: start; gap: 6px; padding: 7px 12px; border: 1.5px dashed var(--linha-2); border-radius: 10px; background: none; color: var(--tinta-2); font-weight: 750; font-size: .84rem; cursor: pointer; }
.te-mais:hover { border-color: var(--cor); color: var(--cor); }
.te-ex-img { display: flex; align-items: center; gap: 10px; }
.te-ex-img img { max-width: 220px; max-height: 140px; border-radius: 10px; }
.te-ex-img-b { display: inline-flex; align-items: center; justify-self: start; gap: 6px; color: var(--tinta-3); font-size: .8rem; font-weight: 700; cursor: pointer; }
.te-ex-img-b:hover { color: var(--cor); }
.te-ex-mais { border-radius: 14px; background: var(--sup-2); }
.te-ex-mais > summary { display: flex; align-items: center; gap: 8px; padding: 10px 12px; color: var(--tinta-2); font-weight: 800; font-size: .86rem; cursor: pointer; list-style: none; }
.te-ex-mais > summary::-webkit-details-marker { display: none; }
.te-ex-mais[open] > summary { color: var(--cor); }
.te-ex-mais > :not(summary) { margin: 0 12px 10px; }
.te-ex-mais .te-rt { background: var(--sup); }
.te-ia-res { justify-self: start; }
.te-tema-l .te-in { max-width: 320px; }
.te-vazio { padding: 10px; }
.te-prob { display: flex; gap: 8px; align-items: flex-start; margin: 0; padding: 10px 12px; border-radius: 12px; background: #FFF7E6; color: #7C4A03; font-size: .86rem; font-weight: 650; }
:root[data-theme="dark"] .te-prob { background: #3B2A0A; color: #FCD34D; }
.te-prob i { margin-top: 2px; }
.te-folha-pe { display: flex; justify-content: space-between; gap: 8px; padding-top: 6px; border-top: 1px solid var(--linha); }
.te-lado { display: flex; flex-direction: column; min-height: 0; overflow-y: auto; background: var(--sup); border-left: 1px solid var(--linha); }
.te-abas { position: sticky; top: 0; z-index: 2; display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 4px; padding: 10px 12px; background: var(--sup); border-bottom: 1px solid var(--linha); }
.te-abas button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 8px 6px; border: 0; border-radius: 10px; background: none; color: var(--tinta-2); font-weight: 800; font-size: .82rem; cursor: pointer; }
.te-abas button[aria-selected="true"] { background: var(--azul-suave); color: var(--bic, #2547F5); }
.te-lado-c { padding: 14px; }
.te-pal { display: grid; gap: 10px; }
.te-pal h4 { margin: 4px 0 0; font-size: .82rem; color: var(--tinta-3); }
.te-pal-g { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.te-pal-i { display: grid; justify-items: center; gap: 6px; padding: 12px 6px; border: 1.5px solid var(--linha); border-radius: 14px; background: var(--sup); color: var(--tinta); font-size: .8rem; font-weight: 750; text-align: center; cursor: grab; transition: border-color .12s ease, transform .12s ease; }
.te-pal-i i { font-size: 1.2rem; color: var(--cor); }
.te-pal-i.ex i { color: #7C3AED; }
.te-pal-i:hover { border-color: var(--cor); transform: translateY(-1px); }
.te-atalhos { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; color: var(--tinta-2); font-size: .8rem; }
.te-atalhos kbd { display: inline-block; padding: 1px 6px; border-radius: 6px; border: 1px solid var(--linha-2); background: var(--sup-2); font: inherit; font-size: .78rem; font-weight: 700; }
.te-atalhos code { padding: 1px 5px; border-radius: 6px; background: var(--sup-2); }
.te-seg { display: flex; flex-wrap: wrap; gap: 4px; padding: 4px; border-radius: 12px; background: var(--sup-2); }
.te-seg button { flex: 1; padding: 7px 8px; border: 0; border-radius: 9px; background: none; color: var(--tinta-2); font-weight: 750; font-size: .8rem; cursor: pointer; }
.te-seg button[aria-pressed="true"] { background: var(--sup); color: var(--tinta); box-shadow: var(--sombra-leve); }
.te-ia, .te-def { display: grid; gap: 12px; }
.te-ia-off { padding: 6px; }
.te-ia-nota { margin: 0; color: var(--tinta-3); font-size: .8rem; }
.te-iar { display: grid; gap: 8px; padding: 12px; border-radius: 14px; border: 1.5px solid color-mix(in srgb, #7C3AED 40%, var(--linha)); background: color-mix(in srgb, #7C3AED 5%, var(--sup)); }
.te-iar-i { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px; align-items: start; padding: 8px; border-radius: 10px; background: var(--sup); cursor: pointer; }
.te-iar-i input { margin-top: 4px; }
.te-iar-ex { display: grid; gap: 4px; font-size: .86rem; min-width: 0; }
.te-iar-ex small { color: #0B217A; font-weight: 650; }
.te-iar-k { color: #7C3AED; font-size: .74rem; font-weight: 800; }
.te-iar-t { font-size: .86rem; max-height: 6.5em; overflow: hidden; }
.te-iar-p { margin: 0; padding-left: 1.2em; font-size: .84rem; }
.te-iar-cenas { display: grid; gap: 4px; margin: 0; padding-left: 1.2em; font-size: .86rem; }
.te-iar-cenas small { color: var(--tinta-3); }
.te-iar-ac { display: flex; flex-wrap: wrap; gap: 6px; }
.te-est-l { margin: 0; }
.te-est-ac { display: flex; flex-wrap: wrap; gap: 6px; }
.te-vers { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.te-vers li { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 10px; border-radius: 12px; background: var(--sup-2); }
.te-vers span { display: grid; }
.te-vers small { color: var(--tinta-3); font-size: .78rem; }
.te-banco { display: grid; gap: 10px; }
.te-banco-l { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.te-banco-l li { display: grid; gap: 4px; padding: 10px; border-radius: 12px; border: 1px solid var(--linha); background: var(--sup); font-size: .86rem; }
.te-banco-l li > small { color: var(--tinta-3); }
.te-banco-l .btn { justify-self: start; }
.te-sim-vazio { justify-items: center; text-align: center; padding: 30px 22px; }
.te-sim-ops { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(190px, 100%), 1fr)); gap: 10px; width: 100%; }
.te-sim-op { display: grid; justify-items: center; gap: 6px; padding: 18px 12px; border: 1.5px solid var(--linha); border-radius: 18px; background: var(--sup); color: var(--tinta); cursor: pointer; }
.te-sim-op i { font-size: 1.4rem; color: var(--cor); }
.te-sim-op.ia i { color: #7C3AED; }
.te-sim-op small { color: var(--tinta-2); }
.te-sim-op:hover { border-color: var(--cor); }
.te-menu { position: fixed; z-index: 9550; display: grid; gap: 10px; width: 280px; max-height: 70vh; overflow-y: auto; padding: 10px; border-radius: 16px; background: var(--sup); border: 1px solid var(--linha); box-shadow: var(--sombra-pop); }
.te-menu-g { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px; }
.te-menu-g b { grid-column: 1 / -1; padding: 2px 4px; color: var(--tinta-3); font-size: .78rem; }
.te-menu-g button { display: flex; align-items: center; gap: 8px; padding: 8px; border: 0; border-radius: 10px; background: none; color: var(--tinta); font-size: .82rem; font-weight: 700; text-align: left; cursor: pointer; }
.te-menu-g button i { width: 18px; color: var(--cor, #2547F5); text-align: center; }
.te-menu-g button.ia i { color: #7C3AED; }
.te-menu-g button:hover, .te-menu-g button:focus { background: var(--sup-2); outline: none; }
.te-ferr { position: fixed; z-index: 9450; display: flex; align-items: center; gap: 2px; padding: 4px; border-radius: 12px; background: #101633; box-shadow: 0 10px 26px rgba(16, 22, 51, .35); }
.te-ferr button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-width: 32px; height: 32px; padding: 0 8px; border: 0; border-radius: 8px; background: none; color: #E8ECF8; cursor: pointer; font-size: .82rem; font-weight: 750; }
.te-ferr button:hover { background: rgba(255, 255, 255, .14); }
.te-ferr button.ia { color: #C4B5FD; }
.te-ferr-sep { width: 1px; height: 20px; margin: 0 4px; background: rgba(255, 255, 255, .2); }
.te-pub-ok, .te-probs { display: grid; justify-items: center; gap: 12px; text-align: center; }
.te-probs { justify-items: stretch; text-align: left; }
.te-probs ul { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.te-probs li { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 12px; border-radius: 12px; background: var(--sup-2); font-size: .9rem; }
@media (max-width: 1180px) { .te-corpo { grid-template-columns: 200px minmax(0, 1fr) 300px; } .te-tipo-k, .te-g { display: none; } }
@media (max-width: 960px) {
  .te-corpo { display: flex; flex-direction: column; }
  .te-cenas { flex: none; flex-direction: row; overflow-x: auto; overflow-y: hidden; border-right: 0; border-bottom: 1px solid var(--linha); }
  .te-cenas-cab { display: none; }
  .te-cl { display: flex; padding: 8px 10px; }
  .te-ci { flex: none; width: 150px; }
  .te-ci-mini { display: none; }
  .te-ci-b { grid-template-areas: "n t p"; }
  .te-cenas-pe { position: static; margin: 0; padding: 8px 10px 8px 0; background: none; }
  .te-cena-mais { width: auto; white-space: nowrap; height: 100%; }
  .te-palco { flex: 1 1 auto; padding: 14px 10px 90px; }
  .te-folha { padding: 14px 12px; border-radius: 18px; }
  .te-lado { position: fixed; left: 0; right: 0; bottom: 0; z-index: 9420; max-height: 72vh; border-left: 0; border-top: 1px solid var(--linha); border-radius: 20px 20px 0 0; box-shadow: 0 -18px 40px rgba(16, 22, 51, .25); transform: translateY(105%); transition: transform .25s ease; }
  .te-lado.aberto { transform: none; }
  .te-mob { display: grid !important; }
  .te-voltar span { display: none; }
  .te-topo { flex-wrap: wrap; gap: 6px; }
  .te-titulo { order: 5; flex-basis: 100%; }
  .te-topo-ac .btn span { display: none; }
}
@media (max-width: 560px) { .te-2, .te-vf { grid-template-columns: minmax(0, 1fr); } .te-pares li { grid-template-columns: minmax(0, 1fr) auto; } .te-pares li > i { display: none; } .te-cena-tit { font-size: 1.25rem; } }
.te-q > .te-b-bar { opacity: 1; }
.convidados .conv-est { margin-left: auto; padding: 3px 9px; border-radius: 999px; background: var(--sup-2); color: var(--tinta-2); font-size: .78rem; font-weight: 750; white-space: nowrap; }
.pp-como .pp-bts { display: inline-flex; flex-wrap: wrap; gap: 6px; margin-left: auto; }
.ppc { display: grid; gap: 12px; }
.ppc h2 { margin: 0; }
.ppc-q { width: 100%; }
.ppc-l { display: grid; gap: 6px; max-height: 52vh; overflow-y: auto; }
.ppc-p { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 10px; width: 100%; padding: 8px 10px; border: 1px solid var(--linha); border-radius: 14px; background: var(--sup); color: var(--tinta); text-align: left; cursor: pointer; }
.ppc-p:hover { border-color: var(--bic, #2547F5); background: var(--azul-suave); }
.ppc-p span { display: grid; min-width: 0; }
.ppc-p strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ppc-p small { color: var(--tinta-2); font-size: .82rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ppc-p > i { color: var(--tinta-3); }
.pp-como .pp-bts { flex: 0 0 auto; }

.bv { position: fixed; inset: 0; z-index: 9900; display: grid; grid-template-rows: auto minmax(0, 1fr); overflow-y: auto; padding: max(28px, env(safe-area-inset-top)) 20px max(28px, env(safe-area-inset-bottom)); background: #1E40E6; color: #FFFFFF; transition: opacity .3s ease; }
.bv.sai { opacity: 0; pointer-events: none; }
body.bv-aberto { overflow: hidden; }
.bv-topo { display: flex; align-items: center; justify-content: center; gap: 10px; font-family: var(--f-tit); font-size: 1.4rem; font-weight: 800; letter-spacing: -.01em; }
.bv-topo svg { width: 42px; height: 42px; flex: none; }
.bv-c { display: grid; justify-items: center; align-content: center; gap: 14px; padding: 28px 0 9vh; text-align: center; }
.bv-av { width: 136px; height: 136px; border-radius: 50%; overflow: hidden; background: #FFFFFF; border: 5px solid #FFFFFF; box-shadow: 0 18px 44px rgba(8, 18, 90, .35); animation: bvAv .5s cubic-bezier(.2, 1.3, .4, 1) .1s both; }
.bv-av .av { display: block; width: 100%; height: 100%; border-radius: 0; font-size: 2.6rem; }
.bv-t { margin: 10px 0 0; font-family: var(--f-tit); font-size: clamp(1.7rem, 5.4vw, 2.4rem); font-weight: 800; line-height: 1.15; letter-spacing: -.02em; color: #FFFFFF; }
.bv-s { max-width: 34ch; margin: 0; color: rgba(255, 255, 255, .88); font-size: 1.05rem; line-height: 1.5; }
.bv-s b { color: #FFFFFF; }
.bv-btn { min-width: 210px; margin-top: 12px; padding: 15px 36px; border: 0; border-radius: 999px; background: #FFFFFF; color: #1E40E6; font: inherit; font-size: 1.08rem; font-weight: 800; cursor: pointer; box-shadow: 0 14px 34px rgba(8, 18, 90, .3); transition: transform .15s ease; }
.bv-btn:hover { transform: translateY(-1px); }
.bv-btn:focus-visible { outline: 3px solid rgba(255, 255, 255, .7); outline-offset: 3px; }
@keyframes bvAv { from { transform: scale(.6); opacity: 0; } to { transform: none; opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .bv-av { animation: none; } .bv { transition: none; } }

.foco { display: grid; gap: 16px; margin-bottom: 28px; }
.foco-ola h1 { margin: 0; font-size: clamp(1.6rem, 2.8vw, 2.2rem); font-weight: 800; font-stretch: 90%; letter-spacing: -.035em; }
.foco-ola p { margin: 4px 0 0; color: var(--tinta-2); }
.foco-busca { max-width: 720px; }
.foco-dica { display: flex; align-items: center; gap: 8px; margin: 0; color: var(--tinta-2); font-size: .92rem; }
.foco-dica .moeda { width: 20px; height: 20px; flex: none; }
.foco-dica b { color: var(--tinta); }
.foco-cads h2 { margin: 0 0 10px; color: var(--tinta-2); font-size: .95rem; font-weight: 750; }
.foco-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.foco-chip { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; max-width: 100%; padding: 6px 7px 6px 14px; border: 1.5px solid var(--linha-2); border-radius: 999px; background: var(--sup); color: var(--tinta); font-size: .9rem; font-weight: 700; text-decoration: none; transition: border-color .15s ease, background-color .15s ease; }
.foco-chip > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.foco-chip:hover { border-color: var(--bic); background: var(--azul-suave); }
.foco-chip:focus-visible { outline: 3px solid var(--azul-claro); outline-offset: 2px; }
.foco-chip small { color: var(--tinta-3); font-size: .8rem; font-weight: 650; }
.foco-chip b { display: inline-grid; place-items: center; min-width: 26px; height: 26px; padding: 0 8px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); font-size: .82rem; }
.foco-chip.vazia { padding-right: 14px; border-style: dashed; color: var(--tinta-2); }
@media (max-width: 640px) { .foco-chip:nth-child(n+7) { display: none; } }

.cad-dest { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr)); gap: 12px; margin: 0 0 22px; }
.cdd { display: grid; align-content: start; gap: 8px; min-width: 0; padding: 14px 14px 14px 16px; border: 1.5px solid var(--linha); border-radius: 20px; background: var(--sup); }
.cdd-vivo { border-color: color-mix(in srgb, #E5484D 32%, var(--linha)); background: color-mix(in srgb, #E5484D 5%, var(--sup)); }
.cdd-treino { border-color: color-mix(in srgb, var(--marca) 30%, var(--linha)); background: var(--azul-suave); }
.cdd h2 { display: flex; align-items: center; gap: 10px; min-height: 40px; margin: 0; font-size: 1rem; font-weight: 800; }
.cdd-ic { display: grid; place-items: center; width: 34px; height: 34px; flex: none; border-radius: 11px; background: #E5484D; color: #FFFFFF; }
.cdd-ic svg { width: 18px; height: 18px; }
.cdd-cal { display: grid; place-items: center; width: 40px; height: 40px; flex: none; }
.cdd-cal .cal { width: 40px; height: auto; max-width: none; }
.cdd-mais { margin-left: auto; color: var(--bic); font-size: .82rem; font-weight: 750; text-decoration: none; }
.cdd-mais:hover { text-decoration: underline; }
.cdl { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 10px 10px 10px 12px; border: 1px solid var(--linha); border-radius: 14px; background: var(--sup); color: var(--tinta); text-decoration: none; transition: border-color .15s ease; }
.cdl:hover { border-color: var(--linha-2); }
.cdl:focus-visible { outline: 3px solid var(--azul-claro); outline-offset: 2px; }
.cdl-ic { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 10px; }
.cdl-vivo .cdl-ic { background: color-mix(in srgb, #E5484D 13%, var(--sup)); color: #D93036; }
.cdl-treino .cdl-ic { background: color-mix(in srgb, var(--cor, var(--marca)) 15%, var(--sup)); color: var(--cor, var(--marca)); }
.cdl-ponto { width: 10px; height: 10px; border-radius: 50%; background: #E5484D; animation: cdlPulso 1.6s ease-in-out infinite; }
.cdl-t { display: grid; min-width: 0; }
.cdl-t b { overflow: hidden; font-size: .93rem; text-overflow: ellipsis; white-space: nowrap; }
.cdl-t small { overflow: hidden; color: var(--tinta-3); font-size: .8rem; text-overflow: ellipsis; white-space: nowrap; }
.cdl-ir { padding: 7px 14px; border-radius: 999px; color: #FFFFFF; font-size: .82rem; font-weight: 800; white-space: nowrap; }
.cdl-vivo .cdl-ir { background: #E5484D; }
.cdl-vivo:not(.agora) .cdl-ir { background: var(--sup-2); color: var(--tinta); }
.cdl-treino .cdl-ir { background: var(--marca); }
.cad-dest.compacto { grid-template-columns: minmax(0, 1fr); gap: 10px; margin: 16px 0 0; }
.cad-dest.compacto .cdd { padding: 12px; border-radius: 16px; }
.cad-dest.compacto .cdd h2 { min-height: 34px; font-size: .92rem; }
@keyframes cdlPulso { 0%, 100% { box-shadow: 0 0 0 0 rgba(229, 72, 77, .45); } 50% { box-shadow: 0 0 0 6px rgba(229, 72, 77, 0); } }
@media (prefers-reduced-motion: reduce) { .cdl-ponto { animation: none; } }
#exp-dest:not(:empty) { margin-top: 14px; }

/* =========================================================
   19 de outubro (3.ª parte): Treine o Cérebro (painel e estudante), Ciência em cartões,
   painel em grupos, escolher o ano, cadeiras do início no telemóvel e fim da sessão ao vivo.
   ========================================================= */
.btn.btn-pri.perigo { background: #C62839; border-color: #C62839; color: #fff !important; }
.btn.btn-pri.perigo:hover, .btn-perigo:hover { background: #A51F2E; border-color: #A51F2E; }
.btn-perigo i, .btn-perigo svg { margin-right: 2px; }

/* apagar o tema */
.ta-apagar-ic { display: grid; place-items: center; width: 52px; height: 52px; margin-bottom: 10px; border-radius: 16px; background: rgba(198, 40, 57, .1); color: #C62839; font-size: 1.3rem; }
.ta-opcoes { display: grid; gap: 10px; margin: 14px 0 6px; }
.ta-op { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; border: 1.5px solid var(--linha-2); border-radius: 16px; background: var(--sup); cursor: pointer; transition: border-color .15s, background .15s; }
.ta-op:hover { border-color: var(--bic); }
.ta-op:has(input:checked) { border-color: var(--bic); background: var(--azul-suave); }
.ta-op.perigo:has(input:checked) { border-color: #C62839; background: rgba(198, 40, 57, .07); }
.ta-op > input { flex: none; width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--bic); }
.ta-op.perigo > input { accent-color: #C62839; }
.ta-op-c { display: grid; flex: 1; gap: 4px; min-width: 0; }
.ta-op-c strong { color: var(--tinta); font-size: 1rem; }
.ta-op-c small { color: var(--tinta-2); font-size: .88rem; line-height: 1.4; }
.ta-select { position: relative; display: block; margin-top: 6px; }
.ta-select select { width: 100%; height: 44px; padding: 0 40px 0 14px; border: 1.5px solid var(--linha-2); border-radius: 12px; background: var(--sup); color: var(--tinta); font: inherit; font-weight: 600; text-overflow: ellipsis; -webkit-appearance: none; appearance: none; }
.ta-select select:focus { outline: none; border-color: var(--bic); box-shadow: 0 0 0 3px var(--azul-claro); }
.ta-select i { position: absolute; top: 50%; right: 14px; transform: translateY(-50%); color: var(--tinta-3); font-size: .85rem; pointer-events: none; }

/* para quem é esta cadeira */
.ta-pub2 h2 { margin-bottom: 14px; }
.ta-pub-modos { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 14px; }
.ta-pub-m { display: flex; gap: 12px; align-items: center; padding: 14px; border: 1.5px solid var(--linha-2); border-radius: 16px; background: var(--sup); color: var(--tinta); font: inherit; text-align: left; cursor: pointer; }
.ta-pub-m > i { display: grid; flex: none; place-items: center; width: 40px; height: 40px; border-radius: 12px; background: var(--sup-2); color: var(--bic); font-size: 1.05rem; }
.ta-pub-m span { display: grid; gap: 2px; min-width: 0; }
.ta-pub-m small { color: var(--tinta-2); font-size: .82rem; }
.ta-pub-m.on { border-color: var(--bic); background: var(--azul-suave); box-shadow: inset 0 0 0 1px var(--bic); }
.ta-pub-m.on > i { background: var(--bic); color: #fff; }
.ta-pub-busca, .ta-pub-cq { display: flex; align-items: center; gap: 10px; border: 1.5px solid var(--linha-2); background: var(--sup); }
.ta-pub-busca { height: 48px; padding: 0 14px; border-radius: 14px; }
.ta-pub-cq { height: 40px; padding: 0 12px; margin-bottom: 8px; border-radius: 12px; border-width: 1px; }
.ta-pub-busca:focus-within, .ta-pub-cq:focus-within { border-color: var(--bic); box-shadow: 0 0 0 3px var(--azul-claro); }
.ta-pub-busca i, .ta-pub-cq i { color: var(--tinta-3); }
.ta-pub-busca input, .ta-pub-cq input { flex: 1; min-width: 0; border: 0; background: none; color: var(--tinta); font: inherit; outline: none; }
.ta-pub-ops { display: grid; gap: 6px; max-height: 236px; overflow: auto; margin: 8px 0 14px; padding: 2px; }
.ta-pu-op { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 10px 12px; border: 1px solid var(--linha); border-radius: 12px; background: var(--sup); color: var(--tinta); font: inherit; text-align: left; cursor: pointer; }
.ta-pu-op:hover, .ta-pu-op:focus-visible { border-color: var(--bic); background: var(--azul-suave); }
.ta-pu-op b { min-width: 56px; color: var(--bic); }
.ta-pu-op span { overflow: hidden; color: var(--tinta-2); text-overflow: ellipsis; white-space: nowrap; }
.ta-pu-op i { color: var(--bic); }
.ta-pub-mais, .ta-pub-vazio { margin: 4px 2px; color: var(--tinta-3); font-size: .88rem; }
.ta-pub-esc { display: grid; gap: 10px; margin-bottom: 12px; }
.ta-pub-u2 { padding: 12px; border: 1.5px solid var(--bic); border-radius: 16px; background: var(--sup); }
.ta-pub-u2 header { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.ta-pub-u2-t { display: grid; flex: 1; min-width: 0; }
.ta-pub-u2-t b { color: var(--bic); }
.ta-pub-u2-t small { overflow: hidden; color: var(--tinta-2); text-overflow: ellipsis; white-space: nowrap; }
.ta-pub-n { padding: 4px 10px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); font-size: .8rem; font-weight: 700; white-space: nowrap; }
.ta-pub-cs { display: flex; flex-wrap: wrap; gap: 6px; max-height: 210px; overflow: auto; }
.ta-cchip { position: relative; display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border: 1.5px solid var(--linha-2); border-radius: 999px; background: var(--sup); color: var(--tinta); font-size: .88rem; font-weight: 600; cursor: pointer; }
.ta-cchip input { position: absolute; opacity: 0; pointer-events: none; }
.ta-cchip.on { border-color: var(--bic); background: var(--bic); color: #fff; }
.ta-cchip:focus-within { box-shadow: 0 0 0 3px var(--azul-claro); }
.ta-pub-dica { display: block; margin-top: 8px; color: var(--tinta-3); }
.ta-pub-resumo { display: flex; gap: 8px; align-items: flex-start; margin: 12px 0 4px; padding: 10px 12px; border-radius: 12px; background: var(--sup-2); color: var(--tinta-2); font-size: .9rem; }
.ta-pub-resumo i { margin-top: 3px; color: var(--bic); }
@media (max-width: 560px) { .ta-pub-modos { grid-template-columns: 1fr; } }

/* cabeçalho da cadeira e o que os estudantes veem */
.ta-t-cab2 { display: grid; gap: 14px; margin-bottom: 14px; padding: 18px; border: 1px solid var(--linha); border-radius: 22px; background: var(--sup); }
.ta-t-top { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 14px; align-items: center; }
.ta-t-cab2 .ta-t-ic { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 16px; background: var(--bic); color: #fff; font-size: 1.4rem; }
.ta-t-cab2 .ta-t-tit h2 { margin: 0; font-size: clamp(1.2rem, 2.4vw, 1.6rem); }
.ta-t-cab2 .ta-t-tit p { margin: 2px 0 0; color: var(--tinta-2); }
.ta-t-cab2 .ta-t-bts { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.ta-t-dupla { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.ta-t-bloco { display: grid; align-content: start; gap: 8px; padding: 14px; border-radius: 16px; background: var(--sup-2); }
.ta-t-k { display: inline-flex; align-items: center; gap: 8px; color: var(--tinta-3); font-size: .8rem; font-weight: 700; }
.ta-t-quem { color: var(--tinta); font-size: 1rem; }
.ta-t-bloco .btn, .ta-t-bloco .ta-seg { justify-self: start; }
.ta-t-dica { color: var(--tinta-2); line-height: 1.4; }
@media (max-width: 760px) { .ta-t-top { grid-template-columns: auto minmax(0, 1fr); } .ta-t-cab2 .ta-t-bts { grid-column: 1 / -1; justify-content: flex-start; } .ta-t-dupla { grid-template-columns: 1fr; } }
.ta-ver { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 14px; align-items: start; margin-bottom: 14px; padding: 16px 18px; border: 1px solid var(--linha); border-radius: 18px; background: var(--sup); }
.ta-ver-ic { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; font-size: 1.1rem; }
.ta-ver.ok { border-color: color-mix(in srgb, var(--bic) 35%, transparent); background: var(--azul-suave); }
.ta-ver.info { background: var(--sup-2); }
.ta-ver.ok .ta-ver-ic, .ta-ver.info .ta-ver-ic { background: var(--bic); color: #fff; }
.ta-ver.aviso { border-color: rgba(198, 40, 57, .35); background: rgba(198, 40, 57, .07); }
.ta-ver.aviso .ta-ver-ic { background: #C62839; color: #fff; }
.ta-ver-t strong { display: block; color: var(--tinta); font-size: 1.02rem; }
.ta-ver-t p { margin: 4px 0 0; color: var(--tinta-2); }
.ta-ver-t .ta-ver-nota { display: flex; gap: 8px; margin-top: 8px; font-size: .88rem; }
.ta-ver-ac { display: flex; flex-wrap: wrap; gap: 8px; align-self: center; }
.ta-ver-como { margin-top: 10px; }
.ta-ver-como summary { color: var(--bic); font-size: .88rem; font-weight: 700; cursor: pointer; }
.ta-ver-como ol { display: grid; gap: 4px; margin: 8px 0 0; padding-left: 20px; color: var(--tinta-2); font-size: .88rem; }
@media (max-width: 640px) { .ta-ver { grid-template-columns: auto minmax(0, 1fr); } .ta-ver-ac { grid-column: 1 / -1; } }
.ta-modos-nota { display: block; flex-basis: 100%; width: 100%; grid-column: 1 / -1; margin-top: 6px; color: var(--tinta-2); font-size: .82rem; }
.ta-i-est { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 6px; }
.ta-est.e-vazia { background: var(--sup-3); color: var(--tinta-3); }
.ta-i-pub, .ta-preco { display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 10px; border-radius: 999px; font: inherit; font-size: .82rem; cursor: pointer; white-space: nowrap; }
.ta-i-pub { border: 1.5px solid var(--bic); background: var(--sup); color: var(--bic); font-weight: 800; }
.ta-i-pub:hover { background: var(--bic); color: #fff; }
.ta-i-pub:disabled { opacity: .6; cursor: wait; }
.ta-preco { border: 1px solid var(--linha-2); background: var(--sup-2); color: var(--tinta-2); font-weight: 700; }
.ta-preco i { color: var(--bic); }
.ta-preco.gratis { color: var(--bic); }
.ta-preco:hover { border-color: var(--bic); }
.ta-i.vazia .ta-i-t strong { color: var(--tinta-2); }
.ta-preco-alvo { display: flex; flex-wrap: wrap; gap: 8px 14px; margin: 0 0 12px; padding: 0; border: 0; }
.ta-preco-alvo legend { width: 100%; margin-bottom: 6px; color: var(--tinta); font-weight: 700; }
.ta-preco-alvo label { display: inline-flex; align-items: center; gap: 6px; }
.ta-preco-in { display: inline-flex; align-items: center; gap: 8px; margin-top: 4px; color: var(--tinta-2); }
.ta-preco-in input { width: 110px; height: 40px; padding: 0 12px; border: 1.5px solid var(--linha-2); border-radius: 10px; background: var(--sup); color: var(--tinta); font: inherit; font-weight: 700; }
.ta-preco-nota { display: flex; gap: 8px; margin: 10px 0 0; color: var(--tinta-2); font-size: .86rem; }
.ta-preco-nota i { margin-top: 3px; color: var(--bic); }
.te-preco, .te-apos { display: grid; gap: 6px; margin: 12px 0; }
.te-preco-v input { max-width: 140px; }
.te-apos-seg { flex-wrap: wrap; }
.te-apos-seg button { flex: 1 1 140px; }
.te-apos .te-ajuda { color: var(--tinta-2); line-height: 1.4; }

/* estudante: em breve, cadeado, preço, som, dica e azul */
.trc-breve .trc-ic { background: var(--sup-3); color: var(--bic); }
.trc-breve-k { display: inline-flex; align-items: center; justify-self: start; gap: 6px; padding: 4px 10px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); font-size: .82rem; font-weight: 800; }
.tr-breve-temas { max-width: 460px; margin: 14px auto 0; padding: 14px 18px; border: 1px solid var(--linha); border-radius: 16px; background: var(--sup); text-align: left; }
.tr-breve-temas h3 { margin: 0 0 8px; font-size: 1rem; }
.tr-breve-temas ol { display: grid; gap: 4px; margin: 0; padding-left: 20px; color: var(--tinta-2); }
.trn-no.fechado .trn-b { background: var(--sup-3); color: var(--tinta-3); box-shadow: 0 5px 0 var(--linha-2); }
.trn-preco { display: flex; align-items: center; justify-content: center; gap: 4px; margin-top: 3px; color: var(--bic); font-size: .8rem; font-weight: 800; }
.trpop-preco { color: var(--bic); font-weight: 800; }
.trpop-nota { margin: 6px 0 0; color: var(--tinta-2); font-size: .9rem; }
.tr-cad-saldo { display: inline-flex; align-items: center; gap: 8px; margin: 6px 0 14px; padding: 6px 12px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); font-weight: 800; }
.tr-falta { display: grid; justify-items: center; gap: 8px; text-align: center; }
.tr-falta h2, .tr-falta p { margin: 0; }
.tr-falta p { color: var(--tinta-2); }
.tr-falta-s { font-size: .9rem; }
.tp-som { display: grid; flex: none; place-items: center; width: 40px; height: 40px; border: 0; border-radius: 12px; background: transparent; color: var(--tinta-2); cursor: pointer; }
.tp-som svg { width: 24px; height: 24px; }
.tp-som:hover { background: var(--sup-2); color: var(--bic); }
.tp-som.off { color: var(--tinta-3); opacity: .75; }
.ex-dica-box { margin-top: 12px; padding: 12px 14px; border-radius: 14px; background: var(--azul-suave); color: var(--tinta); }
.ex-dica-box b { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 4px; color: var(--bic); }
.trcad { border-color: #C7D2FE; background: linear-gradient(135deg, #EEF2FF, #E0E7FF); color: #1E2A78; }
.trcad-ic { background: var(--marca); }
.trcad small { color: #3D4FB8; }
:root[data-theme="dark"] .trcad { border-color: #2C3A80; background: linear-gradient(135deg, #1B2350, #151C40); color: #DCE3FF; }
:root[data-theme="dark"] .trcad small { color: #AFC0FF; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .trcad { border-color: #2C3A80; background: linear-gradient(135deg, #1B2350, #151C40); color: #DCE3FF; } :root:not([data-theme="light"]) .trcad small { color: #AFC0FF; } }
.tr-fogo, .trh-xp { color: var(--marca); }

/* painel: grupos e sub-separadores */
.adm-grupos { margin-bottom: 8px; }
.adm-sub { display: flex; flex-wrap: wrap; gap: 6px; width: fit-content; max-width: 100%; margin: 0 0 16px; padding: 6px; border-radius: 16px; background: var(--sup-2); }
.adm-sub-b { display: inline-flex; align-items: center; gap: 8px; height: 38px; padding: 0 14px; border: 0; border-radius: 12px; background: transparent; color: var(--tinta-2); font: inherit; font-weight: 700; white-space: nowrap; cursor: pointer; }
.adm-sub-b[aria-selected="true"] { background: var(--sup); color: var(--bic); box-shadow: 0 1px 3px rgba(16, 22, 51, .12); }
.adm-sub-b:hover { color: var(--bic); }
@media (max-width: 640px) { .adm-sub { flex-wrap: nowrap; width: 100%; overflow-x: auto; } }
.adm-grupo-t { display: flex; align-items: center; gap: 8px; margin: 18px 0 8px; color: var(--tinta-2); font-size: .95rem; }
.adm-grupo-t i { color: var(--bic); }
.adm-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); gap: 16px; align-items: start; margin: 0 0 16px; }
.adm-2 > .caixa { margin: 0; }
.per-anos { display: inline-flex; flex-wrap: wrap; gap: 4px; padding: 4px; border-radius: 999px; background: var(--sup-2); }
.per-ano { height: 34px; padding: 0 14px; border: 0; border-radius: 999px; background: transparent; color: var(--tinta-2); font: inherit; font-weight: 700; font-variant-numeric: tabular-nums; cursor: pointer; }
.per-ano.on { background: var(--bic); color: #fff; }
.per-ano:not(.on):hover { background: var(--sup); color: var(--bic); }

/* início: cadeiras do curso em ecrãs pequenos */
@media (max-width: 640px) {
  .foco-cads .foco-chips { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .foco-cads .foco-chip { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 4px 8px; min-height: 58px; padding: 10px 10px 10px 14px; border-radius: 16px; }
  .foco-cads .foco-chip > span { display: -webkit-box; overflow: hidden; font-size: .88rem; line-height: 1.25; white-space: normal; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
  .foco-cads .foco-chip > small { grid-row: 2; grid-column: 1; font-size: .78rem; }
}
@media (max-width: 360px) { .foco-cads .foco-chips { grid-template-columns: 1fr; } }

/* Ciência no quadro (painel) */
.cie3 { padding-bottom: 90px; }
.cie3-topo { display: grid; gap: 12px; margin-bottom: 18px; }
.cie3-topo-t { max-width: 72ch; margin: 0; color: var(--tinta-2); }
.cie3-ctrl { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.cie3-busca { display: flex; flex: 1 1 260px; align-items: center; gap: 8px; height: 44px; padding: 0 14px; border: 1.5px solid var(--linha-2); border-radius: 999px; background: var(--sup); }
.cie3-busca:focus-within { border-color: var(--bic); box-shadow: 0 0 0 3px var(--azul-claro); }
.cie3-busca i { color: var(--tinta-3); }
.cie3-busca input { flex: 1; min-width: 0; border: 0; background: none; color: var(--tinta); font: inherit; outline: none; }
.cie3-filtro, .cie3-abas { display: inline-flex; gap: 4px; padding: 4px; background: var(--sup-2); }
.cie3-filtro { border-radius: 999px; }
.cie3-filtro button { height: 36px; padding: 0 14px; border: 0; border-radius: 999px; background: transparent; color: var(--tinta-2); font: inherit; font-weight: 700; cursor: pointer; }
.cie3-filtro button[aria-checked="true"] { background: var(--bic); color: #fff; }
.cie3-disc { margin-bottom: 28px; }
.cie3-disc-h { display: flex; align-items: center; gap: 12px; margin-bottom: 4px; }
.cie3-disc-h h3 { margin: 0; font-size: 1.25rem; }
.cie3-disc-h small { margin-left: auto; color: var(--tinta-2); font-weight: 600; }
.cie3-disc-ic { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; background: var(--bic); color: #fff; }
.cie3-tema { margin: 16px 0 10px; color: var(--tinta-2); font-size: .92rem; font-weight: 750; }
.cie3-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); gap: 14px; }
.cie3-c { display: grid; grid-template-rows: auto auto 1fr; overflow: hidden; border: 1px solid var(--linha); border-radius: 18px; background: var(--sup); transition: border-color .15s; }
.cie3-c:hover { border-color: color-mix(in srgb, var(--bic) 45%, var(--linha)); }
.cie3-c.off .cie3-prev canvas { opacity: .45; filter: grayscale(1); }
.cie3-c.off .cie3-c-cab strong { color: var(--tinta-3); }
.cie3-prev { position: relative; aspect-ratio: 16 / 10; border-bottom: 1px solid var(--linha); background: #FFFFFF; }
.cie3-prev canvas { display: block; width: 100%; height: 100%; }
.cie3-eq { position: absolute; top: 8px; left: 8px; padding: 3px 9px; border-radius: 999px; background: var(--bic); color: #fff; font-size: .76rem; font-weight: 800; }
.cie3-c-cab { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; align-items: center; padding: 12px 14px 4px; }
.cie3-c-ic { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; background: var(--azul-suave); color: var(--bic); }
.cie3-c-cab strong { display: block; overflow: hidden; line-height: 1.25; text-overflow: ellipsis; }
.cie3-c-cab small { color: var(--tinta-3); font-size: .8rem; }
.cie3-c-pe { display: flex; align-items: center; align-self: end; justify-content: space-between; gap: 8px; padding: 10px 14px 14px; }
.cie3-c-bts { display: flex; align-items: center; gap: 4px; }
.cie3-sw { position: relative; display: inline-flex; align-items: center; gap: 8px; color: var(--tinta-2); font-size: .85rem; font-weight: 700; cursor: pointer; }
.cie3-sw input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.cie3-sw-b { position: relative; flex: none; width: 40px; height: 24px; border-radius: 999px; background: var(--linha-2); transition: background .15s; }
.cie3-sw-b::after { position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .25); content: ''; transition: transform .15s; }
.cie3-sw input:checked + .cie3-sw-b { background: var(--bic); }
.cie3-sw input:checked + .cie3-sw-b::after { transform: translateX(16px); }
.cie3-sw input:focus-visible + .cie3-sw-b { box-shadow: 0 0 0 3px var(--azul-claro); }
.cie3-barra { position: fixed; left: 50%; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); z-index: 70; display: flex; align-items: center; gap: 10px; max-width: calc(100% - 24px); padding: 10px 10px 10px 18px; border-radius: 999px; background: var(--tinta); color: #fff; box-shadow: 0 12px 30px rgba(16, 22, 51, .3); transform: translateX(-50%); }
.cie3-barra[hidden] { display: none; }
.cie3-barra span { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; white-space: nowrap; }
.cie3-barra .btn-ghost { color: #fff; }
@media (max-width: 860px) { .cie3-barra { bottom: calc(84px + env(safe-area-inset-bottom, 0px)); } }
@media (max-width: 560px) { .cie3-barra { right: 12px; left: 12px; flex-wrap: wrap; justify-content: flex-end; border-radius: 18px; transform: none; } .cie3-barra span { width: 100%; } }
.cie3-vazio { padding: 30px 0; text-align: center; }
.modal.cie3-modal { width: calc(100% - 24px); max-width: 920px; }
.modal.cie3-modal-l { max-width: 1080px; }
.cie3-ed-g { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 18px; align-items: start; }
.cie3-ed-prev { position: sticky; top: 0; display: grid; gap: 6px; }
.cie3-ed-prev canvas, .cie3-cr-res canvas { width: 100%; aspect-ratio: 16 / 10; border: 1px solid var(--linha); border-radius: 14px; background: #fff; }
.cie3-ed-f { display: grid; gap: 10px; min-width: 0; }
.cie3-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.cie3-ed-h { margin: 8px 0 0; font-size: 1rem; }
.cie3-ed-h small { color: var(--tinta-3); font-size: .82rem; font-weight: 500; }
.cie3-campos { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
.cie3-campo { display: grid; gap: 4px; color: var(--tinta-2); font-size: .84rem; }
.cie3-campo.largo { grid-column: 1 / -1; }
.cie3-campo input, .cie3-campo select, .cie3-linha input { height: 40px; padding: 0 10px; border: 1.5px solid var(--linha-2); border-radius: 10px; background: var(--sup); color: var(--tinta); font: inherit; }
.cie3-campo input:focus, .cie3-campo select:focus, .cie3-linha input:focus { border-color: var(--bic); outline: none; }
.cie3-chk { display: inline-flex; align-items: center; gap: 8px; font-size: .9rem; }
.cie3-ed-ia, .cie3-semia { display: grid; gap: 8px; padding: 12px; border-radius: 14px; background: var(--sup-2); }
.cie3-linha { display: flex; gap: 8px; }
.cie3-linha input { flex: 1; min-width: 0; }
.cie3-ed-nota { display: flex; gap: 8px; color: var(--tinta-2); font-size: .88rem; }
.cie3-ed-nota i { margin-top: 3px; color: var(--bic); }
.cie3-abas { margin: 0 0 14px; border-radius: 14px; }
.cie3-abas button { display: inline-flex; align-items: center; gap: 8px; height: 38px; padding: 0 16px; border: 0; border-radius: 10px; background: transparent; color: var(--tinta-2); font: inherit; font-weight: 700; cursor: pointer; }
.cie3-abas button[aria-selected="true"] { background: var(--sup); color: var(--bic); box-shadow: 0 1px 3px rgba(16, 22, 51, .12); }
.cie3-cr-res { display: grid; gap: 8px; margin-top: 6px; }
.cie3-cr-nome { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0; }
.cie3-cr-nome i { color: var(--bic); }
.cie3-cr-nome span { color: var(--tinta-3); font-size: .86rem; }
.c3m-lista { display: grid; gap: 8px; }
.c3m-l, .c3m-d, .c3m-r { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding: 8px; border: 1px solid var(--linha); border-radius: 12px; background: var(--sup); }
.c3m-l input, .c3m-l select, .c3m-d input, .c3m-d select, .c3m-r input { min-width: 0; height: 36px; padding: 0 9px; border: 1px solid var(--linha-2); border-radius: 9px; background: var(--sup); color: var(--tinta); font: inherit; font-size: .88rem; }
.c3m-l input { flex: 1 1 90px; }
.c3m-l input[data-c3m-nome] { flex: 0 0 92px; font-family: ui-monospace, monospace; }
.c3m-d input { flex: 1 1 70px; }
.c3m-d input.lg { flex: 3 1 160px; }
.c3m-d select { flex: 0 1 190px; }
.c3m-r input { flex: 1; }
.c3m-d input[type="color"] { flex: 0 0 40px; padding: 2px; }
.c3m-chk { display: inline-flex; align-items: center; gap: 4px; color: var(--tinta-2); font-size: .82rem; white-space: nowrap; }
.c3m-area { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 8px; align-items: end; }
.c3m-ics { display: flex; flex-wrap: wrap; gap: 4px; }
.c3m-ic { display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid var(--linha-2); border-radius: 9px; background: var(--sup); color: var(--tinta-2); cursor: pointer; }
.c3m-ic.on { border-color: var(--bic); background: var(--bic); color: #fff; }
.c3m-lab { display: block; margin-bottom: 4px; font-size: .9rem; font-weight: 700; }
.c3m-ajuda, .c3m-vz { margin: 0; color: var(--tinta-3); font-size: .82rem; line-height: 1.45; }
.c3m-av summary { color: var(--bic); font-weight: 700; cursor: pointer; }
.c3m-av textarea { width: 100%; margin-top: 8px; padding: 10px; border: 1px solid var(--linha-2); border-radius: 10px; background: var(--sup-2); color: var(--tinta); font: .82rem/1.45 ui-monospace, monospace; }
@media (max-width: 820px) { .cie3-ed-g { grid-template-columns: 1fr; } .cie3-ed-prev { position: static; } }
@media (max-width: 520px) { .cie3-2 { grid-template-columns: 1fr; } }

/* fim da sessão ao vivo */
.sl-fim2 .sl-fim-c { gap: 16px; padding: 28px 22px 18px; }
.sl-fim-ok { display: grid; place-items: center; width: 60px; height: 60px; border-radius: 50%; background: rgba(76, 107, 255, .22); color: #AFC0FF; font-size: 1.6rem; }
.sl-fim-tit h2 { margin: 0 0 4px; }
.sl-fim2 .sl-fim-acoes { display: grid; gap: 8px; width: 100%; }
.sl-fim2 .sl-fim-acoes .btn, .sl-fim2 > .sl-fim-c > .btn-pri { justify-content: center; width: 100%; }
.sl-fim2 .sl-fim-q { width: 100%; padding: 14px; border-radius: 16px; background: rgba(255, 255, 255, .05); }
.sl-fim2 .sl-fim-sair { justify-self: center; color: #C7D0EA; }
.sl-fim2 .btn-pri.sl-fim-sair { color: #fff; }
.sl-fim-pass { display: grid; gap: 8px; width: 100%; margin: 0; padding: 0; list-style: none; text-align: left; }
.sl-fim-pass li { display: flex; gap: 10px; align-items: flex-start; color: #C7D0EA; }
.sl-fim-pass i { margin-top: 3px; color: #8FA4FF; }
body.sala-clara .sl-fim-ok { background: rgba(37, 71, 245, .12); color: var(--bic); }

/* =========================================================
   19 de outubro (4.ª parte): listas de escolha com o desenho do site, período, pesquisa no tablet,
   cadeiras do início, data da prova, caderno, replays em preparação e fórmulas no painel da sala.
   ========================================================= */
.esc-nativo { position: absolute !important; width: 1px !important; height: 1px !important; margin: 0 !important; padding: 0 !important; border: 0 !important; overflow: hidden !important; opacity: 0 !important; clip-path: inset(50%) !important; pointer-events: none !important; }
.esc-b { display: inline-flex; align-items: center; gap: 8px; min-width: 0; max-width: 100%; min-height: 42px; padding: 0 12px 0 14px; border: 1.5px solid var(--linha-2); border-radius: 12px; background: var(--sup); color: var(--tinta); font: inherit; font-weight: 650; text-align: left; cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.esc-b:hover { border-color: var(--bic); }
.esc-b:focus-visible, .esc-b[aria-expanded="true"] { border-color: var(--bic); outline: none; box-shadow: 0 0 0 3px var(--azul-claro); }
.esc-b:disabled { opacity: .55; cursor: not-allowed; }
.esc-b.esc-larga { display: flex; width: 100%; }
.esc-t { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.esc-s { color: var(--tinta-3); font-size: .8rem; font-weight: 600; white-space: nowrap; }
.esc-c { flex: none; width: 16px; height: 16px; color: var(--tinta-3); transition: transform .15s; }
.esc-b[aria-expanded="true"] .esc-c { color: var(--bic); transform: rotate(180deg); }
.esc-pop { position: fixed; z-index: 10060; display: flex; flex-direction: column; max-width: min(92vw, 420px); padding: 6px; overflow: hidden; border: 1px solid var(--linha); border-radius: 14px; background: var(--sup); box-shadow: 0 18px 44px rgba(16, 22, 51, .2); }
.esc-l { overflow-y: auto; overscroll-behavior: contain; }
.esc-q { padding: 2px 2px 6px; }
.esc-q input { width: 100%; height: 38px; padding: 0 12px; border: 1px solid var(--linha-2); border-radius: 10px; background: var(--sup-2); color: var(--tinta); font: inherit; outline: none; }
.esc-g { padding: 8px 10px 4px; color: var(--tinta-3); font-size: .8rem; font-weight: 700; }
.esc-op { display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%; min-height: 40px; padding: 8px 12px; border: 0; border-radius: 10px; background: none; color: var(--tinta); font: inherit; text-align: left; cursor: pointer; }
.esc-op span { min-width: 0; }
.esc-op svg { flex: none; width: 18px; height: 18px; color: var(--bic); }
.esc-op:hover, .esc-op.ativa { background: var(--azul-suave); }
.esc-op[aria-selected="true"] { color: var(--bic); font-weight: 700; }
.esc-op:disabled { opacity: .45; cursor: default; }
.esc-op[hidden], .esc-g[hidden] { display: none; }
.per-sel { min-width: 0; }
.per-sel .esc-b { height: 100%; min-height: 0; padding: 0 2px; border: 0; background: none; box-shadow: none; font-weight: 700; }
.per-sel:focus-within { border-color: var(--bic); box-shadow: 0 0 0 3px var(--azul-claro); }
.periodo input[type="month"], .periodo input[type="date"] { height: 42px; padding: 0 14px; border: 1.5px solid var(--linha-2); border-radius: 999px; background: var(--sup); color: var(--tinta); font: inherit; font-weight: 700; }
.periodo input[type="month"]:focus, .periodo input[type="date"]:focus { border-color: var(--bic); outline: none; box-shadow: 0 0 0 3px var(--azul-claro); }

/* pesquisa do cabeçalho em tablets: a lista mais larga e as etiquetas sem sair da caixa */
.sug .chips { display: flex; flex-wrap: wrap; gap: 6px; }
.sug .chips > * { min-width: 0; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 1100px) { .busca-topo .sug { right: auto; width: max(100%, min(520px, 70vw)); max-width: calc(100vw - 24px); } }

/* cadeiras do início: poucas, numa linha cada, com reticências */
.foco-chip > span { max-width: 28ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.foco-mais { border-style: dashed; color: var(--bic); font-weight: 750; }
.foco-mais i { font-size: .76rem; }
@media (max-width: 640px) {
  .foco-cads .foco-chips { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .foco-cads .foco-chip { display: flex; align-items: center; justify-content: space-between; gap: 6px; min-height: 46px; padding: 8px 8px 8px 12px; border-radius: 14px; }
  .foco-cads .foco-chip > span { display: block; flex: 1; min-width: 0; max-width: none; overflow: hidden; font-size: .86rem; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; -webkit-line-clamp: unset; }
  .foco-cads .foco-chip > small { display: none; }
  .foco-cads .foco-chips > .foco-chip:not(.foco-mais):nth-child(n+5) { display: none; }
  .foco-cads .foco-mais { justify-content: center; }
}
@media (max-width: 360px) { .foco-cads .foco-chips { grid-template-columns: 1fr; } }

/* Treine o Cérebro: data da prova e como funciona o caderno */
.trt-prova { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 10px; padding: 8px 14px; border: 1.5px solid var(--linha-2); border-radius: 999px; background: var(--sup); color: var(--tinta); font: inherit; font-size: .9rem; font-weight: 700; cursor: pointer; }
.trt-prova i { color: var(--bic); }
.trt-prova b { padding: 2px 8px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); font-size: .8rem; }
.trt-prova.vazio { border-style: dashed; color: var(--bic); }
.trt-prova:hover { border-color: var(--bic); }
.tr-como { margin: 0 0 16px; padding: 12px 16px; border: 1px solid var(--linha); border-radius: 16px; background: var(--sup); }
.tr-como summary { display: flex; align-items: center; gap: 8px; color: var(--bic); font-weight: 750; cursor: pointer; }
.tr-como ul { display: grid; gap: 6px; margin: 10px 0 0; padding-left: 20px; color: var(--tinta-2); font-size: .92rem; line-height: 1.45; }

/* replays: em preparação e vídeo final */
.avr-prep { display: grid; justify-items: center; gap: 12px; max-width: 560px; margin: 24px auto; padding: 32px 22px; border: 1px solid var(--linha); border-radius: 24px; background: var(--sup); text-align: center; }
.avr-prep-ic { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: var(--azul-suave); color: var(--bic); font-size: 1.6rem; }
.avr-prep h1 { margin: 0; font-size: clamp(1.3rem, 3vw, 1.7rem); }
.avr-prep p { margin: 0; color: var(--tinta-2); }
.rp-final { display: grid; gap: 10px; }
.rp-final-v { width: 100%; max-height: 72vh; border-radius: 18px; background: #000; }
.rp-final-d { justify-self: start; }
.av-vid-est { display: inline-flex; align-items: center; height: 28px; padding: 0 10px; border-radius: 999px; background: var(--sup-3); color: var(--tinta-2); font-size: .82rem; font-weight: 800; white-space: nowrap; }
.av-vid-est.on { background: var(--azul-suave); color: var(--bic); }
.av-vid-env { cursor: pointer; }
.av-vid-env.a-enviar { opacity: .7; pointer-events: none; }

/* fórmula do que se escreve no painel da Ciência (sala) */
.cie2-tex { display: block; min-height: 1.3em; margin-top: 6px; overflow-x: auto; color: #E8ECF8; font-size: 1.05rem; }
body.sala-clara .cie2-tex { color: var(--tinta); }

/* =========================================================
   19 de outubro (5.ª parte): Treine o Cérebro à Duolingo, preço por tema, menu lateral mais leve e atalhos do quadro.
   ========================================================= */
.lateral nav a, .lateral .lat-nav a, .nav-lat a { font-weight: 560 !important; }
.lateral nav a[aria-current="page"], .lateral nav a.on, .lateral nav a.ativo, .nav-lat a.on { font-weight: 680 !important; }
.lateral h3, .lateral h4, .lateral nav small, .lateral .lat-g { font-weight: 650 !important; }
.trh2 { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "ola stats" "ola semana" "msg msg"; align-items: center; gap: 14px 24px; padding: 18px 22px; border: 1px solid var(--linha); border-radius: 26px; background: var(--sup); }
.trh2-ola { grid-area: ola; display: flex; align-items: center; gap: 16px; min-width: 0; }
.trh2-ola .cal { flex: none; width: 120px; height: auto; }
.trh2-txt { display: grid; justify-items: start; gap: 10px; min-width: 0; }
.trh2-txt h1 { margin: 0; font-size: clamp(1.4rem, 2.4vw, 2rem); }
.trh2-stats { grid-area: stats; display: flex; justify-content: flex-end; gap: 10px; }
.trh2-st { display: grid; grid-template-columns: auto auto; grid-template-rows: auto auto; align-items: center; justify-content: start; column-gap: 9px; min-width: 108px; padding: 10px 14px; border: 2px solid var(--linha); border-radius: 18px; background: var(--sup); color: var(--tinta); font: inherit; text-align: left; box-shadow: 0 3px 0 var(--linha); }
.trh2-st > svg { grid-row: 1 / 3; width: 30px; height: 30px; }
.trh2-st b { font-family: var(--f-tit); font-size: 1.35rem; line-height: 1.05; font-variant-numeric: tabular-nums; }
.trh2-st b small { color: var(--tinta-3); font-size: .8rem; font-weight: 700; }
.trh2-st > small { color: var(--tinta-3); font-size: .78rem; font-weight: 700; white-space: nowrap; }
.trh2-st.fogo > svg { color: var(--linha-2); }
.trh2-st.fogo.on { border-color: color-mix(in srgb, var(--marca) 45%, var(--linha)); box-shadow: 0 3px 0 color-mix(in srgb, var(--marca) 45%, var(--linha)); }
.trh2-st.fogo.on > svg { color: var(--marca); filter: drop-shadow(0 2px 4px rgba(30, 64, 230, .35)); }
.trh2-st.xp > svg { color: var(--marca); }
.trh2-st.meta { cursor: pointer; }
.trh2-st.meta .anel { grid-row: 1 / 3; width: 36px; height: 36px; }
.trh2-st.meta.feita { border-color: var(--marca); background: var(--azul-suave); }
.trh2-st.meta:hover { border-color: var(--marca); }
.trh2-semana { grid-area: semana; display: flex; justify-content: flex-end; gap: 8px; }
.trh2-dia { display: grid; justify-items: center; gap: 4px; }
.trh2-dia i { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--sup-3); color: #fff; }
.trh2-dia i svg { width: 18px; height: 18px; }
.trh2-dia.feito i { background: var(--marca); box-shadow: 0 3px 0 var(--marca-escura); }
.trh2-dia.hoje i { outline: 3px solid var(--azul-claro); outline-offset: 2px; }
.trh2-dia.futuro i { border: 2px dashed var(--linha-2); background: transparent; }
.trh2-dia small { color: var(--tinta-3); font-size: .76rem; font-weight: 800; }
.trh2-dia.hoje small { color: var(--marca); }
.trh2-msg { grid-area: msg; margin: 0; padding: 10px 14px; border-radius: 14px; background: var(--azul-suave); color: var(--tinta); font-size: .92rem; font-weight: 650; }
@media (max-width: 900px) { .trh2 { grid-template-columns: 1fr; grid-template-areas: "ola" "stats" "semana" "msg"; } .trh2-stats, .trh2-semana { justify-content: space-between; } .trh2-st { flex: 1; min-width: 0; } }
@media (max-width: 480px) { .trh2 { padding: 14px; } .trh2-ola .cal { width: 82px; } .trh2-st { padding: 8px 9px; column-gap: 6px; } .trh2-st > svg, .trh2-st.meta .anel { width: 24px; height: 24px; } .trh2-st b { font-size: 1.08rem; } .trh2-st > small { font-size: .7rem; } .trh2-dia i { width: 30px; height: 30px; } }
.trm-pago { display: inline-flex; align-items: center; gap: 6px; }
.trm-pago.on { padding: 5px 10px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); font-size: .8rem; font-weight: 800; }
.trm-pago .btn { white-space: nowrap; }
.tp-tema { display: inline-flex; align-items: center; gap: 8px; margin: 8px 0 0; padding: 8px 14px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); font-weight: 800; }
.ta-preco-tema { margin-right: 4px; }
.sl-atalhos ul { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 8px; margin: 12px 0; padding: 0; list-style: none; }
.sl-atalhos li { display: flex; align-items: center; gap: 10px; }
.sl-atalhos kbd { display: inline-grid; place-items: center; min-width: 32px; height: 30px; padding: 0 8px; border: 1px solid var(--linha-2); border-bottom-width: 3px; border-radius: 8px; background: var(--sup-2); color: var(--tinta); font: 700 .85rem/1 ui-monospace, monospace; }

/* =========================================================
   19 de outubro (6.ª parte): sala ao vivo mais segura (vinheta, texto no quadro) e replays à vista no painel.
   ========================================================= */
.sq-vin { z-index: 40; }
.sq-texto-in { transform: none; min-width: 120px; padding: 0 4px; border: 1.5px dashed #2547F5; border-radius: 6px; background: rgba(255, 255, 255, .92); font-family: Poppins, system-ui, sans-serif; font-weight: 400; line-height: 1.15; box-shadow: 0 4px 14px rgba(16, 22, 51, .12); }
.av-rep-l { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.av-rep-i { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 12px; padding: 10px 12px; border: 1px solid var(--linha); border-radius: 14px; background: var(--sup); }
.av-rep-i.prep { border-color: color-mix(in srgb, var(--marca) 45%, var(--linha)); background: var(--azul-suave); }
.av-rep-n { display: inline-flex; align-items: center; gap: 8px; min-width: 0; color: var(--tinta); font-weight: 700; text-decoration: none; }
.av-rep-n span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.av-rep-n i { color: var(--bic); }
.av-rep-ac { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }

/* 19 de outubro (7.ª parte): aviso de versão nova */
.versao-nova { position: fixed; left: 50%; bottom: calc(18px + env(safe-area-inset-bottom, 0px)); z-index: 10070; display: flex; align-items: center; gap: 10px; max-width: calc(100vw - 24px); padding: 8px 8px 8px 16px; border-radius: 999px; background: #101633; color: #fff; font-weight: 650; font-size: .92rem; box-shadow: 0 14px 34px rgba(16, 22, 51, .3); transform: translateX(-50%); }
.versao-nova i { color: #93C5FD; }
.versao-nova span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* =========================================================
   20 de outubro (3.ª parte): Ao Vivo do painel mais limpo, LiveKit com código, gráficos e Caloiro vivo.
   ========================================================= */
.adm-av-ac { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; }
.av-mais { position: relative; }
.av-mais-b { display: grid; place-items: center; width: 36px; height: 36px; border: 1px solid var(--linha-2); border-radius: 10px; background: var(--sup); color: var(--tinta-2); cursor: pointer; list-style: none; }
.av-mais-b::-webkit-details-marker { display: none; }
.av-mais[open] .av-mais-b, .av-mais-b:hover { border-color: var(--bic); color: var(--bic); }
.av-mais-m { position: absolute; right: 0; top: calc(100% + 6px); z-index: 30; display: grid; min-width: 230px; padding: 6px; border: 1px solid var(--linha); border-radius: 14px; background: var(--sup); box-shadow: 0 16px 40px rgba(16, 22, 51, .18); }
.av-mi { display: flex; align-items: center; gap: 10px; width: 100%; padding: 9px 12px; border: 0; border-radius: 10px; background: none; color: var(--tinta); font: inherit; font-size: .9rem; font-weight: 600; text-align: left; cursor: pointer; }
.av-mi i { width: 16px; color: var(--tinta-3); text-align: center; }
.av-mi:hover { background: var(--azul-suave); }
.av-mi.perigo, .av-mi.perigo i { color: #B91C1C; }
.av-mi.perigo:hover { background: #FEF2F2; }
.av-lk { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.av-lk-ic { display: grid; place-items: center; flex: none; width: 48px; height: 48px; border-radius: 14px; background: var(--azul-suave); color: var(--bic); font-size: 1.2rem; }
.av-lk-t { flex: 1; min-width: 220px; }
.av-lk-t h3 { margin: 0 0 4px; }
.av-lk-t p { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 0; color: var(--tinta-2); font-size: .88rem; }
.av-lk-st { font-weight: 800; color: #B91C1C; }
.av-lk-st.on { color: var(--bic); }
.av-lk-f .campo { display: grid; gap: 6px; }
.av-teste.ok { color: var(--bic); font-weight: 700; }
.av-teste.erro { color: #B91C1C; font-weight: 700; }
.av-rep-g { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 14px; margin: 14px 0; }
.av-rep-c { min-width: 0; padding: 14px; border: 1px solid var(--linha); border-radius: 16px; background: var(--sup); }
.av-rep-c h4 { margin: 0 0 8px; font-size: .92rem; }
.av-rep-t { display: grid; gap: 4px; min-width: 0; }
.av-rep-t small { display: flex; flex-wrap: wrap; gap: 4px 12px; color: var(--tinta-2); font-size: .82rem; }
@media (max-width: 760px) { .av-rep-g { grid-template-columns: 1fr; } }
.g-p0 { fill: var(--marca); }
.g-p1 { fill: #93A6F8; }
.g-p2 { fill: #0F1F80; }
.g-i2 { background: #0F1F80; }
.graf-por { margin-left: auto; color: var(--tinta-3); font-size: .8rem; }
.trh2-cal { display: inline-block; flex: none; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.cal-vivo .cal-corpo { transform-box: view-box; transform-origin: 120px 200px; animation: cal-respira 1.6s ease-in-out infinite; }
.cal-vivo .cal-peso { animation: cal-levanta .8s ease-in-out infinite alternate; }
.cal-vivo .cal-suor path { opacity: 0; transform-box: fill-box; transform-origin: center; animation: cal-suor 1.9s ease-in infinite; }
.cal-vivo .cal-suor path:nth-child(2) { animation-delay: .65s; }
.cal-vivo .cal-suor path:nth-child(3) { animation-delay: 1.3s; }
.cal-vivo .cal-esf path { animation: cal-esf .8s ease-in-out infinite alternate; }
.cal-vivo .cal-boca-a { animation: cal-boca-a 7s steps(1) infinite; }
.cal-vivo .cal-boca-b { opacity: 0; animation: cal-boca-b 7s steps(1) infinite; }
.cal-salto { animation: cal-salto .6s cubic-bezier(.3, 1.6, .5, 1) 1; }
@keyframes cal-respira { 0%, 100% { transform: translateY(0) scale(1, 1); } 50% { transform: translateY(2px) scale(1.02, .98); } }
@keyframes cal-suor { 0% { opacity: 0; transform: translate(0, -3px) scale(.6); } 15% { opacity: 1; transform: translate(0, 0) scale(1); } 100% { opacity: 0; transform: translate(5px, 24px) scale(.8); } }
@keyframes cal-esf { from { opacity: .15; } to { opacity: 1; } }
@keyframes cal-boca-a { 0%, 70% { opacity: 1; } 71%, 92% { opacity: 0; } 93%, 100% { opacity: 1; } }
@keyframes cal-boca-b { 0%, 70% { opacity: 0; } 71%, 92% { opacity: 1; } 93%, 100% { opacity: 0; } }
@keyframes cal-salto { 0% { transform: translateY(0); } 40% { transform: translateY(-18px) rotate(-4deg); } 100% { transform: none; } }
@media (prefers-reduced-motion: reduce) { .cal-vivo *, .cal-salto { animation: none !important; } }

/* 20 de outubro (4.ª parte): tempo real (pedido de notificações push e sino a abanar) */
.push-pedir { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin: 8px 10px; padding: 10px 12px; border-radius: 12px; background: var(--azul-suave); color: var(--tinta); font-size: .86rem; font-weight: 600; }
.push-pedir span { flex: 1; min-width: 160px; }
.sino-toca { animation: sino-toca .9s ease-in-out 1; transform-origin: 50% 10%; }
@keyframes sino-toca { 0%, 100% { transform: rotate(0); } 15% { transform: rotate(16deg); } 30% { transform: rotate(-14deg); } 45% { transform: rotate(10deg); } 60% { transform: rotate(-8deg); } 75% { transform: rotate(4deg); } }
@media (prefers-reduced-motion: reduce) { .sino-toca { animation: none; } }

/* 20 de outubro (5.ª parte): IA do editor com Colar e Imagem */
.te-colar { display: grid; gap: 12px; }
.te-colar-p { margin: 0; padding: 10px 12px; border-radius: 12px; background: var(--azul-suave); color: var(--tinta-2); font-size: .86rem; line-height: 1.5; }
.te-colar-t { min-height: 180px; font-family: ui-monospace, Menlo, monospace; font-size: .8rem; }
.te-iar-img { margin: 8px 0; padding: 8px; border: 1px solid var(--linha); border-radius: 12px; background: #fff; }
.te-iar-img img { display: block; width: 100%; height: auto; }
.te-iar-img figcaption { margin-top: 6px; color: var(--tinta-2); font-size: .8rem; text-align: center; }
.te-iar-txt { margin: 6px 0; font-size: .88rem; }

/* 20 de outubro (6.ª parte): ouvir as lições e o site de baixo sem scroll com o editor aberto */
html.te-aberto, html.tr-aberto, html:has(body.te-aberto), html:has(body.tr-aberto) { overflow: hidden; }
.tts-b { display: inline-grid; place-items: center; width: 28px; height: 28px; margin: 0 0 0 6px; padding: 0; border: 0; border-radius: 50%; background: var(--azul-suave); color: var(--bic); vertical-align: middle; cursor: pointer; transition: background .15s, color .15s; -webkit-tap-highlight-color: transparent; }
.tts-b svg { width: 16px; height: 16px; }
.tts-b:hover { background: var(--bic); color: #fff; }
.tts-b.on { background: var(--bic); color: #fff; animation: tts-pulso 1.1s ease-in-out infinite; }
@keyframes tts-pulso { 0%, 100% { box-shadow: 0 0 0 0 rgba(30, 64, 230, .45); } 50% { box-shadow: 0 0 0 7px rgba(30, 64, 230, 0); } }
.tts-lendo { border-radius: 8px; background: color-mix(in srgb, var(--azul-suave) 55%, transparent); }
.tts-w { border-radius: 4px; transition: background .12s, color .12s; }
.tts-w.tts-on, .katex.tts-on, [data-tex].tts-on { background: var(--bic); color: #fff; box-shadow: 0 0 0 2px var(--bic); border-radius: 4px; }
.tb-formula .tts-b { position: absolute; top: 8px; right: 8px; margin: 0; }
.tb-formula { position: relative; }
@media (prefers-reduced-motion: reduce) { .tts-b.on { animation: none; } }

/* 20 de outubro (7.ª parte): barra da leitura em voz alta */
.tts-barra { position: fixed; left: 50%; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); z-index: 10080; display: flex; align-items: center; gap: 8px; max-width: calc(100vw - 20px); padding: 6px 6px 6px 14px; border-radius: 999px; background: #101633; color: #fff; box-shadow: 0 14px 34px rgba(16, 22, 51, .32); transform: translateX(-50%); }
.tts-barra-t { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; font-size: .88rem; white-space: nowrap; }
.tts-barra-t svg { width: 18px; height: 18px; color: #93C5FD; }
.tts-gen { display: flex; padding: 3px; border-radius: 999px; background: rgba(255, 255, 255, .1); }
.tts-gen button, .tts-vel, .tts-x { border: 0; background: none; color: #fff; font: inherit; font-size: .84rem; font-weight: 700; cursor: pointer; }
.tts-gen button { padding: 5px 11px; border-radius: 999px; }
.tts-gen button[aria-pressed="true"] { background: #fff; color: #101633; }
.tts-vel { min-width: 44px; padding: 6px 8px; border-radius: 999px; background: rgba(255, 255, 255, .1); }
.tts-x { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: rgba(255, 255, 255, .12); }
.tts-x svg { width: 16px; height: 16px; }
@media (max-width: 420px) { .tts-barra-t { display: none; } }

/* 20 de outubro (8.ª parte): Ouvir com um só botão por cena, vozes do Veteraano e link da app */
.tp-cena { position: relative; }
.tts-cena { position: absolute; top: 12px; right: 12px; z-index: 2; display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 12px 0 10px; border: 0; border-radius: 999px; background: var(--azul-suave); color: var(--bic); font: inherit; font-size: .84rem; font-weight: 800; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.tts-cena svg { width: 17px; height: 17px; }
.tts-cena:hover, .tts-cena.on { background: var(--bic); color: #fff; }
.tts-cena.on { animation: tts-pulso 1.2s ease-in-out infinite; }
.tts-barra { gap: 6px; padding: 6px 6px 6px 8px; }
.tts-ctl { display: grid; place-items: center; width: 40px; height: 40px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .1); color: #fff; cursor: pointer; }
.tts-ctl svg { width: 22px; height: 22px; }
.tts-pp { width: 46px; height: 46px; background: #fff; color: #101633; }
.tts-barra-t { margin: 0 4px; }
.tts-barra-t svg { display: none; }
@media (max-width: 560px) { .tts-barra-t { display: none; } .tts-barra { flex-wrap: wrap; justify-content: center; border-radius: 22px; } }
.voz-criar { display: grid; gap: 6px; margin-top: 12px; padding: 12px 14px; border: 1px dashed var(--linha-2); border-radius: 14px; }
.voz-f .voz-gen { display: flex; gap: 6px; }
.voz-g { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border: 1px solid var(--linha-2); border-radius: 999px; font-weight: 700; cursor: pointer; }
.voz-props { display: grid; gap: 10px; }
.voz-prop { display: grid; gap: 6px; padding: 10px 12px; border: 1px solid var(--linha); border-radius: 14px; background: var(--sup-2); }
.voz-prop audio { width: 100%; }
.voz-grav { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.voz-grav-t { color: var(--tinta-2); font-size: .86rem; }
.voz-aut { display: flex; align-items: flex-start; gap: 8px; font-size: .9rem; }
.adm-app { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin: 0 0 16px; padding: 14px 16px; border: 1px solid var(--linha); border-radius: 18px; background: var(--sup); }
.adm-app-ic { display: grid; place-items: center; flex: none; width: 46px; height: 46px; border-radius: 14px; background: var(--azul-suave); color: var(--bic); font-size: 1.25rem; }
.adm-app-t { display: grid; flex: 1; min-width: 220px; gap: 2px; }
.adm-app-t small { color: var(--tinta-2); }
.adm-app-t code { overflow-wrap: anywhere; color: var(--bic); font-weight: 700; }
.adm-app-ac { display: flex; gap: 8px; }

/* 20 de outubro (9.ª parte): animação em passos (tipo gif), uma só voz, dica do Colar */
.tb-anim { position: relative; padding: 14px 16px; border: 1px solid var(--linha); border-radius: 18px; background: var(--sup); }
.tb-anim h3 { margin: 0 0 10px; font-size: 1rem; }
.tb-anim-v { position: relative; min-height: 96px; overflow: hidden; border-radius: 14px; background: var(--azul-suave); }
.tb-anim-q { position: absolute; inset: 0; display: flex; align-items: center; gap: 12px; padding: 16px 18px 16px 16px; opacity: 0; transform: translateX(14px); transition: opacity .45s ease, transform .45s ease; pointer-events: none; }
.tb-anim-q.on { position: relative; opacity: 1; transform: none; pointer-events: auto; }
.tb-anim-q p { margin: 0; }
.tb-anim-n { display: grid; place-items: center; flex: none; width: 30px; height: 30px; border-radius: 50%; background: var(--bic); color: #fff; font-weight: 800; font-size: .9rem; }
.tb-anim-ctl { display: flex; align-items: center; gap: 8px; margin-top: 10px; }
.tb-anim-b { display: grid; place-items: center; width: 36px; height: 36px; border: 1px solid var(--linha-2); border-radius: 50%; background: var(--sup); color: var(--bic); cursor: pointer; }
.tb-anim-pp { background: var(--bic); color: #fff; border-color: var(--bic); }
.tb-anim-p { display: flex; gap: 6px; margin-left: auto; }
.tb-anim-p i { display: block; width: 8px; height: 8px; border-radius: 50%; background: var(--linha-2); transition: background .2s, transform .2s; }
.tb-anim-p i.on { background: var(--bic); transform: scale(1.25); }
.te-iar-anim b { display: flex; align-items: center; gap: 6px; margin-bottom: 4px; color: var(--bic); font-size: .85rem; }
.te-anim-ms { display: grid; gap: 4px; margin-top: 8px; font-size: .85rem; font-weight: 700; }
.te-ia-dica { margin: 0; padding: 10px 12px; border-radius: 12px; background: var(--azul-suave); color: var(--tinta-2); font-size: .84rem; line-height: 1.45; }
.tb-anim-b svg { width: 16px; height: 16px; }

/* 20 de outubro (10.ª parte): tamanho das imagens das lições e ver em grande */
.te-img-tam { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 10px; }
.te-img-tam span { margin-right: 4px; color: var(--tinta-2); font-size: .82rem; font-weight: 700; }
.te-img-tam button { padding: 6px 12px; border: 1px solid var(--linha-2); border-radius: 999px; background: var(--sup); color: var(--tinta); font: inherit; font-size: .82rem; font-weight: 700; cursor: pointer; }
.te-img-tam button[aria-pressed="true"] { border-color: var(--bic); background: var(--bic); color: #fff; }
.te-img[data-tam="p"] img { width: 40%; max-height: none; }
.te-img[data-tam="m"] img { width: 65%; max-height: none; }
.te-img[data-tam="g"] img { width: 85%; max-height: none; }
.te-img[data-tam="t"] img { width: 100%; max-height: none; }
.tb-img-p img { width: 40%; max-height: none; }
.tb-img-m img { width: 65%; max-height: none; }
.tb-img-g img { width: 85%; max-height: none; }
.tb-img-t img { width: 100%; max-height: none; }
@media (max-width: 640px) { .tb-img-p img { width: 70%; } .tb-img-m img, .tb-img-g img { width: 100%; } }
.tp-cena img[data-zoom] { cursor: zoom-in; }
.img-zoom { position: fixed; inset: 0; z-index: 10090; display: grid; place-items: center; align-content: center; gap: 12px; padding: max(16px, env(safe-area-inset-top)) 12px max(16px, env(safe-area-inset-bottom)); background: rgba(8, 12, 30, .92); opacity: 0; transition: opacity .2s; cursor: zoom-out; touch-action: pinch-zoom; }
.img-zoom.on { opacity: 1; }
.img-zoom img { max-width: 100%; max-height: 86vh; border-radius: 12px; background: #fff; object-fit: contain; }
.img-zoom p { margin: 0; max-width: 680px; color: #E8ECF8; text-align: center; }
.img-zoom-x { position: absolute; top: max(12px, env(safe-area-inset-top)); right: 12px; width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .15); color: #fff; font-size: 1.6rem; line-height: 1; cursor: pointer; }

/* 20 de outubro (11.ª parte): autor nos cartões do treino e poderes dados a pessoas */
.trc-autor { display: inline-flex; align-items: center; gap: 5px; margin-top: 3px; color: var(--tinta-2); font-size: .8rem; font-weight: 700; }
.trc-autor i { color: var(--cor, var(--bic)); font-size: .76rem; }
.pd-pl { display: grid; gap: 8px; margin: 0 0 12px; padding: 0; list-style: none; }
.pd-pl li { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 10px 12px; border: 1px solid var(--linha); border-radius: 14px; }
.pd-pn { display: grid; min-width: 180px; }
.pd-pn small { color: var(--tinta-2); }
.pd-pp { display: flex; flex: 1; flex-wrap: wrap; gap: 6px; }
.pd-chip { padding: 3px 10px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); font-size: .82rem; font-weight: 700; }
.pd-res { display: grid; gap: 4px; margin-top: 6px; }
.pd-r { display: grid; padding: 8px 12px; border: 1px solid var(--linha); border-radius: 10px; background: var(--sup); color: var(--tinta); font: inherit; text-align: left; cursor: pointer; }
.pd-r:hover { border-color: var(--bic); }
.pd-r small, .pd-quem small { color: var(--tinta-2); }
.pd-quem { margin: 0; padding: 10px 12px; border-radius: 12px; background: var(--sup-2); }
.pd-ops { display: grid; gap: 8px; max-height: 46vh; overflow: auto; }
.pd-op { display: flex; align-items: flex-start; gap: 10px; padding: 10px 12px; border: 1px solid var(--linha); border-radius: 12px; cursor: pointer; }
.pd-op span { display: grid; }
.pd-op small { color: var(--tinta-2); }

/* 20 de outubro (12.ª parte): banda dos simulados na cadeira e categorias novas */
.trt-band { display: flex; gap: 6px; margin: 16px 0; padding: 5px; border-radius: 16px; background: var(--sup); box-shadow: 0 0 0 1px var(--linha) inset; }
.trt-band button { display: flex; flex: 1; align-items: center; justify-content: center; gap: 8px; min-height: 44px; border: 0; border-radius: 12px; background: none; color: var(--tinta-2); font: inherit; font-weight: 800; cursor: pointer; }
.trt-band button b { padding: 1px 8px; border-radius: 999px; background: var(--sup-3); color: var(--tinta); font-size: .8rem; }
.trt-band button[aria-selected="true"] { background: var(--cor, var(--bic)); color: #fff; }
.trt-band button[aria-selected="true"] b { background: rgba(255, 255, 255, .25); color: #fff; }
.tr-sims-i { margin: 0 0 12px; padding: 12px 14px; border-radius: 14px; background: var(--azul-suave); color: var(--tinta-2); font-size: .92rem; }
.tr-sims-l { display: grid; gap: 10px; }
.tr-sim { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border: 1px solid var(--linha); border-radius: 18px; background: var(--sup); color: var(--tinta); text-decoration: none; box-shadow: 0 3px 0 var(--linha); transition: transform .12s, border-color .12s; }
.tr-sim:hover { border-color: var(--cor, var(--bic)); transform: translateY(-1px); }
.tr-sim-ic { display: grid; place-items: center; flex: none; width: 44px; height: 44px; border-radius: 14px; background: var(--azul-suave); color: var(--cor, var(--bic)); font-size: 1.1rem; }
.tr-sim.feito .tr-sim-ic { background: var(--cor, var(--bic)); color: #fff; }
.tr-sim.fechado .tr-sim-ic { background: var(--sup-3); color: var(--tinta-3); }
.tr-sim-t { display: grid; flex: 1; min-width: 0; }
.tr-sim-t strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tr-sim-t small { color: var(--tinta-2); }
.tr-sim-r { display: grid; justify-items: end; flex: none; }
.tr-sim-r b { color: var(--cor, var(--bic)); font-size: 1.05rem; }
.tr-sim-r small { color: var(--tinta-3); font-size: .82rem; }
.tr-sim-novo { padding: 6px 14px; border-radius: 999px; background: var(--cor, var(--bic)); color: #fff !important; font-size: .9rem !important; }
.tr-sim-preco { color: var(--tinta-2) !important; }
.pd-op.on { border-color: var(--bic); background: var(--azul-suave); }
.pd-op { justify-content: space-between; align-items: center; }

/* 20 de outubro (13.ª parte): olho para mostrar ou esconder lições e simulados */
.ta-olho { color: var(--tinta-3); }
.ta-olho.on { color: var(--bic); background: var(--azul-suave); }
.ta-olho:disabled { opacity: .35; cursor: not-allowed; }

/* 20 de outubro (14.ª parte): fonte dos exercícios, imagens e vídeos no texto, barra de juntar ao texto */
.ex-fonte { display: inline-flex; align-items: center; margin: 0 0 8px; padding: 3px 10px; border-radius: 6px; background: #101633; color: #fff; font-size: .78rem; font-weight: 800; letter-spacing: .02em; }
.tx img { display: block; max-width: 100%; height: auto; margin: 10px auto; border-radius: 12px; }
.tx video { display: block; width: 100%; max-height: 60vh; margin: 10px 0; border-radius: 12px; background: #000; }
.tx figure.tx-yt { position: relative; margin: 10px 0; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 12px; background: #000; }
.tx figure.tx-yt iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.te-rt figure.tx-yt { display: grid; place-items: center; min-height: 80px; border-radius: 10px; background: #101633; color: #fff; }
.te-rt figure.tx-yt::after { content: "▶ Vídeo do YouTube"; font-weight: 700; font-size: .85rem; }
.te-rt img, .te-rt video { max-width: 100%; border-radius: 10px; }
.te-ex-fonte { margin-bottom: 8px; font-size: .85rem; text-transform: uppercase; }
.te-junta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 10px 0 4px; }
.te-junta-t { flex-basis: 100%; margin: 0 0 2px; color: var(--tinta-2); font-size: .82rem; font-weight: 800; }
.te-junta-b { display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 12px; border: 1px solid var(--linha-2); border-radius: 999px; background: var(--sup); color: var(--tinta); font: inherit; font-size: .8rem; font-weight: 700; line-height: 1; white-space: nowrap; cursor: pointer; }
.te-junta-b i { font-size: .85rem; color: var(--bic); }
.te-junta-b:hover { border-color: var(--bic); color: var(--bic); }
.te-junta + .te-ia-res { margin-top: 2px; }

/* 20 de outubro (16.ª parte): janelas do site, vídeos por link, barra de juntar ao texto, cores, sons, telemóvel, leitor de voz */
.dlg-ov { position: fixed; inset: 0; z-index: 10095; display: grid; place-items: center; padding: 16px; background: rgba(9, 13, 32, .55); backdrop-filter: blur(3px); opacity: 0; transition: opacity .18s; }
.dlg-ov.on { opacity: 1; }
.dlg { width: min(460px, 100%); padding: 22px; border-radius: 22px; background: var(--sup); box-shadow: 0 24px 60px rgba(9, 13, 32, .35); transform: translateY(8px) scale(.98); transition: transform .18s; }
.dlg-ov.on .dlg { transform: none; }
.dlg h2 { margin: 0 0 6px; font-size: 1.2rem; }
.dlg p { margin: 0 0 14px; color: var(--tinta-2); }
.dlg-in { width: 100%; min-height: 48px; padding: 0 14px; border: 1.5px solid var(--linha-2); border-radius: 14px; background: var(--sup-2); color: var(--tinta); font: inherit; }
.dlg-in:focus { outline: none; border-color: var(--bic); box-shadow: 0 0 0 4px var(--azul-suave); }
.dlg-b { display: flex; justify-content: flex-end; gap: 10px; margin-top: 16px; }
.dlg-b .btn { min-width: 110px; }
@media (max-width: 640px) { .dlg-ov { align-items: end; padding: 0; } .dlg { width: 100%; border-radius: 22px 22px 0 0; padding-bottom: calc(22px + env(safe-area-inset-bottom)); transform: translateY(100%); } .dlg-ov.on .dlg { transform: none; } .dlg-b .btn { flex: 1; } }
.tx figure.tx-emb { position: relative; margin: 12px 0; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 14px; background: #000; }
.tx figure.tx-emb iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.te-rt figure.tx-emb { display: grid; place-items: center; min-height: 80px; border-radius: 12px; background: #101633; color: #fff; }
.te-rt figure.tx-emb::after { content: "▶ Vídeo por link (" attr(data-emb) ")"; font-size: .82rem; font-weight: 700; }
#off-aviso { position: fixed; left: 50%; bottom: calc(76px + env(safe-area-inset-bottom)); z-index: 10080; display: flex; align-items: center; gap: 8px; max-width: calc(100% - 24px); padding: 10px 16px; border-radius: 999px; background: #101633; color: #fff; font-size: .86rem; font-weight: 700; transform: translateX(-50%); box-shadow: 0 10px 30px rgba(0, 0, 0, .25); }
/* cores do marcador e do texto */
.tx mark, .te-rt mark { padding: 0 .12em; border-radius: 4px; background: #FDE68A; color: inherit; }
.tx mark.m-verde, .te-rt mark.m-verde { background: #BBC7F7; } .tx mark.m-azul, .te-rt mark.m-azul { background: #BFDBFE; }
.tx mark.m-rosa, .te-rt mark.m-rosa { background: #FBCFE8; } .tx mark.m-laranja, .te-rt mark.m-laranja { background: #FED7AA; }
.c-azul { color: #1E40E6; } .c-vermelho { color: #DC2626; } .c-verde { color: #152A80; } .c-roxo { color: #7C3AED; } .c-laranja { color: #C2410C; } .c-cinza { color: #64748B; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .c-azul { color: #8FA8FF; } :root:not([data-theme="light"]) .c-vermelho { color: #FCA5A5; } :root:not([data-theme="light"]) .c-verde { color: #869BEF; } :root:not([data-theme="light"]) .c-roxo { color: #C4B5FD; } :root:not([data-theme="light"]) .c-laranja { color: #FDBA74; } :root:not([data-theme="light"]) .tx mark { color: #101633; } }
.te-cor-pal { display: flex; flex-basis: 100%; gap: 6px; padding: 8px 4px 2px; }
.te-cor-pal button { width: 26px !important; height: 26px !important; padding: 0 !important; border: 2px solid rgba(255, 255, 255, .7) !important; border-radius: 50% !important; background: var(--c) !important; }
.te-cor-pal button.sem { display: grid; place-items: center; background: transparent !important; color: #fff; }
#te-ferr { flex-wrap: wrap; }
/* rodapé dos exercícios no telemóvel: botões inteiros e legíveis */
@media (max-width: 560px) {
  .tp-pe .tp-acoes { display: grid !important; grid-template-columns: 1fr 1fr; gap: 8px; width: 100%; }
  .tp-pe .tp-acoes .btn { min-width: 0; width: 100%; padding: 0 10px; font-size: .95rem; white-space: normal; line-height: 1.15; }
  .tp-pe .tp-acoes .tp-b, .tp-pe .tp-acoes .btn:only-child { grid-column: 1 / -1; order: -1; }
  .tp-pe .tp-acoes .btn-ghost { order: 2; }
}
/* leitor de voz: "Ouvir" no seu lugar e a barra pequena, por cima do botão principal (sem o tapar) */
.tts-cena { position: static !important; float: right; margin: 2px 0 10px 12px !important; transform: none !important; }
.tts-barra { flex-wrap: nowrap !important; gap: 4px !important; padding: 6px !important; border-radius: 999px !important; }
.tts-barra button { width: 40px !important; height: 40px !important; min-width: 40px; }
.tts-barra .tts-vel { width: auto !important; padding: 0 10px !important; }
html.tr-aberto .tts-barra { bottom: calc(108px + env(safe-area-inset-bottom)) !important; }
@media (max-width: 640px) { .tts-barra .tts-txt { display: none !important; } html.tr-aberto .tts-barra { bottom: calc(118px + env(safe-area-inset-bottom)) !important; } }
/* lições e exercícios maiores no computador */
@media (min-width: 900px) {
  #treino-raiz .tp-cena { font-size: 1.14rem; }
  #treino-raiz .tp-cena h2, #treino-raiz .tp-cena .tp-tit { font-size: 1.85rem; }
  #treino-raiz .ex-enun { font-size: 1.18rem; }
  #treino-raiz .ex-op, #treino-raiz .ex-vf button { min-height: 64px; font-size: 1.08rem; }
}
/* barra de baixo do telemóvel: ícone do Treinar e pontos no cabeçalho */
.abas-m .aba-fa { display: grid; place-items: center; height: 24px; font-size: 1.2rem; }
@media (max-width: 760px) { .acoes .pts { display: inline-flex !important; padding: 6px 10px; font-size: .85rem; } }

/* 20 de outubro (17.ª parte): calendário do site, período do painel, replays para todos */
.dp-nativo { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; border: 0 !important; opacity: 0 !important; pointer-events: none !important; }
.dp-btn { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 48px; padding: 0 14px; border: 1.5px solid var(--linha-2); border-radius: 14px; background: var(--sup); color: var(--tinta); font: inherit; font-weight: 600; text-align: left; cursor: pointer; }
.dp-btn i { color: var(--bic); }
.dp-btn.vazio span { color: var(--tinta-3); font-weight: 500; }
.dp-btn:hover, .dp-btn:focus-visible { border-color: var(--bic); outline: none; box-shadow: 0 0 0 4px var(--azul-suave); }
.dp-pop { position: fixed; z-index: 10096; width: 320px; padding: 14px; border: 1px solid var(--linha); border-radius: 20px; background: var(--sup); box-shadow: 0 20px 50px rgba(9, 13, 32, .25); opacity: 0; transform: translateY(-4px); transition: opacity .15s, transform .15s; }
.dp-pop.on { opacity: 1; transform: none; }
.dp-ov { position: fixed; inset: 0; z-index: 10095; background: rgba(9, 13, 32, .45); }
.dp-pop.folha { left: 0; right: 0; bottom: 0; width: auto; padding: 10px 16px calc(16px + env(safe-area-inset-bottom)); border-radius: 24px 24px 0 0; transform: translateY(100%); transition: transform .22s cubic-bezier(.2, .8, .2, 1); opacity: 1; }
.dp-pop.folha.on { transform: none; }
.dp-pega { display: block; width: 44px; height: 5px; margin: 0 auto 10px; border-radius: 9px; background: var(--linha-2); }
.dp-cab { display: flex; align-items: center; justify-content: space-between; gap: 6px; margin-bottom: 8px; }
.dp-tit { display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px; border: 0; border-radius: 12px; background: none; color: var(--tinta); font: inherit; font-weight: 800; font-size: 1.02rem; cursor: pointer; }
.dp-tit i { font-size: .74rem; color: var(--tinta-3); }
.dp-tit:hover { background: var(--sup-2); }
.dp-nav { display: grid; place-items: center; width: 38px; height: 38px; border: 0; border-radius: 12px; background: var(--sup-2); color: var(--tinta); cursor: pointer; }
.dp-sem, .dp-dias { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.dp-sem span { padding: 4px 0; color: var(--tinta-3); font-size: .76rem; font-weight: 800; text-align: center; text-transform: uppercase; }
.dp-dias button, .dp-anos button, .dp-meses button { height: 40px; border: 0; border-radius: 12px; background: none; color: var(--tinta); font: inherit; font-weight: 600; cursor: pointer; }
.dp-dias button:hover, .dp-anos button:hover, .dp-meses button:hover { background: var(--azul-suave); }
.dp-dias button.hoje, .dp-anos button.hoje { box-shadow: inset 0 0 0 1.5px var(--bic); }
.dp-dias button.on, .dp-anos button.on, .dp-meses button.on { background: var(--bic); color: #fff; }
.dp-dias button:disabled { color: var(--tinta-3); opacity: .4; cursor: not-allowed; background: none; }
.dp-anos, .dp-meses { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.dp-meses { grid-template-columns: repeat(3, 1fr); }
.dp-pe { display: flex; gap: 8px; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--linha); }
.dp-pe button { padding: 8px 12px; border: 0; border-radius: 10px; background: var(--sup-2); color: var(--tinta); font: inherit; font-weight: 700; font-size: .85rem; cursor: pointer; }
.dp-pe .dp-ok { margin-left: auto; background: var(--bic); color: #fff; }
@media (max-width: 640px) { .dp-dias button, .dp-anos button, .dp-meses button { height: 46px; font-size: 1.02rem; } }
/* período do painel */
.per2 { display: grid; gap: 10px; padding: 12px; border: 1px solid var(--linha); border-radius: 18px; background: var(--sup); }
.per2-ats { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.per2-at { padding: 8px 14px; border: 1px solid var(--linha-2); border-radius: 999px; background: var(--sup); color: var(--tinta); font: inherit; font-size: .85rem; font-weight: 700; cursor: pointer; }
.per2-at[aria-pressed="true"] { border-color: var(--bic); background: var(--bic); color: #fff; }
.per2-ano { display: inline-flex; align-items: center; gap: 6px; padding: 2px 4px 2px 12px; border: 1px solid var(--linha-2); border-radius: 999px; font-size: .85rem; font-weight: 700; }
.per2-ano.on { border-color: var(--bic); background: var(--azul-suave); }
.per2-ano select { min-height: 32px; border: 0; background: none; font: inherit; }
.per2-datas { display: flex; flex-wrap: wrap; align-items: end; gap: 10px; }
.per2-datas label { display: grid; gap: 4px; min-width: 160px; font-size: .82rem; font-weight: 700; color: var(--tinta-2); }
.per2-datas small { padding-bottom: 14px; color: var(--tinta-3); font-weight: 700; }
.rel-caixa[data-rel="geral"] .rel-d, .rel-caixa[data-rel="geral"] .rel-at { display: none !important; }
.rel-caixa[data-rel="geral"] header::after { content: "Usa o período escolhido no topo da página"; margin-left: auto; color: var(--tinta-3); font-size: .8rem; font-weight: 600; }
.res-extra header { display: flex; align-items: center; gap: 10px; }
.res-ver { margin-left: auto; font-size: .85rem; font-weight: 700; }
/* replays para todos */
.rpl-selo { position: absolute; top: 10px; left: 10px; z-index: 2; display: inline-flex; align-items: center; gap: 5px; padding: 4px 10px; border-radius: 999px; background: rgba(9, 13, 32, .8); color: #fff; font-size: .78rem; font-weight: 800; }
.rpl-selo.gratis { background: #152A80; } .rpl-selo.pts { background: #1E40E6; } .rpl-selo.prep { background: rgba(9, 13, 32, .8); }
.rpl-bloq { display: grid; justify-items: center; gap: 12px; max-width: 520px; margin: 30px auto; padding: 30px 22px; border: 1px solid var(--linha); border-radius: 24px; background: var(--sup); text-align: center; }
.rpl-bloq h1 { margin: 0; font-size: 1.35rem; }
.rpl-bloq p { margin: 0; color: var(--tinta-2); }
.rpl-bloq-ic { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 20px; background: var(--azul-suave); color: var(--bic); font-size: 1.6rem; }
.rpl-saldo { color: var(--tinta-3); }
.rp-ext { position: relative; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 18px; background: #000; }
.rp-ext iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* 20 de outubro (18.ª parte): Piper no painel */
.piper-l { display: grid; gap: 6px; margin: 0 0 12px; padding: 0; list-style: none; }
.piper-l li { display: flex; align-items: center; gap: 8px; font-weight: 600; }
.piper-l li.ok i { color: #152A80; } .piper-l li.nao i { color: var(--tinta-3); }
.piper-b { flex-wrap: wrap; justify-content: flex-start; }
.lnk { padding: 0; border: 0; background: none; color: var(--bic); font: inherit; font-weight: 700; text-decoration: underline; cursor: pointer; }
.dp-btn { justify-content: flex-start !important; }
.dp-btn span { flex: 1; min-width: 0; margin: 0 !important; text-align: left; }

/* 20 de outubro (19.ª parte): só o pedido: lição centrada, Ouvir, botões, X à direita, prova, números do treino */
.tts-cena { float: none !important; align-self: flex-end; width: auto !important; max-width: max-content; margin: 0 0 8px auto !important; display: inline-flex !important; }
.tp-pe .tp-fb:empty + .tp-acoes { margin-left: auto; margin-right: auto; justify-content: center; }
.tp-topo .tp-x { order: 10; }
.tp-acoes-rev { flex-direction: column; align-items: stretch; width: min(420px, 100%); margin: 0 auto !important; }
.tp-pe .tp-acoes.tp-acoes-rev { display: flex !important; }
.tp-acoes-rev .btn { width: 100%; justify-content: center; gap: 8px; }
.tp-acoes-rev .btn-sec { order: 2; }
.trt-provab { grid-column: 1 / -1; }
.trt-provab .trt-prova { display: flex; width: 100%; margin: 0; padding: 12px 16px; border: 0 !important; border-radius: 16px; background: var(--azul-suave); color: var(--bic); font-weight: 800; justify-content: flex-start; }
.trt-provab .trt-prova::after { content: "›"; margin-left: auto; font-size: 1.4rem; line-height: 1; }
.trh2-st { grid-template-rows: auto auto auto; }
.trh2-st > .trh2-k { grid-column: 1 / -1; margin-bottom: 4px; color: var(--tinta-2); font-size: .74rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.trh2-st > svg { grid-row: 2 / 4; }
.trh2-st > small:not(.trh2-k) { white-space: normal; max-width: 150px; line-height: 1.25; }

/* 20 de outubro (20.ª parte): só o pedido: números do treino e botões no telemóvel */
@media (max-width: 600px) {
  .trh2-stats { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; justify-content: stretch; }
  .trh2-st { display: flex !important; flex-direction: column; align-items: flex-start; gap: 3px; min-width: 0; padding: 10px; text-align: left; }
  .trh2-st > .trh2-k { margin: 0 0 2px; font-size: .66rem; line-height: 1.2; }
  .trh2-st > svg { width: 22px !important; height: 22px !important; }
  .trh2-st b { font-size: 1.15rem; line-height: 1.1; white-space: nowrap; }
  .trh2-st.meta b { font-size: 1rem; }
  .trh2-st b small { font-size: .72rem; }
  .trh2-st > small:not(.trh2-k) { max-width: none; font-size: .7rem; line-height: 1.25; white-space: normal; }
  .tp-pe .tp-acoes { grid-template-columns: 1fr !important; }
  .tp-pe .tp-acoes .btn { grid-column: 1 / -1 !important; justify-self: stretch; min-height: 52px; padding: 12px 16px !important; justify-content: center; text-align: center; }
  .tp-pe .tp-acoes .btn-ghost { min-height: 44px; }
}
.tp-acoes-rev .btn { min-height: 54px; padding: 12px 18px !important; line-height: 1.2; }
.tp-acoes-rev .btn-sec { display: inline-flex; align-items: center; }

/* 20 de outubro (21.ª parte): leitor de PDF: tentar outra vez */
.pdf-erro .btn { margin-top: 10px; gap: 8px; }
.pdf-a-abrir { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 220px; color: var(--tinta-2); font-weight: 700; }

/* 20 de outubro (22.ª parte): fogo, imagens perdidas, baixados */
.trh2-stats { display: block !important; }
.trh2-fogo { position: relative; display: flex; align-items: center; gap: 14px; padding: 14px 16px; border: 2px solid var(--linha); border-radius: 20px; background: var(--sup); }
.trh2-fogo.on { border-color: color-mix(in srgb, #F97316 55%, var(--linha)); box-shadow: 0 3px 0 color-mix(in srgb, #F97316 45%, var(--linha)); }
.trh2-fogo-ic { display: grid; place-items: center; flex: none; width: 58px; height: 58px; border-radius: 18px; background: var(--sup-2); color: var(--linha-2); }
.trh2-fogo-ic svg { width: 34px; height: 34px; }
.trh2-fogo.on .trh2-fogo-ic { background: #FFF1E6; color: #F97316; }
.trh2-fogo.on .trh2-fogo-ic svg { filter: drop-shadow(0 2px 6px rgba(249, 115, 22, .45)); animation: fogo-arde 1.6s ease-in-out infinite; }
@keyframes fogo-arde { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.08) rotate(-2deg); } }
@media (prefers-reduced-motion: reduce) { .trh2-fogo.on .trh2-fogo-ic svg { animation: none; } }
.trh2-fogo-t { display: grid; gap: 4px; min-width: 0; flex: 1; padding-right: 26px; }
.trh2-fogo-n { display: flex; align-items: baseline; gap: 8px; margin: 0; }
.trh2-fogo-n b { font-family: var(--f-tit); font-size: 2rem; line-height: 1; color: var(--tinta); }
.trh2-fogo.on .trh2-fogo-n b { color: #EA580C; }
.trh2-fogo-n span { font-weight: 800; color: var(--tinta); }
.trh2-fogo-t small { color: var(--tinta-2); font-size: .82rem; line-height: 1.3; }
.trh2-fogo.perigo .trh2-fogo-t > small:first-of-type { color: #C2410C; font-weight: 700; }
.trh2-fogo-bar { display: block; height: 8px; overflow: hidden; border-radius: 9px; background: var(--sup-3); }
.trh2-fogo-bar i { display: block; height: 100%; border-radius: 9px; background: linear-gradient(90deg, #FDBA74, #F97316); }
.trh2-fogo-min { font-size: .78rem !important; color: var(--tinta-3) !important; }
.trh2-fogo-prox { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; }
.trh2-fogo-prox i { color: #F97316; }
.trh2-fogo-info { position: absolute; top: 10px; right: 10px; display: grid; place-items: center; width: 30px; height: 30px; border: 0; border-radius: 50%; background: none; color: var(--tinta-3); cursor: pointer; }
.fogo-info ul { display: grid; gap: 10px; margin: 12px 0; padding-left: 18px; }
.fogo-info p { margin: 0 0 8px; }
.img-falhou { display: none !important; }
.img-perdida { display: flex; align-items: center; gap: 8px; margin: 8px 0 0; padding: 8px 12px; border-radius: 10px; background: #FEF2F2; color: #B91C1C; font-size: .82rem; font-weight: 700; }
.btn-baixar.on { color: #152A80; border-color: #869BEF; }
.off-pct { font-size: .76rem; font-weight: 800; }
.off-l { display: grid; gap: 10px; margin: 16px 0 0; padding: 0; list-style: none; }
.off-l li { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border: 1px solid var(--linha); border-radius: 16px; background: var(--sup); }
.off-i { display: flex; align-items: center; gap: 12px; flex: 1; min-width: 0; color: var(--tinta); text-decoration: none; }
.off-ic { display: grid; place-items: center; flex: none; width: 42px; height: 42px; border-radius: 12px; background: #FEE2E2; color: #DC2626; }
.off-t { display: grid; min-width: 0; }
.off-t strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.off-t small { color: var(--tinta-2); }
#off-aviso a { color: #93C5FD; font-weight: 800; }

/* 20 de outubro (24.ª parte): prémios do fogo */
.fogo-pt { margin: 14px 0 8px; font-size: 1rem; }
.fogo-pt small { color: var(--tinta-3); font-weight: 600; }
.fogo-premios { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-bottom: 12px; }
.fogo-pr { display: grid; justify-items: center; gap: 2px; padding: 12px 6px; border: 2px solid var(--linha); border-radius: 16px; background: var(--sup); text-align: center; }
.fogo-pr-ic { display: grid; place-items: center; width: 34px; height: 34px; margin-bottom: 4px; border-radius: 50%; background: var(--sup-2); color: var(--tinta-3); }
.fogo-pr b { font-size: .95rem; }
.fogo-pr span { color: #C2410C; font-size: .8rem; font-weight: 800; }
.fogo-pr small { color: var(--tinta-3); font-size: .76rem; font-weight: 700; }
.fogo-pr.ganho { border-color: #869BEF; background: #F0F3FD; }
.fogo-pr.ganho .fogo-pr-ic { background: #1632A3; color: #fff; }
.fogo-pr.perto { border-color: #FDBA74; background: #FFF7ED; }
.fogo-pr.perto .fogo-pr-ic { background: #F97316; color: #fff; }
@media (max-width: 400px) { .fogo-premios { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* 20 de outubro (25.ª parte): aviso de sem internet pequeno, no topo */
#off-aviso { top: calc(env(safe-area-inset-top, 0px) + 70px) !important; bottom: auto !important; gap: 8px !important; max-width: calc(100% - 32px) !important; padding: 7px 8px 7px 12px !important; border-radius: 999px !important; background: #1F2937 !important; font-size: .8rem !important; white-space: nowrap; box-shadow: 0 6px 18px rgba(0, 0, 0, .2) !important; }
#off-aviso i { position: relative; color: #FCA5A5; }
#off-aviso i::after { content: ""; position: absolute; left: 50%; top: -2px; bottom: -2px; width: 2px; background: #FCA5A5; transform: translateX(-50%) rotate(45deg); border-radius: 2px; }
#off-aviso a { padding: 4px 10px; border-radius: 999px; background: rgba(255, 255, 255, .14); color: #fff !important; font-weight: 800; text-decoration: none; }

/* 20 de outubro (26.ª parte): botões da data da prova, leitor dos baixados */
.prova-btns { flex-wrap: wrap; }
@media (max-width: 560px) {
  .prova-btns { display: grid !important; grid-template-columns: 1fr; gap: 10px; }
  .prova-btns .btn { width: 100%; min-width: 0; }
  .prova-btns [type="submit"] { order: -1; }
  .prova-btns .btn-ghost { order: 3; }
}
.tts-run { display: inline; }
.off-ler-topo { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.off-sel { display: inline-flex; align-items: center; gap: 6px; color: #152A80; font-size: .85rem; font-weight: 800; }
.leitor-off { display: grid; gap: 12px; margin-top: 14px; }
.leitor-off .pagina { position: relative; width: 100%; overflow: hidden; border-radius: 12px; background: #fff; box-shadow: 0 2px 10px rgba(9, 13, 32, .08); }
.leitor-off .pagina canvas { display: block; width: 100%; height: auto; }

/* 20 de outubro (27.ª parte): leitor dos baixados centrado em qualquer ecrã */
.off-ler, .off-pag { box-sizing: border-box; width: min(900px, 100%); margin-left: auto !important; margin-right: auto !important; padding-left: 16px; padding-right: 16px; }
.off-ler h1 { overflow-wrap: anywhere; }
.leitor-off { justify-items: center; width: 100%; }
.leitor-off .pagina { width: 100%; max-width: 860px; margin: 0 auto; }
@media (max-width: 640px) { .off-ler, .off-pag { padding-left: 12px; padding-right: 12px; } .off-ler h1 { font-size: 1.4rem; } }

/* 20 de outubro (28.ª parte): flyer do perfil */
.flyer .intro { margin-bottom: 12px; }
.flyer-tams { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-bottom: 14px; }
.flyer-tam { display: grid; justify-items: center; gap: 4px; padding: 10px 6px; border: 2px solid var(--linha); border-radius: 14px; background: var(--sup); color: var(--tinta); font: inherit; cursor: pointer; }
.flyer-tam[aria-checked="true"] { border-color: var(--bic); background: var(--azul-suave); }
.flyer-forma { display: block; height: 34px; max-width: 60px; border-radius: 5px; background: #1E40E6; }
.flyer-tam b { font-size: .82rem; }
.flyer-tam small { color: var(--tinta-3); font-size: .76rem; font-weight: 700; }
.flyer-ver { display: grid; place-items: center; max-height: 52vh; margin-bottom: 14px; padding: 10px; border-radius: 16px; background: var(--sup-2); }
.flyer-ver img { display: block; width: auto; max-width: 100%; max-height: calc(52vh - 20px); border-radius: 10px; box-shadow: 0 8px 24px rgba(9, 13, 32, .2); transition: opacity .2s; }
.flyer-ver img.a-fazer { opacity: .35; min-height: 160px; background: #1E40E6; }
@media (max-width: 560px) { .flyer-btns { display: grid !important; grid-template-columns: 1fr; gap: 10px; } .flyer-btns .btn { width: 100%; } .flyer-btns .btn-pri { order: -1; } }

/* 20 de outubro (29.ª parte): procurar nos baixados e cartão da app */
.off-busca { margin: 14px 0 4px; }
.off-l li[hidden] { display: none !important; }
.off-nada { margin-top: 12px; }
.app-mini { display: flex; flex-direction: column; gap: 10px; padding: 20px; border-radius: 24px; background: #1E40E6; color: #fff; }
.app-mini-ic { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 14px; background: rgba(255, 255, 255, .16); font-size: 1.2rem; }
.app-mini strong { font-size: 1.12rem; line-height: 1.2; }
.app-mini p { margin: 0; font-size: .88rem; color: rgba(255, 255, 255, .85); }
.app-mini .btn { align-self: flex-start; background: #fff !important; color: #1E40E6 !important; border-color: #fff !important; gap: 8px; }

/* 20 de outubro (30.ª parte): materiais baixados */
.nav-off { margin-left: auto; padding: 1px 8px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); font-size: .72rem; font-weight: 800; letter-spacing: .02em; }
.btn-baixar-g { margin-top: 10px; gap: 8px; }
.btn-baixar-g.on { border-color: #869BEF !important; color: #152A80 !important; background: #F0F3FD !important; }
.off-cab { display: flex; align-items: center; gap: 14px; margin-bottom: 6px; }
.off-cab h1 { margin: 0; }
.off-cab .intro { margin: 4px 0 0; }
.off-cab-ic { display: grid; place-items: center; flex: none; width: 52px; height: 52px; border-radius: 16px; background: #1E40E6; color: #fff; font-size: 1.3rem; }

/* 20 de outubro (31.ª parte): flyer em ecrã inteiro no telemóvel */
@media (max-width: 640px) {
  .fundo-flyer-modal { padding: 0 !important; align-items: stretch !important; }
  .modal.flyer-modal { width: 100% !important; max-width: none !important; height: 100%; max-height: none !important; margin: 0 !important; border-radius: 0 !important; overflow-y: auto; padding: calc(16px + env(safe-area-inset-top, 0px)) 16px calc(16px + env(safe-area-inset-bottom, 0px)) !important; }
  .modal.flyer-modal .flyer-ver { max-height: none; }
  .modal.flyer-modal .flyer-ver img { max-height: 58vh; }
}

/* 20 de outubro (35.ª parte): painel, página do bloqueio */
.per2 { margin-bottom: 16px; }
.per2 + .app-link, .per2 + section, .per2 + .caixa { margin-top: 16px; }
/* página "Brevemente" (site bloqueado): sem as fórmulas no fundo */
.bq-fundo { display: none !important; }

/* 20 de outubro (36.ª parte): o fogo em azul */
.trh2-fogo.on { border-color: color-mix(in srgb, #1E40E6 45%, var(--linha)) !important; box-shadow: 0 3px 0 color-mix(in srgb, #1E40E6 35%, var(--linha)) !important; }
.trh2-fogo.on .trh2-fogo-ic { background: #E6ECFF !important; color: #1E40E6 !important; }
.trh2-fogo.on .trh2-fogo-ic svg { filter: drop-shadow(0 2px 6px rgba(30, 64, 230, .4)) !important; }
.trh2-fogo.on .trh2-fogo-n b { color: #1E40E6 !important; }
.trh2-fogo-bar i { background: linear-gradient(90deg, #93A8FF, #1E40E6) !important; }
.trh2-fogo-prox i { color: #1E40E6 !important; }
.trh2-fogo.perigo .trh2-fogo-t > small:first-of-type { color: #1530B8 !important; }
.fogo-pr span { color: #1E40E6 !important; }
.fogo-pr.perto { border-color: #93A8FF !important; background: #EEF2FF !important; }
.fogo-pr.perto .fogo-pr-ic { background: #1E40E6 !important; color: #fff !important; }
.fogo-pr-ic { color: #1E40E6; }

/* 20 de outubro (37.ª parte): aviso de sessão a começar */
.av-comecou { position: fixed; top: calc(env(safe-area-inset-top, 0px) + 74px); left: 50%; z-index: 10085; display: flex; align-items: center; gap: 10px; max-width: calc(100% - 24px); padding: 10px 10px 10px 16px; border-radius: 18px; background: #1E40E6; color: #fff; font-weight: 700; box-shadow: 0 14px 34px rgba(9, 13, 32, .3); transform: translateX(-50%); animation: avComecou .35s ease-out; }
.av-comecou-ponto { flex: none; width: 10px; height: 10px; border-radius: 50%; background: #F87171; box-shadow: 0 0 0 0 rgba(248, 113, 113, .7); animation: avPonto 1.4s infinite; }
.av-comecou-t { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .9rem; }
.av-comecou .btn { flex: none; background: #fff !important; color: #1E40E6 !important; border-color: #fff !important; }
.av-comecou .ib { flex: none; color: #fff; }
@keyframes avComecou { from { opacity: 0; transform: translate(-50%, -10px); } to { opacity: 1; transform: translate(-50%, 0); } }
@keyframes avPonto { 70% { box-shadow: 0 0 0 9px rgba(248, 113, 113, 0); } 100% { box-shadow: 0 0 0 0 rgba(248, 113, 113, 0); } }
@media (prefers-reduced-motion: reduce) { .av-comecou, .av-comecou-ponto { animation: none; } }

/* 20 de outubro (38.ª parte): menu lateral sem deslizar para o lado e a abrir/fechar suave */
@property --lat-w { syntax: '<length>'; inherits: true; initial-value: 252px; }
.lateral { overflow-x: hidden; scrollbar-gutter: stable; }
.lateral .nav-l, .lateral .nav-l span, .lateral .lat-eu, .lateral .lat-eu span, .lateral .nav-grupo { white-space: nowrap; }
.lateral .nav-l span { overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.lateral .nav-l span, .lateral .lat-eu span, .lateral .nav-grupo, .lateral .lat-convite, .lateral .nav-off, .lateral .nav-badge { transition: opacity .18s ease .06s; }
@media (min-width: 1061px) {
  body { transition: --lat-w .26s cubic-bezier(.2, .8, .2, 1); }
  body.lateral-a-mudar .lateral .nav-l span, body.lateral-a-mudar .lateral .lat-eu span, body.lateral-a-mudar .lateral .nav-grupo, body.lateral-a-mudar .lateral .lat-convite, body.lateral-a-mudar .lateral .nav-off, body.lateral-a-mudar .lateral .lat-partilhar span { opacity: 0 !important; transition: none !important; }
  body.lateral-recolhida .lateral { scrollbar-width: none; }
  body.lateral-recolhida .lateral::-webkit-scrollbar { width: 0; height: 0; }
}
@media (prefers-reduced-motion: reduce) { body { transition: none !important; } }

/* 20 de outubro (39.ª parte): Ganhe pontos */
.gp-falta { margin: 0 0 12px; color: var(--tinta-2); }
.gp-l { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.gp { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; padding: 12px 14px; border: 1px solid var(--linha); border-radius: 16px; background: var(--sup); }
.gp-ic { display: grid; place-items: center; flex: none; width: 40px; height: 40px; border-radius: 12px; background: var(--sup-2); color: var(--tinta-3); }
.gp.feito .gp-ic { background: var(--azul-suave); color: var(--bic); }
.gp.atual { border-color: var(--bic); box-shadow: 0 0 0 3px var(--azul-suave); }
.gp-t { display: grid; min-width: 150px; }
.gp-t em { margin-left: 6px; padding: 1px 8px; border-radius: 999px; background: var(--bic); color: #fff; font-size: .74rem; font-style: normal; font-weight: 800; }
.gp-t small { color: var(--tinta-2); }
.gp-chips { display: flex; flex: 1; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.gp-chip { padding: 3px 10px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); font-size: .8rem; font-weight: 800; }
.gp-chip.suave { background: var(--sup-2); color: var(--tinta-2); }
.gn-comprar { display: flex; align-items: center; gap: 14px; padding: 16px; border: 1px dashed var(--linha-2); border-radius: 18px; background: var(--sup); }
.gn-comprar div { flex: 1; }
.gn-comprar p { margin: 2px 0 0; color: var(--tinta-2); font-size: .9rem; }
@media (max-width: 560px) { .gp-chips { justify-content: flex-start; } .gn-comprar { flex-wrap: wrap; } }

/* 20 de outubro (40.ª parte): Ganhe pontos, convidar, painel dos pontos */
#cart-aba .gn-grid { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)) !important; }
.gp-expl { margin: 0 0 10px; color: var(--tinta-2); font-size: .92rem; }
.conv-passos { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; margin: 0 0 16px; padding: 0; list-style: none; counter-reset: none; }
.conv-passos li { position: relative; display: grid; gap: 4px; padding: 16px 16px 16px 60px; border: 1px solid var(--linha); border-radius: 18px; background: var(--sup); }
.conv-passos .cp-n { position: absolute; left: 16px; top: 16px; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--bic); color: #fff; font-weight: 800; }
.conv-passos strong { font-size: .98rem; }
.conv-passos small { color: var(--tinta-2); font-size: .86rem; line-height: 1.4; }
.conv-passos b { color: var(--bic); }
.vp-temas { grid-template-columns: repeat(auto-fit, minmax(380px, 1fr)) !important; align-items: start; }
@media (max-width: 640px) { .vp-temas { grid-template-columns: 1fr !important; } }

/* 20 de outubro (41.ª parte): Ganhe pontos a toda a largura, nomes do menu completos, "Querias dizer" */
.gn-grid { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important; }
@media (min-width: 900px) { #cart-aba .gn-grid, .gn-ecra .gn-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; } }
.lateral .nav-l span { white-space: normal !important; overflow: visible !important; text-overflow: clip !important; line-height: 1.15; min-width: 0; }
.lateral .nav-l { white-space: normal !important; }
.lateral .nav-l .nav-off { flex: none; white-space: nowrap !important; line-height: 1.4; }
.querias { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 16px; padding: 12px 14px; border: 1px solid var(--linha); border-radius: 16px; background: var(--sup); }
.querias > span { color: var(--tinta-2); font-weight: 700; }
.querias-b { padding: 6px 12px; border: 1.5px solid var(--bic); border-radius: 999px; background: var(--azul-suave); color: var(--bic); font: inherit; font-weight: 800; cursor: pointer; }
.querias-b:hover { background: var(--bic); color: #fff; }

/* 21 de outubro: "a carregar" com opção de tentar de novo se demorar */
.demora { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px; margin: 6px auto 0; color: var(--tinta-2); font-size: .9rem; opacity: 0; animation: demoraAparece .4s ease 15s forwards; }
@keyframes demoraAparece { to { opacity: 1; } }

/* 22 de outubro: cartão das cadeiras (estudantes), relatório do treino, nota de quem vê as cadeiras */
.trc:not(.trc-breve) { position: relative; display: flex !important; flex-direction: column; gap: 12px; padding: 20px !important; border: 1px solid var(--linha) !important; border-radius: 22px !important; background: var(--sup) !important; box-shadow: 0 2px 0 var(--linha) !important; overflow: hidden; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; text-decoration: none; color: inherit; }
.trc:not(.trc-breve)::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 74px; background: linear-gradient(135deg, color-mix(in srgb, var(--cor, var(--marca)) 16%, transparent), transparent 70%); pointer-events: none; }
.trc:not(.trc-breve):hover { transform: translateY(-3px); border-color: color-mix(in srgb, var(--cor, var(--marca)) 45%, var(--linha)) !important; box-shadow: 0 14px 30px rgba(16, 22, 51, .10) !important; }
.trc-topo { position: relative; display: flex; align-items: flex-start; justify-content: space-between; }
.trc:not(.trc-breve) .trc-ic { display: grid !important; place-items: center; width: 58px !important; height: 58px !important; border-radius: 18px !important; background: var(--cor, var(--marca)) !important; color: #fff !important; font-size: 24px; box-shadow: 0 8px 18px color-mix(in srgb, var(--cor, var(--marca)) 35%, transparent); }
.trc:not(.trc-breve) .trc-ic svg, .trc:not(.trc-breve) .trc-ic img { width: 30px; height: 30px; }
.trc-anel { position: relative; width: 56px; height: 56px; flex: none; }
.trc-anel svg { width: 100%; height: 100%; }
.trc-anel b { position: absolute; inset: 0; display: grid; place-items: center; font-size: .82rem; font-weight: 800; color: var(--tinta); }
.trc:not(.trc-breve) .trc-t { display: grid; gap: 3px; }
.trc:not(.trc-breve) .trc-t strong { font-size: 1.14rem; line-height: 1.25; letter-spacing: -.01em; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.trc:not(.trc-breve) .trc-t small { color: var(--tinta-2); font-size: .9rem; }
.trc:not(.trc-breve) .trc-autor { display: inline-flex; align-items: center; gap: 8px; align-self: flex-start; padding: 4px 12px 4px 4px; border-radius: 999px; background: var(--sup-2); color: var(--tinta); font-size: .85rem; font-weight: 700; }
.trc-autor-av { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--cor, var(--marca)); color: #fff; font-size: .76rem; font-weight: 800; }
.trc-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.trc-chips span { display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 11px; border-radius: 999px; background: var(--sup-2); color: var(--tinta-2); font-size: .8rem; font-weight: 700; }
.trc-chips i { color: var(--cor, var(--marca)); font-size: .82rem; }
.trc-cta { display: flex; align-items: center; justify-content: center; gap: 8px; height: 44px; margin-top: auto; border-radius: 999px; background: color-mix(in srgb, var(--cor, var(--marca)) 12%, var(--sup)); color: var(--cor, var(--marca)); font-weight: 800; transition: background .18s ease, color .18s ease; }
.trc:not(.trc-breve):hover .trc-cta { background: var(--cor, var(--marca)); color: #fff; }
.trc-grade { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)) !important; gap: 16px !important; }
.ta-c-rel { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; background: var(--azul-suave); color: var(--marca); font-weight: 800; font-size: .82rem; cursor: pointer; }
.ta-c-rel:hover { background: var(--marca); color: #fff; }
.ta-c-pub { display: flex !important; align-items: center; gap: 6px; }
.ta-rel { display: grid; gap: 16px; }
.ta-rel h3 { margin: 6px 0 0; font-size: 1.1rem; }
.ta-rel-k { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.ta-rel-k div { display: grid; gap: 4px; padding: 14px 16px; border: 1px solid var(--linha); border-radius: 16px; background: var(--sup); }
.ta-rel-k small { color: var(--tinta-2); font-weight: 700; }
.ta-rel-k b { font-size: 1.4rem; }
.ta-rel-tab { overflow-x: auto; border: 1px solid var(--linha); border-radius: 16px; }
.ta-rel-tab table { width: 100%; border-collapse: collapse; font-size: .92rem; }
.ta-rel-tab th, .ta-rel-tab td { padding: 10px 12px; text-align: left; border-bottom: 1px solid var(--linha); white-space: nowrap; }
.ta-rel-tab th { background: var(--sup-2); color: var(--tinta-2); font-weight: 800; font-size: .8rem; }
.ta-rel-tab tr:last-child td { border-bottom: 0; }
.ta-rel-vazio { color: var(--tinta-2); }
.ta-rel-pe { display: flex; justify-content: flex-end; }
.ta-modos-nota p { margin: 6px 0 0; color: var(--tinta-2); font-size: .92rem; line-height: 1.45; max-width: 320px; }
.cadx-txt { margin: 6px 0 12px; color: var(--tinta-2); line-height: 1.5; }
.cadx-ac { display: flex; gap: 10px; }
.cadx-topo { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.cadx-topo input { flex: 1; min-width: 220px; height: 44px; padding: 0 14px; border: 1.5px solid var(--linha); border-radius: 12px; background: var(--sup); color: var(--tinta); font: inherit; }
.cadx-lista { display: grid; gap: 8px; }
.cadx-l { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border: 1px solid var(--linha); border-radius: 14px; background: var(--sup); }
.cadx-n { display: grid; gap: 2px; min-width: 0; flex: 1; }
.cadx-n small { color: var(--tinta-2); font-weight: 700; }
.cadx-amostra { color: var(--tinta-3, var(--tinta-2)); font-size: .82rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cadx-sem { color: var(--tinta-3, var(--tinta-2)) !important; font-weight: 600 !important; }
.cadx-vazio { color: var(--tinta-2); }

/* 22 de outubro: nada de verde no site; a caixa do Treine o Cérebro nas cores do Veteraano */
.cdd-treino .cdl-ir:hover { background: var(--marca-2, #1530B8); }

/* 22 de outubro: relatório da cadeira (Treine o Cérebro) */
.ta-rel-ecra .eo-rolo { background: var(--fundo, var(--sup-2)); }
.trel { max-width: 1180px; margin: 0 auto; display: grid; gap: 18px; padding: 4px 2px 30px; }
.trel-cab { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 18px; padding: 22px; border-radius: 22px; background: linear-gradient(135deg, var(--cor, var(--marca)), color-mix(in srgb, var(--cor, var(--marca)) 70%, #0E1430)); color: #fff; overflow: hidden; }
.trel-cab::after { content: ""; position: absolute; right: -60px; top: -60px; width: 220px; height: 220px; border-radius: 50%; background: rgba(255, 255, 255, .08); pointer-events: none; }
.trel-ic { display: grid; place-items: center; flex: none; width: 72px; height: 72px; border-radius: 22px; background: rgba(255, 255, 255, .16); font-size: 30px; color: #fff; }
.trel-ic svg, .trel-ic img { width: 38px; height: 38px; }
.trel-cab-t { display: grid; gap: 4px; flex: 1; min-width: 240px; }
.trel-cab-t small { font-weight: 800; letter-spacing: .08em; text-transform: uppercase; opacity: .8; font-size: .78rem; }
.trel-cab-t h2 { margin: 0; font-size: 1.7rem; line-height: 1.15; letter-spacing: -.02em; color: #fff; }
.trel-cab-t p { margin: 0; opacity: .88; }
.trel-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.trel-tags span { display: inline-flex; align-items: center; gap: 7px; height: 30px; padding: 0 12px; border-radius: 999px; background: rgba(255, 255, 255, .16); font-size: .84rem; font-weight: 700; }
.trel-autor { padding-left: 4px !important; background: #fff !important; color: var(--tinta) !important; }
.trel-autor-av { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--marca); color: #fff; font-size: .74rem; font-weight: 800; }
.trel-cab-ac { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: 8px; }
.trel-cab-ac .btn-sec { background: rgba(255, 255, 255, .16); color: #fff; border-color: rgba(255, 255, 255, .35); }
.trel-cab-ac .btn-pri { background: #fff; color: var(--cor, var(--marca)); border-color: #fff; }
.trel-ks { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; }
.trel-kpi { display: flex; align-items: center; gap: 12px; padding: 16px; border: 1px solid var(--linha); border-radius: 18px; background: var(--sup); }
.trel-kpi-ic { display: grid; place-items: center; flex: none; width: 44px; height: 44px; border-radius: 14px; background: var(--azul-suave); color: var(--marca); font-size: 18px; }
.trel-kpi small { display: block; color: var(--tinta-2); font-weight: 700; font-size: .8rem; }
.trel-kpi b { display: block; font-size: 1.45rem; line-height: 1.2; }
.trel-sec { display: grid; gap: 10px; }
.trel-sec h3 { display: flex; align-items: center; gap: 8px; margin: 6px 0 0; font-size: 1.15rem; }
.trel-dica { margin: -4px 0 0; color: var(--tinta-2); font-size: .88rem; }
.trel-lista { display: grid; gap: 8px; }
.trel-p, .trel-s { display: grid; grid-template-columns: minmax(220px, 1.6fr) minmax(120px, 1fr) repeat(5, minmax(84px, .7fr)) 18px; align-items: center; gap: 12px; padding: 12px 16px; border: 1px solid var(--linha); border-radius: 18px; background: var(--sup); color: inherit; text-decoration: none; transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease; }
.trel-s { grid-template-columns: 44px minmax(200px, 1.6fr) repeat(5, minmax(84px, .7fr)); }
.trel-p:hover { border-color: color-mix(in srgb, var(--marca) 45%, var(--linha)); box-shadow: 0 10px 24px rgba(16, 22, 51, .08); transform: translateY(-1px); }
.trel-p-quem { display: flex; align-items: center; gap: 12px; min-width: 0; }
.trel-p-quem .trel-av, .trel-p-quem .av, .trel-p-quem img { width: 46px !important; height: 46px !important; flex: none; border-radius: 50%; }
.trel-p-n { display: grid; min-width: 0; }
.trel-p-n b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.trel-p-n small { display: inline-flex; align-items: center; gap: 5px; color: var(--marca); font-weight: 800; font-size: .82rem; }
.trel-p-m, .trel-p-lic { display: grid; gap: 2px; min-width: 0; }
.trel-p-m small, .trel-p-lic small { color: var(--tinta-2); font-size: .78rem; font-weight: 700; }
.trel-p-m b, .trel-p-lic b { font-size: .98rem; }
.trel-p-lic em { color: var(--tinta-2); font-style: normal; font-weight: 600; font-size: .82rem; }
.trel-barra { display: block; height: 6px; border-radius: 99px; background: var(--sup-3, var(--linha)); overflow: hidden; margin-top: 3px; }
.trel-barra i { display: block; height: 100%; border-radius: 99px; background: var(--marca); }
.trel-p-ir { color: var(--tinta-3, var(--tinta-2)); }
.trel-s-ic { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 14px; background: var(--azul-suave); color: var(--marca); }
.trel-vazio { display: flex; align-items: center; gap: 12px; padding: 18px; border: 1px dashed var(--linha-2, var(--linha)); border-radius: 18px; color: var(--tinta-2); background: var(--sup); }
.trel-vazio i { color: var(--marca); font-size: 20px; }
@media (max-width: 900px) {
  .trel-p, .trel-s { grid-template-columns: 1fr 1fr 1fr; }
  .trel-p-quem, .trel-s-t { grid-column: 1 / -1; }
  .trel-p-ir, .trel-s-ic { display: none; }
}
@media (max-width: 600px) {
  .trel-cab { padding: 18px; gap: 14px; }
  .trel-ic { width: 54px; height: 54px; border-radius: 16px; font-size: 24px; }
  .trel-cab-t { min-width: 100%; }
  .trel-cab-t h2 { font-size: 1.35rem; }
  .trel-ks { grid-template-columns: 1fr 1fr; gap: 8px; }
  .trel-kpi { padding: 12px; gap: 10px; }
  .trel-kpi-ic { width: 36px; height: 36px; border-radius: 12px; font-size: 15px; }
  .trel-kpi b { font-size: 1.2rem; }
}

/* ==========================================================================
   48.ª parte (23 de outubro)
   ========================================================================== */
/* ---------- Verde só onde quer dizer «certo» ou «ligado»: resposta certa no jogo, quem está ligado, Ao Vivo a funcionar ---------- */
:root { --acerto: #16A34A; --acerto-2: #15803D; --acerto-esc: #14532D; --acerto-claro: #DCFCE7; --acerto-linha: #86EFAC; }
:root[data-theme="dark"] { --acerto: #22C55E; --acerto-2: #4ADE80; --acerto-esc: #BBF7D0; --acerto-claro: #0C2A18; --acerto-linha: #166534; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --acerto: #22C55E; --acerto-2: #4ADE80; --acerto-esc: #BBF7D0; --acerto-claro: #0C2A18; --acerto-linha: #166534; } }
.tp-pe.ok { background: var(--acerto-claro); }
.tp-pe.ok .tp-fb strong { color: var(--acerto-esc); }
.tp-pe.ok .tp-b { background: var(--acerto); box-shadow: 0 4px 0 var(--acerto-2); color: #fff; }
.ex-op.ok { border-color: var(--acerto); background: var(--acerto-claro); box-shadow: 0 4px 0 var(--acerto); color: var(--acerto-esc); }
.ex-op.ok .ex-l { border-color: var(--acerto); background: var(--acerto); color: #fff; }
.ex-par.ok { border-color: var(--acerto); box-shadow: 0 3px 0 var(--acerto); background: var(--acerto-claro); color: var(--acerto-esc); }
.ex-in.ok, .ex-gap.ok { border-color: var(--acerto); background: var(--acerto-claro); color: var(--acerto-esc); }
.ex-ord-i.ok { border-color: var(--acerto); box-shadow: 0 3px 0 var(--acerto); background: var(--acerto-claro); }
.ex-assoc-res li.ok { border-color: var(--acerto); background: var(--acerto-claro); color: var(--acerto-esc); }
.ts-q-b.ok { background: var(--acerto-claro); border-color: var(--acerto); color: var(--acerto-esc); }
.ts-fb.ok { background: var(--acerto-claro); color: var(--acerto-esc); }
.ex-certa, .tres-n .ok b, .tcad-n .ok b, .tp-res .ok b, .tcor-r dd.ok, .tcor-i.ok .tcor-est { color: var(--acerto-2); }
.tcor-i.ok { border-left-color: var(--acerto); }
:root[data-theme="dark"] .ex-op.ok, :root[data-theme="dark"] .ex-par.ok, :root[data-theme="dark"] .ex-ord-i.ok, :root[data-theme="dark"] .ex-in.ok, :root[data-theme="dark"] .ex-gap.ok, :root[data-theme="dark"] .ex-assoc-res li.ok, :root[data-theme="dark"] .tp-pe.ok { background: var(--acerto-claro); color: var(--acerto-esc); }
:root[data-theme="dark"] .tp-pe.ok .tp-fb strong, :root[data-theme="dark"] .ex-certa, :root[data-theme="dark"] .tcor-r dd.ok { color: var(--acerto-2); }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .ex-op.ok, :root:not([data-theme="light"]) .ex-par.ok, :root:not([data-theme="light"]) .ex-ord-i.ok, :root:not([data-theme="light"]) .ex-in.ok, :root:not([data-theme="light"]) .ex-gap.ok, :root:not([data-theme="light"]) .ex-assoc-res li.ok, :root:not([data-theme="light"]) .tp-pe.ok { background: var(--acerto-claro); color: var(--acerto-esc); }
  :root:not([data-theme="light"]) .tp-pe.ok .tp-fb strong, :root:not([data-theme="light"]) .ex-certa, :root:not([data-theme="light"]) .tcor-r dd.ok { color: var(--acerto-2); }
}
/* quem está ligado agora (painel) e as pessoas ligadas */
.oa-ponto { background: var(--acerto); }
.oa-ponto::after { border-color: var(--acerto); }
.lg-ponto { background: var(--acerto); animation-name: lgPulsaVerde; }
@keyframes lgPulsaVerde { 0% { box-shadow: 0 0 0 0 rgba(22, 163, 74, .45); } 70% { box-shadow: 0 0 0 12px rgba(22, 163, 74, 0); } 100% { box-shadow: 0 0 0 0 rgba(22, 163, 74, 0); } }
/* Estude ao Vivo: microfone ligado, ligação certa, testes que passaram */
.sl-mic.on { color: var(--acerto); }
.sala .sb-b.sb-mic.on .sb-ic, body.sala-clara .sala .sb-b.sb-mic.on .sb-ic { background: var(--acerto); color: #fff; }
.sl-mini.ok { background: var(--acerto); color: #fff; }
.avt-ok { background: var(--acerto-claro); color: var(--acerto-esc); }
.av-ok, .av-teste.ok, .av-lk-st.on { color: var(--acerto-2); }
.av-vid-est.on { background: var(--acerto-claro); color: var(--acerto-esc); }
body.sala-clara .sl-fim-ok { background: var(--acerto-claro); color: var(--acerto-esc); }

/* ---------- Menu: cadeado quando a administração fecha a área ---------- */
.nav-fecho { margin-left: auto; flex: none; display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 8px; background: var(--sup-3); color: var(--tinta-3); font-size: .76rem; }
.nav-l[aria-current="page"] .nav-fecho { background: rgba(255, 255, 255, .22); color: inherit; }
.abas-m a { position: relative; }
.aba-fecho { position: absolute; top: 5px; left: calc(50% + 8px); width: 16px; height: 16px; display: grid; place-items: center; border-radius: 50%; background: var(--sup-3); color: var(--tinta-2); font-size: .5rem; }

/* ---------- Materiais baixados: vazio com um ícone grande ---------- */
.off-vazio { display: flex; flex-direction: column; align-items: center; gap: 18px; padding: clamp(36px, 8vw, 72px) 16px; text-align: center; }
.off-vazio strong { font-family: var(--f-tit); font-size: clamp(1.05rem, 2.2vw, 1.3rem); color: var(--tinta); }
.off-vazio-ic { position: relative; display: grid; place-items: center; width: 132px; height: 132px; border-radius: 50%; background: radial-gradient(circle at 50% 38%, #EEF2FF 0, #E0E7FF 58%, #D4DCFC 100%); }
.off-vazio-ic i { position: relative; z-index: 1; display: grid; place-items: center; width: 76px; height: 76px; border-radius: 26px; background: linear-gradient(160deg, #3355F0, var(--marca) 55%, #1733C2); color: #fff; font-size: 2.1rem; box-shadow: 0 16px 30px -14px rgba(30, 64, 230, .75), inset 0 1px 0 rgba(255, 255, 255, .28); }
.off-vazio-onda { position: absolute; inset: -10px; border-radius: 50%; border: 2px solid rgba(30, 64, 230, .16); animation: offOnda 2.8s ease-out 2; }
.off-vazio-onda.o2 { animation-delay: .9s; }
@keyframes offOnda { 0% { transform: scale(.8); opacity: 0; } 30% { opacity: 1; } 100% { transform: scale(1.18); opacity: 0; } }
:root[data-theme="dark"] .off-vazio-ic { background: radial-gradient(circle at 50% 38%, #1B2552 0, #141C40 70%); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .off-vazio-ic { background: radial-gradient(circle at 50% 38%, #1B2552 0, #141C40 70%); } }
@media (prefers-reduced-motion: reduce) { .off-vazio-onda { animation: none; opacity: 0; } }

/* ---------- Página do material: baixar para ler offline ao lado de quem publicou (computador e tablet, na app) ---------- */
.doc-topo-l { flex-wrap: wrap; }
.btn-off-topo { width: auto; flex: none; white-space: nowrap; }
.btn-off-topo.on { color: var(--acerto-2); border-color: var(--acerto-linha); }
@media (max-width: 760px) { .btn-off-topo { display: none; } }

/* ---------- Cartões dos materiais: a equipa vê o preço dos estudantes ---------- */
.estado-th.preco-eq svg { width: 14px; height: 14px; flex: none; }

/* ---------- Início: vídeo «Como funciona» ---------- */
.cf-card { position: relative; display: grid; grid-template-columns: minmax(220px, 340px) minmax(0, 1fr); align-items: center; gap: clamp(14px, 2.4vw, 26px); margin: 0 0 22px; padding: 14px; border-radius: 24px; background: var(--sup); border: 1px solid var(--linha); transition: opacity .25s, transform .25s; }
.cf-card.sai { opacity: 0; transform: scale(.98); }
.cf-th { position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; padding: 0; border: 0; border-radius: 16px; overflow: hidden; background: #1E40E6; cursor: pointer; }
.cf-th img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s; }
.cf-th:hover img { transform: scale(1.03); }
.cf-play { position: absolute; left: 50%; top: 50%; translate: -50% -50%; display: grid; place-items: center; width: 62px; height: 62px; border-radius: 50%; background: #fff; color: var(--marca); font-size: 1.3rem; box-shadow: 0 10px 28px -8px rgba(10, 20, 70, .55); }
.cf-play i { margin-left: 4px; }
.cf-dur { position: absolute; right: 10px; bottom: 10px; padding: 3px 8px; border-radius: 8px; background: rgba(10, 16, 40, .72); color: #fff; font-size: .78rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.cf-t { display: grid; gap: 8px; justify-items: start; padding-right: 34px; }
.cf-k { display: inline-flex; align-items: center; gap: 6px; color: var(--bic); font-size: .8rem; font-weight: 800; }
.cf-t h2 { margin: 0; font-family: var(--f-tit); font-size: clamp(1.2rem, 2.4vw, 1.5rem); }
.cf-t p { margin: 0; color: var(--tinta-2); line-height: 1.5; max-width: 60ch; }
.cf-x { position: absolute; top: 10px; right: 10px; }
@media (max-width: 640px) { .cf-card { grid-template-columns: 1fr; padding: 10px; } .cf-t { padding: 2px 6px 6px; } .cf-x { top: 16px; right: 16px; background: rgba(255, 255, 255, .92); color: #101633; } }

/* ---------- Treine o Cérebro: Geral / Criados por mim ---------- */
.tr-cria { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin: 0 0 16px; }
.tr-cria-abas { display: inline-flex; gap: 4px; padding: 4px; border-radius: 14px; background: var(--sup-2); border: 1px solid var(--linha); }
.tr-cria-aba { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 10px; color: var(--tinta-2); font-weight: 750; font-size: .9rem; text-decoration: none; }
.tr-cria-aba[aria-selected="true"] { background: var(--sup); color: var(--tinta); box-shadow: var(--sombra-leve); }
.trmeus-cab { margin: 4px 0 18px; }
.trmeus-cab h1 { margin: 0 0 4px; font-family: var(--f-tit); font-size: clamp(1.4rem, 3vw, 1.9rem); }
.trmeus-cab p { margin: 0; color: var(--tinta-2); max-width: 70ch; }
.trm-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(280px, 100%), 1fr)); gap: 14px; }
.trm-c { display: grid; gap: 8px; padding: 16px; border-radius: 20px; background: var(--sup); border: 1px solid var(--linha); color: var(--tinta); text-decoration: none; transition: border-color .15s, box-shadow .15s; }
.trm-c:hover, .trm-c:focus-visible { border-color: var(--cor, var(--bic)); box-shadow: 0 0 0 3px var(--azul-claro); }
.trm-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.trm-ic { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 13px; background: var(--cor, var(--bic)); color: #fff; font-size: 1.05rem; }
.trm-est { padding: 3px 10px; border-radius: 99px; background: var(--sup-3); color: var(--tinta-2); font-size: .78rem; font-weight: 800; }
.trm-est.e-publicado { background: var(--azul-claro); color: var(--bic); }
.trm-c strong { font-family: var(--f-tit); font-size: 1.08rem; }
.trm-c small { color: var(--tinta-2); font-size: .84rem; }
.trm-pe { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding-top: 8px; border-top: 1px solid var(--linha); color: var(--tinta-2); font-size: .82rem; font-weight: 650; }
.trm-pe i { margin-right: 6px; }
.trm-ir { color: var(--bic); font-weight: 800; }
.trm-ir i { margin: 0 0 0 6px; }

/* ---------- Painel → Treine o Cérebro de quem não é a administração geral ---------- */
.ta-meus-cab { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 16px; padding: 18px 20px; border-radius: 24px; background: var(--sup); border: 1px solid var(--linha); margin-bottom: 14px; }
.ta-meus-cal { width: 92px; display: grid; place-items: center; }
.ta-meus-t h2 { margin: 0 0 4px; font-family: var(--f-tit); }
.ta-meus-t p { margin: 0; color: var(--tinta-2); }
.ta-meus-nota { display: flex; align-items: center; gap: 10px; margin: 0 0 14px; padding: 10px 14px; border-radius: 14px; background: var(--sup-2); color: var(--tinta-2); font-size: .88rem; }
.ta-meus-nota i { color: var(--tinta-3); }
.ta-c-autor { display: inline-flex; align-items: center; gap: 6px; width: fit-content; padding: 2px 9px; border-radius: 99px; background: var(--sup-2); color: var(--tinta-2); font-size: .78rem; font-weight: 750; }
@media (max-width: 700px) { .ta-meus-cab { grid-template-columns: 1fr; text-align: center; justify-items: center; } }

/* ---------- Página da cadeira de treino (temas, lições, simulados): mais arrumada ---------- */
.ta-barra2 { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 12px; border-radius: 18px; background: var(--sup); border: 1px solid var(--linha); }
.ta-barra-g { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.ta-barra-k { color: var(--tinta-3); font-size: .82rem; font-weight: 800; margin-right: 2px; }
.ta-barra-dica2 { display: flex; align-items: center; gap: 8px; margin: 8px 4px 2px; color: var(--tinta-3); font-size: .8rem; font-weight: 600; }
.ta-trilha .ta-m { border-radius: 22px; }
.ta-trilha .ta-m-cab { padding-bottom: 10px; border-bottom: 1px dashed var(--linha); }
.ta-m-n { display: inline-flex; align-items: center; padding: 2px 10px; border-radius: 99px; background: var(--azul-claro); color: var(--bic); font-size: .76rem; font-weight: 800; }
.ta-m-cont { display: inline-flex; align-items: center; gap: 6px; margin-top: 6px; color: var(--tinta-3); font-size: .82rem; font-weight: 700; }
.ta-trilha .ta-i { border-radius: 14px; }
.ta-trilha .ta-m-pe { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 6px; }
.ta-trilha .ta-m-pe .btn { border: 1.5px dashed var(--linha-2, var(--linha)); }
@media (max-width: 760px) { .ta-barra2 { padding: 8px; } .ta-barra-fim { width: 100%; } .ta-barra-dica2 { display: none; } }

/* ---------- Editor de lições: a caixa da IA nos Blocos ---------- */
.te-livre-h { display: flex; align-items: center; gap: 8px; }
.te-livre-h i { color: var(--bic); }
.te-livre { display: grid; gap: 8px; padding: 10px; border-radius: 16px; background: linear-gradient(180deg, var(--azul-suave, #EEF2FF), var(--sup)); border: 1.5px solid var(--azul-claro); }
.te-livre textarea { min-height: 92px; resize: vertical; background: var(--sup); }
.te-livre.a-pensar textarea { opacity: .7; }
.te-livre-pe { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.te-livre-fic { cursor: pointer; }
.te-livre-mat { display: flex; align-items: center; gap: 8px; padding: 6px 6px 6px 10px; border-radius: 12px; background: var(--sup); border: 1px solid var(--linha); font-size: .82rem; font-weight: 700; color: var(--tinta-2); }
.te-livre-mat span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.te-livre-ok { display: flex; align-items: flex-start; gap: 8px; margin: 0; padding: 8px 10px; border-radius: 12px; background: var(--acerto-claro); color: var(--acerto-esc); font-size: .82rem; font-weight: 650; }
.te-livre-ok i { margin-top: 2px; color: var(--acerto); }

/* ---------- Separadores Lição / Definições: secções em cartões ---------- */
.te-def2 { display: grid; gap: 12px; }
.te-sec { display: grid; gap: 10px; padding: 14px; border-radius: 18px; background: var(--sup); border: 1px solid var(--linha); }
.te-sec > .te-preco { display: grid; gap: 8px; }
.te-sec-t { display: flex; align-items: center; gap: 8px; margin: 0; font-size: .92rem; font-weight: 800; color: var(--tinta); }
.te-sec-t i { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 9px; background: var(--azul-claro); color: var(--bic); font-size: .8rem; }
.te-sec-t small { margin-left: auto; padding: 1px 8px; border-radius: 99px; background: var(--sup-3); color: var(--tinta-2); font-size: .76rem; }
.te-def2 .te-l { gap: 6px; color: var(--tinta); font-size: .84rem; }
.te-dica { display: block; margin: 0; color: var(--tinta-3); font-size: .8rem; font-weight: 600; line-height: 1.45; }
.te-in-suf { position: relative; display: block; }
.te-in-suf .te-in { width: 100%; padding-right: 44px; }
.te-in-suf em { position: absolute; right: 12px; top: 50%; translate: 0 -50%; color: var(--tinta-3); font-style: normal; font-size: .82rem; font-weight: 700; pointer-events: none; }
.te-op { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; align-items: start; padding: 10px 12px; border-radius: 14px; background: var(--sup-2); cursor: pointer; }
.te-op input { margin-top: 3px; width: 18px; height: 18px; accent-color: var(--marca); }
.te-op b { display: block; font-size: .86rem; }
.te-op small { display: block; color: var(--tinta-3); font-size: .8rem; line-height: 1.4; margin-top: 2px; }
.te-def2 .te-est-ac .btn { flex: 1 1 auto; }
.te-vers2 { position: relative; gap: 2px; }
.te-vers2 li { position: relative; padding: 8px 10px 8px 26px; background: none; border-radius: 12px; }
.te-vers2 li:hover { background: var(--sup-2); }
.te-v-p { position: absolute; left: 9px; top: 50%; translate: 0 -50%; width: 9px; height: 9px; border-radius: 50%; background: var(--bic); box-shadow: 0 0 0 3px var(--azul-claro); }
.te-vers2 li + li::before { content: ""; position: absolute; left: 13px; top: -10px; height: 18px; border-left: 2px solid var(--linha); }
.te-v-t { display: grid; min-width: 0; }
.te-v-t small { color: var(--tinta-3); font-size: .78rem; }
.te-vers-mais summary { cursor: pointer; color: var(--bic); font-size: .82rem; font-weight: 750; padding: 4px 10px; }

/* ---------- IA do simulado: de onde vêm as questões ---------- */
.te-ia2 { display: grid; gap: 10px; }
.te-fontes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.te-fonte { display: grid; gap: 2px; justify-items: start; text-align: left; padding: 10px; border-radius: 14px; border: 1.5px solid var(--linha); background: var(--sup); color: var(--tinta); cursor: pointer; font: inherit; }
.te-fonte i { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 10px; background: var(--sup-2); color: var(--tinta-2); margin-bottom: 4px; }
.te-fonte b { font-size: .84rem; }
.te-fonte small { color: var(--tinta-3); font-size: .76rem; line-height: 1.35; }
.te-fonte[aria-selected="true"] { border-color: var(--bic); background: var(--azul-suave, #EEF2FF); box-shadow: 0 0 0 3px var(--azul-claro); }
.te-fonte[aria-selected="true"] i { background: var(--bic); color: #fff; }
.te-ia-desc { margin: 0; padding: 10px 12px; border-radius: 12px; background: var(--sup-2); color: var(--tinta-2); font-size: .8rem; line-height: 1.5; }
.te-drop { display: grid; justify-items: center; gap: 4px; padding: 18px 12px; border-radius: 16px; border: 2px dashed var(--linha-2, var(--linha)); background: var(--sup-2); color: var(--tinta-2); text-align: center; cursor: pointer; }
.te-drop i { font-size: 1.5rem; color: var(--bic); }
.te-drop b { color: var(--tinta); font-size: .86rem; word-break: break-word; }
.te-drop small { color: var(--tinta-3); font-size: .78rem; }
.te-drop.com { border-style: solid; border-color: var(--bic); background: var(--azul-suave, #EEF2FF); }
.te-seg-niv button { flex: 1 1 40%; }
.te-ia2 .te-ia-nota { display: flex; gap: 8px; align-items: flex-start; }

/* ---------- Ciência no quadro: importar uma ferramenta feita fora do site ---------- */
.cie3-passos { display: grid; gap: 12px; margin: 14px 0 6px; padding: 0; list-style: none; }
.cie3-passos > li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; align-items: start; padding: 14px; border-radius: 18px; background: var(--sup-2); }
.cie3-passos strong { display: block; margin-bottom: 8px; }
.cie3-passos p { margin: 0; color: var(--tinta-2); font-size: .88rem; }
.cie3-pn { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--bic); color: #fff; font-weight: 800; font-size: .86rem; }
.cie3-passos textarea { width: 100%; }
.cie3-passos #c3-txt { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .8rem; }
.cie3-imp-ac { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.cie3-imp-ac label { cursor: pointer; }
.cie3-imp-erro { margin: 8px 0 0; }

/* ---------- Definições → Email: envios do dia e erro claro ---------- */
.smtp-hoje { display: flex; align-items: flex-start; gap: 10px; margin: 10px 0 0; padding: 10px 12px; border-radius: 14px; background: var(--sup-2); color: var(--tinta-2); font-size: .86rem; }
.smtp-hoje i { margin-top: 3px; color: var(--bic); }
.smtp-erro { display: flex; align-items: flex-start; gap: 10px; margin: 10px 0 0; padding: 12px 14px; border-radius: 14px; background: #FDECEE; color: #7A1424; font-size: .86rem; line-height: 1.45; }
.smtp-erro > i { margin-top: 3px; color: var(--vermelho); }
.smtp-erro strong { display: block; margin-bottom: 2px; }
.smtp-erro details { margin-top: 6px; }
.smtp-erro summary { cursor: pointer; font-weight: 700; font-size: .8rem; }
.smtp-erro code { display: block; margin-top: 4px; white-space: pre-wrap; word-break: break-word; font-size: .78rem; opacity: .85; }
:root[data-theme="dark"] .smtp-erro { background: #2A1016; color: #FBC7CF; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .smtp-erro { background: #2A1016; color: #FBC7CF; } }

/* ---------- Tablet na vertical (700 px a 1024 px): o que ficava apertado ---------- */
@media (min-width: 700px) and (max-width: 1024px) {
  .ta-hero { flex-wrap: wrap; }
  .ta-hero .ta-modos-nota { flex-basis: 100%; grid-column: 1 / -1; }
  .ta-t-cab2 .ta-t-top { flex-wrap: wrap; }
  .ta-t-cab2 .ta-t-bts { width: 100%; justify-content: flex-start; }
  .ta-grade, .trm-grade { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cf-card { grid-template-columns: minmax(200px, 42%) minmax(0, 1fr); }
  .te-fontes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tr-cria { gap: 8px; }
  .abas-adm, .adm-sub { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
}
.te-ia2 .te-drop { display: grid; grid-template-columns: minmax(0, 1fr); justify-items: center; align-items: center; }
.te-ia2 .te-drop > i, .te-ia2 .te-drop > b, .te-ia2 .te-drop > small { grid-column: 1; }
.trmeus-cab, .trmeus-cab h1, .trmeus-cab p { background: none; box-shadow: none; border: 0; padding: 0; position: static; width: auto; }
.trmeus-cab { display: block; margin: 4px 0 18px; }
.trmeus-cab h1 { color: var(--tinta); }
.trmeus-cab p { color: var(--tinta-2); }

/* ---------- 48.ª parte (2): painel com palavra-passe, ecrãs pequenos, pontos, poderes, vazios, Ciência ---------- */
.ps-pag { display: grid; place-items: center; min-height: calc(100vh - 220px); padding: 24px 0; }
.painel-senha { width: min(440px, 100%); display: grid; gap: 12px; justify-items: center; text-align: center; padding: clamp(22px, 4vw, 34px); border-radius: 26px; background: var(--sup); border: 1px solid var(--linha); box-shadow: 0 30px 60px -40px rgba(16, 22, 51, .45); }
.painel-senha.em-modal { border: 0; box-shadow: none; padding: 6px 4px; width: 100%; }
.painel-senha h2 { margin: 0; font-family: var(--f-tit); }
.painel-senha p { margin: 0; color: var(--tinta-2); line-height: 1.5; }
.painel-senha .campo { width: 100%; text-align: left; }
.painel-senha .linha-btn { width: 100%; justify-content: center; }
.ps-ic { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 22px; background: linear-gradient(160deg, #3355F0, var(--marca) 55%, #1733C2); color: #fff; font-size: 1.5rem; box-shadow: 0 14px 28px -14px rgba(30, 64, 230, .8); }
.hp-campo { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; opacity: 0; pointer-events: none; }
.cod-aberto { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-radius: 12px; background: var(--azul-claro); color: var(--bic); font-weight: 700; }
/* seta de subir: no canto direito, por cima do botão dos filtros; nunca em cima do criar conta */
body.modo-auth .subir { display: none !important; }
@media (max-width: 760px) {
  body.rota-explorar:not(.visitante):not(.modo-auth) .subir { right: 14px; bottom: calc(146px + env(safe-area-inset-bottom, 0px)); }
  body.rota-explorar.visitante .subir { right: 14px; bottom: calc(84px + env(safe-area-inset-bottom, 0px)); }
}
/* mensagens no telemóvel: o cabeçalho fica fixo e só as mensagens fazem scroll */
@media (max-width: 900px) {
  body:has(.pag-chat) { overflow: hidden; }
  .pag-chat { position: fixed; left: 0; right: 0; top: var(--topo-h, 60px); bottom: calc(70px + env(safe-area-inset-bottom, 0px)); padding: 0 !important; margin: 0 !important; display: flex; z-index: 5; max-width: none !important; }
  .pag-chat .chat { flex: 1; display: flex; flex-direction: column; min-height: 0; height: auto !important; max-height: none !important; border-radius: 0; margin: 0; }
  .pag-chat .chat-cab { flex: none; position: static; }
  .pag-chat .chat-fio { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
  .pag-chat .chat-compor { flex: none; }
}
/* filtros no telemóvel: a lista completa (escolas, cursos…) abre por cima da folha dos filtros */
.fac-ecra { z-index: 290; }
/* ranking: o nome completo da universidade */
.rk-uni-nome { display: block; margin-top: 1px; color: var(--tinta-3); font-size: .78rem; font-weight: 600; line-height: 1.3; }
.rk-deg .rk-uni-nome { text-align: center; max-width: 22ch; margin-inline: auto; }
/* vazios com ícone grande (guardados, próximos eventos) */
.off-vazio-t { margin: 0; color: var(--tinta-2); max-width: 46ch; line-height: 1.5; }
.off-vazio .btn { margin-top: 2px; }
.av-vazio2 > span:not(.off-vazio-ic) { color: var(--tinta-2); max-width: 46ch; line-height: 1.5; }
/* poderes: tabela larga com scroll, a primeira coluna presa e as categorias por cima */
.pd .caixa, .pd .adm-sec { overflow: visible; }
.pd-w { overflow-x: auto; max-width: 100%; border-radius: 16px; }
.pd-t { min-width: 1240px; border-collapse: separate; border-spacing: 0; }
.pd-t thead th { vertical-align: bottom; }
.pd-t th.pd-canto, .pd-t tbody th { position: sticky; left: 0; z-index: 2; background: var(--sup); min-width: 250px; max-width: 300px; text-align: left; box-shadow: 1px 0 0 var(--linha); }
.pd-cats th { padding-bottom: 4px; }
.pd-cat { text-align: center; padding: 7px 8px !important; border-radius: 12px 12px 0 0; background: var(--azul-claro); color: var(--bic); font-size: .8rem; font-weight: 800; }
.pd-cat-p { background: var(--sup-3); color: var(--tinta-2); }
.pd-t th.pd-h-e, .pd-t th.pd-h-p { min-width: 92px; text-align: center; }
.pd-t th.pd-h-p { background: var(--sup-2); }
.pd-h-p .pd-g i { color: var(--bic); margin-right: 4px; }
.pd-t .pd-g { display: block; font-size: .8rem; line-height: 1.25; }
.pd-t th small { display: block; color: var(--tinta-3); font-weight: 600; font-size: .74rem; }
/* economia dos pontos: um quadro por baixo do outro */
.adm-pilha { display: grid; gap: 16px; margin-top: 16px; }
.adm-sec header small, .sub-adm small { color: var(--tinta-3); font-size: .8rem; font-weight: 600; margin-left: 6px; }
/* carteira: o saldo em grande */
.wl-val { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; }
.wl-val b { font-family: var(--f-tit); font-size: clamp(3.1rem, 10vw, 5.6rem); line-height: .95; letter-spacing: -.035em; text-shadow: 0 10px 30px rgba(10, 20, 80, .25); }
.wl-val span { font-size: clamp(.95rem, 2.2vw, 1.15rem); font-weight: 700; opacity: .9; }
.wl-nums b { font-size: clamp(1.4rem, 3.4vw, 1.9rem); }
.wl-a-breve small { display: block; font-size: .7rem; opacity: .85; margin-top: 2px; }
/* como funcionam os pontos */
.cp .cp-passo { border-radius: 20px; }
.cp-bonus .info-c h2 { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px; }
.cp-bonus .info-c h2 b { color: var(--bic); font-size: .95em; }
.cp-bonus .info-c > i { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 14px; background: var(--azul-claro); color: var(--bic); }
/* Ciência: campos de números com barra deslizante */
.cie2-num-l { display: flex; align-items: center; gap: 8px; width: 100%; }
.cie2-num-l input[type="range"] { flex: 1; min-width: 0; accent-color: var(--bic); height: 26px; cursor: pointer; }
.cie2-num-l input[data-c2] { width: 76px; flex: none; text-align: right; font-variant-numeric: tabular-nums; }
.cie2-num > span:first-child { font-weight: 700; }

/* ==========================================================================
   49.ª parte (24 de outubro, à tarde): painel mais arrumado, vazios iguais, overlays, filtros, pessoas
   ========================================================================== */
/* com um overlay aberto, só ele faz scroll */
html.ov-aberto, html.ov-aberto body { overflow: hidden !important; }
/* títulos das páginas tão fortes como «Boa tarde, …» */
.cab-pag h1 { font-size: clamp(1.6rem, 2.8vw, 2.2rem); font-weight: 800; font-stretch: 90%; letter-spacing: -.035em; }
/* cabeçalhos dos quadros do painel: o subtítulo não fica torto quando passa para baixo */
.adm-sec > header { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 2px 12px; margin-bottom: 14px; }
.adm-sec > header h3 { margin: 0; font-size: 1.04rem; font-weight: 800; letter-spacing: -.01em; }
.adm-sec header small, .sub-adm small { margin-left: 0; color: var(--tinta-3); font-size: .82rem; font-weight: 600; }
/* o painel respira: mais espaço entre quadros e dentro deles */
.adm-vg { display: grid; gap: 20px; }
.adm-vg > .adm-g2, .adm-vg > .adm-pilha, .adm-vg > .adm-2 { margin: 0; }
.adm-vg .caixa.adm-sec, .rel-est.caixa, .adm .adm-pilha > .caixa { padding: clamp(18px, 2.2vw, 26px); border-radius: 24px; }
.adm-pilha { display: grid; gap: 20px; margin-top: 0; }
.adm-2-proc { grid-template-columns: minmax(0, 1fr) !important; gap: 20px !important; }
.adm-vg .kpis { gap: 14px; }
.adm-vg .kpis > * { border-radius: 22px; transition: transform .15s, box-shadow .15s; }
.adm-vg .kpis > *:hover { transform: translateY(-2px); box-shadow: 0 16px 34px -22px rgba(16, 22, 51, .35); }
/* barras com nomes inteiros (sem cortar) e mais espaço entre linhas */
.adm .gr-bh-r, .adm .bh-r, .adm .barra-rot, .adm .gr-bh small, .adm .bh small { white-space: normal !important; overflow: visible !important; text-overflow: clip !important; }
.rel-g2 .rel-bloco { padding: 4px 0; }
.rel-g2 .rel-bloco + .rel-bloco { border-top: 1px solid var(--linha); padding-top: 18px; }
/* tipos de material: o círculo grande ao centro e a legenda por baixo */
.adm-pizza { display: flex; flex-direction: column; }
.adm-pizza .pizza { flex: 1; display: flex; flex-direction: column !important; align-items: center; justify-content: center; gap: 18px; text-align: left; }
.adm-pizza .pizza svg { width: min(250px, 80%) !important; height: auto !important; max-width: 250px; filter: drop-shadow(0 18px 28px rgba(30, 64, 230, .18)); }
.adm-pizza .pizza ul { width: 100%; max-width: 380px; margin: 0; padding: 0; display: grid; gap: 8px; }
.adm-pizza .pizza li { display: grid; grid-template-columns: auto 1fr auto auto; align-items: center; gap: 10px; padding: 8px 12px; border-radius: 12px; background: var(--sup-2); }
.adm-pizza .pizza li i { width: 12px; height: 12px; border-radius: 4px; }
.adm-pizza .pizza li small { color: var(--tinta-3); min-width: 28px; text-align: right; }
/* vazios: todos com o ícone grande (como os materiais baixados) */
.vazio, .vazio-bonito { border: 0 !important; background: transparent !important; }
.off-vazio-ic .vz-i { position: relative; z-index: 1; display: grid; place-items: center; width: 76px; height: 76px; border-radius: 26px; background: linear-gradient(160deg, #3355F0, var(--marca) 55%, #1733C2); color: #fff; font-size: 2.1rem; box-shadow: 0 16px 30px -14px rgba(30, 64, 230, .75), inset 0 1px 0 rgba(255, 255, 255, .28); }
.off-vazio-ic .vz-i i, .off-vazio-ic .vz-i svg { position: static; display: block; width: auto; height: auto; padding: 0; margin: 0; border-radius: 0; background: none; box-shadow: none; color: #fff; font-size: 2rem; }
.off-vazio-ic .vz-i svg { width: 36px; height: 36px; }
.vz-novo { padding-block: clamp(30px, 6vw, 56px); }
.av-vazio { border: 0 !important; }
.av-vazio > svg:first-child, .av-vazio > i:first-child { box-sizing: content-box; width: 36px; height: 36px; padding: 20px; border-radius: 26px; background: linear-gradient(160deg, #3355F0, var(--marca) 55%, #1733C2); color: #fff; font-size: 2rem; box-shadow: 0 16px 30px -14px rgba(30, 64, 230, .75); margin-bottom: 8px; }
/* filtros: tirar um com um toque e limpar tudo */
.xchip-x { display: inline-grid; place-items: center; width: 30px; height: 30px; margin-left: -10px; border-radius: 50%; border: 0; background: var(--bic); color: #fff; cursor: pointer; flex: none; box-shadow: 0 0 0 3px var(--mesa); position: relative; z-index: 1; }
.xchip-x svg { width: 12px; height: 12px; }
.xchip-limpar { color: var(--vermelho) !important; border-color: rgba(217, 47, 67, .35) !important; background: rgba(217, 47, 67, .06) !important; }
.xchip-limpar i { font-size: .8rem; }
/* pessoas: cartões mais claros */
.pes-g { gap: 14px; }
.pes-c { gap: 14px; padding: 16px; border-radius: 22px; transition: transform .15s, box-shadow .15s, border-color .15s; }
.pes-c:hover { transform: translateY(-2px); box-shadow: 0 18px 34px -24px rgba(16, 22, 51, .4); border-color: var(--azul-claro); }
.pes-av .av, .pes-av img, .pes-av svg { box-shadow: 0 0 0 3px var(--sup), 0 0 0 5px var(--azul-claro); border-radius: 50%; }
.pes-nome { font-weight: 800; font-size: 1.02rem; }
.pes-onde { color: var(--tinta-2); font-size: .84rem; }
.pes-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.pes-chip { display: inline-flex; align-items: center; gap: 5px; padding: 3px 9px; border-radius: 99px; background: var(--sup-2); color: var(--tinta-2); font-size: .78rem; font-weight: 750; line-height: 1.3; }
.pes-chip i { font-size: .74rem; color: var(--tinta-3); }
.pes-chip .pt-ins, .pes-chip svg { width: 14px; height: 14px; }
.pes-pt { background: var(--azul-claro); color: var(--bic); }
.pes-eq, .pes-ed { background: var(--bic); color: #fff; }
/* vídeo «Como funciona» no início: mais bonito */
.cf-card { background: linear-gradient(135deg, #1E40E6 0%, #2A4BEB 55%, #3D5CF0 100%); border: 0; color: #fff; padding: clamp(12px, 1.8vw, 18px); box-shadow: 0 26px 50px -30px rgba(30, 64, 230, .75); overflow: hidden; }
.cf-card::after { content: ""; position: absolute; right: -60px; top: -80px; width: 260px; height: 260px; border-radius: 50%; background: rgba(255, 255, 255, .08); pointer-events: none; }
.cf-th { box-shadow: 0 18px 36px -18px rgba(5, 14, 60, .7); outline: 3px solid rgba(255, 255, 255, .22); }
.cf-play { animation: cfPulso 2.2s ease-out infinite; }
@keyframes cfPulso { 0% { box-shadow: 0 0 0 0 rgba(255, 255, 255, .55); } 70% { box-shadow: 0 0 0 18px rgba(255, 255, 255, 0); } 100% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0); } }
.cf-k { color: #fff; background: rgba(255, 255, 255, .16); padding: 3px 10px; border-radius: 99px; }
.cf-t h2 { color: #fff; font-size: clamp(1.35rem, 2.6vw, 1.75rem); font-weight: 800; letter-spacing: -.02em; }
.cf-t p { color: rgba(255, 255, 255, .86); }
.cf-t .btn-pri { background: #fff; color: var(--bic); box-shadow: 0 10px 22px -12px rgba(5, 14, 60, .6); }
.cf-x { background: rgba(255, 255, 255, .16); color: #fff; z-index: 2; }
.cf-x:hover { background: rgba(255, 255, 255, .28); }
@media (prefers-reduced-motion: reduce) { .cf-play { animation: none; } }
/* Ciência na sala: lista e campos mais vivos */
.cie2-campo { background: var(--sup-2); border-radius: 14px; padding: 8px 10px; }
.cie2-campo > span:first-child { font-size: .8rem; font-weight: 750; color: var(--tinta-2); }
.cie2-prev { border-radius: 16px; box-shadow: 0 14px 30px -22px rgba(16, 22, 51, .45); }
.cie2-check { padding: 8px 10px; border-radius: 14px; background: var(--sup-2); font-weight: 700; }

/* ==========================================================================
   51.ª parte: Explorar com início (pergunta, em alta, filas), app «em qualquer lugar», início mais leve
   ========================================================================== */
.xi-pag { display: grid; gap: clamp(26px, 4vw, 40px); }
.xi-hero { position: relative; overflow: hidden; display: grid; gap: 18px; padding: clamp(26px, 5vw, 56px) clamp(18px, 4vw, 48px) clamp(22px, 4vw, 40px); border-radius: 30px; background: linear-gradient(135deg, #12227A 0%, #1E40E6 55%, #3B5BF5 100%); color: #fff; box-shadow: 0 30px 60px -38px rgba(18, 34, 122, .8); }
.xi-hero::before { content: ""; position: absolute; inset: 0; background: radial-gradient(600px 300px at 85% 10%, rgba(255, 255, 255, .14), transparent 70%); pointer-events: none; }
.xi-capas { position: absolute; right: -40px; top: -30px; width: min(56%, 620px); height: calc(100% + 60px); display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; transform: rotate(-8deg); opacity: .55; pointer-events: none; mask-image: linear-gradient(90deg, transparent 0%, #000 40%); -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 40%); }
.xi-capa { display: block; border-radius: 14px; overflow: hidden; background: #fff; box-shadow: 0 18px 30px -14px rgba(0, 0, 0, .5); aspect-ratio: 3 / 4; }
.xi-capa img, .xi-capa svg, .xi-capa > * { width: 100%; height: 100%; object-fit: cover; display: block; }
.xi-capa.xc1, .xi-capa.xc4 { transform: translateY(40px); }
.xi-hero-t { position: relative; max-width: 620px; display: grid; gap: 8px; }
.xi-k { display: inline-flex; align-items: center; gap: 8px; width: fit-content; padding: 4px 12px; border-radius: 99px; background: rgba(255, 255, 255, .16); font-size: .82rem; font-weight: 800; }
.xi-hero h1 { margin: 0; color: #fff; font-family: var(--f-tit); font-size: clamp(2.1rem, 5.4vw, 3.6rem); font-weight: 800; font-stretch: 90%; letter-spacing: -.04em; line-height: 1.02; }
.xi-hero-t p { margin: 0; color: rgba(255, 255, 255, .86); font-size: clamp(1rem, 1.6vw, 1.12rem); line-height: 1.5; }
.xi-busca { position: relative; z-index: 3; max-width: 720px; display: flex; align-items: center; gap: 8px; padding: 8px 8px 8px 18px; border-radius: 20px; background: #fff; box-shadow: 0 22px 40px -22px rgba(5, 14, 60, .65); }
.xi-busca .bi-campo { flex: 1; min-width: 0; }
.xi-busca input { width: 100%; border: 0; outline: 0; background: transparent; font-size: 1.06rem; font-weight: 600; color: var(--tinta); padding: 10px 0; }
.xi-busca .bi-ir { border-radius: 14px; padding-inline: 18px; }
.xi-busca .sug { top: calc(100% + 8px); }
.xi-chips { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.xi-chips-k { display: inline-flex; align-items: center; gap: 6px; font-weight: 800; font-size: .86rem; color: rgba(255, 255, 255, .9); }
.xi-chip { border: 1px solid rgba(255, 255, 255, .35); background: rgba(255, 255, 255, .1); color: #fff; padding: 6px 12px; border-radius: 99px; font: inherit; font-size: .84rem; font-weight: 700; cursor: pointer; transition: background .15s; }
.xi-chip:hover { background: rgba(255, 255, 255, .22); }
.xi-fila { display: grid; gap: 14px; min-width: 0; }
.xi-fila-cab { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; }
.xi-fila-cab h2 { margin: 0; font-family: var(--f-tit); font-size: clamp(1.25rem, 2.4vw, 1.6rem); font-weight: 800; letter-spacing: -.02em; }
.xi-fila-cab p { margin: 2px 0 0; color: var(--tinta-2); font-size: .9rem; }
.xi-ver { flex: none; display: inline-flex; align-items: center; gap: 6px; border: 0; background: none; color: var(--tinta); font: inherit; font-weight: 800; font-size: .92rem; cursor: pointer; padding: 6px 4px; }
.xi-ver i { font-size: .76rem; }
.xi-ver:hover { color: var(--bic); }
.xi-trilho-w { position: relative; min-width: 0; }
.xi-trilho { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(200px, 230px); gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 4px 2px 12px; scrollbar-width: none; overscroll-behavior-x: contain; }
.xi-trilho::-webkit-scrollbar { display: none; }
.xi-c { scroll-snap-align: start; display: grid; grid-template-rows: auto auto auto 1fr; gap: 6px; padding: 12px; border-radius: 20px; background: var(--sup); border: 1px solid var(--linha); transition: transform .15s, box-shadow .15s, border-color .15s; }
.xi-c:hover { transform: translateY(-3px); box-shadow: 0 18px 34px -24px rgba(16, 22, 51, .45); border-color: var(--azul-claro); }
.xi-th { position: relative; display: block; aspect-ratio: 4 / 5; border-radius: 14px; overflow: hidden; background: var(--sup-2); }
.xi-th img, .xi-th > svg, .xi-th > div { width: 100%; height: 100%; object-fit: cover; display: block; }
.xi-tp { position: absolute; left: 8px; top: 8px; max-width: calc(100% - 16px); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: 3px 9px; border-radius: 8px; background: rgba(16, 22, 51, .85); color: #fff; font-size: .74rem; font-weight: 800; }
.xi-pr { position: absolute; right: 8px; bottom: 8px; display: inline-flex; align-items: center; gap: 4px; padding: 3px 9px; border-radius: 99px; background: #fff; color: var(--bic); font-size: .78rem; font-weight: 800; box-shadow: 0 6px 14px -8px rgba(0, 0, 0, .4); }
.xi-pr svg { width: 12px; height: 12px; }
.xi-pr.ab { background: var(--bic); color: #fff; }
.xi-c h3 { margin: 4px 0 0; font-size: .98rem; font-weight: 800; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.xi-c h3 a { color: var(--tinta); text-decoration: none; }
.xi-onde { margin: 0; color: var(--tinta-2); font-size: .82rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.xi-pe { align-self: end; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding-top: 6px; color: var(--tinta-3); font-size: .8rem; font-weight: 700; }
.xi-pe span { display: inline-flex; align-items: center; gap: 5px; }
.xi-pe svg { width: 14px; height: 14px; }
.xi-g { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; border: 1.5px solid var(--linha-2, var(--linha)); background: var(--sup); color: var(--tinta); cursor: pointer; }
.xi-g svg { width: 16px; height: 16px; }
.xi-g[aria-pressed="true"] { background: var(--bic); border-color: var(--bic); color: #fff; }
.xi-seta { position: absolute; top: 38%; z-index: 2; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--linha); background: var(--sup); color: var(--tinta); box-shadow: 0 10px 24px -12px rgba(16, 22, 51, .5); cursor: pointer; }
.xi-esq { left: -14px; } .xi-dir { right: -14px; }
@media (hover: none), (max-width: 760px) { .xi-seta { display: none; } }
.xi-tudo { display: flex; justify-content: center; }
.xi-voltar { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 6px; font-weight: 800; }
.xi-voltar svg { width: 14px; height: 14px; }
@media (max-width: 760px) { .xi-hero { border-radius: 24px; } .xi-capas { width: 90%; right: -30%; opacity: .25; } .xi-busca { padding-left: 14px; } .xi-busca .bi-ir span { display: none; } .xi-trilho { grid-auto-columns: minmax(168px, 62vw); gap: 12px; } }
/* app do Veteraano «em qualquer lugar» */
.app-sec { position: relative; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); align-items: center; gap: clamp(20px, 4vw, 48px); padding: clamp(26px, 5vw, 56px); border-radius: 30px; background: var(--sup-2); border: 1px solid var(--linha); margin: clamp(10px, 2vw, 20px) auto; max-width: 1200px; }
.app-sec-t { display: grid; gap: 14px; }
.app-sec h2 { margin: 0; font-family: var(--f-tit); font-size: clamp(1.9rem, 4.4vw, 3rem); font-weight: 800; font-stretch: 90%; letter-spacing: -.04em; line-height: 1.04; color: var(--tinta); }
.app-sec-t p { margin: 0; color: var(--tinta-2); font-size: 1.02rem; line-height: 1.55; max-width: 48ch; }
.app-sec-bts { display: flex; flex-wrap: wrap; gap: 10px; }
.app-loja { display: inline-flex; align-items: center; gap: 10px; padding: 9px 16px 9px 12px; border-radius: 12px; border: 0; background: #0F172A; color: #fff; font: inherit; cursor: pointer; transition: transform .15s; }
.app-loja:hover { transform: translateY(-2px); }
.app-loja i { font-size: 1.3rem; }
.app-loja span { display: grid; text-align: left; line-height: 1.1; font-weight: 800; font-size: 1rem; }
.app-loja small { font-size: .7rem; font-weight: 600; opacity: .85; }
.app-sec-l { display: flex; flex-wrap: wrap; gap: 8px 16px; margin: 4px 0 0; padding: 0; list-style: none; color: var(--tinta-2); font-size: .88rem; font-weight: 700; }
.app-sec-l i { color: var(--bic); margin-right: 6px; }
.app-sec-ic { position: relative; display: grid; place-items: center; min-height: 240px; }
.app-sec-icone { position: relative; z-index: 1; display: grid; place-items: center; width: clamp(150px, 18vw, 200px); aspect-ratio: 1; border-radius: 30%; background: linear-gradient(160deg, #3355F0, var(--marca) 55%, #1733C2); box-shadow: 0 30px 50px -24px rgba(30, 64, 230, .8), inset 0 2px 0 rgba(255, 255, 255, .25); }
.app-sec-icone svg { width: 62%; height: 62%; }
.app-sec-onda { position: absolute; width: clamp(220px, 26vw, 290px); aspect-ratio: 1; border-radius: 50%; border: 2px solid rgba(30, 64, 230, .14); animation: offOnda 3.4s ease-out infinite; }
.app-sec-onda.o2 { animation-delay: 1.4s; }
.app-sec-x { position: absolute; top: 14px; right: 14px; }
@media (max-width: 760px) { .app-sec { grid-template-columns: 1fr; text-align: left; } .app-sec-ic { min-height: 200px; order: -1; } }
@media (prefers-reduced-motion: reduce) { .app-sec-onda { animation: none; opacity: .4; } }
/* início: o vídeo e o resumo mais leves, direitos e fáceis de ler */
.cf-card { background: var(--sup); color: var(--tinta); border: 1px solid var(--linha); box-shadow: none; }
.cf-card::after { display: none; }
.cf-th { outline: 0; box-shadow: 0 14px 28px -20px rgba(16, 22, 51, .45); }
.cf-k { color: var(--bic); background: var(--azul-claro); }
.cf-t h2 { color: var(--tinta); font-size: clamp(1.25rem, 2.2vw, 1.5rem); }
.cf-t p { color: var(--tinta-2); }
.cf-t .btn-pri { background: var(--bic); color: #fff; box-shadow: none; }
.cf-x { background: var(--sup-2); color: var(--tinta-2); }
.cf-x:hover { background: var(--sup-3); }
.resumo { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; align-items: stretch; }
.resumo > * { margin: 0 !important; min-width: 0; }
.resumo .saldo-mini, .resumo .patente-mini, .resumo .convite-mini { display: flex; flex-direction: column; gap: 8px; padding: 18px; border-radius: 22px; background: var(--sup); color: var(--tinta); border: 1px solid var(--linha); box-shadow: none; }
.resumo .saldo-mini .rot { color: var(--tinta-2); font-weight: 800; font-size: .84rem; }
.resumo .saldo-mini .val { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; color: var(--tinta); font-family: var(--f-tit); font-size: clamp(2rem, 3.6vw, 2.6rem); font-weight: 800; line-height: 1; }
.resumo .saldo-mini .val svg { width: 30px; height: 30px; }
.resumo .saldo-mini .val small { font-family: var(--f); font-size: .8rem; color: var(--tinta-2); font-weight: 700; }
.resumo .sm-teto { color: var(--tinta-3); }
.resumo .linha-btn { margin-top: auto; }
.resumo .saldo-mini .btn-branco { background: var(--bic); color: #fff; border-color: var(--bic); }
.resumo .convite-mini strong { font-size: 1rem; font-weight: 800; }
.resumo .convite-mini p { margin: 0; color: var(--tinta-2); font-size: .88rem; line-height: 1.45; }
.resumo .convite-mini .btn { margin-top: auto; align-self: flex-start; }
.resumo .convite-mini::before { content: "\f234"; font-family: "Font Awesome 6 Free"; font-weight: 900; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 13px; background: var(--azul-claro); color: var(--bic); font-size: 1rem; }
@media (max-width: 980px) { .resumo { grid-template-columns: 1fr 1fr; } .resumo .convite-mini { grid-column: 1 / -1; } }
@media (max-width: 600px) { .resumo { grid-template-columns: 1fr; } }
@media (max-width: 760px) {
  .xi-chips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-right: -18px; padding-right: 18px; }
  .xi-chips::-webkit-scrollbar { display: none; }
  .xi-chip, .xi-chips-k { flex: none; }
  .xi-pe-t { display: none; }
}

/* ---------- 52.ª parte: Explorar mais limpo, cartões com a página inteira, página inicial, poderes, material geral ---------- */
/* o topo do Explorar não corta a lista de sugestões: as capas ficam num fundo à parte */
.xi-hero { overflow: visible; gap: 16px; padding: clamp(28px, 5vw, 54px) clamp(18px, 4vw, 48px); background: linear-gradient(135deg, #12227A 0%, #1E40E6 58%, #3355F0 100%); }
.xi-hero::before { display: none; }
.xi-hero-bg { position: absolute; inset: 0; border-radius: inherit; overflow: hidden; pointer-events: none; }
.xi-hero-bg::before { content: ""; position: absolute; inset: 0; background: radial-gradient(520px 260px at 80% 0%, rgba(255, 255, 255, .16), transparent 70%); }
.xi-capas { right: -20px; top: -40px; width: min(48%, 560px); grid-template-columns: repeat(2, 1fr); gap: 18px; transform: rotate(-7deg); opacity: .9; mask-image: linear-gradient(90deg, transparent 0%, #000 30%); -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 30%); }
.xi-capa { aspect-ratio: 210 / 297; border: 4px solid rgba(255, 255, 255, .9); border-radius: 12px; }
.xi-capa img { object-fit: contain !important; background: #fff; }
.xi-capa.xc1, .xi-capa.xc3, .xi-capa.xc5 { transform: translateY(54px); }
.xi-hero h1 { font-size: clamp(2rem, 4.6vw, 3.25rem); }
.xi-hero-t p { font-size: clamp(1rem, 1.5vw, 1.1rem); }
.xi-busca { z-index: 30; max-width: 680px; padding: 7px 7px 7px 16px; gap: 10px; }
.xi-lupa { color: var(--tinta-3); font-size: 1.05rem; flex: none; }
.xi-busca .sug { z-index: 60; left: 0; right: 0; }
.xi-busca .bi-ir { padding-inline: 22px; }
.xi-nums { position: relative; display: flex; flex-wrap: wrap; gap: 8px; }
.xi-nums span { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: 99px; background: rgba(255, 255, 255, .14); color: rgba(255, 255, 255, .92); font-size: .84rem; font-weight: 700; }
.xi-nums b { color: #fff; font-weight: 800; }
.xi-chips { display: none !important; }
@media (max-width: 760px) { .xi-capas { width: 70%; right: -26%; opacity: .35; } .xi-busca .bi-ir span { display: inline; } .xi-busca .bi-ir { padding-inline: 14px; } .xi-lupa { display: none; } }
/* cartões das filas: a página inteira à vista (sem cortes) e o título completo */
.xi-th { aspect-ratio: 210 / 297; background: #fff; border: 1px solid var(--linha); }
.xi-th img, .xi-th > svg, .xi-th > div { object-fit: contain !important; }
.xi-c h3 { -webkit-line-clamp: 3; }
.xi-onde { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
/* página inicial: materiais em cartões e as secções de publicar e treinar */
.land-mats { display: grid; gap: 18px; margin-bottom: clamp(26px, 4vw, 44px); }
.land-cab { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 14px; }
.land-cab .sec-tit { margin: 0 0 6px; }
.land-cab .sec-sub { margin: 0; max-width: 60ch; }
.land-duo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-bottom: clamp(26px, 4vw, 44px); }
.land-card { display: flex; flex-direction: column; gap: 12px; padding: clamp(20px, 3vw, 30px); border-radius: 26px; background: var(--sup); border: 1px solid var(--linha); }
.land-card h2 { margin: 0; font-family: var(--f-tit); font-size: clamp(1.3rem, 2.4vw, 1.7rem); font-weight: 800; letter-spacing: -.02em; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.land-card p { margin: 0; color: var(--tinta-2); line-height: 1.55; }
.land-card .btn { align-self: flex-start; margin-top: auto; }
.land-ic { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 17px; background: linear-gradient(160deg, #3355F0, var(--marca) 55%, #1733C2); color: #fff; font-size: 1.3rem; box-shadow: 0 14px 26px -16px rgba(30, 64, 230, .8); }
.land-treino .land-ic { background: linear-gradient(160deg, #7C3AED, #6D28D9); box-shadow: 0 14px 26px -16px rgba(124, 58, 237, .8); }
.land-passos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
.land-passos li { display: grid; justify-items: start; gap: 4px; padding: 10px 12px; border-radius: 14px; background: var(--sup-2); font-size: .86rem; font-weight: 700; color: var(--tinta-2); }
.land-passos b { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--azul-claro); color: var(--bic); font-size: .82rem; }
.land-l { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; color: var(--tinta-2); font-weight: 700; font-size: .9rem; }
.land-l i { color: #7C3AED; width: 18px; }
.land-breve { display: inline-flex; align-items: center; gap: 5px; padding: 3px 10px; border-radius: 99px; background: var(--sup-3); color: var(--tinta-2); font-family: var(--f); font-size: .78rem; font-weight: 800; letter-spacing: 0; }
@media (max-width: 860px) { .land-duo { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .land-passos { grid-template-columns: 1fr; } }
/* poderes: escolhe-se o grupo e ligam-se os poderes */
.pd2 .pd-grupos { display: grid; gap: 14px; margin: 6px 0 18px; }
.pd-gb { display: grid; gap: 8px; }
.pd-gk { display: flex; align-items: center; gap: 8px; margin: 0; color: var(--tinta-3); font-size: .82rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.pd-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.pd-pill { display: grid; gap: 1px; justify-items: start; text-align: left; padding: 9px 14px; border-radius: 16px; border: 1.5px solid var(--linha); background: var(--sup); color: var(--tinta); font: inherit; cursor: pointer; transition: border-color .15s, background .15s, box-shadow .15s; }
.pd-pill:hover { border-color: var(--azul-claro); }
.pd-pill-n { display: inline-flex; align-items: center; gap: 6px; font-weight: 800; font-size: .9rem; }
.pd-pill-n i { color: var(--bic); font-size: .8rem; }
.pd-pill small { color: var(--tinta-3); font-size: .78rem; font-weight: 600; }
.pd-pill.on { border-color: var(--bic); background: var(--azul-suave, #EEF2FF); box-shadow: 0 0 0 3px var(--azul-claro); }
.pd-painel { border: 1px solid var(--linha); border-radius: 22px; overflow: hidden; background: var(--sup); }
.pd-painel-cab { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; padding: 16px 18px; background: var(--sup-2); border-bottom: 1px solid var(--linha); }
.pd-painel-cab h4 { margin: 0; font-size: 1.04rem; font-weight: 800; }
.pd-painel-cab small { color: var(--tinta-3); font-weight: 600; }
.pd-painel-ac { display: flex; gap: 6px; }
.pd-lista { display: grid; }
.pd-l { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 14px 18px; border-bottom: 1px solid var(--linha); cursor: pointer; transition: background .12s; }
.pd-l:last-child { border-bottom: 0; }
.pd-l:hover { background: var(--sup-2); }
.pd-l-t { display: grid; gap: 2px; min-width: 0; }
.pd-l-t strong { font-size: .95rem; font-weight: 800; color: var(--tinta); }
.pd-l-t small { color: var(--tinta-2); font-size: .84rem; line-height: 1.4; }
.pd-tb { font-style: normal; color: var(--tinta-3); font-size: .8rem; font-weight: 600; }
.pd-sw-in { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.pd-sw { position: relative; width: 48px; height: 28px; border-radius: 99px; background: var(--sup-3); border: 1px solid var(--linha-2, var(--linha)); transition: background .15s; flex: none; }
.pd-sw::after { content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 2px 6px rgba(16, 22, 51, .25); transition: transform .18s; }
.pd-l.on .pd-sw { background: var(--bic); border-color: var(--bic); }
.pd-l.on .pd-sw::after { transform: translateX(20px); }
.pd-sw-in:focus-visible + .pd-sw { box-shadow: 0 0 0 3px var(--azul-claro); }
.pd2 .pd-pe { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
@media (max-width: 600px) { .pd-l { padding: 12px 14px; } .pd-painel-cab { padding: 14px; } }
/* publicar: material geral (sem universidade) */
.u-geral { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 14px; margin: 4px 0 16px; padding: 14px 16px; border-radius: 18px; border: 1.5px solid var(--linha); background: var(--sup); cursor: pointer; transition: border-color .15s, background .15s; }
.u-geral input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.u-geral-ic { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 14px; background: var(--azul-claro); color: var(--bic); font-size: 1.1rem; }
.u-geral-t { display: grid; gap: 2px; }
.u-geral-t strong { font-weight: 800; }
.u-geral-t small { color: var(--tinta-2); font-size: .84rem; line-height: 1.4; }
.u-geral-sw { position: relative; width: 48px; height: 28px; border-radius: 99px; background: var(--sup-3); border: 1px solid var(--linha-2, var(--linha)); }
.u-geral-sw::after { content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 2px 6px rgba(16, 22, 51, .25); transition: transform .18s; }
.u-geral.on { border-color: var(--bic); background: var(--azul-suave, #EEF2FF); }
.u-geral.on .u-geral-sw { background: var(--bic); border-color: var(--bic); }
.u-geral.on .u-geral-sw::after { transform: translateX(20px); }
.u-geral input:focus-visible ~ .u-geral-sw { box-shadow: 0 0 0 3px var(--azul-claro); }
.u-areas { display: grid; gap: 8px; grid-column: 1 / -1; }
.u-areas-l { display: flex; flex-wrap: wrap; gap: 8px; }
.u-area { padding: 8px 14px; border-radius: 99px; border: 1.5px solid var(--linha); background: var(--sup); color: var(--tinta); font: inherit; font-weight: 700; font-size: .88rem; cursor: pointer; }
.u-area.on { background: var(--bic); border-color: var(--bic); color: #fff; }
.u-aviso-not { display: flex; align-items: center; gap: 8px; }
.u-aviso-not i { color: var(--bic); }
.xi-busca .sug { color: var(--tinta); }

/* ---------- 53.ª parte: zona Simulados, criar treino ou simulado, áreas do material geral ---------- */
.tsz-entrada { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 14px; margin: 0 0 18px; padding: 16px 18px; border-radius: 22px; background: linear-gradient(135deg, #FFF7ED, #FFEDD5); border: 1px solid #FED7AA; color: var(--tinta); text-decoration: none; transition: transform .15s, box-shadow .15s; }
.tsz-entrada:hover { transform: translateY(-2px); box-shadow: 0 16px 30px -22px rgba(194, 65, 12, .5); }
.tsz-e-ic { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 16px; background: linear-gradient(160deg, #FB923C, #EA580C); color: #fff; font-size: 1.25rem; box-shadow: 0 12px 22px -14px rgba(234, 88, 12, .8); }
.tsz-e-t { display: grid; gap: 2px; min-width: 0; }
.tsz-e-t strong { font-size: 1.08rem; font-weight: 800; }
.tsz-e-t small { color: var(--tinta-2); font-size: .86rem; }
.tsz-e-ir { display: inline-flex; align-items: center; gap: 6px; font-weight: 800; font-size: .88rem; color: #C2410C; white-space: nowrap; }
.tsz-e-ir i { font-size: .76rem; }
@media (max-width: 560px) { .tsz-entrada { grid-template-columns: auto minmax(0, 1fr); } .tsz-e-ir { grid-column: 1 / -1; justify-self: start; } }
.tsz-cab { display: flex; align-items: center; gap: 16px; margin: 6px 0 18px; }
.tsz-cab-ic { display: grid; place-items: center; flex: none; width: 64px; height: 64px; border-radius: 20px; background: linear-gradient(160deg, #FB923C, #EA580C); color: #fff; font-size: 1.6rem; box-shadow: 0 16px 28px -16px rgba(234, 88, 12, .8); }
.tsz-cab h1 { margin: 0; font-family: var(--f-tit); font-size: clamp(1.6rem, 2.8vw, 2.2rem); font-weight: 800; font-stretch: 90%; letter-spacing: -.035em; }
.tsz-cab p { margin: 4px 0 0; color: var(--tinta-2); max-width: 70ch; line-height: 1.5; }
.tsz-busca { display: flex; align-items: center; gap: 10px; max-width: 560px; margin: 0 0 18px; padding: 10px 16px; border-radius: 16px; background: var(--sup); border: 1.5px solid var(--linha); }
.tsz-busca i { color: var(--tinta-3); }
.tsz-busca input { flex: 1; border: 0; outline: 0; background: transparent; font: inherit; font-weight: 600; color: var(--tinta); }
.tsz-g { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 16px; }
.tsz-c { display: flex; flex-direction: column; gap: 8px; padding: 16px; border-radius: 22px; background: var(--sup); border: 1px solid var(--linha); border-top: 4px solid var(--cor, var(--bic)); color: var(--tinta); text-decoration: none; transition: transform .15s, box-shadow .15s; }
.tsz-c:hover { transform: translateY(-3px); box-shadow: 0 18px 34px -24px rgba(16, 22, 51, .45); }
.tsz-c-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.tsz-c-ic { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 13px; background: color-mix(in srgb, var(--cor, #1E40E6) 14%, #fff); color: var(--cor, var(--bic)); }
.tsz-c-ic svg, .tsz-c-ic img { width: 22px; height: 22px; }
.tsz-av { display: inline-flex; align-items: center; gap: 5px; padding: 3px 10px; border-radius: 99px; background: var(--sup-2); color: var(--tinta-2); font-size: .78rem; font-weight: 800; }
.tsz-c strong { font-size: 1.04rem; font-weight: 800; line-height: 1.3; }
.tsz-c > small { color: var(--tinta-2); font-size: .84rem; }
.tsz-n { display: flex; flex-wrap: wrap; gap: 6px 14px; color: var(--tinta-2); font-size: .82rem; font-weight: 700; }
.tsz-n i { color: var(--tinta-3); margin-right: 5px; }
.tsz-pe { margin-top: auto; padding-top: 8px; display: flex; align-items: center; justify-content: space-between; gap: 10px; border-top: 1px solid var(--linha); }
.tsz-ir { display: inline-flex; align-items: center; gap: 6px; margin-left: auto; color: var(--bic); font-weight: 800; font-size: .88rem; }
.tsz-ir i { font-size: .76rem; }
.tsz-pc { display: grid; line-height: 1.1; }
.tsz-pc b { font-size: 1.15rem; font-weight: 800; color: var(--tinta); }
.tsz-pc.bom b { color: var(--bic); }
.tsz-pc small { color: var(--tinta-3); font-size: .74rem; font-weight: 700; }
.tsz-preco { color: var(--tinta); font-weight: 800; }
.tsz-c.tsz-fechado { opacity: .92; }
.tsz-c, .tsz-c * { text-align: left; }
.trcr { display: grid; gap: 16px; margin: 26px 0 8px; padding: clamp(20px, 3vw, 28px); border-radius: 26px; background: var(--sup); border: 1px solid var(--linha); }
.trcr-t h2 { margin: 0; font-family: var(--f-tit); font-size: clamp(1.25rem, 2.4vw, 1.6rem); font-weight: 800; letter-spacing: -.02em; }
.trcr-t p { margin: 6px 0 0; color: var(--tinta-2); line-height: 1.5; max-width: 70ch; }
.trcr-bts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.trcr-op { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 16px 18px; border-radius: 20px; border: 1.5px solid var(--linha); background: var(--sup); color: var(--tinta); font: inherit; text-align: left; cursor: pointer; transition: border-color .15s, transform .15s, box-shadow .15s; }
.trcr-op:hover { border-color: var(--bic); transform: translateY(-2px); box-shadow: 0 16px 30px -22px rgba(30, 64, 230, .5); }
.trcr-op > i { color: var(--tinta-3); font-size: .8rem; }
.trcr-ic { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 17px; background: linear-gradient(160deg, #3355F0, var(--marca) 55%, #1733C2); color: #fff; font-size: 1.3rem; }
.trcr-ic.sim { background: linear-gradient(160deg, #FB923C, #EA580C); }
.trcr-op-t { display: grid; gap: 2px; }
.trcr-op-t strong { font-size: 1.04rem; font-weight: 800; }
.trcr-op-t small { color: var(--tinta-2); font-size: .84rem; line-height: 1.35; }
.trcr-m .trcr-bts { grid-template-columns: 1fr; margin-top: 14px; }
@media (max-width: 640px) { .trcr-bts { grid-template-columns: 1fr; } }
.trm-tipo { display: inline-flex; align-items: center; gap: 5px; padding: 3px 9px; border-radius: 99px; background: #FFEDD5; color: #C2410C; font-size: .76rem; font-weight: 800; margin-right: auto; margin-left: 8px; }
.u-area-outra { border-style: dashed; color: var(--tinta-2); }
.u-area-outra i, .u-area-nova i { margin-right: 6px; font-size: .82rem; }
.u-area-nova { border-color: var(--bic); color: var(--bic); }
.ar-m .intro { margin: 4px 0 12px; }
.ar-busca { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-radius: 14px; border: 1.5px solid var(--linha); background: var(--sup); margin-bottom: 12px; }
.ar-busca i { color: var(--tinta-3); }
.ar-busca input { flex: 1; border: 0; outline: 0; background: transparent; font: inherit; font-weight: 600; color: var(--tinta); }
.ar-l { display: flex; flex-wrap: wrap; gap: 8px; max-height: min(52vh, 420px); overflow-y: auto; padding: 2px; }

/* ---------- 54.ª parte: Treine o Cérebro arrumado (separadores, secções, mais espaço, sem laranja) ---------- */
.trp-ini { display: flex; flex-direction: column; gap: 22px; }
.trp-ini > *:not(.rodape) { margin-top: 0 !important; margin-bottom: 0 !important; }
.trp-ini > .tr-cria { flex-wrap: wrap; gap: 12px; }
.tr-cria-abas { overflow-x: auto; scrollbar-width: none; max-width: 100%; }
.tr-cria-abas::-webkit-scrollbar { display: none; }
.tr-cria-aba { white-space: nowrap; }
.tr-sec { display: grid; gap: 14px; }
.tr-sec-cab { display: grid; gap: 2px; }
.tr-sec-cab .tr-h { display: flex; align-items: center; gap: 10px; margin: 0; }
.tr-sec-cab .tr-h i { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 10px; background: var(--azul-claro); color: var(--bic); font-size: .8rem; }
.tr-sec-cab p { margin: 0; color: var(--tinta-2); font-size: .9rem; }
.trp-ini .trb { margin: 0; }
.tsz-cab { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 16px; margin: 0; padding: clamp(18px, 2.6vw, 26px); border-radius: 26px; background: var(--sup); border: 1px solid var(--linha); }
.tsz-cab-ic { background: linear-gradient(160deg, #3355F0, var(--marca) 55%, #1733C2) !important; box-shadow: 0 16px 28px -16px rgba(30, 64, 230, .8) !important; }
.tsz-res-n { display: flex; gap: 8px; }
.tsz-res-n span { display: grid; justify-items: center; min-width: 76px; padding: 8px 12px; border-radius: 16px; background: var(--sup-2); color: var(--tinta-2); font-size: .78rem; font-weight: 700; }
.tsz-res-n b { color: var(--tinta); font-size: 1.2rem; font-weight: 800; }
@media (max-width: 760px) { .tsz-cab { grid-template-columns: auto minmax(0, 1fr); } .tsz-res-n { grid-column: 1 / -1; } }
.tsz-res { display: grid; gap: 26px; }
.trcr-ic.sim { background: linear-gradient(160deg, #4F46E5, #3730A3) !important; }
.trm-tipo { background: var(--azul-claro) !important; color: var(--bic) !important; }
.tsz-c.tsz-feito { border-top-color: var(--bic); }
.ta-disc-outra { margin-top: 10px; }
.ta-disc-outra[hidden] { display: none !important; }

/* ---------- 55.ª parte: concluídas num bloco que se abre e o «O que queres criar?» mais largo ---------- */
.tr-concl { border: 1px solid var(--linha); border-radius: 22px; background: var(--sup); overflow: hidden; }
.tr-concl > summary { list-style: none; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 14px 18px; cursor: pointer; }
.tr-concl > summary::-webkit-details-marker { display: none; }
.tr-concl > summary:hover { background: var(--sup-2); }
.tr-concl-ic { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 14px; background: var(--azul-claro); color: var(--bic); font-size: 1.05rem; }
.tr-concl-st { display: grid; gap: 2px; min-width: 0; }
.tr-concl-st strong { font-weight: 800; font-size: 1rem; }
.tr-concl-st small { color: var(--tinta-2); font-size: .84rem; }
.tr-concl-s { color: var(--tinta-3); transition: transform .2s; }
.tr-concl[open] .tr-concl-s { transform: rotate(180deg); }
.tr-concl-l { display: grid; border-top: 1px solid var(--linha); }
.tr-concl-i { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 12px 18px; color: var(--tinta); text-decoration: none; border-bottom: 1px solid var(--linha); }
.tr-concl-i:last-child { border-bottom: 0; }
.tr-concl-i:hover { background: var(--sup-2); }
.tr-concl-d { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; background: color-mix(in srgb, var(--cor, #1E40E6) 14%, #fff); color: var(--cor, var(--bic)); }
.tr-concl-d svg, .tr-concl-d img { width: 20px; height: 20px; }
.tr-concl-t { display: grid; gap: 1px; min-width: 0; }
.tr-concl-t strong { font-size: .95rem; font-weight: 800; }
.tr-concl-t small { color: var(--tinta-2); font-size: .8rem; }
.tr-concl-r { display: inline-flex; align-items: center; gap: 6px; color: var(--bic); font-weight: 800; font-size: .86rem; }
.tr-concl-r i { font-size: .74rem; }
.modal.trcr-modal { width: min(900px, 94vw) !important; max-width: min(900px, 94vw) !important; }
.trcr-m { display: grid; gap: 20px; padding: 4px 2px 2px; }
.trcr-m-cab { display: flex; align-items: center; gap: 14px; padding-right: 36px; }
.trcr-m-cal { flex: none; display: grid; place-items: center; }
.trcr-m-cab h2 { margin: 0; font-family: var(--f-tit); font-size: clamp(1.45rem, 2.8vw, 2rem); font-weight: 800; font-stretch: 90%; letter-spacing: -.035em; }
.trcr-m-cab p { margin: 4px 0 0; color: var(--tinta-2); }
.trcr-g { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.trcr-card { position: relative; overflow: hidden; display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding: 22px; border-radius: 24px; border: 1.5px solid var(--linha); background: var(--sup); color: var(--tinta); font: inherit; text-align: left; cursor: pointer; transition: border-color .15s, transform .15s, box-shadow .15s; }
.trcr-card::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 110px; background: linear-gradient(160deg, var(--azul-claro), transparent 85%); opacity: .75; pointer-events: none; }
.trcr-card > * { position: relative; }
.trcr-card:hover { border-color: var(--bic); transform: translateY(-3px); box-shadow: 0 24px 44px -28px rgba(30, 64, 230, .6); }
.trcr-card:focus-visible { outline: 3px solid var(--azul-claro); outline-offset: 2px; }
.trcr-card-ic { display: grid; place-items: center; width: 58px; height: 58px; border-radius: 19px; background: linear-gradient(160deg, #3355F0, var(--marca) 55%, #1733C2); color: #fff; font-size: 1.45rem; box-shadow: 0 16px 28px -16px rgba(30, 64, 230, .8); }
.trcr-card.sim .trcr-card-ic { background: linear-gradient(160deg, #6366F1, #4338CA); box-shadow: 0 16px 28px -16px rgba(67, 56, 202, .8); }
.trcr-card > strong { font-size: 1.3rem; font-weight: 800; letter-spacing: -.01em; }
.trcr-card > small { color: var(--tinta-2); font-size: .92rem; line-height: 1.5; }
.trcr-card ul { display: grid; gap: 7px; margin: 4px 0 6px; padding: 0; list-style: none; }
.trcr-card li { display: flex; align-items: center; gap: 9px; color: var(--tinta-2); font-size: .88rem; font-weight: 700; }
.trcr-card li i { display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: var(--azul-claro); color: var(--bic); font-size: .66rem; flex: none; }
.trcr-card-bt { margin-top: auto; display: inline-flex; align-items: center; gap: 8px; padding: 11px 18px; border-radius: 99px; background: var(--bic); color: #fff; font-weight: 800; font-size: .92rem; }
.trcr-card.sim .trcr-card-bt { background: #4F46E5; }
.trcr-card-bt i { font-size: .8rem; transition: transform .15s; }
.trcr-card:hover .trcr-card-bt i { transform: translateX(3px); }
.trcr .trcr-g { margin-top: 2px; }
@media (max-width: 680px) { .trcr-g { grid-template-columns: 1fr; } .trcr-card { padding: 18px; } .trcr-card ul { display: none; } }

/* ---------- 56.ª parte: concluídas numa linha compacta e Caderno dos Erros com espaço ---------- */
.tr-concl { display: none; }
.tr-concl2 { display: grid; gap: 10px; min-width: 0; }
.tr-concl2-k { display: flex; align-items: center; gap: 8px; margin: 0; font-weight: 800; color: var(--tinta); }
.tr-concl2-k i { color: var(--bic); }
.tr-concl2-k span { padding: 1px 9px; border-radius: 99px; background: var(--azul-claro); color: var(--bic); font-size: .82rem; }
.tr-concl2-l { display: flex; gap: 10px; overflow-x: auto; scrollbar-width: none; padding: 2px 2px 6px; }
.tr-concl2-l::-webkit-scrollbar { display: none; }
.tr-concl2-i { flex: none; display: inline-flex; align-items: center; gap: 10px; max-width: 320px; padding: 7px 14px 7px 7px; border-radius: 99px; background: var(--sup); border: 1px solid var(--linha); color: var(--tinta); text-decoration: none; transition: border-color .15s; }
.tr-concl2-i:hover { border-color: var(--bic); }
.tr-concl2-d { display: grid; place-items: center; flex: none; width: 32px; height: 32px; border-radius: 50%; background: color-mix(in srgb, var(--cor, #1E40E6) 14%, #fff); color: var(--cor, var(--bic)); }
.tr-concl2-d svg, .tr-concl2-d img { width: 17px; height: 17px; }
.tr-concl2-t { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .9rem; font-weight: 800; }
.tr-concl2-r { flex: none; color: var(--bic); font-size: .8rem; font-weight: 800; }
.tcad-cab .linha-btn { display: flex; flex-wrap: wrap; gap: 10px; }
.tcad-mods { display: grid; gap: 10px; }
.tcad-l { display: grid; gap: 12px; }
.tcad-acoes { display: flex; flex-wrap: wrap; gap: 8px; }
/* concluídas: cartões de sempre numa fila que desliza para o lado */
.trc-grade.trc-fila { display: grid; grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(250px, 290px); overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; padding: 2px 2px 10px; scrollbar-width: thin; }
.trc-grade.trc-fila > * { scroll-snap-align: start; }
/* filtros do separador Treinos e o anel verde das concluídas */
.tr-filtros { display: flex; flex-wrap: wrap; gap: 8px; }
.tr-fil { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 99px; border: 1.5px solid var(--linha); background: var(--sup); color: var(--tinta-2); font: inherit; font-weight: 800; font-size: .88rem; cursor: pointer; transition: border-color .15s, background .15s; }
.tr-fil:hover { border-color: var(--azul-claro); }
.tr-fil b { min-width: 22px; padding: 1px 7px; border-radius: 99px; background: var(--sup-2); color: var(--tinta-2); font-size: .8rem; text-align: center; }
.tr-fil.on { background: var(--bic); border-color: var(--bic); color: #fff; }
.tr-fil.on b { background: rgba(255, 255, 255, .22); color: #fff; }
@media (max-width: 600px) { .tr-filtros { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; } .tr-filtros::-webkit-scrollbar { display: none; } .tr-fil { flex: none; } }
.trc-anel b.ok { color: #16A34A; }

/* ---------- 59.ª parte: pausar a criação de contas e cartões das pessoas maiores ---------- */
.cp-caixa { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 14px; margin: 14px 0; padding: 14px 16px; border-radius: 18px; border: 1.5px solid var(--linha); background: var(--sup); }
.cp-caixa.alerta { border-color: #F59E0B; background: #FFFBEB; }
.cp-caixa.on { border-color: var(--bic); background: var(--azul-suave, #EEF2FF); }
.cp-ic { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 14px; background: var(--azul-claro); color: var(--bic); font-size: 1.05rem; }
.cp-caixa.alerta .cp-ic { background: #FEF3C7; color: #B45309; }
.cp-t { display: grid; gap: 2px; min-width: 0; }
.cp-t strong { font-weight: 800; }
.cp-t small { color: var(--tinta-2); font-size: .84rem; line-height: 1.45; }
@media (max-width: 640px) { .cp-caixa { grid-template-columns: auto minmax(0, 1fr); } .cp-caixa .btn { grid-column: 1 / -1; justify-self: start; } }
.cp-aviso { display: flex; align-items: flex-start; gap: 12px; margin: 4px 0 16px; padding: 14px 16px; border-radius: 16px; background: var(--azul-suave, #EEF2FF); border: 1px solid var(--azul-claro); color: var(--tinta); }
.cp-aviso i { color: var(--bic); margin-top: 3px; }
.cp-aviso span { display: grid; gap: 2px; font-size: .9rem; color: var(--tinta-2); }
.cp-aviso strong { color: var(--tinta); font-size: .98rem; }
/* pesquisar pessoas: cartão maior, foto ao centro e a informação por baixo */
.pes-g { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)) !important; gap: 16px !important; align-content: start; }
.pes-c { display: flex !important; flex-direction: column; align-items: center; justify-content: flex-start; text-align: center; gap: 12px !important; padding: 24px 16px 18px !important; border-radius: 24px !important; min-height: 236px; }
.pes-av { width: 92px !important; height: 92px !important; flex: none; box-shadow: 0 0 0 4px var(--sup), 0 0 0 6px var(--azul-claro); }
.pes-av .av, .pes-av img, .pes-av svg { box-shadow: none !important; }
.pes-t { display: flex !important; flex-direction: column; align-items: center; gap: 4px; width: 100%; min-width: 0; flex: 1; }
.pes-nome { display: flex !important; align-items: center; justify-content: center; flex-wrap: wrap; gap: 6px; font-size: 1.04rem; font-weight: 800; line-height: 1.25; white-space: normal !important; overflow: visible !important; text-overflow: clip !important; }
.pes-onde { display: -webkit-box !important; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; white-space: normal !important; text-overflow: clip !important; color: var(--tinta-2); font-size: .84rem; line-height: 1.35; }
.pes-chips { justify-content: center; margin-top: auto; padding-top: 6px; }

/* ---------- 60.ª parte: favoritos em Pesquisar pessoas e «Ver mais» ---------- */
.pes-filtro { display: inline-flex; gap: 4px; padding: 4px; margin: 0 0 14px; border-radius: 99px; background: var(--sup-2); border: 1px solid var(--linha); }
.pes-fb { display: inline-flex; align-items: center; gap: 7px; padding: 8px 16px; border-radius: 99px; border: 0; background: transparent; color: var(--tinta-2); font: inherit; font-weight: 800; font-size: .88rem; cursor: pointer; }
.pes-fb svg { width: 15px; height: 15px; fill: var(--bic); }
.pes-fb.on { background: var(--sup); color: var(--tinta); box-shadow: 0 4px 12px -6px rgba(16, 22, 51, .3); }
.pes-c-w { position: relative; display: flex; min-width: 0; }
.pes-c-w > .pes-c { flex: 1; width: 100%; }
.pes-fav { position: absolute; z-index: 2; top: 10px; right: 10px; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--linha); background: var(--sup); color: var(--tinta-3); cursor: pointer; transition: transform .15s, color .15s, border-color .15s; }
.pes-fav svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 2; }
.pes-fav:hover { color: var(--bic); border-color: var(--azul-claro); transform: scale(1.06); }
.pes-fav.on { color: var(--bic); border-color: var(--azul-claro); background: var(--azul-suave, #EEF2FF); }
.pes-fav.on svg { fill: var(--bic); stroke: var(--bic); }
.pes-mais { display: flex; flex-direction: column; align-items: center; gap: 6px; margin: 20px 0 4px; }
.pes-mais small { color: var(--tinta-3); font-size: .8rem; font-weight: 600; }
.pes-fim { margin: 18px 0 0; text-align: center; color: var(--tinta-3); font-size: .86rem; font-weight: 600; }

/* ---------- 62.ª parte: janelas de criar mais bonitas e a página de trás parada ---------- */
html.ov-aberto, html.ov-aberto body { overscroll-behavior: none; }
.busca-ecra, .modal, .fac-ecra, .folha-filtros { overscroll-behavior: contain; }
.modal:has(.ta-form) { width: min(660px, 94vw) !important; max-width: min(660px, 94vw) !important; }
.ta-form { display: grid; gap: 16px; }
.ta-m-cab { display: flex; align-items: flex-start; gap: 14px; padding-right: 40px; }
.ta-m-ic { flex: none; display: grid; place-items: center; width: 54px; height: 54px; border-radius: 18px; background: linear-gradient(160deg, #3355F0, var(--marca) 55%, #1733C2); color: #fff; font-size: 1.35rem; box-shadow: 0 14px 26px -16px rgba(30, 64, 230, .8); }
.ta-m-ic.sim { background: linear-gradient(160deg, #6366F1, #4338CA); box-shadow: 0 14px 26px -16px rgba(67, 56, 202, .8); }
.ta-m-cab h2 { margin: 0; font-family: var(--f-tit); font-size: clamp(1.35rem, 2.6vw, 1.7rem); font-weight: 800; letter-spacing: -.03em; }
.ta-m-cab .intro { margin: 4px 0 0; color: var(--tinta-2); line-height: 1.5; }
.ta-form .campo { display: grid; gap: 6px; margin: 0; }
.ta-form .campo > label, .ta-form legend { font-weight: 800; font-size: .9rem; color: var(--tinta); }
.ta-form .campo small, .ta-form legend small { font-weight: 600; color: var(--tinta-3); }
.ta-form .campo input:not([type="radio"]):not([type="checkbox"]), .ta-form .campo textarea, .ta-form .campo select { width: 100%; box-sizing: border-box; padding: 12px 14px; border-radius: 14px; border: 1.5px solid var(--linha); background: var(--sup); color: var(--tinta); font: inherit; font-size: 1rem; transition: border-color .15s, box-shadow .15s; }
.ta-form .campo textarea { min-height: 100px; resize: vertical; line-height: 1.5; }
.ta-form .campo input:focus, .ta-form .campo textarea:focus { outline: 0; border-color: var(--bic); box-shadow: 0 0 0 4px var(--azul-claro); }
.ta-form fieldset { margin: 0; padding: 0; border: 0; min-width: 0; }
.ta-form .ta-discs { display: flex; flex-wrap: wrap; gap: 8px; }
.ta-form .ta-discs legend { margin-bottom: 8px; width: 100%; }
.ta-2 { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 12px; }
.ta-como { display: grid; gap: 8px; }
.ta-como legend { margin-bottom: 8px; }
.ta-como-op { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 12px; padding: 12px 14px; border-radius: 16px; border: 1.5px solid var(--linha); background: var(--sup); cursor: pointer; transition: border-color .15s, background .15s; }
.ta-como-op input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ta-como-ic { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 13px; background: var(--sup-2); color: var(--tinta-2); font-size: 1rem; }
.ta-como-t { display: grid; gap: 2px; }
.ta-como-t strong { font-weight: 800; font-size: .95rem; }
.ta-como-t small { color: var(--tinta-2); font-size: .84rem; line-height: 1.4; }
.ta-como-op:has(input:checked) { border-color: var(--bic); background: var(--azul-suave, #EEF2FF); }
.ta-como-op:has(input:checked) .ta-como-ic { background: var(--bic); color: #fff; }
.ta-como-op:has(input:focus-visible) { box-shadow: 0 0 0 4px var(--azul-claro); }
.ta-form .linha-btn { position: sticky; bottom: -1px; z-index: 2; display: flex; gap: 10px; margin: 2px -2px 0; padding: 12px 2px 2px; background: var(--sup); border-top: 1px solid var(--linha); }
.ta-form .linha-btn .btn { flex: 1; }
@media (max-width: 600px) { .ta-2 { grid-template-columns: 1fr; } .ta-m-cab { gap: 12px; } .ta-m-ic { width: 46px; height: 46px; border-radius: 15px; font-size: 1.15rem; } }
.ta-form .linha-btn { box-shadow: 0 26px 0 var(--sup); }

/* ---------- 63.ª parte: simulados à parte no painel, IA do simulado mais clara ---------- */
.ta-c-sim { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; text-decoration: none; color: var(--tinta); border-top: 4px solid var(--cor, var(--bic)); }
.ta-cs-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%; }
.ta-cs-ic { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 13px; background: color-mix(in srgb, var(--cor, #1E40E6) 14%, #fff); color: var(--cor, var(--bic)); }
.ta-cs-ic svg, .ta-cs-ic img { width: 22px; height: 22px; }
.ta-cs-tipo { display: inline-flex; align-items: center; gap: 5px; padding: 3px 10px; border-radius: 99px; background: var(--azul-claro); color: var(--bic); font-size: .78rem; font-weight: 800; }
.ta-cs-t { font-size: 1.02rem; font-weight: 800; line-height: 1.3; }
.ta-cs-s, .ta-cs-por { color: var(--tinta-2); font-size: .84rem; }
.ta-cs-ir { margin-top: auto; padding-top: 8px; display: inline-flex; align-items: center; gap: 6px; color: var(--bic); font-weight: 800; font-size: .86rem; }
.ta-cs-ir i { font-size: .74rem; }
.ta-sec-sims { margin-top: 22px; }
/* ecrã vazio do simulado: duas escolhas grandes */
.te-sim-ops2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; max-width: 640px; margin: 18px auto 0; }
.te-sim-ops2 .te-sim-op { display: grid; justify-items: start; gap: 6px; padding: 18px; border-radius: 20px; border: 1.5px solid var(--linha); background: var(--sup); text-align: left; cursor: pointer; transition: border-color .15s, transform .15s, box-shadow .15s; }
.te-sim-ops2 .te-sim-op:hover { border-color: var(--bic); transform: translateY(-2px); box-shadow: 0 16px 30px -22px rgba(30, 64, 230, .55); }
.te-sim-ops2 .te-sim-op i { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 14px; background: var(--azul-claro); color: var(--bic); font-size: 1.1rem; }
.te-sim-ops2 .te-sim-op.ia i { background: linear-gradient(160deg, #3355F0, var(--marca) 55%, #1733C2); color: #fff; }
.te-sim-ops2 .te-sim-op b { font-size: 1.02rem; font-weight: 800; color: var(--tinta); }
.te-sim-ops2 .te-sim-op small { color: var(--tinta-2); font-size: .86rem; line-height: 1.4; }
@media (max-width: 640px) { .te-sim-ops2 { grid-template-columns: 1fr; } }
/* IA do simulado: fontes em cartões claros e campos arrumados */
.te-ia2 { display: grid; gap: 14px; }
.te-ia2 > .te-l { margin: 0; font-weight: 800; color: var(--tinta); }
.te-ia2 .te-fontes { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.te-ia2 .te-fonte { display: grid !important; grid-template-columns: auto minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 10px; row-gap: 2px; align-items: center; text-align: left; padding: 12px; border-radius: 16px; border: 1.5px solid var(--linha); background: var(--sup); cursor: pointer; transition: border-color .15s, background .15s; }
.te-ia2 .te-fonte i { grid-row: 1 / span 2; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 12px; background: var(--sup-2); color: var(--tinta-2); font-size: .95rem; }
.te-ia2 .te-fonte b { font-size: .9rem; font-weight: 800; color: var(--tinta); }
.te-ia2 .te-fonte small { color: var(--tinta-3); font-size: .8rem; line-height: 1.3; }
.te-ia2 .te-fonte[aria-selected="true"] { border-color: var(--bic); background: var(--azul-suave, #EEF2FF); }
.te-ia2 .te-fonte[aria-selected="true"] i { background: var(--bic); color: #fff; }
.te-ia2 .te-ia-desc { margin: 0; padding: 10px 12px; border-radius: 12px; background: var(--sup-2); color: var(--tinta-2); font-size: .86rem; line-height: 1.45; }
.te-ia2 .te-l { display: grid; gap: 6px; font-weight: 700; }
.te-ia2 .te-in { width: 100%; box-sizing: border-box; padding: 10px 12px; border-radius: 12px; border: 1.5px solid var(--linha); background: var(--sup); font: inherit; color: var(--tinta); }
.te-ia2 .te-in:focus { outline: 0; border-color: var(--bic); box-shadow: 0 0 0 3px var(--azul-claro); }
.te-acv { display: grid; gap: 8px; }
.te-acv-sel { display: flex; flex-wrap: wrap; gap: 6px; }
.te-acv-chip { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; padding: 5px 10px; border-radius: 99px; border: 0; background: var(--bic); color: #fff; font: inherit; font-size: .8rem; font-weight: 700; cursor: pointer; }
.te-acv-chip i { font-size: .74rem; opacity: .85; }
.te-acv-l { display: grid; gap: 6px; max-height: 260px; overflow-y: auto; overscroll-behavior: contain; padding-right: 2px; }
.te-acv-i { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 9px 12px; border-radius: 12px; border: 1px solid var(--linha); background: var(--sup); text-align: left; cursor: pointer; font: inherit; }
.te-acv-i:hover { border-color: var(--bic); }
.te-acv-i i { color: var(--bic); font-size: .8rem; }
.te-acv-t { display: grid; gap: 1px; min-width: 0; }
.te-acv-t b { font-size: .86rem; font-weight: 800; color: var(--tinta); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.te-acv-t small { color: var(--tinta-3); font-size: .78rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.te-vers-d > summary { list-style: none; display: flex; align-items: center; gap: 8px; cursor: pointer; font-weight: 800; color: var(--tinta-2); }
.te-vers-d > summary::-webkit-details-marker { display: none; }
.te-vers-d[open] > summary { margin-bottom: 10px; color: var(--tinta); }
/* painel → email: de onde saem os emails */
.smtp-dom { display: flex; align-items: flex-start; gap: 12px; margin: 0 0 14px; padding: 14px 16px; border-radius: 16px; background: var(--azul-suave, #EEF2FF); border: 1.5px solid var(--bic); }
.smtp-dom > i { color: var(--bic); font-size: 1.1rem; margin-top: 2px; }
.smtp-dom span { display: grid; gap: 2px; color: var(--tinta-2); font-size: .88rem; line-height: 1.45; }
.smtp-dom strong { color: var(--tinta); font-size: .98rem; }
.smtp-dom.aviso { background: #FFFBEB; border-color: #F59E0B; }
.smtp-dom.aviso > i { color: #B45309; }
.smtp-dom.erro { background: #FEF2F2; border-color: #DC2626; }
.smtp-dom.erro > i { color: #DC2626; }
.smtp-largo { grid-column: 1 / -1; }

/* ---------- 66.ª parte: escolher materiais do acervo em ecrã inteiro ---------- */
.te-acv-abrir { justify-self: start; }
.acv-cab { position: sticky; top: 0; z-index: 2; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 4px 0 12px; background: var(--sup); }
.acv-busca { flex: 1; min-width: 220px; display: flex; align-items: center; gap: 10px; padding: 11px 16px; border-radius: 16px; border: 1.5px solid var(--linha); background: var(--sup); }
.acv-busca:focus-within { border-color: var(--bic); box-shadow: 0 0 0 4px var(--azul-claro); }
.acv-busca i { color: var(--tinta-3); }
.acv-busca input { flex: 1; border: 0; outline: 0; background: transparent; font: inherit; font-weight: 600; font-size: 1rem; color: var(--tinta); }
.acv-n { padding: 6px 12px; border-radius: 99px; background: var(--azul-claro); color: var(--bic); font-weight: 800; font-size: .84rem; white-space: nowrap; }
.acv-ajuda { margin: 0 0 14px; color: var(--tinta-2); font-size: .9rem; }
.acv-g { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 14px; padding-bottom: 20px; }
.acv-c { position: relative; display: grid; grid-template-rows: auto auto 1fr; gap: 6px; padding: 10px; border-radius: 18px; border: 2px solid var(--linha); background: var(--sup); text-align: left; cursor: pointer; font: inherit; color: var(--tinta); transition: border-color .15s, transform .15s, box-shadow .15s; }
.acv-c:hover { transform: translateY(-2px); box-shadow: 0 14px 26px -20px rgba(16, 22, 51, .45); }
.acv-c.on { border-color: var(--bic); box-shadow: 0 0 0 3px var(--azul-claro); }
.acv-th { position: relative; display: block; aspect-ratio: 210 / 297; border-radius: 12px; overflow: hidden; background: #fff; border: 1px solid var(--linha); }
.acv-th img, .acv-th > svg, .acv-th > div { width: 100%; height: 100%; object-fit: contain !important; display: block; }
.acv-ck { position: absolute; top: 8px; right: 8px; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: rgba(255, 255, 255, .92); border: 2px solid var(--linha); color: transparent; font-size: .8rem; }
.acv-c.on .acv-ck { background: var(--bic); border-color: var(--bic); color: #fff; }
.acv-tp { position: absolute; left: 8px; bottom: 8px; max-width: calc(100% - 16px); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: 3px 8px; border-radius: 8px; background: rgba(16, 22, 51, .85); color: #fff; font-size: .72rem; font-weight: 800; }
.acv-c strong { font-size: .88rem; font-weight: 800; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.acv-c small { color: var(--tinta-3); font-size: .8rem; line-height: 1.35; }
.acv-nada { color: var(--tinta-2); padding: 30px 0; text-align: center; }
.acv-pe { display: flex; justify-content: flex-end; gap: 10px; }
@media (max-width: 600px) { .acv-g { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .acv-pe .btn { flex: 1; } }

/* ---------- 67.ª parte: IA do simulado (− / +), entrada do simulado com escolhas, questões feitas a azul ---------- */
.te-quantas { display: flex !important; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 12px; }
.te-todas { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; font-size: .84rem; color: var(--tinta-2); cursor: pointer; }
.te-passo { display: grid; grid-template-columns: 44px minmax(0, 1fr) 44px; align-items: center; gap: 8px; }
.te-passo-b { display: grid; place-items: center; height: 44px; border-radius: 12px; border: 1.5px solid var(--linha); background: var(--sup); color: var(--tinta); font: inherit; font-size: 1.3rem; font-weight: 800; cursor: pointer; }
.te-passo-b:hover:not([disabled]) { border-color: var(--bic); color: var(--bic); }
.te-passo-b[disabled] { opacity: .4; cursor: default; }
.te-passo-n { text-align: center; font-weight: 800; font-size: 1.05rem; -moz-appearance: textfield; }
.te-passo-n::-webkit-outer-spin-button, .te-passo-n::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.te-ia2 .te-seg-niv { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
/* entrada do simulado */
.tsi { position: relative; overflow: hidden; border-radius: 28px; background: linear-gradient(135deg, color-mix(in srgb, var(--cor, #1E40E6) 16%, #fff), var(--sup) 60%); border: 1px solid var(--linha); padding: clamp(18px, 3vw, 30px); }
.tsi-opc { display: grid; gap: 10px; margin: 6px 0 4px; }
.tsi-opc-k { margin: 6px 0 0; font-weight: 800; color: var(--tinta); font-size: .95rem; }
.tsi-modos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.tsi-modo { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 10px; padding: 12px; border-radius: 16px; border: 1.5px solid var(--linha); background: var(--sup); text-align: left; cursor: pointer; font: inherit; color: var(--tinta); transition: border-color .15s, background .15s; }
.tsi-modo-ic { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; background: var(--sup-2); color: var(--tinta-2); }
.tsi-modo-t { display: grid; gap: 2px; }
.tsi-modo-t strong { font-size: .92rem; font-weight: 800; }
.tsi-modo-t small { color: var(--tinta-2); font-size: .8rem; line-height: 1.35; }
.tsi-modo.on { border-color: var(--bic); background: var(--azul-suave, #EEF2FF); }
.tsi-modo.on .tsi-modo-ic { background: var(--bic); color: #fff; }
.tsi-tempos { display: flex; flex-wrap: wrap; gap: 8px; }
.tsi-tempo { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: 99px; border: 1.5px solid var(--linha); background: var(--sup); font: inherit; font-weight: 800; font-size: .88rem; color: var(--tinta-2); cursor: pointer; }
.tsi-tempo.on { border-color: var(--bic); background: var(--bic); color: #fff; }
@media (max-width: 760px) { .tsi-modos { grid-template-columns: 1fr; } }
/* questões já feitas: azul com o número branco */
.ts-q-b.feita { background: var(--bic) !important; border-color: var(--bic) !important; color: #fff !important; }
.ts-q-b.feita.atual { box-shadow: 0 0 0 3px var(--azul-claro); }
.tsi-modos { grid-template-columns: 1fr !important; }
.tsi-modo { align-items: center; }

/* ---------- 69.ª parte: passo do código, carteira, material aberto, voltar no telemóvel, treino azul ---------- */
.cod-msg { line-height: 1.55; }
.cod-msg b[data-cod-expira] { font-variant-numeric: tabular-nums; color: var(--bic); }
.cod-msg.expirou { display: flex; align-items: flex-start; gap: 8px; padding: 12px 14px; border-radius: 14px; background: #FEF2F2; color: #991B1B; }
.cod-msg.expirou i { margin-top: 4px; }
.linha-cod .link[disabled] { opacity: .55; cursor: default; text-decoration: none; }
/* carteira: separadores direitos no telemóvel, resumo e histórico claro */
@media (max-width: 640px) { .cart-abas { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); width: 100%; } .cart-ab { justify-content: center; text-align: center; padding-inline: 6px !important; font-size: .82rem; } .cart-ab span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } }
.cart-abas { justify-content: center; }
.ext-res { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0 0 16px; }
.ext-r { display: grid; gap: 2px; padding: 14px 16px; border-radius: 18px; background: var(--sup); border: 1px solid var(--linha); }
.ext-r span { display: inline-flex; align-items: center; gap: 6px; color: var(--tinta-2); font-size: .82rem; font-weight: 700; }
.ext-r b { font-family: var(--f-tit); font-size: 1.5rem; font-weight: 800; }
.ext-r.mais b, .ext-r.mais i { color: var(--bic); }
.ext-r.menos b { color: var(--tinta); }
.cart-aba .dia { margin: 16px 0 8px; color: var(--tinta-3); font-size: .82rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.cart-aba .mov { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 12px 14px; margin-bottom: 8px; border-radius: 16px; background: var(--sup); border: 1px solid var(--linha); }
.cart-aba .mov .ic { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 13px; background: var(--sup-2); color: var(--tinta-2); }
.cart-aba .mov.mais .ic { background: var(--azul-claro); color: var(--bic); }
.cart-aba .mov .ic svg { width: 18px; height: 18px; }
.cart-aba .mov p { margin: 0; font-weight: 700; font-size: .92rem; line-height: 1.35; }
.cart-aba .mov small { color: var(--tinta-3); font-size: .8rem; }
.cart-aba .mov .v { display: grid; justify-items: end; font-weight: 800; font-size: 1.05rem; color: var(--tinta); }
.cart-aba .mov.mais .v { color: var(--bic); }
.cart-aba .mov .v small { font-weight: 600; }
/* material aberto */
.modal.ma-modal { width: min(460px, 94vw) !important; max-width: min(460px, 94vw) !important; }
.ma-m { display: grid; justify-items: center; text-align: center; gap: 10px; padding-top: 6px; }
.ma-capa { position: relative; width: 150px; aspect-ratio: 210 / 297; border-radius: 14px; overflow: hidden; background: #fff; border: 1px solid var(--linha); box-shadow: 0 24px 40px -24px rgba(16, 22, 51, .55); transform: rotate(-3deg); animation: maEntra .5s cubic-bezier(.2, 1.4, .4, 1) both; }
.ma-capa img, .ma-capa > svg, .ma-capa > div { width: 100%; height: 100%; object-fit: contain !important; display: block; }
.ma-ok { position: absolute; right: -2px; bottom: -2px; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--bic); color: #fff; border: 4px solid var(--sup); }
@keyframes maEntra { from { opacity: 0; transform: rotate(-12deg) scale(.7); } to { opacity: 1; transform: rotate(-3deg) scale(1); } }
.ma-k { display: inline-flex; align-items: center; gap: 6px; margin-top: 6px; padding: 4px 12px; border-radius: 99px; background: var(--azul-claro); color: var(--bic); font-weight: 800; font-size: .82rem; }
.ma-m h2 { margin: 0; font-family: var(--f-tit); font-size: 1.35rem; font-weight: 800; letter-spacing: -.02em; line-height: 1.25; }
.ma-s { margin: 0; color: var(--tinta-2); font-size: .88rem; }
.ma-info { margin: 2px 0 6px; color: var(--tinta-2); font-size: .9rem; line-height: 1.5; }
.ma-ver { width: 100%; }
.ma-ganhar { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; width: 100%; margin-top: 6px; padding: 12px 14px; border-radius: 16px; background: var(--sup-2); text-align: left; }
.ma-g-ic { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 13px; background: var(--sup); }
.ma-g-ic svg { width: 22px; height: 22px; }
.ma-g-t { display: grid; gap: 2px; }
.ma-g-t strong { font-weight: 800; }
.ma-g-t small { color: var(--tinta-2); font-size: .8rem; line-height: 1.4; }
@media (prefers-reduced-motion: reduce) { .ma-capa { animation: none; } }
/* voltar no telemóvel */
.topo-voltar { display: none; }
@media (max-width: 900px) { .topo-voltar:not([hidden]) { display: grid; place-items: center; flex: none; width: 40px; height: 40px; margin-right: 4px; border-radius: 50%; border: 1px solid var(--linha); background: var(--sup); color: var(--tinta); font-size: 1rem; cursor: pointer; } }
/* azul em vez de roxo */
.land-treino .land-ic { background: linear-gradient(160deg, #3355F0, var(--marca) 55%, #1733C2) !important; box-shadow: 0 14px 26px -16px rgba(30, 64, 230, .8) !important; }
.land-l i { color: var(--bic) !important; }
.trcr-ic.sim, .trcr-card.sim .trcr-card-ic, .ta-m-ic.sim { background: linear-gradient(160deg, #3B82F6, #1D4ED8) !important; box-shadow: 0 14px 26px -16px rgba(29, 78, 216, .8) !important; }
.trcr-card.sim .trcr-card-bt { background: #1D4ED8 !important; }
/* material aberto: publicar e convidar para ganhar pontos */
.ma-ganhar2 { display: grid; gap: 8px; width: 100%; margin-top: 6px; padding: 12px; border-radius: 18px; background: var(--sup-2); text-align: left; }
.ma-g-k { display: inline-flex; align-items: center; gap: 6px; margin: 0 0 2px 2px; font-weight: 800; font-size: .92rem; color: var(--tinta); }
.ma-g-k svg { width: 18px; height: 18px; }
.ma-g-l { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 14px; background: var(--sup); }
.ma-g-l .ma-g-ic { background: var(--azul-claro); color: var(--bic); }
.ma-g-l .btn { white-space: nowrap; }
@media (max-width: 380px) { .ma-g-l { grid-template-columns: auto minmax(0, 1fr); } .ma-g-l .btn { grid-column: 1 / -1; } }

/* ---------- 71.ª parte: correção legível (respostas, explicação, passos, imagem) e resolver com a IA ---------- */
.tcor-r { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; margin: 14px 0; }
.tcor-r > div { padding: 12px 16px; border-radius: 16px; background: var(--sup-2); }
.tcor-r dt { font-size: .82rem; font-weight: 800; color: var(--tinta-2); text-transform: uppercase; letter-spacing: .04em; margin-bottom: 6px; }
.tcor-r dd { margin: 0; font-size: 1.06rem; font-weight: 800; line-height: 1.5; }
.tcor-r dd.ok { color: #0F7A3D; }
.tcor-r dd.mal { color: #B42318; }
.tcor-r > div:has(dd.ok) { background: #ECFDF3; }
.tcor-r > div:has(dd.mal) { background: #FEF3F2; }
.tcor-r dd .tx p { margin: 0; display: inline; }
.tcor-en { font-size: 1.04rem; line-height: 1.65; }
.ex-expl { padding: 14px 18px !important; border-radius: 16px; line-height: 1.7; font-size: 1rem; }
.ex-expl-k { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 6px; font-size: .82rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: var(--bic); }
.ex-expl .tx p { margin: 0 0 6px; }
.ex-res { margin-top: 10px; border-radius: 16px; border: 1px solid var(--linha); background: var(--sup); overflow: hidden; }
.ex-res > summary { display: flex; align-items: center; gap: 10px; padding: 14px 18px; cursor: pointer; font-weight: 800; color: var(--bic); list-style: none; }
.ex-res > summary::-webkit-details-marker { display: none; }
.ex-res > summary small { margin-left: auto; padding: 3px 10px; border-radius: 99px; background: var(--azul-claro); color: var(--bic); font-size: .8rem; font-weight: 800; }
.ex-res[open] > summary { border-bottom: 1px solid var(--linha); }
.ex-passos { list-style: none; margin: 0; padding: 14px 18px 6px; display: grid; gap: 0; counter-reset: none; }
.ex-passos li { position: relative; display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 12px; padding-bottom: 16px; }
.ex-passos li::before { content: ""; position: absolute; left: 16px; top: 34px; bottom: 2px; width: 2px; background: var(--linha); }
.ex-passos li:last-child::before { display: none; }
.ex-pn { position: relative; z-index: 1; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--bic); color: #fff; font-weight: 800; font-size: .9rem; }
.ex-passos .tx { padding-top: 5px; font-size: 1rem; line-height: 1.7; overflow-x: auto; }
.ex-passos .tx p { margin: 0; }
.ex-res-img { margin: 4px 18px 16px; }
.ex-res-img img { display: block; max-width: 100%; max-height: 420px; margin: 0 auto; border-radius: 12px; border: 1px solid var(--linha); background: #fff; }
.tx .katex-display, .tx .katex { max-width: 100%; }
.tx .katex-display { overflow-x: auto; overflow-y: hidden; padding: 4px 0; }
/* resolver com a IA (editor do simulado) */
.te-resolver { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px 12px; align-items: start; padding: 14px; margin-bottom: 14px; border-radius: 18px; background: var(--azul-suave, #EEF2FF); border: 1.5px solid #C7D2FE; }
.te-resolver-ic { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 13px; background: var(--bic); color: #fff; }
.te-resolver strong { display: block; font-weight: 800; }
.te-resolver small { color: var(--tinta-2); font-size: .82rem; line-height: 1.4; }
.te-resolver .btn { grid-column: 1 / -1; }
.te-resolver .roda-c { width: 16px; height: 16px; border-width: 2px; margin-right: 6px; }
.te-resolver-1 { justify-self: start; margin-top: 4px; }

/* ---------- 72.ª parte: no início do Explorar, as filas usam o cartão normal com a primeira página inteira ---------- */
.xi-trilho.xi-cartoes { grid-auto-columns: minmax(236px, 258px); align-items: stretch; gap: 16px; }
.xi-cartoes .cartao { scroll-snap-align: start; height: 100%; margin: 0; }
.xi-cartoes .cartao-th .th { aspect-ratio: 210 / 297; border-radius: 12px; font-size: 5px; background: #fff; box-shadow: 0 0 0 1px var(--linha), 0 10px 22px -16px rgba(16, 22, 51, .5); }
.xi-cartoes .th-real .th-img { inset: 0; left: 0; right: 0; top: 0; width: 100%; height: 100%; object-fit: contain; object-position: center; background: #fff; border-radius: 0; box-shadow: none; transform: none !important; }
.xi-cartoes .cartao h3 { -webkit-line-clamp: 2; }
@media (max-width: 760px) { .xi-trilho.xi-cartoes { grid-auto-columns: minmax(220px, 72vw); gap: 12px; } }

/* ---------- 73.ª parte: capas inteiras nos cartões (sem margens nem corte), entrar/criar conta alinhados, convite ---------- */
/* a primeira página ocupa a caixa toda, ao alto, em todos os cartões de materiais */
.cartao .cartao-th .th { aspect-ratio: 210 / 297; border-radius: 12px; background: #fff; font-size: 5.2px; box-shadow: 0 0 0 1px var(--linha); }
.cartao .cartao-th .th-pg { inset: 0; left: 0; right: 0; top: 0; height: 100%; border-radius: 0; box-shadow: none; transform: none !important; padding: 2em; }
.cartao .th-real .th-img, .xi-cartoes .th-real .th-img { inset: 0; left: 0; right: 0; top: 0; width: 100%; height: 100%; object-fit: cover; object-position: top center; background: #fff; border-radius: 0; box-shadow: none; transform: none !important; }
.cartao:hover .cartao-th .th-pg, .cartao:hover .th-real .th-img { transform: none !important; }
.xi-cartoes .cartao-th .th { box-shadow: 0 0 0 1px var(--linha); }
@media (max-width: 600px) { .cartao .cartao-th .th { aspect-ratio: 3 / 4; } }
/* entrar e criar conta: a coluna da esquerda fica sempre no mesmo sítio (em cima), também com o formulário comprido */
@media (min-width: 901px) {
  .auth-centro { place-items: start center; padding-top: clamp(18px, 6vh, 64px); }
  .pasta-auth { align-items: start; }
  .pasta-capa { position: sticky; top: clamp(20px, 6vh, 64px); padding-top: 40px; }
}
/* convite: «Fulano convidou-te» */
.modal.cvb-modal { width: min(440px, 94vw) !important; max-width: min(440px, 94vw) !important; }
.cvb { display: grid; justify-items: center; text-align: center; gap: 10px; padding-top: 8px; }
.cvb-av { position: relative; width: 112px; height: 112px; animation: maEntra .5s cubic-bezier(.2, 1.4, .4, 1) both; }
.cvb-av .av { width: 112px !important; height: 112px !important; box-shadow: 0 0 0 5px var(--azul-claro), 0 18px 34px -18px rgba(16, 22, 51, .55); }
.cvb-selo { position: absolute; right: -4px; bottom: 2px; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--bic); color: #fff; border: 4px solid var(--sup); font-size: .95rem; }
.cvb-k { margin-top: 6px; padding: 4px 12px; border-radius: 99px; background: var(--azul-claro); color: var(--bic); font-weight: 800; font-size: .82rem; }
.cvb h2 { margin: 0; font-family: var(--f-tit); font-size: 1.45rem; font-weight: 800; letter-spacing: -.02em; line-height: 1.2; }
.cvb p { margin: 0; color: var(--tinta-2); line-height: 1.55; }
.cvb-cod { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 12px; background: var(--sup-2); color: var(--tinta-2); font-size: .86rem; font-weight: 700; }
.cvb-cod b { font-family: ui-monospace, 'Courier New', monospace; font-size: 1rem; letter-spacing: .12em; color: var(--tinta); }
.cvb-ok { width: 100%; margin-top: 6px; }
.cvb-ja { font-weight: 700; }

/* ---------- 74.ª parte: cartões sem sobreposição, «Ver todo o acervo», material aberto em ecrã inteiro, partilhar ---------- */
/* o autor numa linha e os números com o guardar noutra (cartões estreitos): nada fica por cima de nada */
.xi-cartoes .cartao-pe { flex-wrap: wrap; row-gap: 10px; }
.xi-cartoes .cartao-pe .quem { flex: 1 1 100%; }
.xi-cartoes .cartao-pe .cartao-nums { margin-right: auto; }
@media (max-width: 600px) { .cartao-pe { flex-wrap: wrap; row-gap: 10px; } .cartao-pe .quem { flex: 1 1 100%; } .cartao-pe .cartao-nums { margin-right: auto; } }
/* «Ver todo o acervo» */
.xi-tudo { display: flex; justify-content: center; margin: 8px 0 26px; }
.xi-tudo-b { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 16px; width: min(640px, 100%); padding: 16px 18px; border-radius: 22px; border: 1.5px solid var(--linha); background: var(--sup); color: var(--tinta); font: inherit; text-align: left; cursor: pointer; box-shadow: 0 14px 30px -24px rgba(16, 22, 51, .55); transition: border-color .15s, transform .15s, box-shadow .15s; }
.xi-tudo-b:hover { border-color: var(--bic); transform: translateY(-2px); box-shadow: 0 20px 36px -24px rgba(30, 64, 230, .55); }
.xi-tudo-ic { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 16px; background: linear-gradient(160deg, #3355F0, var(--marca) 55%, #1733C2); color: #fff; font-size: 1.25rem; }
.xi-tudo-t { display: grid; gap: 3px; }
.xi-tudo-t strong { font-family: var(--f-tit); font-size: 1.12rem; font-weight: 800; }
.xi-tudo-t small { color: var(--tinta-2); font-size: .86rem; line-height: 1.4; }
.xi-tudo-seta { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--azul-claro); color: var(--bic); }
/* material aberto em ecrã inteiro */
.ecra-ov.ma-ecra .eo-rolo { display: grid; place-items: center; padding: clamp(16px, 4vh, 40px) 16px 32px; }
.ecra-ov.ma-ecra .ma-m { width: min(520px, 100%); }
.ecra-ov.ma-ecra .ma-capa { width: min(190px, 46vw); }
.ecra-ov.ma-ecra .eo-t strong { color: var(--tinta-2); font-size: .95rem; }
/* partilhar treinos e simulados */
.tr-topo-l { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.tr-topo-l .tr-partilhar { margin-left: auto; }
.tr-partilhar { display: inline-flex; align-items: center; gap: 8px; }
.tsi-pub .tsi-regra { margin-top: 4px; }
@media (max-width: 600px) { .tr-partilhar span { display: none; } .tr-partilhar { padding-inline: 14px; } }
.ma-capa .th { aspect-ratio: 210 / 297; height: 100%; border-radius: 0; background: #fff; font-size: 6px; }
.ma-capa .th-pg { inset: 0; left: 0; right: 0; top: 0; height: 100%; border-radius: 0; box-shadow: none; padding: 2em; transform: none !important; }
.ma-capa .th-real .th-img { inset: 0; left: 0; right: 0; top: 0; width: 100%; height: 100%; object-fit: cover; object-position: top center; border-radius: 0; box-shadow: none; transform: none !important; }

/* ---------- 75.ª parte: botões nunca colados e a página dos valores dos pontos ---------- */
:where(.linha-btn) { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.tsi .linha-btn { gap: 12px; margin-top: 6px; }
/* página dos valores dos pontos */
.vp { display: grid; gap: 18px; }
.vp > .smtp-livre { display: inline-flex; align-items: center; gap: 8px; justify-self: start; margin: 0; padding: 8px 14px; border-radius: 99px; background: #ECFDF3; color: #0F7A3D; font-weight: 700; }
.vp-nav { position: sticky; top: 0; z-index: 3; display: flex; gap: 8px; overflow-x: auto; padding: 10px 2px; background: var(--fundo, #F4F6FB); scrollbar-width: none; }
.vp-nav::-webkit-scrollbar { display: none; }
.vp-nav-a { flex: none; display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border-radius: 99px; border: 1.5px solid var(--linha); background: var(--sup); color: var(--tinta-2); font: inherit; font-weight: 800; font-size: .84rem; cursor: pointer; white-space: nowrap; transition: border-color .15s, color .15s; }
.vp-nav-a i { color: var(--bic); }
.vp-nav-a:hover { border-color: var(--bic); color: var(--bic); }
.vp .vp-grelha.vp-temas { grid-template-columns: repeat(auto-fit, minmax(380px, 1fr)); gap: 18px; align-items: start; }
.vp .vp-sec { padding: 0 !important; overflow: hidden; border-radius: 22px !important; scroll-margin-top: 70px; }
.vp .vp-sec > header { display: flex; align-items: center; gap: 14px; padding: 18px 20px 14px; margin: 0; border-bottom: 1px solid var(--linha); background: linear-gradient(180deg, var(--sup), var(--sup-2)); }
.vp-sec-ic { display: grid; place-items: center; flex: none; width: 46px; height: 46px; border-radius: 15px; color: #fff; font-size: 1.1rem; box-shadow: 0 10px 20px -14px rgba(16, 22, 51, .6); }
.vp-sec-ic.c1 { background: linear-gradient(160deg, #3B82F6, #1D4ED8); }
.vp-sec-ic.c2 { background: linear-gradient(160deg, #3355F0, #1733C2); }
.vp-sec-ic.c3 { background: linear-gradient(160deg, #0EA5E9, #0369A1); }
.vp-sec-ic.c4 { background: linear-gradient(160deg, #F59E0B, #B45309); }
.vp-sec-ic.c5 { background: linear-gradient(160deg, #10B981, #047857); }
.vp-sec-ic.c6 { background: linear-gradient(160deg, #14B8A6, #0F766E); }
.vp-sec-ic.c7 { background: linear-gradient(160deg, #F472B6, #DB2777); }
.vp-sec-ic.c8 { background: linear-gradient(160deg, #EF4444, #B91C1C); }
.vp-sec-ic.c9 { background: linear-gradient(160deg, #FBBF24, #D97706); }
.vp-sec-ic.c10 { background: linear-gradient(160deg, #64748B, #334155); }
.vp-sec-ic.c11 { background: linear-gradient(160deg, #1E40E6, #101633); }
.vp-sec-t h3 { margin: 0; font-size: 1.08rem; font-weight: 800; letter-spacing: -.01em; }
.vp-sec-t small { display: block; margin-top: 2px; color: var(--tinta-2); font-size: .82rem; line-height: 1.4; }
.vp-linhas { display: grid; padding: 4px 12px 10px; }
.vp .vp-linha { grid-template-columns: minmax(0, 1fr) 136px; grid-template-areas: "rot in" "rot orig"; gap: 2px 14px; padding: 12px 8px; border-top: 1px solid var(--linha); align-items: center; }
.vp .vp-linhas .vp-linha:first-child { border-top: 0; }
.vp .vp-rot { grid-area: rot; display: grid; gap: 3px; font-weight: 750; color: var(--tinta); font-size: .94rem; line-height: 1.35; }
.vp .vp-rot small { font-weight: 600; color: var(--tinta-3); font-size: .82rem; line-height: 1.4; }
.vp .vp-linha .vp-in { grid-area: in; height: 46px; border-radius: 14px; background: var(--sup-2); border-color: transparent; }
.vp .vp-in i { display: grid; place-items: center; flex: none; width: 24px; height: 24px; border-radius: 8px; background: var(--sup); color: var(--tinta-2); font-size: .85rem; }
.vp .vp-in i:empty { display: none; }
.vp .vp-in input { font-size: 1.1rem; font-weight: 800; }
.vp .vp-in:focus-within { background: var(--sup); border-color: var(--bic); }
.vp .vp-orig { grid-area: orig; justify-self: end; font-style: normal; font-size: .78rem; font-weight: 800; color: var(--bic); }
.vp .vp-orig:empty { display: none; }
.vp .vp-linha:has(.vp-orig:not(:empty)) .vp-in { border-color: #9DB4FF; background: var(--azul-suave, #EEF2FF); }
.vp .vp-sec-pat .tab-w { padding: 8px 14px 14px; }
.vp .vp-tab th { font-size: .78rem; text-transform: uppercase; letter-spacing: .05em; color: var(--tinta-3); }
.vp .vp-tab td { padding: 10px 8px; }
.vp .vp-tab .pt-tag { display: inline-flex; align-items: center; gap: 10px; font-weight: 800; }
.vp .vp-mais { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 0 20px 18px; }
.vp .vp-mais small { color: var(--tinta-3); }
.vp .vp-rodape { position: sticky; bottom: 0; z-index: 4; display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; padding: 14px 18px; border-radius: 20px; background: var(--sup); border: 1px solid var(--linha); box-shadow: 0 -12px 30px -20px rgba(16, 22, 51, .45); }
.vp .vp-rodape p { margin: 0; display: flex; gap: 8px; align-items: flex-start; color: var(--tinta-2); font-size: .86rem; max-width: 640px; }
@media (max-width: 760px) { .vp .vp-grelha.vp-temas { grid-template-columns: 1fr; } .vp .vp-linha { grid-template-columns: minmax(0, 1fr) 116px; } }
.vp .vp-sec > header { justify-content: flex-start !important; flex-wrap: nowrap !important; text-align: left; }
.vp .vp-sec-t { flex: 1; min-width: 0; text-align: left; }

/* ---------- 76.ª parte: apagar nos cartões, criar e editar como páginas ---------- */
.ta-c-top-d { display: inline-flex; align-items: center; gap: 8px; }
.ta-c-apagar { display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; border: 1.5px solid var(--linha); background: var(--sup); color: var(--tinta-3); font-size: .85rem; cursor: pointer; transition: color .15s, border-color .15s, background .15s; }
.ta-c-apagar:hover, .ta-c-apagar:focus-visible { color: #DC2626; border-color: #FCA5A5; background: #FEF2F2; outline: none; }
.ta-cs-top { justify-content: space-between; }
/* o editor é uma página do site: fica na coluna principal, por baixo da barra de cima (com o menu recolhido) */
body.te-pagina .casca > main#app { display: none !important; }
.te-raiz.te-pag { position: relative; inset: auto; z-index: auto; grid-column: -2 / -1; height: calc(100vh - var(--topo-h)); height: calc(100dvh - var(--topo-h)); min-width: 0; overflow: hidden; }
.te-raiz.te-pag .te { height: 100%; }
body.te-pagina .robo, body.te-pagina .robo-btn, body.te-pagina .subir { display: none !important; }
/* criar um treino ou um simulado: página com um cartão ao centro */
.ta-novo-pag { max-width: 860px; margin: 0 auto; padding: 18px clamp(14px, 3vw, 28px) 48px; display: grid; gap: 14px; }
.ta-novo-pag .ta-voltar { justify-self: start; }
.ta-novo-card { background: var(--sup); border: 1px solid var(--linha); border-radius: 26px; padding: clamp(18px, 3vw, 34px); box-shadow: 0 24px 48px -36px rgba(16, 22, 51, .45); }
.ta-novo-card.larga { padding: clamp(16px, 2.5vw, 28px); }
.ta-novo-pag:has(.ta-novo-card.larga) { max-width: 1000px; }
.ta-novo-card .ta-form .linha-btn { position: static; box-shadow: none; padding-top: 6px; justify-content: flex-end; }

/* ---------- 77.ª parte: «Criar» sem roxo, questões prontas no centro, prompts para imagens ---------- */
.btn-ia { background: linear-gradient(135deg, #3355F0, #1E40E6 60%, #1733C2) !important; border-color: transparent !important; color: #fff !important; }
.btn-ia i { color: #fff !important; }
.te-sim-op.ia i { color: var(--bic); }
.te-iar-banner { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 14px; max-width: 900px; margin: 0 auto 16px; padding: 16px 18px; border-radius: 20px; background: var(--sup); border: 2px solid var(--bic); box-shadow: 0 18px 36px -26px rgba(30, 64, 230, .6); }
.te-iar-banner-ic { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 15px; background: var(--bic); color: #fff; font-size: 1.15rem; }
.te-iar-banner-t strong { display: block; font-size: 1.05rem; font-weight: 800; }
.te-iar-banner-t small { color: var(--tinta-2); font-size: .86rem; line-height: 1.4; }
.te-iar-banner-ac { display: flex; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
@media (max-width: 760px) { .te-iar-banner { grid-template-columns: auto minmax(0, 1fr); } .te-iar-banner-ac { grid-column: 1 / -1; justify-content: stretch; } .te-iar-banner-ac .btn { flex: 1; } }
.te-prompts { margin-top: 14px; border-radius: 16px; border: 1px solid var(--linha); background: var(--sup); overflow: hidden; }
.te-prompts > summary { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; padding: 12px 16px; cursor: pointer; font-weight: 800; color: var(--tinta); list-style: none; }
.te-prompts > summary::-webkit-details-marker { display: none; }
.te-prompts > summary i { color: var(--bic); }
.te-prompts > summary small { flex-basis: 100%; padding-left: 26px; color: var(--tinta-3); font-weight: 600; font-size: .82rem; }
.te-prompts[open] > summary { border-bottom: 1px solid var(--linha); }
.te-prompt { padding: 12px 16px; border-top: 1px solid var(--linha); }
.te-prompts[open] .te-prompt:first-of-type { border-top: 0; }
.te-prompt-cab { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.te-prompt-cab span { display: grid; gap: 2px; }
.te-prompt-cab small { color: var(--tinta-3); font-size: .8rem; }
.te-prompt-txt { margin: 0; max-height: 210px; overflow: auto; white-space: pre-wrap; word-break: break-word; padding: 12px 14px; border-radius: 12px; background: var(--sup-2); color: var(--tinta-2); font: 500 .82rem/1.55 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }

/* ---------- 78.ª parte: tamanho do texto (pequeno, grande, muito grande) ---------- */
.tx .t-p, #te-raiz [contenteditable] .t-p { font-size: .85em; }
.tx .t-g, #te-raiz [contenteditable] .t-g { font-size: 1.25em; line-height: 1.35; }
.tx .t-mg, #te-raiz [contenteditable] .t-mg { font-size: 1.6em; line-height: 1.25; font-weight: 750; }
.te-tam-pal { display: flex; gap: 6px; padding: 8px; }
.te-tam-pal button { display: grid; justify-items: center; gap: 2px; min-width: 64px; height: auto !important; width: auto !important; padding: 6px 8px !important; border-radius: 10px !important; background: rgba(255, 255, 255, .08) !important; color: #fff; }
.te-tam-pal button:hover { background: rgba(255, 255, 255, .18) !important; }
.te-tam-pal button span { font-weight: 800; line-height: 1; }
.te-tam-pal button small { font-size: .7rem; font-weight: 700; opacity: .85; white-space: nowrap; }

/* ---------- 79.ª parte: entrada do simulado bem arrumada (computador e telemóvel) ---------- */
.tsi3 { display: grid; gap: 18px; margin-top: 6px; }
.tsi3-hero { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 20px; padding: clamp(18px, 3vw, 32px); border-radius: 28px; background: linear-gradient(135deg, color-mix(in srgb, var(--cor, #1E40E6) 13%, var(--sup)), var(--sup) 72%); border: 1px solid var(--linha); }
.tsi3-hero h1 { margin: 10px 0 6px; font-size: clamp(1.45rem, 3vw, 2.3rem); line-height: 1.12; letter-spacing: -.025em; }
.tsi3-desc { margin: 0; color: var(--tinta-2); max-width: 72ch; line-height: 1.5; }
.tsi3-n { list-style: none; margin: 16px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.tsi3-n li { display: inline-flex; align-items: center; gap: 8px; padding: 10px 14px; border-radius: 14px; background: var(--sup); border: 1px solid var(--linha); }
.tsi3-n li i { color: var(--bic); }
.tsi3-n li b { font-family: var(--f-tit); font-size: 1.15rem; font-weight: 800; }
.tsi3-n li span { color: var(--tinta-2); font-size: .86rem; font-weight: 700; }
.tsi3-cal { justify-self: end; }
.tsi3-corpo { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 18px; align-items: start; }
.tsi3-corpo.so-dir { grid-template-columns: minmax(0, 520px); justify-content: center; }
.tsi3-esq { padding: clamp(16px, 2.4vw, 26px); border-radius: 24px; background: var(--sup); border: 1px solid var(--linha); }
.tsi3-esq .tsi-opc { margin: 0; }
.tsi3-esq .tsi-opc-k:first-child { margin-top: 0; }
.tsi3-esq .tsi-modos { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
.tsi3-esq .tsi-modo { grid-template-columns: 1fr; align-items: start !important; gap: 10px; padding: 16px; }
.tsi3-dir { position: sticky; top: calc(var(--topo-h, 64px) + 16px); }
.tsi3-pronto { display: grid; gap: 12px; padding: 20px; border-radius: 24px; background: var(--sup); border: 2px solid var(--bic); box-shadow: 0 22px 44px -32px rgba(30, 64, 230, .6); }
.tsi3-pronto > strong { font-family: var(--f-tit); font-size: 1.2rem; font-weight: 800; }
.tsi3-pronto .tsi-regra { display: flex; gap: 8px; margin: 0; color: var(--tinta-2); font-size: .9rem; line-height: 1.5; }
.tsi3-pronto .tsi-regra i { color: var(--bic); margin-top: 3px; }
.tsi3-bts { display: grid; gap: 10px; }
.tsi3-bts .btn { width: 100%; justify-content: center; }
.tsi3-bts .tr-partilhar span { display: inline !important; }
@media (max-width: 1080px) { .tsi3-esq .tsi-modos { grid-template-columns: 1fr !important; } .tsi3-esq .tsi-modo { grid-template-columns: auto minmax(0, 1fr); align-items: center !important; } }
@media (max-width: 900px) { .tsi3-corpo { grid-template-columns: 1fr; } }
@media (max-width: 640px) {
  .tsi3-hero { grid-template-columns: 1fr; padding: 18px 16px; border-radius: 22px; }
  .tsi3-cal { display: none; }
  .tsi3-n { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  .tsi3-n li { flex-direction: column; align-items: flex-start; gap: 0; padding: 10px 12px; }
  .tsi3-n li i { display: none; }
  .tsi3-n li span { font-size: .78rem; line-height: 1.25; }
  .tsi3-esq { padding: 16px 14px; border-radius: 20px; }
  .tsi3-dir { position: sticky; top: auto; bottom: 0; z-index: 6; margin: 0 -2px; }
  .tsi3-pronto { gap: 8px; padding: 12px 14px calc(12px + env(safe-area-inset-bottom, 0px)); border-radius: 20px 20px 0 0; border-width: 2px 2px 0; box-shadow: 0 -16px 32px -22px rgba(16, 22, 51, .45); }
  .tsi3-pronto > strong { display: none; }
  .tsi3-pronto .tsi-regra { font-size: .8rem; }
  .tsi3-bts { grid-template-columns: minmax(0, 1fr) auto; }
  .tsi3-bts .tr-partilhar span { display: none !important; }
  .tsi3-bts .tr-partilhar { width: auto; padding-inline: 16px; }
}
@media (max-width: 640px) { .tsi3-pronto .tsi-regra span { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } }

/* ---------- 80.ª parte: simulado — resultado na barra de baixo e, em ecrãs grandes, coluna à esquerda com o tempo e os números ---------- */
.ts-pe-fb .ts-fb-txt { margin: 2px 0 0; font-weight: 700; font-size: 1rem; color: var(--tinta); }
.ts-pe-fb .ts-fb-txt .tx, .ts-pe-fb .ts-fb-txt .tx p { display: inline; margin: 0; }
.ts-pe-fb .tp-acoes { display: flex; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
.ts-fb-res { margin-top: 16px; }
@media (max-width: 640px) { .ts-pe-fb { flex-wrap: wrap; } .ts-pe-fb .tp-fb .cal { width: 52px; } .ts-pe-fb .tp-acoes { width: 100%; } .ts-pe-fb .tp-acoes .btn { flex: 1; } }
@media (min-width: 1100px) {
  .tp.ts { display: grid; grid-template-columns: 310px minmax(0, 1fr); grid-template-rows: auto auto minmax(0, 1fr) auto; grid-template-areas: "topo palco" "nav palco" ". palco" ". pe"; }
  .tp.ts::before { content: ""; grid-column: 1; grid-row: 1 / 5; background: var(--sup); border-right: 1px solid var(--linha); }
  .ts .ts-topo { grid-area: topo; position: relative; z-index: 1; width: auto; margin: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "tt x" "tempo tempo" "ent ent"; gap: 14px; padding: 24px 22px 12px; align-items: start; }
  .ts .ts-topo .tp-x { grid-area: x; }
  .ts .ts-topo .ts-tt { grid-area: tt; min-width: 0; }
  .ts .ts-topo .ts-tt strong { display: block; white-space: normal; line-height: 1.3; font-size: 1rem; }
  .ts .ts-topo .ts-tempo { grid-area: tempo; justify-content: center; font-size: 1.7rem; padding: 14px; border-radius: 16px; }
  .ts .ts-topo [data-action="ts-entregar"] { grid-area: ent; width: 100%; justify-content: center; min-height: 46px; }
  .ts .ts-nav { grid-area: nav; position: relative; z-index: 1; width: auto; margin: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; padding: 8px 22px 24px; overflow: visible; align-content: start; }
  .ts .ts-nav .ts-q-b { width: 100%; height: 46px; }
  .ts .ts-palco { grid-area: palco; min-height: 0; padding-top: 26px; }
  .ts .ts-pe { grid-area: pe; }
}

/* ---------- 81.ª parte ---------- */
/* «+» entre os passos */
.te-passos .te-ins-li { list-style: none; display: flex; align-items: center; gap: 8px; height: 18px; margin: -4px 0; padding-left: 10px; }
.te-passos .te-ins-li::after { content: ""; flex: 1; height: 2px; border-radius: 2px; background: transparent; transition: background .15s; }
.te-passos .te-ins-li:hover::after { background: var(--azul-claro); }
.te-pins { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; border: 1.5px solid var(--linha); background: var(--sup); color: var(--bic); font-size: .74rem; cursor: pointer; opacity: .55; transition: opacity .15s, transform .15s, border-color .15s; }
.te-passos .te-ins-li:hover .te-pins, .te-pins:focus-visible { opacity: 1; border-color: var(--bic); transform: scale(1.08); outline: none; }
.te-ins-menu { position: fixed; z-index: 9700; display: grid; gap: 2px; min-width: 210px; padding: 8px; border-radius: 16px; background: var(--sup); border: 1px solid var(--linha); box-shadow: 0 24px 50px -24px rgba(16, 22, 51, .5); }
.te-ins-menu b { padding: 4px 10px 6px; font-size: .78rem; text-transform: uppercase; letter-spacing: .05em; color: var(--tinta-3); }
.te-ins-menu button { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 0; border-radius: 10px; background: none; color: var(--tinta); font: inherit; font-weight: 700; text-align: left; cursor: pointer; }
.te-ins-menu button i { width: 18px; color: var(--bic); }
.te-ins-menu button:hover { background: var(--sup-2); }
/* Explorar no telemóvel: «Limpar filtros» à vista em vez do × pequeno */
.limpar-m { display: none; }
@media (max-width: 640px) {
  .xchip-x, .xchip-limpar { display: none !important; }
  .limpar-m { display: inline-flex; align-items: center; gap: 6px; padding: 9px 12px; border-radius: 12px; border: 1.5px solid #FCA5A5; background: #FEF2F2; color: #B42318; font: inherit; font-weight: 800; font-size: .84rem; cursor: pointer; }
  .res-dir { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
}
/* separadores dos treinos: centrados no telemóvel e o ativo a azul */
.tr-cria-aba { padding: 10px 18px; font-size: .95rem; }
.tr-cria-aba[aria-selected="true"] { background: var(--bic) !important; color: #fff !important; box-shadow: 0 10px 20px -12px rgba(30, 64, 230, .7) !important; }
.tr-cria-aba[aria-selected="true"] i { color: #fff !important; }
@media (max-width: 760px) { .tr-cria { display: flex; flex-direction: column; align-items: center; gap: 10px; } .tr-cria-abas { margin: 0 auto; } .tr-cria-aba { padding: 11px 18px; font-size: 1rem; } }
/* títulos das páginas a negrito, como os outros, e os baixados encostados à esquerda */
.off-cab h1, .aov-cab h1, .rk-cab-t h1 { font-family: var(--f-tit); font-weight: 800; font-stretch: 90%; letter-spacing: -.035em; font-size: clamp(1.6rem, 2.8vw, 2.2rem); }
.off-pag { width: 100% !important; max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; }
/* painel: Treine o Cérebro, Ao Vivo e comunidade */
.adm-fluxo-g { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; padding: 4px 0 6px; }
.adm-fx { display: flex; gap: 12px; align-items: flex-start; padding: 14px; border-radius: 16px; background: var(--sup-2); }
.adm-fx-ic { display: grid; place-items: center; flex: none; width: 40px; height: 40px; border-radius: 13px; background: var(--azul-claro); color: var(--bic); }
.adm-fx b { display: block; font-family: var(--f-tit); font-size: 1.45rem; font-weight: 800; line-height: 1.1; }
.adm-fx span { display: block; font-weight: 700; color: var(--tinta); font-size: .88rem; }
.adm-fx small { display: block; color: var(--tinta-3); font-size: .8rem; margin-top: 2px; }
.adm-fluxo-graf { margin-top: 14px; }
.adm-fluxo-graf h4 { margin: 0 0 8px; font-size: .9rem; color: var(--tinta-2); }
.rel-ano { display: inline-flex; align-items: center; gap: 8px; padding: 6px 10px; border-radius: 12px; border: 1.5px solid var(--linha); background: var(--sup); font-weight: 700; }
.rel-ano.on { border-color: var(--bic); }
.rel-ano select { border: 0; background: transparent; font: inherit; font-weight: 800; color: var(--tinta); }
/* convidar colegas */
.conv2-g { display: grid; grid-template-columns: minmax(0, 440px) minmax(0, 1fr); gap: 18px; align-items: start; }
.conv2-esq { position: sticky; top: calc(var(--topo-h, 64px) + 16px); display: grid; gap: 14px; }
.conv2-link { display: grid; gap: 12px; padding: 22px !important; border: 2px solid var(--bic) !important; }
.conv2-selo { justify-self: start; display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; border-radius: 99px; background: var(--azul-claro); color: var(--bic); font-weight: 800; font-size: .86rem; }
.conv2-selo svg { width: 18px; height: 18px; }
.conv2-link h2 { margin: 0; font-family: var(--f-tit); font-size: clamp(1.3rem, 2.2vw, 1.7rem); font-weight: 800; letter-spacing: -.02em; line-height: 1.2; }
.conv2-quando { margin: 0; color: var(--tinta-2); line-height: 1.55; }
.conv2-quando strong { color: var(--tinta); }
.conv2-url { display: flex; align-items: center; gap: 10px; padding: 8px 8px 8px 14px; border-radius: 16px; background: var(--sup-2); border: 1.5px dashed #9DB4FF; }
.conv2-url-t { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 800; color: var(--bic); }
.conv2-url .btn { flex: none; }
.conv2-num { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.conv2-num > div { display: grid; gap: 2px; padding: 14px; border-radius: 16px; background: var(--sup); border: 1px solid var(--linha); }
.conv2-num b { font-family: var(--f-tit); font-size: 1.5rem; font-weight: 800; line-height: 1.1; }
.conv2-num span { color: var(--tinta-2); font-size: .82rem; font-weight: 700; line-height: 1.3; }
.conv2-num .ganhos b { color: var(--bic); }
.conv2-lista { padding: 20px !important; }
.conv2-lista-cab { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.conv2-lista-cab h2 { margin: 0; font-size: 1.15rem; font-weight: 800; }
.conv2-lista-cab small { padding: 4px 10px; border-radius: 99px; background: var(--azul-claro); color: var(--bic); font-weight: 800; }
.conv2-busca { margin-bottom: 12px; }
.convidados2 { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.conv2-p { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 16px; border: 1px solid var(--linha); background: var(--sup); color: var(--tinta); text-decoration: none; transition: border-color .15s, background .15s; }
.conv2-p:hover { border-color: var(--bic); background: var(--azul-suave, #EEF2FF); }
.conv2-p .av { width: 46px !important; height: 46px !important; }
.conv2-p-t { display: grid; gap: 2px; min-width: 0; }
.conv2-p-t strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.conv2-p-t small { color: var(--tinta-3); font-size: .82rem; }
.conv2-p .ganho { padding: 4px 10px; border-radius: 99px; background: var(--azul-claro); color: var(--bic); font-weight: 800; }
.conv2-p .conv-est { font-size: .8rem; color: var(--tinta-3); text-align: right; }
.conv2-vazio { display: grid; place-items: center; padding: 26px 0; }
@media (max-width: 960px) { .conv2-g { grid-template-columns: 1fr; } .conv2-esq { position: static; } }
@media (max-width: 520px) { .conv2-url { flex-direction: column; align-items: stretch; padding: 12px; } .conv2-url .btn { width: 100%; justify-content: center; } .conv2-p { grid-template-columns: auto minmax(0, 1fr); } .conv2-p .ganho, .conv2-p .conv-est { grid-column: 2; justify-self: start; text-align: left; } }
.conv2-esq, .conv2-lista, .conv2-link, .conv2-link > *, .conv2-num { min-width: 0; }
.conv2-esq, .conv2-link { grid-template-columns: minmax(0, 1fr); }

/* ---------- 82.ª parte: ícones no sítio, convite com bilhete, «Limpar filtros» sem vermelho, menu sem barra à toa, separadores do treino no painel ---------- */
.adm-fx .adm-fx-ic { display: grid !important; place-items: center; font-size: 1rem; }
.adm-fx-ic i { margin: 0 !important; line-height: 1; }
.te-pins, .ta-c-mais { padding: 0 !important; line-height: 1 !important; }
.te-pins i, .ta-c-mais i { margin: 0 !important; display: block; line-height: 1 !important; }
.te-pins { place-items: center; }
/* «Limpar filtros» no telemóvel: discreto, sem vermelho */
@media (max-width: 640px) { .limpar-m { border-color: var(--linha) !important; background: var(--sup) !important; color: var(--tinta) !important; } .limpar-m i { color: var(--bic); } }
/* menu lateral: a barra de deslizar só aparece quando é precisa (e ao passar por cima) */
.lateral { scrollbar-width: none; }
.lateral::-webkit-scrollbar { width: 0; background: transparent; }
@media (hover: hover) { .lateral:hover { scrollbar-width: thin; } .lateral:hover::-webkit-scrollbar { width: 6px; } .lateral:hover::-webkit-scrollbar-thumb { background: var(--linha-2, #CBD2E6); border-radius: 6px; } }
/* convidar: bilhete com o boneco e o código */
.conv2-topo { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; align-items: center; }
.conv2-topo-t { display: grid; gap: 10px; min-width: 0; }
.conv2-bilhete { position: relative; display: grid; justify-items: center; gap: 2px; width: 132px; padding: 14px 10px 0; border-radius: 18px; background: linear-gradient(165deg, #3355F0, var(--marca, #1E40E6) 55%, #1733C2); color: #fff; text-align: center; box-shadow: 0 16px 30px -18px rgba(30, 64, 230, .8); overflow: hidden; }
.conv2-bilhete::before, .conv2-bilhete::after { content: ""; position: absolute; bottom: 46px; width: 16px; height: 16px; border-radius: 50%; background: var(--sup); }
.conv2-bilhete::before { left: -8px; } .conv2-bilhete::after { right: -8px; }
.conv2-b-av .av { width: 58px !important; height: 58px !important; box-shadow: 0 0 0 4px rgba(255, 255, 255, .35); }
.conv2-b-de { margin-top: 6px; font-size: .72rem; font-weight: 700; opacity: .85; text-transform: uppercase; letter-spacing: .06em; }
.conv2-b-n { font-size: .86rem; font-weight: 800; line-height: 1.2; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.conv2-b-cod { display: grid; width: calc(100% + 20px); margin-top: 10px; padding: 8px 0 10px; border-top: 2px dashed rgba(255, 255, 255, .45); background: rgba(0, 0, 0, .12); }
.conv2-b-cod small { font-size: .66rem; font-weight: 700; opacity: .8; text-transform: uppercase; letter-spacing: .08em; }
.conv2-b-cod b { font-family: ui-monospace, 'Courier New', monospace; font-size: 1.05rem; letter-spacing: .14em; }
@media (max-width: 400px) { .conv2-topo { grid-template-columns: 1fr; } .conv2-bilhete { width: 100%; grid-template-columns: auto 1fr; justify-items: start; text-align: left; padding: 12px 14px; } .conv2-bilhete::before, .conv2-bilhete::after { display: none; } }
/* Treine o Cérebro no painel: separadores e métricas */
.ta-abas-adm { margin: 18px 0 6px; }
.ta-met { display: grid; gap: 16px; }
.ta-met-h { display: flex; align-items: center; gap: 10px; margin: 10px 0 0; font-size: 1.15rem; font-weight: 800; }
.ta-met-h i { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 11px; background: var(--bic); color: #fff; font-size: .9rem; }
.ta-met-nota { display: flex; gap: 8px; align-items: flex-start; margin: 0; color: var(--tinta-2); font-size: .88rem; }
.ta-met-nota i { color: var(--bic); margin-top: 3px; }
.ta-cs-pe { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; padding-top: 10px; }
.ta-cs-pe .ta-cs-ir { margin: 0; }
.ta-abas-adm .tr-cria-aba { border: 0; background: transparent; font: inherit; font-weight: 750; cursor: pointer; }
.conv2-selo { white-space: nowrap; font-size: .8rem; justify-self: start; }

/* ---------- 83.ª parte: «Ouvir com som» nos vídeos e valores dos pontos em três grupos ---------- */
.vs-som { position: absolute; top: 14px; right: 14px; z-index: 2; display: inline-flex; align-items: center; gap: 9px; padding: 11px 18px; border: 0; border-radius: 99px; background: rgba(255, 255, 255, .96); color: var(--bic); font: inherit; font-weight: 800; font-size: .95rem; box-shadow: 0 12px 28px -12px rgba(0, 0, 0, .55); cursor: pointer; animation: vsPulso 2.2s ease-in-out infinite; }
.vs-som i { font-size: 1.05rem; }
.vs-som:hover { background: #fff; transform: translateY(-1px); }
.video-site.com-som .vs-som { display: none; }
@keyframes vsPulso { 0%, 100% { box-shadow: 0 12px 28px -12px rgba(0, 0, 0, .55), 0 0 0 0 rgba(255, 255, 255, .55); } 50% { box-shadow: 0 12px 28px -12px rgba(0, 0, 0, .55), 0 0 0 10px rgba(255, 255, 255, 0); } }
@media (max-width: 560px) { .vs-som { top: 10px; right: 10px; padding: 9px 14px; font-size: .86rem; } }
@media (prefers-reduced-motion: reduce) { .vs-som { animation: none; } }
/* valores: resumo da economia */
.vp-resumo { margin: 14px 0 6px; padding: 20px; border-radius: 22px; background: var(--sup); border: 1.5px solid var(--linha); }
.vp-res-cab { display: flex; gap: 14px; align-items: flex-start; }
.vp-res-ic { display: grid; place-items: center; flex: none; width: 46px; height: 46px; border-radius: 15px; background: var(--bic); color: #fff; font-size: 1.1rem; }
.vp-res-cab h3 { margin: 0 0 4px; font-size: 1.15rem; font-weight: 800; }
.vp-res-cab p { margin: 0; color: var(--tinta-2); line-height: 1.55; font-size: .92rem; max-width: 900px; }
.vp-res-g { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 10px; margin-top: 16px; }
.vp-res-i { display: grid; gap: 2px; padding: 14px; border-radius: 16px; background: var(--sup-2); }
.vp-res-i i { color: var(--bic); margin-bottom: 4px; }
.vp-res-i b { font-family: var(--f-tit); font-size: 1.25rem; font-weight: 800; line-height: 1.15; }
.vp-res-i span { font-weight: 700; font-size: .86rem; color: var(--tinta); }
.vp-res-i small { color: var(--tinta-3); font-size: .8rem; line-height: 1.35; }
.vp-res-av { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 6px; }
.vp-res-av li { display: flex; gap: 9px; align-items: flex-start; padding: 10px 12px; border-radius: 12px; background: #FFF7E6; color: #8A5A00; font-weight: 650; font-size: .88rem; line-height: 1.4; }
.vp-res-av li i { margin-top: 3px; }
.vp-res-ok { display: flex; gap: 8px; align-items: center; margin: 14px 0 0; padding: 10px 12px; border-radius: 12px; background: #E8F7EE; color: #146C3A; font-weight: 700; font-size: .9rem; }
/* valores: títulos dos três grupos */
.vp-grupo { display: flex; align-items: center; gap: 12px; margin: 26px 0 12px; font-size: 1.2rem; font-weight: 800; }
.vp-grupo > span:last-child { display: grid; gap: 2px; }
.vp-grupo small { font-size: .82rem; font-weight: 600; color: var(--tinta-3); }
.vp-gn { display: grid; place-items: center; flex: none; width: 34px; height: 34px; border-radius: 11px; color: #fff; font-size: 1rem; }
.vp-gn.ganha { background: #16A34A; } .vp-gn.gasta { background: #DC2626; } .vp-gn.trava { background: var(--bic); }

/* ---------- 84.ª parte: valores em Ganhos, Descontos e Limites; pontos congelados ---------- */
.vp-sec-info .vp-info { display: grid; gap: 12px; padding: 14px 18px 18px; }
.vp-sec-info .vp-info p { margin: 0; color: var(--tinta-2); line-height: 1.55; font-size: .92rem; }
.vp-sec-info .vp-info .btn { justify-self: start; }
.vp-lim-exp { display: flex; gap: 14px; align-items: flex-start; margin: 0 0 14px; padding: 18px; border-radius: 20px; background: var(--azul-claro); border: 1.5px solid #C7D3FF; }
.vp-lim-ic { display: grid; place-items: center; flex: none; width: 44px; height: 44px; border-radius: 14px; background: var(--bic); color: #fff; font-size: 1.05rem; }
.vp-lim-exp h3 { margin: 0 0 6px; font-size: 1.08rem; font-weight: 800; }
.vp-lim-exp p { margin: 0 0 8px; color: var(--tinta-2); line-height: 1.6; font-size: .92rem; max-width: 980px; }
.vp-lim-exp p b { color: var(--tinta); }
.vp-lim-ex { padding: 10px 12px; border-radius: 12px; background: var(--sup); margin: 4px 0 0 !important; }
.wl-gelo { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 99px; background: #E0F2FE; color: #0369A1; font-weight: 800; font-size: .82rem; }
.wl-aviso-gelo { background: #E0F2FE !important; color: #075985 !important; }

/* ---------- 85.ª parte: cartão do Treine o Cérebro no painel arrumado; interruptor verde ---------- */
.ta-hero { grid-template-columns: auto minmax(0, 1fr) minmax(250px, 330px) !important; align-items: center !important; gap: 18px 26px !important; padding: 22px 24px !important; }
.ta-hero.on { border-color: color-mix(in srgb, #16A34A 45%, var(--linha)) !important; background: linear-gradient(120deg, color-mix(in srgb, #16A34A 9%, var(--sup)), var(--sup) 60%) !important; }
.ta-hero-cal .cal { width: 120px !important; }
.ta-hero-t h2 { font-size: 1.4rem; font-weight: 800; }
.ta-hero-ac { gap: 12px 14px; margin-top: 8px; }
.ta-hero-nota { display: flex; gap: 12px; align-items: flex-start; align-self: center; padding: 16px; border-radius: 18px; background: var(--sup-2); border: 1px solid var(--linha); }
.ta-hn-ic { display: grid; place-items: center; flex: none; width: 38px; height: 38px; border-radius: 12px; background: var(--azul-claro); color: var(--bic); }
.ta-hero-nota strong { display: block; margin-bottom: 4px; font-size: .94rem; font-weight: 800; }
.ta-hero-nota p { margin: 0; color: var(--tinta-2); font-size: .86rem; line-height: 1.5; }
/* interruptor: pílula, cinzento quando desligado, verde e a brilhar quando ligado */
.ta-sw { gap: 12px; padding: 7px 16px 7px 7px; border-radius: 999px; border: 1.5px solid var(--linha); background: var(--sup); transition: background .2s ease, border-color .2s ease; }
.ta-sw:hover { border-color: color-mix(in srgb, #16A34A 35%, var(--linha)); }
.ta-sw-b { width: 52px; height: 30px; background: #CBD2E1; }
.ta-sw-b::after { top: 4px; left: 4px; width: 22px; height: 22px; }
.ta-sw input:checked + .ta-sw-b { background: #16A34A; box-shadow: 0 0 0 4px rgba(22, 163, 74, .18), 0 0 18px rgba(22, 163, 74, .5); }
.ta-sw input:checked + .ta-sw-b::after { transform: translateX(22px); }
.ta-sw:has(input:checked) { border-color: color-mix(in srgb, #16A34A 50%, var(--linha)); background: color-mix(in srgb, #16A34A 10%, var(--sup)); }
.ta-sw-t { display: grid; gap: 1px; line-height: 1.15; }
.ta-sw-t b { font-size: .98rem; font-weight: 800; color: var(--tinta); }
.ta-sw-t small { font-size: .8rem; font-weight: 650; color: var(--tinta-3); }
.ta-sw:has(input:checked) .ta-sw-t b { color: #15803D; }
.ta-hero-ac .btn { min-height: 46px; border-radius: 999px; }
@media (max-width: 1020px) { .ta-hero { grid-template-columns: auto minmax(0, 1fr) !important; } .ta-hero-nota { grid-column: 1 / -1; } }
@media (max-width: 620px) {
  .ta-hero { grid-template-columns: 1fr !important; justify-items: center; text-align: center; padding: 20px 18px !important; }
  .ta-hero-t { justify-items: center; }
  .ta-hero-ac { justify-content: center; }
  .ta-hero-nota { text-align: left; width: 100%; box-sizing: border-box; }
}
.ta-sw-t { text-align: left; }

/* ---------- 86.ª parte ---------- */
/* simulado: «Terminar simulado» por baixo dos números (ecrãs grandes) */
.ts-fim { display: none; }
@media (min-width: 1100px) {
  .tp.ts { grid-template-rows: auto auto auto minmax(0, 1fr) auto !important; grid-template-areas: "topo palco" "nav palco" "fim palco" ". palco" ". pe" !important; }
  .tp.ts::before { grid-row: 1 / 6 !important; }
  .ts .ts-topo { grid-template-areas: "tt x" "tempo tempo" !important; }
  .ts .ts-topo [data-action="ts-entregar"] { display: none !important; }
  .ts .ts-fim { grid-area: fim; position: relative; z-index: 1; display: block; padding: 0 22px 22px; }
  .ts .ts-fim .btn { width: 100%; justify-content: center; min-height: 50px; border-radius: 999px; }
}
/* painel: descrição, professor e comentário */
.ta-sobre { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 16px 0 4px; }
.ta-sobre-i { display: grid; gap: 6px; align-content: start; padding: 14px 16px; border-radius: 16px; background: var(--sup-2); border: 1px solid var(--linha); }
.ta-sobre-i p { margin: 0; color: var(--tinta); font-size: .92rem; line-height: 1.5; white-space: pre-line; }
.ta-sobre-i.vazio p { color: var(--tinta-3); font-style: italic; }
@media (max-width: 860px) { .ta-sobre { grid-template-columns: 1fr; } }
/* painel: página de entrada do simulado */
.ta-simv-k { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 99px; background: var(--azul-claro); color: var(--bic); font-weight: 800; font-size: .78rem; margin-bottom: 4px; }
.ta-t-est { display: block; margin-top: 8px; color: var(--tinta-3); font-size: .82rem; line-height: 1.45; }
.ta-simv-g { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 16px 0; }
.ta-simv-c { display: grid; gap: 2px; justify-items: start; padding: 16px; border-radius: 18px; background: var(--sup); border: 1px solid var(--linha); font: inherit; text-align: left; color: var(--tinta); }
.ta-simv-c i { color: var(--bic); margin-bottom: 4px; }
.ta-simv-c b { font-family: var(--f-tit); font-size: 1.35rem; font-weight: 800; line-height: 1.15; }
.ta-simv-c span { color: var(--tinta-3); font-size: .82rem; font-weight: 650; }
.ta-simv-preco { cursor: pointer; transition: border-color .15s, background .15s; }
.ta-simv-preco:hover { border-color: var(--bic); background: var(--azul-suave, #EEF2FF); }
.ta-simv-ac { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-top: 4px; }
.ta-simv-ac .ta-simv-apagar { margin-left: auto; color: #B42318; }
@media (max-width: 860px) { .ta-simv-g { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ta-simv-ac .ta-simv-apagar { margin-left: 0; } }
/* estudantes: professor e comentário */
.tsi3-prof, .trt-prof { display: inline-flex; align-items: center; gap: 8px; margin: 6px 0 0; color: var(--tinta-2); font-weight: 700; font-size: .92rem; }
.tsi3-prof i, .trt-prof i { color: var(--cor, var(--bic)); }
.tr-com { margin: 12px 0 4px; padding: 12px 14px; border-radius: 14px; background: var(--sup-2); border-left: 4px solid var(--cor, var(--bic)); max-width: 680px; }
.tr-com b { display: flex; align-items: center; gap: 8px; font-size: .84rem; color: var(--tinta); }
.tr-com b i { color: var(--cor, var(--bic)); }
.tr-com p { margin: 4px 0 0; color: var(--tinta-2); line-height: 1.55; font-size: .92rem; white-space: pre-line; }
/* valores: uma só cor */
.vp .vp-sec-ic, .vp .vp-sec-ic[class*=" c"] { background: var(--azul-claro) !important; color: var(--bic) !important; box-shadow: none !important; }
.vp .vp-sec-ic i { color: var(--bic) !important; }
.vp .vp-gn, .vp .vp-gn.ganha, .vp .vp-gn.gasta, .vp .vp-gn.trava { background: var(--bic) !important; }
.vp .vp-lim-exp { background: var(--sup); border-color: var(--linha); }
/* carteira: congelados sempre à vista */
.wl-gelo { background: var(--sup-2); color: var(--tinta-2); }
.wl-gelo.tem { background: #E0F2FE; color: #0369A1; }
.ta-simv-k { justify-self: start; width: fit-content; }

/* ---------- 87.ª parte: o site ajustado a qualquer tamanho de ecrã ---------- */
/* painel (Treine o Cérebro): os blocos podem encolher e nada empurra a página para o lado */
.ta > *, .ta-trilha > *, .ta-t-cab2 > *, .ta-t-dupla > *, .ta-sobre > *, .ta-simv-g > *, .ta-mods > *, .ta-m > *, .ta-grade > *, .ta-hero > * { min-width: 0; }
.ta { max-width: 100%; overflow-wrap: anywhere; }
.ta h2, .ta h3, .ta strong { overflow-wrap: anywhere; }
@media (max-width: 640px) {
  .ta-t-top { grid-template-columns: auto minmax(0, 1fr) !important; }
  .ta-t-top .ta-t-bts { grid-column: 1 / -1; width: 100%; justify-content: flex-start !important; }
  .ta-t-tit h2 { font-size: 1.25rem; }
  .ta-t-dupla { grid-template-columns: 1fr !important; }
  .ta-seg { display: flex; width: 100%; box-sizing: border-box; }
  .ta-seg > button { flex: 1 1 0; min-width: 0; padding-left: 6px; padding-right: 6px; }
  .ta-t-bloco .btn { max-width: 100%; white-space: normal; text-align: left; }
  .ta-barra2 { padding: 10px; }
  .ta-barra2 .ta-barra-g { flex-wrap: wrap; }
  .ta-simv-ac .btn { flex: 1 1 100%; justify-content: center; }
  .ta-simv-ac .ta-simv-apagar { margin-left: 0; }
  .ta-simv-c b { font-size: 1.15rem; }
}
@media (max-width: 480px) {
  .tr-cria-abas { display: flex !important; width: 100%; box-sizing: border-box; }
  .tr-cria-aba { flex: 1 1 0; min-width: 0; justify-content: center; gap: 6px; padding: 10px 6px !important; font-size: .86rem !important; }
  .ta-simv-g { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 8px; }
  .ta-simv-c { padding: 12px; }
}
/* valores dos pontos: a tabela das patentes desliza dentro do cartão e as caixas encolhem */
.vp .vp-sec-pat .tab-w { overflow-x: auto !important; -webkit-overflow-scrolling: touch; }
@media (max-width: 1180px) { .vp-tab td .vp-in { width: 96px; } .vp .vp-tab td { padding: 8px 5px; } }
@media (max-width: 640px) { .vp-tab td .vp-in { width: 100%; box-sizing: border-box; } .vp-grupo { font-size: 1.08rem; } .vp-res-g { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 380px) { .vp-res-g { grid-template-columns: 1fr; } }
/* simulado: «Terminar» com bandeira no topo (telemóvel) */
.ts-entregar-topo { display: inline-flex; align-items: center; gap: 6px; }
@media (max-width: 400px) { .ts-entregar-topo { padding-left: 10px; padding-right: 12px; gap: 5px; font-size: .84rem; } }
@media (max-width: 640px) {
  .ta-m-cab { grid-template-columns: auto minmax(0, 1fr) !important; }
  .ta-m-cab .ta-m-ac { grid-column: 1 / -1; display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 6px; width: 100%; }
  .ta-m-pe { flex-wrap: wrap; }
}
@media (max-width: 640px) { .ta-m-cab { flex-wrap: wrap !important; padding-right: 0 !important; } .ta-m-cab > div:not(.ta-m-ac) { flex: 1 1 0; min-width: 0; } }
@media (max-width: 380px) {
  .ts .ts-topo { gap: 6px !important; padding-left: 10px !important; padding-right: 10px !important; }
  .ts .ts-topo .ts-tt { min-width: 0 !important; flex: 1 1 auto !important; }
  .ts .ts-topo .ts-tt strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .ts .ts-topo .ts-tempo { padding: 6px 9px !important; font-size: .88rem !important; gap: 5px !important; flex: none; }
  .ts .ts-entregar-topo { padding: 0 10px !important; min-height: 36px; flex: none; }
  .ts .ts-topo .tp-x { width: 34px !important; height: 34px !important; flex: none; }
}
@media (max-width: 640px) { .ta-t-bloco .btn { height: auto; min-height: 40px; line-height: 1.25; padding-top: 9px; padding-bottom: 9px; } }

/* ---------- 88.ª parte: «Do meu material» com duas escolhas ---------- */
.te-matop { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-bottom: 4px; }
.te-matop-b { display: grid; gap: 3px; justify-items: start; padding: 12px; border-radius: 14px; border: 1.5px solid var(--linha); background: var(--sup); color: var(--tinta); font: inherit; text-align: left; cursor: pointer; transition: border-color .15s, background .15s; }
.te-matop-b i { color: var(--bic); font-size: 1rem; margin-bottom: 2px; }
.te-matop-b b { font-size: .88rem; font-weight: 800; line-height: 1.25; }
.te-matop-b small { color: var(--tinta-3); font-size: .8rem; line-height: 1.35; }
.te-matop-b[aria-pressed="true"] { border-color: var(--bic); background: var(--azul-suave, #EEF2FF); box-shadow: 0 0 0 3px rgba(30, 64, 230, .12); }
.te-dica-usar { display: flex; gap: 8px; align-items: flex-start; padding: 10px 12px; border-radius: 12px; background: var(--sup-2); }
.te-dica-usar i { color: var(--bic); margin-top: 3px; }
@media (max-width: 380px) { .te-matop { grid-template-columns: 1fr; } }

/* ---------- 89.ª parte: topo do simulado com espaço no telemóvel e no tablet ---------- */
.ts-barra { height: 6px; border-radius: 99px; background: color-mix(in srgb, var(--cor, #2547F5) 14%, var(--sup-2)); overflow: hidden; }
.ts-barra i { display: block; height: 100%; border-radius: inherit; background: var(--cor, var(--bic)); transition: width .3s ease; }
@media (max-width: 1099px) {
  .ts .ts-topo { display: grid !important; grid-template-columns: minmax(0, 1fr) auto auto !important; grid-template-areas: "tt fim x" "barra barra tempo" !important; align-items: center !important; gap: 10px !important; width: 100% !important; max-width: none !important; margin: 0 !important; padding: calc(10px + env(safe-area-inset-top, 0px)) 14px 10px !important; background: var(--sup); box-sizing: border-box; }
  .ts .ts-topo .ts-tt { grid-area: tt; min-width: 0 !important; gap: 1px; }
  .ts .ts-topo .ts-tt strong { display: block; font-size: 1rem; line-height: 1.25; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .ts .ts-topo .ts-tt small { font-size: .82rem; }
  .ts .ts-topo .ts-entregar-topo { grid-area: fim; min-height: 38px; padding: 0 14px !important; border-radius: 999px; font-size: .88rem; gap: 6px; }
  .ts .ts-topo .tp-x { grid-area: x; width: 38px !important; height: 38px !important; border-radius: 12px; background: var(--sup-2); color: var(--tinta-2); font-size: 1.1rem; }
  .ts .ts-topo .ts-barra { grid-area: barra; align-self: center; }
  .ts .ts-topo .ts-tempo { grid-area: tempo; justify-self: end; padding: 5px 11px !important; font-size: .92rem !important; border-radius: 99px; gap: 6px !important; border-width: 1.5px; }
  .ts .ts-nav { width: 100% !important; max-width: none !important; margin: 0 !important; gap: 6px; padding: 2px 14px 12px !important; background: var(--sup); border-bottom: 1px solid var(--linha); box-shadow: 0 10px 18px -18px rgba(16, 22, 51, .45); scroll-snap-type: x proximity; scroll-padding: 0 14px; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 12px, #000 calc(100% - 12px), transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 12px, #000 calc(100% - 12px), transparent 100%); box-sizing: border-box; scrollbar-width: none; }
  .ts .ts-nav::-webkit-scrollbar { display: none; }
  .ts .ts-nav .ts-q-b { scroll-snap-align: center; width: 40px; height: 40px; border-radius: 12px; }
}
@media (max-width: 360px) {
  .ts .ts-topo { padding-left: 12px !important; padding-right: 12px !important; gap: 8px !important; }
  .ts .ts-topo .ts-entregar-topo { padding: 0 11px !important; }
}
@media (min-width: 1100px) {
  .ts .ts-topo { grid-template-areas: "tt x" "barra barra" "tempo tempo" !important; }
  .ts .ts-topo .ts-barra { grid-area: barra; }
}
@media (max-width: 480px) {
  .ts .ts-topo { grid-template-columns: auto minmax(0, 1fr) auto !important; grid-template-areas: "x tt tempo" "barra barra fim" !important; gap: 8px 10px !important; }
  .ts .ts-topo .tp-x { width: 34px !important; height: 34px !important; }
  .ts .ts-topo .ts-tt small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .ts .ts-topo .ts-tempo { justify-self: end; }
  .ts .ts-topo .ts-entregar-topo { justify-self: end; min-height: 36px; }
}

/* ---------- 90.ª parte: editor sem deslizar para o lado, dica amarela, pausa e fim do tempo ---------- */
/* editor: a coluna da direita nunca desliza para o lado */
.te-lado { overflow-x: hidden !important; }
.te-lado-c, .te-lado .te-ia, .te-lado .te-ia > *, .te-lado-c > * { min-width: 0; max-width: 100%; box-sizing: border-box; }
.te-fontes { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
.te-fonte b, .te-fonte small { overflow-wrap: anywhere; }
.te-lado .katex-display { overflow-x: auto; overflow-y: hidden; }
.te-lado .tx, .te-lado .te-ia-res-i { overflow-wrap: anywhere; }
/* editor: os passos crescem em vez de mostrar uma barra pequena */
.te-passos li, .te-passos .te-rt, .te-passos .te-rt * { overflow: visible !important; max-height: none !important; }
.te-passos .katex-display { margin: .2em 0; }
.te-passos .te-mini-ac { flex-wrap: wrap; }
/* editor: a dica numa caixa amarela, como nos treinos */
.te-dica-cx { margin: 6px 0 4px; padding: 10px 12px 12px; border-radius: 14px; background: #FFF8DB; border: 1.5px solid #F6D96B; }
.te-dica-cx .te-l { display: flex; align-items: center; gap: 6px; color: #7A5B00; }
.te-dica-cx .te-l i { color: #D99A00; }
.te-dica-cx .te-rt { background: rgba(255, 255, 255, .7); }
[data-theme="dark"] .te-dica-cx { background: #3A3110; border-color: #7A6312; }
[data-theme="dark"] .te-dica-cx .te-l { color: #F6D96B; }
/* simulado: botão de pausa dentro do relógio */
.ts-tempo { gap: 6px; }
.ts-tempo-n { font-weight: inherit; }
.ts-pausa-b { display: grid; place-items: center; width: 26px; height: 26px; margin-left: 2px; margin-right: -4px; border: 0; border-radius: 50%; background: var(--sup-2); color: var(--tinta-2); font-size: .76rem; cursor: pointer; }
.ts-pausa-b:hover { background: var(--azul-claro); color: var(--bic); }
@media (min-width: 1100px) { .ts .ts-topo .ts-tempo .ts-pausa-b { width: 34px; height: 34px; font-size: .9rem; margin-left: 8px; } }
.ts-pausa, .ts-acabou { position: fixed; inset: 0; z-index: 9900; display: grid; place-items: center; padding: 20px; background: rgba(12, 18, 46, .55); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); animation: ts-aparece .2s ease; }
.ts-pausa-c, .ts-acabou-c { display: grid; justify-items: center; gap: 10px; width: min(420px, 100%); padding: 26px 22px 22px; border-radius: 26px; background: var(--sup); text-align: center; box-shadow: 0 30px 70px -30px rgba(0, 0, 0, .6); box-sizing: border-box; }
.ts-pausa-c h2, .ts-acabou-c h2 { margin: 4px 0 0; font-family: var(--f-tit); font-size: 1.45rem; font-weight: 800; }
.ts-pausa-c p, .ts-acabou-c p { margin: 0 0 8px; color: var(--tinta-2); line-height: 1.5; }
.ts-pausa-c .btn, .ts-acabou-c .btn { width: 100%; justify-content: center; }
.ts-relogio-g { position: relative; display: grid; place-items: center; width: 132px; height: 132px; margin-bottom: 6px; border-radius: 50%; background: #FFE3E5; color: #E5484D; font-size: 4.2rem; }
.ts-relogio-g i { position: relative; z-index: 1; animation: ts-toca .16s ease-in-out infinite alternate; }
.ts-rg-onda { position: absolute; inset: 0; border-radius: 50%; border: 4px solid #E5484D; animation: ts-onda 1.2s ease-out infinite; }
@keyframes ts-toca { from { transform: rotate(-14deg); } to { transform: rotate(14deg); } }
@keyframes ts-onda { from { transform: scale(1); opacity: .8; } to { transform: scale(1.45); opacity: 0; } }
@keyframes ts-aparece { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .ts-relogio-g i, .ts-rg-onda { animation: none; } }
/* entrada do simulado: o Caloiro não esmaga o título */
.tsi3-cal { max-width: 300px; min-width: 0; }
.tsi3-cal .cal-balao { white-space: normal; }
.tsi3-hero { grid-template-columns: minmax(0, 1fr) minmax(0, 300px); }
@media (max-width: 1100px) { .tsi3-hero { grid-template-columns: minmax(0, 1fr) minmax(0, 220px); } .tsi3-cal .cal { width: 90px !important; } }
/* editor: colunas mais estreitas em ecrãs médios */
@media (min-width: 961px) and (max-width: 1180px) { .te-corpo { grid-template-columns: 190px minmax(0, 1fr) 300px !important; } }
.te-palco > *, .te-corpo > * { min-width: 0; }
.ts-acabou-c { padding-top: 34px; overflow: hidden; }
@keyframes ts-onda { from { transform: scale(1); opacity: .8; } to { transform: scale(1.3); opacity: 0; } }

/* ---------- 91.ª parte: título maior no simulado, «ver o teste antes», nota e créditos ---------- */
@media (min-width: 1100px) { .ts .ts-topo .ts-tt strong { font-size: 1.25rem !important; line-height: 1.3 !important; font-weight: 800; } .ts .ts-topo .ts-tt small { font-size: .9rem; } }
@media (min-width: 1500px) { .ts .ts-topo .ts-tt strong { font-size: 1.38rem !important; } }
.tsi-ver { width: 100%; justify-content: center; margin-top: 10px; }
.tsv { display: grid; gap: 14px; max-width: 860px; margin: 0 auto; padding-bottom: 20px; }
.tsv-nota { display: flex; gap: 8px; align-items: center; margin: 0; padding: 10px 14px; border-radius: 14px; background: var(--azul-claro); color: var(--bic); font-weight: 700; font-size: .9rem; }
.tsv-l { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.tsv-q { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; padding: 16px; border-radius: 18px; background: var(--sup); border: 1px solid var(--linha); }
.tsv-n { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 10px; background: var(--bic); color: #fff; font-weight: 800; font-size: .9rem; }
.tsv-c { min-width: 0; display: grid; gap: 10px; }
.tsv-c > .tx { font-weight: 700; line-height: 1.55; overflow-wrap: anywhere; }
.tsv-img { max-width: 100%; border-radius: 12px; }
.tsv-op { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.tsv-op li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; align-items: center; padding: 8px 12px; border-radius: 12px; background: var(--sup-2); }
.tsv-op li > span { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 8px; border: 1.5px solid var(--linha-2); font-weight: 800; font-size: .82rem; color: var(--tinta-2); }
.tsv-pe { display: flex; justify-content: center; padding: 10px; }
.tsv-pe .btn { min-width: min(320px, 100%); justify-content: center; }
.tres-n li.tres-pc b { color: var(--bic); }
.feito-por2 { color: var(--tinta-2); }
.feito-por2 a { color: inherit; text-decoration: none; }
.feito-por2 a:hover strong { text-decoration: underline; text-underline-offset: 3px; }
.bq-feito-e { display: block; margin-top: 2px; font-size: .9em; opacity: .85; }

/* ---------- 92.ª parte: publicar com vários anos, todos os níveis e sugestão de descrição ---------- */
.rotulo-g small { font-weight: 600; color: var(--tinta-3); font-size: .8em; }
.chips .chip-todos { border-style: dashed; }
.chips .chip-todos[aria-pressed="true"] { border-style: solid; }
.ano-todos { display: flex; align-items: center; gap: 8px; margin: 4px 0 14px; padding: 10px 14px; border-radius: 12px; background: var(--azul-claro); color: var(--bic); font-weight: 700; font-size: .92rem; }
.desc-sug { align-items: flex-start; }
.desc-sug .desc-sug-txt { display: block; margin-top: 3px; color: var(--tinta); font-weight: 600; font-size: .9rem; line-height: 1.5; white-space: normal; }
.desc-sug .btn { flex: none; align-self: center; }
@media (max-width: 560px) { .desc-sug { flex-direction: column; align-items: stretch; } .desc-sug .btn { align-self: flex-start; } }
.u-area i { margin-right: 6px; font-size: .82rem; }
.erro-campo { display: flex; align-items: flex-start; gap: 7px; margin: 6px 2px 0; color: var(--vermelho); font-size: .84rem; font-weight: 700; line-height: 1.35; }
.erro-campo i { flex: none; margin-top: 2px; font-size: .82rem; }
.escolhas > .erro-campo { margin-top: -4px; }
.ta-discs legend small { color: var(--tinta-3); font-weight: 600; }
.te-pv { position: fixed; inset: 0; z-index: 9550; display: flex; flex-direction: column; background: var(--mesa); }
body.te-pv-aberto { overflow: hidden; }
.te-pv-cab { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; flex: none; padding: 14px 20px; padding-top: calc(14px + env(safe-area-inset-top, 0px)); background: var(--sup); border-bottom: 1px solid var(--linha); }
.te-pv-t { flex: 1 1 320px; min-width: 0; }
.te-pv-k { display: inline-flex; align-items: center; gap: 6px; color: var(--cor); font-size: .8rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.te-pv-t h2 { margin: 2px 0; font-size: 1.15rem; line-height: 1.3; overflow-wrap: anywhere; }
.te-pv-t p { margin: 0; color: var(--tinta-2); font-size: .86rem; }
.te-pv-ac { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.te-pv-modo { flex-wrap: nowrap; }
.te-pv-modo button { flex: none; white-space: nowrap; }
.te-pv-nav { display: flex; gap: 6px; flex: none; padding: 10px 20px; overflow-x: auto; background: var(--sup); border-bottom: 1px solid var(--linha); scrollbar-width: thin; }
.te-pv-nav button { flex: none; min-width: 34px; height: 34px; padding: 0 8px; border: 1.5px solid var(--linha-2); border-radius: 10px; background: var(--sup); color: var(--tinta); font: inherit; font-weight: 750; font-size: .84rem; cursor: pointer; }
.te-pv-nav button:hover { border-color: var(--cor); color: var(--cor); }
.te-pv-nav button.prob { border-color: #F5B44A; background: #FFF7E6; color: #7C4A03; }
.te-pv-corpo { flex: 1; min-height: 0; overflow: auto; overscroll-behavior: contain; }
.te-pv-folha { display: grid; gap: 16px; width: min(860px, 100%); margin: 0 auto; padding: 20px 16px calc(40px + env(safe-area-inset-bottom, 0px)); }
.te-pv-desc { margin: 0; padding: 12px 14px; border-radius: 14px; background: var(--sup); border: 1px solid var(--linha); color: var(--tinta-2); }
.te-pv-aviso, .te-pv-modo-txt { display: flex; align-items: flex-start; gap: 8px; margin: 0; padding: 10px 14px; border-radius: 12px; font-size: .88rem; font-weight: 650; }
.te-pv-aviso { background: #FFF7E6; color: #7C4A03; }
.te-pv-modo-txt { background: var(--azul-suave); color: var(--tinta); }
.te-pv-aviso i, .te-pv-modo-txt i { margin-top: 3px; }
.te-pv-q { display: grid; gap: 14px; min-width: 0; padding: 18px; border-radius: 20px; background: var(--sup); border: 1px solid var(--linha); scroll-margin-top: 12px; }
.te-pv-q.prob { border-color: #F5B44A; }
.te-pv-qcab { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.te-pv-n { display: grid; place-items: center; min-width: 32px; height: 32px; padding: 0 8px; border-radius: 10px; background: var(--cor); color: #fff; font-weight: 800; }
.te-pv-tipo { display: inline-flex; align-items: center; gap: 6px; color: var(--tinta-2); font-size: .84rem; font-weight: 700; }
.te-pv-tipo i { color: var(--cor); }
.te-pv-tema { padding: 4px 10px; border-radius: 99px; background: var(--sup-2); color: var(--tinta-2); font-size: .82rem; font-weight: 700; }
.te-pv-ed { margin-left: auto; }
.te-pv-q .ex { min-width: 0; }
.te-pv-gab { display: grid; gap: 10px; min-width: 0; padding-top: 14px; border-top: 1px dashed var(--linha-2); }
.te-pv-certa { display: flex; align-items: flex-start; gap: 8px; margin: 0; color: #0B217A; font-weight: 600; line-height: 1.5; overflow-wrap: anywhere; }
.te-pv-certa > i { flex: none; margin-top: 4px; color: #0021A7; }
.te-pv-certa small { color: var(--tinta-2); font-weight: 600; }
.te-pv-gab .ex-dica-box { margin-top: 0; }
.te-pv-nada { display: flex; align-items: center; gap: 8px; margin: 0; color: var(--tinta-3); font-size: .86rem; font-weight: 600; }
.te-pv-fim { display: flex; justify-content: center; padding-top: 6px; }
.te-pv-vazio { display: grid; place-items: center; padding: 40px 0; }
:root[data-theme="dark"] .te-pv-aviso, :root[data-theme="dark"] .te-pv-nav button.prob { background: #3B2A0A; color: #FCD34D; }
:root[data-theme="dark"] .te-pv-certa, :root[data-theme="dark"] .te-pv-certa > i { color: #5F79E0; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .te-pv-aviso, :root:not([data-theme="light"]) .te-pv-nav button.prob { background: #3B2A0A; color: #FCD34D; }
  :root:not([data-theme="light"]) .te-pv-certa, :root:not([data-theme="light"]) .te-pv-certa > i { color: #5F79E0; }
}
@media (max-width: 640px) {
  .te-pv-cab { padding: 12px 14px; padding-top: calc(12px + env(safe-area-inset-top, 0px)); }
  .te-pv-ac { width: 100%; }
  .te-pv-modo { flex: 1; min-width: 0; }
  .te-pv-modo button { flex: 1; white-space: normal; }
  .te-pv-nav { padding: 8px 14px; }
  .te-pv-folha { padding: 14px 12px calc(32px + env(safe-area-inset-bottom, 0px)); }
  .te-pv-q { padding: 14px; border-radius: 16px; }
}
body:has(.vp .vp-rodape) .subir { bottom: calc(146px + env(safe-area-inset-bottom, 0px)); }
@media (max-width: 900px) {
  .vp .vp-rodape { padding: 10px; gap: 8px; border-radius: 16px; }
  .vp .vp-rodape p { display: none; }
  .vp .vp-rodape .vp-botoes { width: 100%; flex-wrap: nowrap; gap: 8px; }
  .vp .vp-rodape .vp-botoes .btn { flex: 1 1 0; min-width: 0; padding-left: 10px; padding-right: 10px; white-space: normal; line-height: 1.2; }
  body:not(.visitante):not(.modo-auth):has(.vp .vp-rodape) .subir { bottom: calc(84px + env(safe-area-inset-bottom, 0px)); }
}
@media (max-width: 760px) {
  .vp .vp-rodape { bottom: calc(70px + env(safe-area-inset-bottom, 0px)); }
  body:not(.visitante):not(.modo-auth):has(.vp .vp-rodape) .subir { bottom: calc(150px + env(safe-area-inset-bottom, 0px)); }
}
.wl.wl-c { display: grid; gap: 14px; padding: 18px 22px; border-radius: 24px; }
.wl-c-cima { display: flex; align-items: center; justify-content: space-between; gap: 14px 20px; flex-wrap: wrap; }
.wl-c-saldo { display: flex; align-items: center; gap: 14px; min-width: 0; }
.wl-c-moeda { flex: none; display: grid; place-items: center; width: 52px; height: 52px; border-radius: 16px; background: rgba(255, 255, 255, .16); }
.wl-c-moeda svg { width: 30px; height: 30px; }
.wl-c-saldo .wl-rot { display: block; margin-bottom: 2px; font-size: .8rem; font-weight: 700; color: rgba(255, 255, 255, .8); }
.wl-c-val { display: flex; align-items: baseline; gap: 8px; }
.wl-c-val b { font-family: var(--f-tit); font-size: clamp(2rem, 4vw, 2.5rem); font-weight: 800; line-height: 1; letter-spacing: -.03em; color: #fff; font-variant-numeric: tabular-nums; }
.wl-c-val span { font-weight: 700; color: rgba(255, 255, 255, .85); }
.wl-c-acoes { display: flex; flex-wrap: wrap; gap: 8px; }
.wl-c-a { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 40px; padding: 0 15px; border: 0; border-radius: 999px; background: #fff; color: #1E40E6; font: inherit; font-size: .88rem; font-weight: 750; text-decoration: none; cursor: pointer; transition: transform .15s, background .15s; }
.wl-c-a:hover { transform: translateY(-1px); background: #EEF2FF; }
.wl-c-a > span { display: inline-flex; align-items: baseline; gap: 6px; }
.wl-c-a small { font-size: .7rem; font-weight: 700; opacity: .85; }
.wl-c-breve { background: rgba(255, 255, 255, .18); color: #fff; }
.wl-c-breve:hover { background: rgba(255, 255, 255, .26); }
.wl-c-baixo { display: flex; align-items: center; justify-content: space-between; gap: 10px 18px; flex-wrap: wrap; padding-top: 12px; border-top: 1px solid rgba(255, 255, 255, .2); }
.wl-c-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.wl-chip { display: inline-flex; align-items: center; gap: 7px; padding: 5px 11px; border-radius: 999px; background: rgba(255, 255, 255, .16); color: #fff; font-size: .8rem; font-weight: 700; }
.wl-chip b { font-size: 1.05rem; line-height: 1; }
.wl-chip-gelo { background: #E0F2FE; color: #0369A1; }
.wl-c-nums { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 0 0 0 auto; }
.wl-c-nums > div { display: flex; align-items: baseline; gap: 6px; }
.wl-c-nums dt { font-size: .8rem; font-weight: 650; color: rgba(255, 255, 255, .8); }
.wl-c-nums dd { margin: 0; font-family: var(--f-tit); font-size: 1.12rem; font-weight: 800; color: #fff; }
.wl-c .wl-aviso { margin: 0; }
@media (max-width: 640px) {
  .wl.wl-c { gap: 12px; padding: 16px; border-radius: 22px; }
  .wl-c-moeda { width: 44px; height: 44px; border-radius: 14px; }
  .wl-c-moeda svg { width: 26px; height: 26px; }
  .wl-c-val b { font-size: 2.05rem; }
  .wl-c-acoes { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; width: 100%; }
  .wl-inf .wl-c-acoes { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .wl-c-a { flex-direction: column; gap: 4px; height: auto; min-height: 58px; padding: 8px 4px; border-radius: 14px; font-size: .78rem; line-height: 1.15; text-align: center; }
  .wl-c-a > span { flex-direction: column; align-items: center; gap: 1px; }
  .wl-c-nums { margin-left: 0; gap: 4px 14px; }
}
.mov .mov-av { position: relative; display: block; flex: none; width: 42px; height: 42px; border-radius: 50%; text-decoration: none; }
.mov .mov-av .av { width: 42px; height: 42px; }
.mov .mov-bd { position: absolute; right: -4px; bottom: -4px; display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; border: 2px solid var(--sup); background: var(--sup-3); color: var(--tinta-2); }
.mov .mov-bd svg { width: 11px; height: 11px; }
.mov .mov-bd.mais { background: var(--azul-claro); color: var(--bic); }
.mov .mov-t { min-width: 0; }
.mov .mov-t p { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; white-space: normal; text-overflow: clip; overflow-wrap: anywhere; }
.mov .mov-nome { color: var(--bic); font-weight: 800; text-decoration: none; }
.mov .mov-nome:hover { text-decoration: underline; }
.mov small .mov-nome { font-weight: 750; }
.ptp-movs .mov { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; margin-bottom: 6px; padding: 10px 12px; border: 1px solid var(--linha); border-radius: 14px; background: var(--sup); }
.ptp-movs .mov .ic { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 13px; background: var(--sup-2); color: var(--tinta-2); }
.ptp-movs .mov.mais .ic { background: var(--azul-claro); color: var(--bic); }
.ptp-movs .mov .ic svg { width: 18px; height: 18px; }
.ptp-movs .mov p { margin: 0; font-size: .9rem; font-weight: 700; line-height: 1.35; }
.ptp-movs .mov small { color: var(--tinta-3); font-size: .8rem; }
.ptp-movs .mov .v { display: grid; justify-items: end; font-weight: 800; color: var(--tinta); white-space: nowrap; }
.ptp-movs .mov.mais .v { color: var(--bic); }
.resumo.rsi { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; align-items: stretch; }
.rsi .rsi-c { display: flex; flex-direction: column; gap: 10px; min-width: 0; margin: 0; padding: 18px; border: 1px solid var(--linha); border-radius: 22px; background: var(--sup); color: var(--tinta); }
.rsi .rsi-cab { display: flex; align-items: center; gap: 10px; min-height: 40px; }
.rsi .rsi-ic { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 13px; background: var(--azul-claro); color: var(--bic); font-size: 1rem; overflow: hidden; }
.rsi .rsi-ic svg, .rsi .rsi-ic .moeda { width: 26px; height: 26px; }
.rsi .rsi-pat .rsi-ic { background: none; }
.rsi .rsi-ic .ins { width: 40px; height: 40px; }
.rsi .rsi-rot { font-size: .84rem; font-weight: 800; line-height: 1.2; color: var(--tinta-2); }
.rsi .rsi-val { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 8px; min-height: 2.4rem; }
.rsi .rsi-val b { font-family: var(--f-tit); font-size: clamp(1.55rem, 2.6vw, 2rem); font-weight: 800; line-height: 1.1; letter-spacing: -.02em; }
.rsi .rsi-val small { font-size: .82rem; font-weight: 700; color: var(--tinta-2); }
.rsi .rsi-meio { display: grid; gap: 8px; }
.rsi .rsi-txt { margin: 0; font-size: .86rem; line-height: 1.45; color: var(--tinta-2); }
.rsi .rsi-bt { align-self: flex-start; margin-top: auto; }
@supports (grid-template-rows: subgrid) {
  .resumo.rsi { grid-template-rows: auto auto 1fr auto; row-gap: 14px; }
  .rsi .rsi-c { display: grid; grid-row: span 4; grid-template-rows: subgrid; row-gap: 10px; }
  .rsi .rsi-meio { align-content: start; }
  .rsi .rsi-bt { justify-self: start; align-self: end; margin-top: 4px; }
}
@media (max-width: 980px) { .resumo.rsi { grid-template-columns: repeat(2, minmax(0, 1fr)); } .rsi .rsi-conv { grid-column: 1 / -1; } }
@media (max-width: 600px) { .resumo.rsi { grid-template-columns: minmax(0, 1fr); } .rsi .rsi-conv { grid-column: auto; } }
.novs .bloco-cab h2 { display: flex; align-items: center; gap: 8px; }
.novs-l { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 14px; }
.nov-c { --cor: #2547F5; display: flex; flex-direction: column; gap: 12px; min-width: 0; padding: 16px; border: 1px solid var(--linha); border-radius: 20px; background: var(--sup); color: var(--tinta); text-decoration: none; position: relative; overflow: hidden; transition: transform .15s, box-shadow .15s; }
.nov-c::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 5px; background: var(--cor); }
.nov-c:hover { transform: translateY(-2px); box-shadow: var(--sombra-papel); }
.nov-topo { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.nov-tipo { display: inline-flex; align-items: center; gap: 7px; padding: 4px 10px; border-radius: 999px; background: color-mix(in srgb, var(--cor) 14%, transparent); color: var(--cor); font-size: .82rem; font-weight: 800; }
.nov-novo { display: inline-flex; align-items: center; gap: 5px; padding: 4px 9px; border-radius: 999px; background: var(--bic); color: #fff; font-size: .76rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.nov-corpo { display: grid; gap: 4px; }
.nov-corpo strong { font-size: 1rem; font-weight: 800; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.nov-corpo small { color: var(--tinta-2); font-size: .82rem; font-weight: 650; }
.nov-n { color: var(--tinta-3); font-size: .8rem; font-weight: 700; }
.nov-ir { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; color: var(--bic); font-size: .86rem; font-weight: 800; }
:root[data-theme="dark"] .nov-tipo { color: #fff; background: color-mix(in srgb, var(--cor) 45%, transparent); }
:root[data-theme="dark"] .nov-novo { background: var(--bic); color: #fff; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .nov-tipo { color: #fff; background: color-mix(in srgb, var(--cor) 45%, transparent); }
  :root:not([data-theme="light"]) .nov-novo { background: var(--bic); color: #fff; }
}
@media (max-width: 640px) { .novs-l { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 12px; margin: 0 -16px; padding: 2px 16px 6px; scrollbar-width: none; } .novs-l::-webkit-scrollbar { display: none; } .nov-c { flex: 0 0 78%; scroll-snap-align: start; } }
.tr-topo-bts { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-left: auto; }
.tr-topo-bts .tr-partilhar { margin-left: 0; }
.tr-flyer { display: inline-flex; align-items: center; gap: 8px; }
.tsi3-bts .tr-flyer span { display: inline !important; }
@media (max-width: 600px) { .tr-topo-bts .tr-flyer span { display: none; } .tr-topo-bts .tr-flyer { padding-inline: 14px; } .tsi3-bts .tr-flyer { width: auto; padding-inline: 16px; } }
.ta-t-div { display: grid; gap: 10px; padding: 14px; border-radius: 16px; background: var(--sup-2); }
.ta-div-g { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 12px; }
.ta-nov, .ta-flyer { display: grid; align-content: start; gap: 8px; padding: 12px; border: 1px solid var(--linha); border-radius: 14px; background: var(--sup); }
.ta-nov strong, .ta-flyer strong { font-size: .92rem; }
.ta-nov small, .ta-flyer small { color: var(--tinta-2); font-size: .8rem; line-height: 1.45; }
.ta-nov-cab { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 10px; }
.ta-nov-on { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); font-size: .82rem; font-weight: 800; white-space: nowrap; }
.ta-nov-on i { font-size: .76rem; color: var(--bic); }
.ta-nov-off { display: inline-flex; align-items: center; padding: 3px 10px; border-radius: 999px; background: var(--sup-2); color: var(--tinta-3); font-size: .82rem; font-weight: 800; white-space: nowrap; }
.ta-nov-ac { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.ta-nov-seg { flex-wrap: wrap; justify-self: start; }
.ta-nov-seg button:disabled { cursor: progress; }
.ta-nov .ta-nov-tirar { color: var(--vermelho); }
.ta-flyer { grid-template-columns: auto minmax(0, 1fr); align-items: start; }
.ta-flyer-img { display: block; width: 76px; height: 76px; border-radius: 12px; overflow: hidden; background: #2547F5; box-shadow: var(--sombra-leve); }
.ta-flyer-img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ta-flyer-t { display: grid; gap: 6px; }
.ta-flyer-t .btn { justify-self: start; }
:root[data-theme="dark"] .ta-nov-on { background: rgba(147, 166, 248, .16); color: #C7D3FF; }
:root[data-theme="dark"] .ta-nov-on i { color: #C7D3FF; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .ta-nov-on { background: rgba(147, 166, 248, .16); color: #C7D3FF; } :root:not([data-theme="light"]) .ta-nov-on i { color: #C7D3FF; } }
.pts-pessoa { display: inline-flex; align-items: center; gap: 6px; padding: 5px 9px; border: 1px solid var(--linha); border-radius: 999px; background: var(--sup); color: var(--tinta); font: inherit; font-weight: 800; font-variant-numeric: tabular-nums; cursor: pointer; }
.pts-pessoa i { font-size: .66rem; color: var(--tinta-3); }
.pts-pessoa:hover { border-color: var(--bic); color: var(--bic); }
.pts-pessoa:hover i { color: var(--bic); }
.ptp { display: grid; gap: 16px; }
.ptp-cab { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; padding-right: 40px; }
.ptp-cab .av { width: 52px; height: 52px; }
.ptp-cab h2 { margin: 0; font-size: 1.25rem; }
.ptp-cab p { margin: 2px 0 0; color: var(--tinta-2); font-size: .84rem; }
.ptp-kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.ptp-kpis > div { display: grid; gap: 2px; padding: 12px 14px; border: 1px solid var(--linha); border-radius: 16px; background: var(--sup-2); }
.ptp-kpis span { color: var(--tinta-2); font-size: .82rem; font-weight: 700; }
.ptp-kpis b { font-family: var(--f-tit); font-size: 1.45rem; font-weight: 800; line-height: 1.15; }
.ptp-kpis small { color: var(--tinta-3); font-size: .78rem; }
.ptp-kpis .mais b { color: var(--bic); }
.ptp-g { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.ptp h3 { margin: 0 0 8px; font-size: .95rem; }
.ptp h3 small { color: var(--tinta-3); font-weight: 600; }
.ptp-l { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.ptp-l li { display: grid; grid-template-columns: minmax(0, 1fr) 70px auto; align-items: center; gap: 10px; }
.ptp-cat { display: grid; min-width: 0; font-size: .86rem; font-weight: 700; }
.ptp-cat small { color: var(--tinta-3); font-size: .78rem; font-weight: 600; }
.ptp-bar { height: 7px; border-radius: 99px; background: var(--sup-3); overflow: hidden; }
.ptp-bar i { display: block; height: 100%; border-radius: 99px; background: var(--bic); }
.ptp-l b { font-weight: 800; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ptp-l b.mais { color: var(--bic); }
.ptp-l b.menos { color: var(--tinta-2); }
.ptp-l li:has(b.menos) .ptp-bar i { background: var(--tinta-3); }
@media (max-width: 640px) { .ptp-cab { grid-template-columns: auto minmax(0, 1fr); padding-right: 36px; } .ptp-cab .btn { grid-column: 1 / -1; justify-self: start; } .ptp-kpis { grid-template-columns: 1fr 1fr; } .ptp-kpis > div:first-child { grid-column: 1 / -1; } .ptp-g { grid-template-columns: 1fr; } }
.novs .bloco-cab > a { white-space: nowrap; }
.ta-c-nov { display: inline-flex; align-items: center; gap: 6px; align-self: flex-start; justify-self: start; padding: 3px 9px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); font-size: .78rem; font-weight: 800; }
.ta-c-nov i { color: var(--bic); }
:root[data-theme="dark"] .ta-c-nov, :root[data-theme="dark"] .ta-c-nov i { background: rgba(147, 166, 248, .16); color: #C7D3FF; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .ta-c-nov, :root:not([data-theme="light"]) .ta-c-nov i { background: rgba(147, 166, 248, .16); color: #C7D3FF; } }
.vp .vp-nota { display: flex; gap: 9px; align-items: flex-start; margin: 0 18px 18px; padding: 11px 13px; border-radius: 14px; background: var(--sup-2); color: var(--tinta-2); font-size: .84rem; line-height: 1.5; }
.vp .vp-nota i { flex: none; margin-top: 3px; color: var(--bic); }
.vp .vp-grupo small { font-family: var(--f); letter-spacing: normal; }

/* Treine o Cérebro → «Tudo»: treinos e simulados juntos, cada grupo com o número e «Ver todos» */
.tr-tudo-cab { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 8px 16px; }
.tr-tudo-n { display: inline-grid; place-items: center; min-width: 26px; height: 24px; padding: 0 8px; border-radius: 999px; background: var(--sup-2); color: var(--tinta-2); font-size: .82rem; font-weight: 800; letter-spacing: 0; }
.tr-tudo-ver { display: inline-flex; align-items: center; gap: 6px; color: var(--bic); font-weight: 800; font-size: .9rem; text-decoration: none; white-space: nowrap; }
.tr-tudo-ver i { font-size: .76rem; }
.tr-tudo-ver:hover { text-decoration: underline; }
.tr-tudo-sec + .tr-tudo-sec { margin-top: 28px; }

/* «Faltam pontos»: as formas de ganhar em cartões lado a lado, sem amarelo */
.sp { display: grid; gap: 14px; }
.sp-cab { display: flex; align-items: center; gap: 14px; padding-right: 36px; }
.sp-moeda { display: grid; place-items: center; flex: none; width: 54px; height: 54px; border-radius: 17px; background: var(--azul-suave); }
.sp-moeda svg, .sp-moeda img { width: 30px; height: 30px; }
.sp-cab h2 { margin: 0; font-family: var(--f-tit); font-size: 1.45rem; letter-spacing: -.02em; }
.sp-cab p { margin: 3px 0 0; color: var(--tinta-2); line-height: 1.4; }
.sp-k { margin: 4px 0 0; font-size: .78rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--tinta-3); }
.sp-g { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; }
.sp-op { display: flex; flex-direction: column; gap: 6px; padding: 14px; border: 1px solid var(--linha); border-radius: 18px; background: var(--sup); }
.sp-ic { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 13px; background: var(--azul-suave); color: var(--bic); font-size: 1.05rem; }
.sp-op strong { font-size: .98rem; line-height: 1.25; }
.sp-op p { margin: 0 0 4px; color: var(--tinta-2); font-size: .84rem; line-height: 1.4; }
.sp-op .btn { margin-top: auto; align-self: flex-start; }
.sp-pe { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; padding-top: 2px; }
.sp-compra { display: inline-flex; align-items: center; gap: 8px; color: var(--tinta-3); font-size: .86rem; font-weight: 700; }
@media (max-width: 520px) {
  .sp-g { grid-template-columns: 1fr; }
  .sp-op { display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "ic t" "ic p" "ic b"; column-gap: 12px; row-gap: 4px; }
  .sp-ic { grid-area: ic; } .sp-op strong { grid-area: t; } .sp-op p { grid-area: p; } .sp-op .btn { grid-area: b; }
  .sp-pe .btn { width: 100%; }
}
/* pedir para apagar um material aprovado */
.pa-aviso { display: flex; gap: 10px; align-items: flex-start; margin: 0 0 12px; padding: 12px 14px; border-radius: 14px; background: var(--azul-suave); color: var(--tinta); font-size: .88rem; line-height: 1.45; }
.pa-aviso i { color: var(--bic); margin-top: 3px; }
.pa textarea { width: 100%; box-sizing: border-box; resize: vertical; }
/* carteira → Pedidos: o que podes oferecer, o limite da semana e as regras */
.pp-topo { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-bottom: 12px; }
.pp-n { display: grid; gap: 4px; align-content: start; padding: 14px; border: 1px solid var(--linha); border-radius: 18px; background: var(--sup); }
.pp-n > span:first-child { font-size: .78rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--tinta-3); }
.pp-n b { font-family: var(--f-tit); font-size: 1.6rem; line-height: 1.1; color: var(--tinta); }
.pp-n b small { font-size: .9rem; color: var(--tinta-3); font-weight: 700; }
.pp-n .pp-renova { font-size: 1.05rem; }
.pp-n > small { color: var(--tinta-2); font-size: .8rem; line-height: 1.35; }
.pp-barra { display: block; height: 8px; border-radius: 99px; background: var(--sup-3); overflow: hidden; }
.pp-barra i { display: block; height: 100%; border-radius: inherit; background: var(--bic); }
.pp-acoes-topo { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.pp .pp-a { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.pp-q input { width: 64px; padding: 6px 8px; border: 1px solid var(--linha-2); border-radius: 10px; background: var(--sup); color: var(--tinta); font: inherit; font-weight: 800; text-align: center; }
.pp-sem { color: var(--tinta-3); font-size: .82rem; }
.pp .pp-bloq { color: var(--vermelho); }
.pp-regras { margin-top: 12px; padding: 12px 14px; border: 1px solid var(--linha); border-radius: 16px; background: var(--sup); }
.pp-regras summary { display: flex; align-items: center; gap: 8px; cursor: pointer; font-weight: 800; color: var(--tinta); }
.pp-regras summary i { color: var(--bic); }
.pp-regras ol { margin: 10px 0 0; padding-left: 20px; display: grid; gap: 6px; color: var(--tinta-2); font-size: .88rem; line-height: 1.45; }
@media (max-width: 640px) { .pp-topo { grid-template-columns: 1fr; } }
/* painel → Materiais: pedidos para apagar */
.ap-sec header small { display: block; margin-top: 2px; color: var(--tinta-3); font-size: .8rem; }
.ap-l { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 10px 16px; padding: 12px 0; border-top: 1px solid var(--linha); }
.ap-sec > .ap-l:first-of-type { border-top: 0; }
.ap-t { display: grid; gap: 4px; min-width: 0; flex: 1 1 320px; }
.ap-mat { font-weight: 800; color: var(--tinta); text-decoration: none; }
.ap-mat:hover { color: var(--bic); }
.ap-t small { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; color: var(--tinta-3); font-size: .8rem; }
.ap-quem { display: inline-flex; align-items: center; gap: 6px; color: var(--tinta-2); text-decoration: none; }
.ap-quem > :first-child { width: 24px !important; height: 24px !important; flex: none; font-size: .74rem; }
.ap-motivo { margin: 2px 0 0; padding: 8px 10px; border-radius: 12px; background: var(--sup-2); color: var(--tinta); font-size: .88rem; line-height: 1.45; }
.ap-a { display: grid; justify-items: end; gap: 6px; }
.ap-pts { font-size: .8rem; font-weight: 800; color: var(--vermelho); }
.ap-dec { margin-top: 8px; }
.ap-dec summary { cursor: pointer; font-weight: 800; color: var(--tinta-2); font-size: .88rem; }
.ap-h { align-items: center; }
.ap-est { padding: 3px 10px; border-radius: 99px; font-size: .8rem; font-weight: 800; background: var(--sup-2); color: var(--tinta-2); white-space: nowrap; }
.ap-aceite { background: var(--azul-suave); color: var(--bic); }
@media (max-width: 640px) { .ap-a { justify-items: start; } }
/* painel → Sistema → Vídeos do site */
.vds { display: grid; gap: 14px; }
.vds-intro { display: flex; gap: 10px; align-items: flex-start; margin: 0; padding: 12px 14px; border-radius: 14px; background: var(--azul-suave); color: var(--tinta); font-size: .9rem; line-height: 1.45; }
.vds-intro i { color: var(--bic); margin-top: 3px; }
.vds-g { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.vds-c { position: relative; display: grid; gap: 10px; padding: 12px; }
.vds-th { position: relative; aspect-ratio: 16 / 9; border-radius: 14px; overflow: hidden; background: var(--sup-3); }
.vds-th img { display: block; width: 100%; height: 100%; object-fit: cover; }
.vds-play { position: absolute; inset: 0; margin: auto; width: 54px; height: 54px; border: 0; border-radius: 50%; background: rgba(16, 22, 51, .62); color: #fff; font-size: 1.1rem; cursor: pointer; }
.vds-play:hover { background: var(--bic); }
.vds-dur { position: absolute; right: 8px; bottom: 8px; padding: 2px 8px; border-radius: 8px; background: rgba(16, 22, 51, .7); color: #fff; font-size: .78rem; font-weight: 800; }
.vds-t { display: grid; gap: 4px; }
.vds-t strong { font-size: 1rem; }
.vds-t small { color: var(--tinta-2); font-size: .82rem; line-height: 1.4; }
.vds-est { justify-self: start; padding: 3px 10px; border-radius: 99px; background: var(--sup-2); color: var(--tinta-2); font-size: .8rem; font-weight: 800; }
.vds-est.on { background: var(--azul-suave); color: var(--bic); }
.vds-ac { display: flex; flex-wrap: wrap; gap: 8px; }
.vds-up { cursor: pointer; }
.vds-prog { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; gap: 10px; border-radius: inherit; background: color-mix(in srgb, var(--sup) 90%, transparent); font-weight: 800; color: var(--tinta); }
.vds-prog[hidden] { display: none; }

/* receber e dar pontos pelo código QR (presencialmente) */
.ic-qr { width: 1.05em; height: 1.05em; flex: none; vertical-align: -.15em; }
.rqr { display: grid; gap: 12px; justify-items: center; text-align: center; }
.rqr h2 { margin: 0; font-family: var(--f-tit); }
.rqr-qr { width: min(280px, 72vw); padding: 10px; border-radius: 22px; background: #fff; border: 1px solid var(--linha); box-shadow: 0 18px 36px -24px rgba(16, 22, 51, .45); }
.rqr-qr svg { display: block; width: 100%; height: auto; }
.rqr-nome { display: inline-flex; align-items: center; gap: 8px; margin: 0; font-size: 1.05rem; }
.rqr-nome > :first-child { width: 32px !important; height: 32px !important; flex: none; }
.rqr-t { margin: 0; max-width: 42ch; color: var(--tinta-2); line-height: 1.45; }
.rqr-lim { margin: 0; padding: 8px 14px; border-radius: 99px; background: var(--azul-suave); color: var(--bic); font-weight: 700; font-size: .9rem; }
.rqr-ok { display: flex; align-items: center; gap: 8px; padding: 10px 14px; border-radius: 14px; background: #E8F7EE; color: #15803D; font-weight: 800; animation: rqr-entra .35s ease; }
.rqr-ok[hidden] { display: none; }
.rqr-cheio { margin: 0; max-width: 42ch; color: var(--tinta-2); line-height: 1.5; }
.rqr .linha-btn { width: 100%; justify-content: center; }
@keyframes rqr-entra { from { transform: scale(.92); opacity: 0; } to { transform: none; opacity: 1; } }
.dqr { display: grid; justify-items: center; align-content: start; gap: 18px; padding-top: clamp(12px, 4vw, 40px); }
.dqr-c { width: min(560px, 100%); box-sizing: border-box; display: grid; gap: 12px; padding: clamp(18px, 3vw, 28px); }
.dqr-k { display: inline-flex; align-items: center; gap: 7px; justify-self: start; padding: 4px 10px; border-radius: 99px; background: var(--azul-suave); color: var(--bic); font-size: .82rem; font-weight: 800; }
.dqr-c h1 { margin: 0; font-family: var(--f-tit); font-size: 1.5rem; letter-spacing: -.02em; }
.dp-lim { margin: 6px 0 10px; padding: 10px 12px; border-radius: 12px; background: var(--sup-2); color: var(--tinta-2); font-size: .9rem; line-height: 1.45; }
.dp-lim b { color: var(--tinta); }
.dqr-ok { display: grid; gap: 10px; justify-items: center; text-align: center; }
.dqr-ok-ic { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: #E8F7EE; color: #16A34A; font-size: 1.8rem; }
.dqr-ok p { margin: 0; color: var(--tinta-2); }
.lqr { display: grid; gap: 12px; }
.lqr-v { position: relative; justify-self: center; width: min(360px, 100%); aspect-ratio: 1; border-radius: 22px; overflow: hidden; background: #0B1026; }
.lqr-v video { display: block; width: 100%; height: 100%; object-fit: cover; }
.lqr-mira { position: absolute; inset: 18%; border: 3px solid rgba(255, 255, 255, .9); border-radius: 18px; box-shadow: 0 0 0 999px rgba(0, 0, 0, .25); }
.lqr-dica { margin: 0; color: var(--tinta-2); font-size: .86rem; line-height: 1.45; text-align: center; }
.sp-op .sp-bts { display: flex; flex-wrap: wrap; gap: 6px; margin-top: auto; }
:root[data-theme="dark"] .rqr-ok, :root[data-theme="dark"] .dqr-ok-ic { background: rgba(22, 163, 74, .18); color: #4ADE80; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .rqr-ok, :root:not([data-theme="light"]) .dqr-ok-ic { background: rgba(22, 163, 74, .18); color: #4ADE80; } }

/* ---------- 107.ª parte: rejeitar com motivo escrito ---------- */
.rj { display: grid; gap: 12px; }
.rj-cab { display: flex; gap: 12px; align-items: center; }
.rj-ic { flex: none; width: 46px; height: 46px; border-radius: 15px; display: grid; place-items: center; background: rgba(214, 48, 49, .12); color: #D63031; font-size: 1.15rem; }
.rj-cab h2 { margin: 0; font-family: var(--f-tit); font-size: 1.25rem; }
.rj-cab p { margin: 2px 0 0; color: var(--tinta-2); font-size: .88rem; line-height: 1.35; }
.rj-l { margin: 4px 0 0; font-weight: 800; font-size: .86rem; color: var(--tinta); }
.rj-l small { font-weight: 600; color: var(--tinta-3); }
.rj-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.rj-chip { padding: 7px 12px; border-radius: 999px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta-2); font: inherit; font-size: .82rem; font-weight: 700; line-height: 1.25; cursor: pointer; text-align: left; transition: border-color .15s, background .15s, color .15s; }
.rj-chip:hover { border-color: var(--bic); color: var(--tinta); }
.rj-chip.on { border-color: var(--bic); background: var(--azul-suave); color: var(--bic); }
.rj textarea { width: 100%; min-height: 112px; resize: vertical; padding: 12px 14px; border-radius: 14px; border: 1.5px solid var(--linha-2); font: inherit; font-size: .95rem; line-height: 1.45; background: var(--sup); color: var(--tinta); }
.rj textarea:focus { outline: none; border-color: var(--bic); box-shadow: 0 0 0 4px var(--azul-suave); }
.rj-pe { display: flex; justify-content: space-between; gap: 10px; color: var(--tinta-3); font-size: .82rem; margin-top: -6px; }
.rj .btn-perigo i { margin-right: 6px; }

/* ---------- 107.ª parte: os separadores da carteira numa só linha no telemóvel (sem deslizar para o lado) ---------- */
.cart-abas .cart-ab .l-c { display: none; }
@media (max-width: 640px) {
  .cart-abas { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 4px !important; overflow: visible !important; width: 100%; }
  .cart-abas .cart-ab { flex-direction: column; gap: 4px; height: auto !important; min-height: 56px; min-width: 0; padding: 8px 2px !important; font-size: .78rem !important; line-height: 1.1; white-space: nowrap; }
  .cart-abas .cart-ab .l-l { display: none !important; }
  .cart-abas .cart-ab .l-c { display: block !important; max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
  .cart-abas .cart-ab i { font-size: 1.05rem; }
}

/* ---------- 107.ª parte: separador Pedidos (resumo compacto e quatro botões iguais) ---------- */
.pp2 { display: grid; gap: 12px; margin-bottom: 14px; }
.pp2-res { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--linha); border-radius: 18px; background: var(--sup); overflow: hidden; }
.pp2-n { display: grid; gap: 3px; align-content: start; padding: 13px 15px; min-width: 0; }
.pp2-n + .pp2-n { border-left: 1px solid var(--linha); }
.pp2-n small { font-size: .72rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--tinta-3); }
.pp2-n b { font-family: var(--f-tit); font-size: 1.5rem; line-height: 1.1; color: var(--tinta); }
.pp2-n b i { font-style: normal; font-size: .85rem; color: var(--tinta-3); font-weight: 700; }
.pp2-n b.pp2-t { font-size: 1.1rem; padding-top: 4px; }
.pp2-n > span { font-size: .8rem; color: var(--tinta-2); line-height: 1.3; }
.pp2-n .pp-barra { margin: 4px 0 2px; }
.pp2-ac { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.pp2-b { display: grid; justify-items: start; align-content: start; gap: 2px; min-width: 0; padding: 12px; border-radius: 16px; border: 1px solid var(--linha); background: var(--sup); color: var(--tinta); font: inherit; text-align: left; cursor: pointer; transition: border-color .15s, background .15s, transform .15s; }
.pp2-b:hover:not(:disabled) { border-color: var(--bic); background: var(--azul-suave); }
.pp2-b:active:not(:disabled) { transform: scale(.98); }
.pp2-b:disabled { opacity: .45; cursor: not-allowed; }
.pp2-ic { width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; background: var(--azul-suave); color: var(--bic); margin-bottom: 6px; font-size: 1rem; }
.pp2-ic svg { width: 18px; height: 18px; }
.pp2-b.pri .pp2-ic { background: var(--bic); color: #fff; }
.pp2-b b { font-size: .92rem; font-weight: 800; line-height: 1.2; }
.pp2-b small { font-size: .8rem; color: var(--tinta-2); line-height: 1.25; }
.pp2-vazio { display: flex; gap: 12px; align-items: center; padding: 14px 16px; border-radius: 16px; border: 1px dashed var(--linha-2); background: var(--sup); margin-bottom: 12px; }
.pp2-vic { flex: none; width: 42px; height: 42px; border-radius: 14px; display: grid; place-items: center; background: var(--azul-suave); color: var(--bic); font-size: 1.05rem; }
.pp2-vazio b { display: block; font-size: .95rem; }
.pp2-vazio small { display: block; margin-top: 2px; color: var(--tinta-2); font-size: .84rem; line-height: 1.4; }
@media (max-width: 640px) {
  .pp2-ac { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pp2-n { padding: 10px 9px; }
  .pp2-n small { font-size: .58rem; letter-spacing: .03em; }
  .pp2-n b { font-size: 1.25rem; }
  .pp2-n b.pp2-t { font-size: .95rem; }
  .pp2-n > span { font-size: .72rem; }
  .pp2-b { padding: 11px; }
}

/* ---------- 107.ª parte: escolher o colega (pedir ou dar pontos) ---------- */
.ppc { display: grid; gap: 12px; }
.ppc-cab { display: flex; gap: 12px; align-items: center; }
.ppc-ic { flex: none; width: 46px; height: 46px; border-radius: 15px; display: grid; place-items: center; background: var(--bic); color: #fff; font-size: 1.1rem; }
.ppc-cab h2 { margin: 0; font-family: var(--f-tit); font-size: 1.22rem; }
.ppc-cab p { margin: 2px 0 0; color: var(--tinta-2); font-size: .86rem; line-height: 1.35; }
.ppc .ppc-q { display: flex; align-items: center; gap: 10px; width: 100%; height: 48px; padding: 0 14px; border-radius: 14px; border: 1.5px solid var(--linha-2); background: var(--sup); }
.ppc .ppc-q:focus-within { border-color: var(--bic); box-shadow: 0 0 0 4px var(--azul-suave); }
.ppc .ppc-q svg { width: 18px; height: 18px; color: var(--tinta-3); flex: none; }
.ppc .ppc-q input { flex: 1; min-width: 0; height: 100%; border: 0; outline: 0; background: transparent; font: inherit; font-size: 1rem; color: var(--tinta); padding: 0; box-shadow: none; }
.ppc .ppc-l { display: grid; gap: 6px; max-height: min(52vh, 440px); overflow-y: auto; padding-right: 2px; }
.ppc-g { margin: 6px 2px 0; font-size: .76rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--tinta-3); }
.ppc .ppc-p { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: 12px; width: 100%; padding: 10px 12px; border: 1px solid var(--linha); border-radius: 16px; background: var(--sup); color: var(--tinta); font: inherit; text-align: left; cursor: pointer; transition: border-color .15s, background .15s; }
.ppc .ppc-p:hover { border-color: var(--bic); background: var(--azul-suave); }
.ppc .ppc-p .av { width: 44px !important; height: 44px !important; flex: none; }
.ppc-t { display: grid; min-width: 0; gap: 1px; }
.ppc-t strong { font-size: .95rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ppc-t small { color: var(--tinta-2); font-size: .8rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ppc-b { font-style: normal; font-size: .72rem; font-weight: 800; padding: 3px 8px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); white-space: nowrap; }
.ppc .ppc-p > i { color: var(--tinta-3); font-size: .8rem; }
.ppc-nota { display: flex; gap: 8px; align-items: flex-start; margin: 0; font-size: .82rem; color: var(--tinta-3); line-height: 1.4; }
.ppc-nota i { margin-top: 2px; }
.ppc-vazio { margin: 0; padding: 18px; text-align: center; color: var(--tinta-2); border: 1px dashed var(--linha-2); border-radius: 14px; }

/* ---------- 107.ª parte: receber por QR (código escrito e «à espera») e ler o QR com a câmara dentro do site ---------- */
.rqr-cab { display: grid; gap: 4px; justify-items: center; }
.rqr-cab h2 { margin: 0; font-family: var(--f-tit); }
.rqr-cab p { margin: 0; color: var(--tinta-2); font-size: .92rem; line-height: 1.45; max-width: 38ch; }
.rqr-cod { margin: 0; font-size: .8rem; color: var(--tinta-2); font-weight: 600; }
.rqr-cod b { margin-left: 6px; font-family: var(--f-tit); font-size: 1.08rem; letter-spacing: .14em; color: var(--tinta); font-variant-numeric: tabular-nums; }
.rqr-espera { display: inline-flex; align-items: center; gap: 8px; margin: 0; font-size: .84rem; color: var(--tinta-3); font-weight: 600; }
.rqr-pulso { width: 9px; height: 9px; border-radius: 50%; background: var(--bic); animation: rqr-pulso 1.4s ease-in-out infinite; }
@keyframes rqr-pulso { 0%, 100% { opacity: .25; transform: scale(.8); } 50% { opacity: 1; transform: scale(1.15); } }
.lqr { display: grid; gap: 12px; }
.lqr-cab { text-align: center; }
.lqr-cab h2 { margin: 0; font-family: var(--f-tit); }
.lqr-cab p { margin: 4px auto 0; color: var(--tinta-2); font-size: .92rem; line-height: 1.45; max-width: 36ch; }
.lqr .lqr-v { position: relative; justify-self: center; width: min(340px, 100%); aspect-ratio: 1; border-radius: 24px; overflow: hidden; background: #0B1026; }
.lqr .lqr-v video { display: block; width: 100%; height: 100%; object-fit: cover; }
.lqr .lqr-mira { position: absolute; inset: 16%; border: 0; border-radius: 18px; box-shadow: 0 0 0 999px rgba(5, 8, 25, .38); }
.lqr-mira i { position: absolute; width: 34px; height: 34px; border: 4px solid #fff; }
.lqr-mira i:nth-child(1) { left: -2px; top: -2px; border-right: 0; border-bottom: 0; border-top-left-radius: 18px; }
.lqr-mira i:nth-child(2) { right: -2px; top: -2px; border-left: 0; border-bottom: 0; border-top-right-radius: 18px; }
.lqr-mira i:nth-child(3) { left: -2px; bottom: -2px; border-right: 0; border-top: 0; border-bottom-left-radius: 18px; }
.lqr-mira i:nth-child(4) { right: -2px; bottom: -2px; border-left: 0; border-top: 0; border-bottom-right-radius: 18px; }
.lqr-linha { position: absolute; left: 20%; right: 20%; top: 20%; height: 2px; border-radius: 2px; background: linear-gradient(90deg, transparent, #8EA6FF, transparent); animation: lqr-linha 2.2s ease-in-out infinite; }
@keyframes lqr-linha { 0%, 100% { top: 20%; } 50% { top: 80%; } }
.lqr-msg { position: absolute; left: 10px; right: 10px; bottom: 10px; padding: 8px 12px; border-radius: 12px; background: rgba(5, 8, 25, .72); color: #fff; font-size: .82rem; font-weight: 600; line-height: 1.35; text-align: center; }
.lqr.sem-cam .lqr-linha, .lqr.sem-cam .lqr-mira { display: none; }
.lqr.sem-cam .lqr-msg { top: 50%; bottom: auto; transform: translateY(-50%); background: transparent; font-size: .9rem; }
.lqr-cod { display: grid; gap: 6px; }
.lqr-cod label { font-size: .82rem; color: var(--tinta-2); font-weight: 600; text-align: center; line-height: 1.35; }
.lqr-cod-l { display: flex; gap: 8px; }
.lqr-cod-l input { flex: 1; min-width: 0; height: 46px; padding: 0 14px; border-radius: 14px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta); font: inherit; font-size: 1rem; letter-spacing: .1em; text-transform: uppercase; }
.lqr-cod-l input:focus { outline: none; border-color: var(--bic); box-shadow: 0 0 0 4px var(--azul-suave); }
.lqr-cod-l .btn { height: 46px; flex: none; }
@media (prefers-reduced-motion: reduce) { .lqr-linha, .rqr-pulso { animation: none; } }

/* ---------- 108.ª parte: metas da comunidade («Já somos 100 veteranos!») ---------- */
body.mc-aberta { overflow: hidden; }
.mc-ov { position: fixed; inset: 0; z-index: 410; display: grid; place-items: center; padding: 18px; overflow-y: auto; background: rgba(12, 18, 46, .64); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); animation: medFundo .25s ease-out; }
.mc-card { position: relative; width: min(420px, 100%); border-radius: 28px; overflow: hidden; background: var(--sup); box-shadow: 0 30px 80px -30px rgba(5, 10, 40, .7); animation: mcEntra .55s cubic-bezier(.2, .9, .3, 1.15); }
@keyframes mcEntra { from { opacity: 0; transform: translateY(20px) scale(.93); } to { opacity: 1; transform: none; } }
.mc-x { position: absolute; top: 12px; right: 12px; z-index: 3; width: 36px; height: 36px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .18); color: #fff; display: grid; place-items: center; cursor: pointer; font-size: 1rem; }
.mc-x:hover { background: rgba(255, 255, 255, .3); }
.mc-topo { position: relative; padding: 22px 22px 18px; text-align: center; color: #fff; background: radial-gradient(120% 90% at 50% 0%, #3D5CF5 0%, #1E40E6 55%, #1530B8 100%); overflow: hidden; }
.mc-topo::before, .mc-topo::after { content: ''; position: absolute; border-radius: 50%; pointer-events: none; }
.mc-topo::before { width: 230px; height: 230px; right: -80px; top: -100px; background: rgba(255, 255, 255, .08); }
.mc-topo::after { width: 170px; height: 170px; left: -70px; bottom: -90px; background: rgba(10, 16, 60, .18); }
.mc-k { position: relative; z-index: 1; display: inline-block; padding: 5px 12px; border-radius: 999px; background: rgba(255, 255, 255, .16); font-size: .76rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.mc-cal { position: relative; z-index: 1; width: 120px; height: 112px; margin: 6px auto 0; display: grid; place-items: center; }
.mc-cal svg { width: 120px; height: auto; animation: mcPula 1.8s ease-in-out infinite; filter: drop-shadow(0 10px 14px rgba(5, 10, 50, .3)); }
@keyframes mcPula { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
.mc-n { position: relative; z-index: 1; display: block; font-family: var(--f-tit); font-size: 4.3rem; font-weight: 800; line-height: 1; letter-spacing: -.03em; font-variant-numeric: tabular-nums; text-shadow: 0 8px 26px rgba(5, 10, 50, .35); }
.mc-u { position: relative; z-index: 1; display: block; margin-top: 4px; font-size: .95rem; font-weight: 700; opacity: .9; }
.mc-corpo { display: grid; gap: 12px; padding: 20px 22px 16px; text-align: center; }
.mc-corpo h2 { margin: 0; font-family: var(--f-tit); font-size: 1.45rem; line-height: 1.2; letter-spacing: -.02em; }
.mc-corpo > p { margin: 0; color: var(--tinta-2); font-size: .95rem; line-height: 1.5; }
.mc-cup { display: flex; align-items: center; gap: 12px; padding: 12px; border-radius: 18px; background: var(--azul-suave); border: 1.5px dashed rgba(30, 64, 230, .35); text-align: left; }
.mc-cup-ic { flex: none; width: 44px; height: 44px; border-radius: 14px; display: grid; place-items: center; background: var(--bic); color: #fff; font-size: 1.1rem; }
.mc-cup > div { flex: 1; min-width: 0; }
.mc-cup b { display: block; font-size: .95rem; line-height: 1.25; color: var(--tinta); }
.mc-cup small { display: block; margin-top: 2px; font-size: .82rem; line-height: 1.3; color: var(--tinta-2); }
.mc-cup .btn { flex: none; }
.mc-cup.feito { background: rgba(22, 163, 74, .1); border: 1.5px solid rgba(22, 163, 74, .3); }
.mc-cup.feito .mc-cup-ic { background: #16A34A; }
.mc-meta { display: grid; gap: 7px; padding: 12px 14px; border-radius: 16px; border: 1px solid var(--linha); text-align: left; }
.mc-meta-t { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; font-size: .82rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--tinta-3); }
.mc-meta-t b { font-family: var(--f-tit); font-size: 1rem; letter-spacing: 0; text-transform: none; color: var(--tinta); }
.mc-barra { display: block; height: 8px; border-radius: 999px; background: var(--sup-3, #EEF0F6); overflow: hidden; }
.mc-barra i { display: block; height: 100%; width: 0; border-radius: inherit; background: linear-gradient(90deg, #6E86FF, var(--bic)); transition: width 1.1s cubic-bezier(.2, .8, .2, 1) .35s; }
.mc-meta small { font-size: .8rem; line-height: 1.35; color: var(--tinta-2); }
.mc-ac { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.mc-ac .btn { justify-content: center; padding-inline: 10px; }
.mc-ac .btn i { margin-right: 6px; }
.mc-depois { justify-self: center; padding: 6px 12px; border: 0; background: none; color: var(--tinta-3); font: inherit; font-size: .86rem; font-weight: 700; cursor: pointer; }
.mc-depois:hover { color: var(--tinta); }
.mc-adm { display: flex; align-items: center; gap: 14px; padding: 14px 16px; margin: 0 0 14px; }
.mc-adm-ic { flex: none; width: 44px; height: 44px; border-radius: 14px; display: grid; place-items: center; background: var(--azul-suave); color: var(--bic); font-size: 1.05rem; }
.mc-adm-t { flex: 1; min-width: 0; display: grid; gap: 4px; }
.mc-adm-t b { font-size: .98rem; }
.mc-adm-t small { color: var(--tinta-2); font-size: .82rem; line-height: 1.4; }
.mc-adm .mc-barra { margin-top: 4px; max-width: 360px; }
.mc-adm .mc-barra i { transition: none; }
.mc-adm .btn i { margin-right: 6px; }
@media (max-width: 640px) { .mc-adm { flex-wrap: wrap; } .mc-adm .btn { width: 100%; justify-content: center; } }
@media (max-width: 420px) { .mc-n { font-size: 3.7rem; } .mc-corpo { padding: 18px 16px 14px; } .mc-cal { width: 104px; height: 98px; } .mc-cal svg { width: 104px; } .mc-cup { flex-wrap: wrap; } .mc-cup .btn { width: 100%; justify-content: center; } }
@media (prefers-reduced-motion: reduce) { .mc-card, .mc-cal svg, .mc-ov { animation: none; } .mc-barra i { transition: none; } }
.mc-corpo { grid-template-columns: minmax(0, 1fr); }
.mc-ac { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.mc-ac .btn { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: .95rem; }
.mc-card:focus { outline: none; }
@media (max-width: 380px) { .mc-ac { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 440px) {
  .mc-ac { grid-template-columns: minmax(0, 1fr); }
  .mc-ac .btn-pri { order: -1; }
  .mc-topo { padding: 18px 18px 16px; }
  .mc-cal { width: 96px; height: 90px; margin-top: 4px; }
  .mc-cal svg { width: 96px; }
  .mc-n { font-size: 3.5rem; }
  .mc-corpo { gap: 10px; }
  .mc-corpo h2 { font-size: 1.3rem; }
  .mc-corpo > p { font-size: .9rem; }
}

/* ---------- 111.ª parte: «Contas no site» clicável e em grande ---------- */
.kpi-bt { position: relative; display: block; width: 100%; padding: 0; border: 0; background: none; font: inherit; color: inherit; text-align: left; cursor: pointer; border-radius: 22px; transition: transform .18s ease; }
.kpi-bt .kpi { height: 100%; transition: border-color .18s ease, box-shadow .18s ease; }
.kpi-bt:hover { transform: translateY(-2px); }
.kpi-bt:hover .kpi, .kpi-bt:focus-visible .kpi { border-color: var(--bic); box-shadow: 0 14px 30px -20px rgba(30, 64, 230, .55); }
.kpi-bt:focus-visible { outline: none; }
.kpi-ver { position: absolute; right: 14px; bottom: 12px; display: inline-flex; align-items: center; gap: 5px; font-size: .78rem; font-weight: 800; color: var(--bic); opacity: .85; }
.kpi-ver i { font-size: .74rem; transition: transform .18s ease; }
.kpi-bt:hover .kpi-ver i { transform: translateX(3px); }
body.cg-aberta { overflow: hidden; }
.cg-ov { position: fixed; inset: 0; z-index: 420; background: rgba(12, 18, 46, .55); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); animation: medFundo .2s ease-out; }
.cg { position: absolute; inset: 0; overflow-y: auto; overscroll-behavior: contain; background: var(--fundo, #F3F5FB); animation: cgEntra .35s cubic-bezier(.2, .9, .3, 1); }
@keyframes cgEntra { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
.cg-carga { min-height: 60vh; }
.cg-x { position: fixed; top: max(14px, env(safe-area-inset-top)); right: 16px; z-index: 5; width: 44px; height: 44px; border-radius: 50%; border: 0; display: grid; place-items: center; background: rgba(255, 255, 255, .18); color: #fff; font-size: 1.15rem; cursor: pointer; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.cg-x:hover { background: rgba(255, 255, 255, .3); }
.cg-topo { position: relative; overflow: hidden; padding: max(38px, calc(env(safe-area-inset-top) + 24px)) 22px 34px; text-align: center; color: #fff; background: radial-gradient(120% 100% at 50% 0%, #3D5CF5 0%, #1E40E6 55%, #1530B8 100%); }
.cg-topo::before, .cg-topo::after { content: ''; position: absolute; border-radius: 50%; pointer-events: none; }
.cg-topo::before { width: 420px; height: 420px; right: -160px; top: -200px; background: rgba(255, 255, 255, .08); }
.cg-topo::after { width: 300px; height: 300px; left: -120px; bottom: -170px; background: rgba(10, 16, 60, .2); }
.cg-k { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; border-radius: 999px; background: rgba(255, 255, 255, .16); font-size: .8rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.cg-n { position: relative; z-index: 1; display: block; margin: 10px 0 6px; font-family: var(--f-tit); font-size: clamp(6.5rem, 26vw, 13.5rem); font-weight: 800; line-height: .92; letter-spacing: -.04em; font-variant-numeric: tabular-nums; text-shadow: 0 14px 40px rgba(5, 10, 50, .35); }
.cg-sub { position: relative; z-index: 1; margin: 0 auto; max-width: 640px; font-size: 1rem; line-height: 1.5; color: rgba(255, 255, 255, .88); }
.cg-sub b { color: #fff; }
.cg-meta { position: relative; z-index: 1; display: grid; gap: 7px; max-width: 420px; margin: 20px auto 0; padding: 12px 16px; border-radius: 18px; background: rgba(255, 255, 255, .12); text-align: left; }
.cg-meta > div { display: flex; justify-content: space-between; align-items: baseline; font-size: .82rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: rgba(255, 255, 255, .8); }
.cg-meta > div b { font-family: var(--f-tit); font-size: 1.15rem; letter-spacing: 0; color: #fff; }
.cg-barra { display: block; height: 8px; border-radius: 999px; background: rgba(255, 255, 255, .2); overflow: hidden; }
.cg-barra i { display: block; height: 100%; width: 0; border-radius: inherit; background: #fff; transition: width 1.2s cubic-bezier(.2, .8, .2, 1) .3s; }
.cg-meta small { font-size: .8rem; color: rgba(255, 255, 255, .85); }
.cg-ferr { position: sticky; top: 0; z-index: 3; display: grid; gap: 10px; padding: 14px 20px; background: var(--fundo, #F3F5FB); border-bottom: 1px solid var(--linha); }
.cg-q { display: flex; align-items: center; gap: 10px; height: 48px; padding: 0 16px; border-radius: 14px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta-3); }
.cg-q:focus-within { border-color: var(--bic); box-shadow: 0 0 0 4px var(--azul-suave); }
.cg-q input { flex: 1; min-width: 0; height: 100%; border: 0; outline: 0; padding: 0; background: transparent; font: inherit; font-size: 1rem; color: var(--tinta); box-shadow: none; }
.cg-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.cg-chip { display: inline-flex; align-items: center; gap: 6px; padding: 7px 13px; border-radius: 999px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta-2); font: inherit; font-size: .84rem; font-weight: 700; cursor: pointer; }
.cg-chip span { font-size: .8rem; font-weight: 800; color: var(--tinta-3); }
.cg-chip.on { border-color: var(--bic); background: var(--bic); color: #fff; }
.cg-chip.on span { color: rgba(255, 255, 255, .85); }
.cg-ord { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: .84rem; font-weight: 700; color: var(--tinta-2); }
.cg-ord select { height: 38px; padding: 0 12px; border-radius: 12px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta); font: inherit; font-size: .86rem; }
.cg-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; padding: 18px 20px 10px; max-width: 1400px; margin: 0 auto; }
.cg-c { display: flex; flex-direction: column; align-items: center; gap: 4px; min-width: 0; padding: 16px 10px 14px; border-radius: 20px; border: 1px solid var(--linha); background: var(--sup); color: var(--tinta); text-align: center; text-decoration: none; animation: cgCartao .4s ease both; animation-delay: calc(var(--i) * 12ms); transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease; }
@keyframes cgCartao { from { opacity: 0; transform: translateY(10px) scale(.97); } to { opacity: 1; transform: none; } }
.cg-c:hover { transform: translateY(-3px); border-color: var(--bic); box-shadow: 0 16px 30px -22px rgba(30, 64, 230, .6); }
.cg-c .cg-av { width: 74px !important; height: 74px !important; margin-bottom: 6px; border-radius: 50%; box-shadow: 0 0 0 4px var(--azul-suave); }
.cg-c b { width: 100%; font-size: .9rem; line-height: 1.25; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; word-break: break-word; }
.cg-c small { width: 100%; font-size: .78rem; color: var(--tinta-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cg-c em { display: inline-flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 5px; margin-top: 2px; font-style: normal; font-size: .74rem; font-weight: 700; color: var(--tinta-3); }
.cg-eq, .cg-su { padding: 2px 7px; border-radius: 999px; font-size: .68rem; font-weight: 800; }
.cg-eq { background: var(--azul-suave); color: var(--bic); }
.cg-su { background: rgba(214, 48, 49, .12); color: #D63031; }
.cg-c.susp { opacity: .6; }
.cg-vazio { grid-column: 1 / -1; margin: 30px 0; text-align: center; color: var(--tinta-2); }
.cg-fim { display: grid; place-items: center; padding: 20px 0 40px; }
.cg-fim[hidden] { display: none; }
.diag-sub { margin: 18px 0 8px; font-size: .95rem; display: flex; align-items: center; gap: 8px; }
@media (max-width: 640px) {
  .cg-topo { padding-left: 16px; padding-right: 16px; }
  .cg-sub { font-size: .9rem; }
  .cg-ferr { padding: 12px 14px; }
  .cg-chips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin: 0 -14px; padding: 0 14px; }
  .cg-chips::-webkit-scrollbar { display: none; }
  .cg-chip { flex: none; }
  .cg-grade { grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); gap: 8px; padding: 14px 12px 8px; }
  .cg-c { padding: 12px 6px 10px; border-radius: 16px; }
  .cg-c .cg-av { width: 58px !important; height: 58px !important; }
  .cg-c b { font-size: .8rem; }
  .cg-c small { font-size: .72rem; }
}
@media (prefers-reduced-motion: reduce) { .cg, .cg-c, .cg-ov { animation: none; } .cg-barra i { transition: none; } }
.cg-x { background: rgba(12, 18, 46, .5); box-shadow: 0 6px 18px -8px rgba(5, 10, 40, .6); }
.cg-x:hover { background: rgba(12, 18, 46, .7); }
.cg-ferr { padding-right: 76px; }
@media (max-width: 640px) { .cg-ferr { padding-right: 64px; } .cg-x { right: 12px; width: 42px; height: 42px; } }

/* ---------- 112.ª parte: o @ no perfil, imagem no leitor e o aviso das metas sem o Caloiro ---------- */
.pf-arroba { margin: 2px 0 4px; font-size: .98rem; font-weight: 700; color: var(--bic); letter-spacing: .01em; word-break: break-all; }
.campo-arroba { display: flex; align-items: center; height: 48px; border-radius: 14px; border: 1.5px solid var(--linha-2); background: var(--sup); overflow: hidden; }
.campo-arroba:focus-within { border-color: var(--bic); box-shadow: 0 0 0 4px var(--azul-suave); }
.campo-arroba span { flex: none; display: grid; place-items: center; width: 42px; height: 100%; background: var(--azul-suave); color: var(--bic); font-weight: 800; font-size: 1.05rem; }
.campo-arroba input { flex: 1; min-width: 0; height: 100%; border: 0 !important; outline: 0; box-shadow: none !important; background: transparent; padding: 0 12px; font: inherit; font-size: 1rem; color: var(--tinta); }
.pg-img { aspect-ratio: auto !important; background: #fff; }
.pg-img img { display: block; width: 100%; height: auto; }
.mc-topo { padding-top: 30px; padding-bottom: 22px; }
.mc-n { margin-top: 18px; }
@media (max-width: 440px) { .mc-topo { padding-top: 26px; } .mc-n { margin-top: 14px; } }
.mc-n { font-size: 5.6rem; }
@media (max-width: 440px) { .mc-n { font-size: 4.8rem; } }

/* ---------- 113.ª parte: voltar depois de editar e o saldo de quem pede pontos ---------- */
.ed-voltar { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 12px; padding: 7px 14px 7px 10px; border-radius: 999px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta); font-size: .88rem; font-weight: 700; text-decoration: none; }
.ed-voltar:hover { border-color: var(--bic); color: var(--bic); }
.ed-voltar i { font-size: .82rem; }
.pp-saldo { display: flex !important; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin-top: 4px; font-size: .82rem !important; color: var(--tinta-2) !important; font-style: normal; }
.pp-saldo-n { display: inline-flex; align-items: center; gap: 5px; padding: 2px 9px 2px 3px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); font-weight: 800; }
.pp-saldo-n .moeda { width: 16px; height: 16px; }

/* ---------- 114.ª parte: a festa das metas em ecrã inteiro (os rostos da comunidade a voar) ---------- */
.mc3 { position: fixed; inset: 0; z-index: 410; overflow: hidden; display: grid; grid-template-rows: minmax(0, 1fr) auto; color: #fff; background: radial-gradient(120% 80% at 50% 38%, #2E50F6 0%, #1834C8 38%, #0C1659 72%, #060A2C 100%); animation: medFundo .35s ease-out; }
.mc3-portal { position: absolute; left: 50%; top: 36%; width: 72vmin; height: 72vmin; transform: translate(-50%, -50%); border-radius: 50%; background: radial-gradient(circle, rgba(170, 190, 255, .55) 0%, rgba(90, 120, 255, .22) 30%, rgba(40, 70, 230, 0) 62%); filter: blur(6px); animation: mc3Pulsa 3.2s ease-in-out infinite; pointer-events: none; }
@keyframes mc3Pulsa { 0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: .85; } 50% { transform: translate(-50%, -50%) scale(1.12); opacity: 1; } }
.mc3-campo { position: absolute; inset: 0; overflow: hidden; pointer-events: none; opacity: 0; transition: opacity .8s ease; }
.mc3.em-cena .mc3-campo { opacity: 1; }
.mc3-v { position: absolute; left: 50%; top: 36%; width: 58px; height: 58px; border-radius: 50%; overflow: hidden; opacity: 0; background: rgba(255, 255, 255, .14); box-shadow: 0 12px 30px rgba(0, 0, 0, .35), 0 0 0 3px rgba(255, 255, 255, .22); animation: mc3Voo var(--t) cubic-bezier(.55, .02, .9, .5) var(--a) infinite; will-change: transform, opacity; }
.mc3-v .av { display: block; width: 100% !important; height: 100% !important; border-radius: 50%; }
@keyframes mc3Voo { 0% { transform: translate(-50%, -50%) translate(0, 0) scale(.1); opacity: 0; } 14% { opacity: .95; } 82% { opacity: .95; } 100% { transform: translate(-50%, -50%) translate(var(--dx), var(--dy)) scale(var(--s)); opacity: 0; } }
.mc3-conf { z-index: 4; }
.mc3-x { position: absolute; top: max(14px, env(safe-area-inset-top)); right: 14px; z-index: 6; width: 44px; height: 44px; border-radius: 50%; border: 0; display: grid; place-items: center; background: rgba(255, 255, 255, .16); color: #fff; font-size: 1.15rem; cursor: pointer; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.mc3-x:hover { background: rgba(255, 255, 255, .28); }
.mc3-centro { position: relative; z-index: 3; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; min-height: 0; padding: max(56px, calc(env(safe-area-inset-top) + 40px)) 20px 16px; }
.mc3-k { display: inline-flex; padding: 6px 14px; border-radius: 999px; background: rgba(255, 255, 255, .14); border: 1px solid rgba(255, 255, 255, .22); font-size: .8rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); opacity: 0; transform: translateY(-8px); transition: opacity .6s ease .2s, transform .6s ease .2s; }
.mc3.em-cena .mc3-k { opacity: 1; transform: none; }
.mc3-num { position: relative; display: grid; place-items: center; margin: 8px 0 2px; }
.mc3 .mc-n { position: relative; display: block; margin: 0; font-family: var(--f-tit); font-size: clamp(7.5rem, 32vw, 15rem); font-weight: 800; line-height: .9; letter-spacing: -.05em; font-variant-numeric: tabular-nums; background: linear-gradient(180deg, #FFFFFF 15%, #C9D4FF 100%); -webkit-background-clip: text; background-clip: text; color: transparent; text-shadow: none; filter: drop-shadow(0 18px 48px rgba(110, 140, 255, .65)); }
.mc3.chegou .mc-n { animation: mc3Pop .7s cubic-bezier(.2, 1.5, .4, 1); }
@keyframes mc3Pop { 0% { transform: scale(1); } 35% { transform: scale(1.14); } 100% { transform: scale(1); } }
.mc3-anel { position: absolute; left: 50%; top: 50%; width: 1em; height: 1em; font-size: clamp(9rem, 40vw, 19rem); border-radius: 50%; border: 3px solid rgba(255, 255, 255, .75); transform: translate(-50%, -50%) scale(.3); opacity: 0; pointer-events: none; }
.mc3.chegou .mc3-anel { animation: mc3Anel 1.2s cubic-bezier(.1, .7, .3, 1) forwards; }
.mc3.chegou .mc3-anel.b { animation-delay: .18s; border-width: 2px; }
@keyframes mc3Anel { 0% { transform: translate(-50%, -50%) scale(.3); opacity: .9; } 100% { transform: translate(-50%, -50%) scale(1.6); opacity: 0; } }
.mc3-t { margin: 6px 0 0; font-family: var(--f-tit); font-size: clamp(1.6rem, 6.4vw, 2.7rem); font-weight: 800; letter-spacing: -.02em; line-height: 1.15; text-shadow: 0 8px 30px rgba(5, 10, 50, .45); opacity: 0; transform: translateY(12px); transition: opacity .6s ease, transform .6s cubic-bezier(.2, .9, .3, 1); }
.mc3-t b { background: linear-gradient(90deg, #FFFFFF 0%, #FFFFFF 35%, #9FB3FF 50%, #FFFFFF 65%, #FFFFFF 100%); background-size: 250% 100%; -webkit-background-clip: text; background-clip: text; color: transparent; animation: mc3Brilho 2.6s linear infinite; }
@keyframes mc3Brilho { from { background-position: 100% 0; } to { background-position: -150% 0; } }
.mc3-sub { margin: 10px auto 0; max-width: 460px; font-size: 1rem; line-height: 1.5; color: rgba(255, 255, 255, .86); opacity: 0; transform: translateY(12px); transition: opacity .6s ease .12s, transform .6s ease .12s; }
.mc3.chegou .mc3-t, .mc3.chegou .mc3-sub { opacity: 1; transform: none; }
.mc3-painel { position: relative; z-index: 5; width: min(520px, 100%); margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; padding: 18px 18px max(16px, env(safe-area-inset-bottom)); border-radius: 28px 28px 0 0; background: var(--sup); color: var(--tinta); box-shadow: 0 -20px 60px -20px rgba(0, 0, 0, .5); transform: translateY(110%); transition: transform .65s cubic-bezier(.2, .9, .3, 1); outline: none; }
.mc3.painel .mc3-painel { transform: none; }
@media (min-width: 700px) { .mc3-painel { margin-bottom: 24px; border-radius: 28px; } }
@media (max-height: 720px) { .mc3 .mc-n { font-size: clamp(5.5rem, 26vw, 10rem); } .mc3-sub { display: none; } .mc3-centro { padding-top: 48px; } }
@media (prefers-reduced-motion: reduce) { .mc3-portal, .mc3-v, .mc3-t b { animation: none; } .mc3-k, .mc3-t, .mc3-sub, .mc3-painel { transition: none; } }
.ia-tudo { display: flex; align-items: center; gap: 14px; margin: 0 0 16px; padding: 14px 16px; border-radius: 18px; background: var(--azul-suave); border: 1px solid rgba(30, 64, 230, .18); }
.ia-tudo-ic { flex: none; width: 42px; height: 42px; border-radius: 14px; display: grid; place-items: center; background: var(--bic); color: #fff; }
.ia-tudo-ic .roda-c { border-color: rgba(255, 255, 255, .35); border-top-color: #fff; }
.ia-tudo-t { flex: 1; min-width: 0; display: grid; gap: 4px; }
.ia-tudo-t strong { font-size: .98rem; }
.ia-tudo-t small { color: var(--tinta-2); font-size: .84rem; line-height: 1.4; }
.ia-tudo-barra { display: block; height: 8px; border-radius: 999px; background: rgba(30, 64, 230, .15); overflow: hidden; margin-top: 2px; }
.ia-tudo-barra i { display: block; height: 100%; border-radius: inherit; background: var(--bic); transition: width .4s ease; }
.ia-tudo-n { font-weight: 700; }

/* ---------- 115.ª parte: voltar à moderação (ou aos materiais, à avaliação…) a partir da página do material ---------- */
.volta-mod { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 14px; padding: 9px 16px 9px 12px; border-radius: 999px; background: var(--bic); color: #fff !important; font-weight: 800; font-size: .9rem; text-decoration: none; box-shadow: 0 10px 24px -12px rgba(30, 64, 230, .7); transition: transform .15s ease, box-shadow .15s ease; }
.volta-mod:hover { transform: translateX(-2px); box-shadow: 0 14px 28px -12px rgba(30, 64, 230, .8); }
.volta-mod i { font-size: .85rem; }

/* ---------- 116.ª parte: com o teclado do telemóvel aberto, o que está fixo no fundo do ecrã esconde-se
   (a barra de baixo, a seta de subir, o robô, a barra do material, o botão Filtrar e os avisos de baixo) ---------- */
html.teclado .abas-m,
html.teclado .subir,
html.teclado .robo-btn,
html.teclado .barra-doc,
html.teclado .exp-filtrar-fixo,
html.teclado #off-aviso,
html.teclado .versao-nova,
html.teclado .tts-barra,
html.teclado .cie3-barra,
html.teclado #faixa-contagem,
html.teclado #faixa-fecho,
html.teclado #faixa-bloqueio,
html.teclado .aviso-cookies,
html.teclado .sl-som { display: none !important; }
/* os avisos curtos (toasts) passam para cima, para não ficarem por trás do teclado */
html.teclado .toasts { top: calc(env(safe-area-inset-top, 0px) + 12px); bottom: auto; }
/* o chat ocupa o espaço da barra de baixo enquanto se escreve */
html.teclado .pag-chat { bottom: 0 !important; }

/* ---------- 117.ª parte: ganhos por tipo, gráfico da economia, metas com ligar/desligar, alertas dos pontos dados ---------- */
.recibo-tipos { display: grid; gap: 4px; margin: 2px 0 8px; font-size: .8rem; color: var(--tinta-2); }
.recibo-tipos span { display: flex; justify-content: space-between; gap: 8px; }
.recibo-tipos b { color: var(--bic); }
.gg svg { display: block; width: 100%; height: auto; }
.gg-grade { stroke: var(--linha); stroke-width: 1; }
.gg-y { font-size: 12px; fill: var(--tinta-3); text-anchor: end; font-family: inherit; }
.gg-x { font-size: 12px; fill: var(--tinta-3); text-anchor: middle; font-family: inherit; }
.gg-g { fill: var(--bic); }
.gg-p { fill: #9FB3FF; }
.gg-leg { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-top: 10px; font-size: .84rem; color: var(--tinta-2); }
.gg-l { display: inline-flex; align-items: center; gap: 6px; }
.gg-l i { width: 12px; height: 12px; border-radius: 3px; display: inline-block; }
.gg-l.g i { background: var(--bic); }
.gg-l.p i { background: #9FB3FF; }
.gg-l b { color: var(--tinta); }
.gg-l.n { margin-left: auto; color: var(--tinta-3); }
.metas-cx { display: grid; gap: 14px; padding: 18px; margin: 0 0 14px; border-radius: 22px; background: linear-gradient(160deg, var(--azul-suave), var(--sup) 60%); border: 1px solid rgba(30, 64, 230, .16); }
.metas-cx.desl { background: var(--sup); border-color: var(--linha); }
.mt-cab { display: flex; align-items: center; gap: 12px; }
.mt-ic { flex: none; width: 46px; height: 46px; border-radius: 15px; display: grid; place-items: center; background: var(--bic); color: #fff; font-size: 1.1rem; }
.metas-cx.desl .mt-ic { background: var(--linha-2); color: var(--tinta-3); }
.mt-t { flex: 1; min-width: 0; display: grid; gap: 2px; }
.mt-t b { font-size: 1.02rem; }
.mt-t small { font-size: .84rem; color: var(--tinta-2); line-height: 1.4; }
.mt-lig { flex: none; display: inline-flex; align-items: center; gap: 8px; cursor: pointer; font-size: .82rem; font-weight: 800; color: var(--tinta-2); }
.mt-lig input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.mt-sw { position: relative; width: 46px; height: 26px; border-radius: 999px; background: var(--linha-2); transition: background .2s; }
.mt-sw::after { content: ''; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 2px 6px rgba(0, 0, 0, .2); transition: transform .2s; }
.mt-lig input:checked + .mt-sw { background: var(--bic); }
.mt-lig input:checked + .mt-sw::after { transform: translateX(20px); }
.mt-lig input:focus-visible + .mt-sw { box-shadow: 0 0 0 4px var(--azul-suave); }
.mt-lig input:disabled + .mt-sw { opacity: .6; }
.mt-meio { display: flex; align-items: center; gap: 18px; padding: 14px 16px; border-radius: 18px; background: var(--sup); border: 1px solid var(--linha); }
.mt-num { display: grid; justify-items: center; flex: none; }
.mt-num b { font-family: var(--f-tit); font-size: 2.3rem; line-height: 1; font-weight: 800; letter-spacing: -.03em; }
.mt-num small { font-size: .78rem; font-weight: 700; color: var(--tinta-3); }
.mt-prog { flex: 1; min-width: 0; display: grid; gap: 6px; }
.mt-prog-t { display: flex; justify-content: space-between; align-items: baseline; font-size: .8rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--tinta-3); }
.mt-prog-t b { font-family: var(--f-tit); font-size: 1.15rem; letter-spacing: 0; color: var(--tinta); }
.mt-barra { display: block; height: 10px; border-radius: 999px; background: var(--azul-suave); overflow: hidden; }
.mt-barra i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #6E86FF, var(--bic)); }
.mt-prog small { font-size: .8rem; color: var(--tinta-2); }
.mt-pe { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px; }
.mt-pts { display: grid; gap: 4px; margin-right: auto; }
.mt-pts > span:first-child { font-size: .8rem; font-weight: 800; color: var(--tinta-2); }
.mt-pts-c { display: inline-flex; align-items: center; gap: 6px; height: 40px; padding: 0 12px; border-radius: 12px; border: 1.5px solid var(--linha-2); background: var(--sup); }
.mt-pts-c input { width: 64px; border: 0 !important; outline: 0; box-shadow: none !important; background: transparent; font: inherit; font-size: 1rem; font-weight: 800; color: var(--tinta); padding: 0; }
.mt-pts-c em { font-style: normal; font-size: .82rem; color: var(--tinta-3); }
.mt-pts small { font-size: .78rem; color: var(--tinta-3); }
.mt-pe .btn i { margin-right: 6px; }
.mt-hist { display: flex; flex-wrap: wrap; gap: 6px; }
.mt-h { display: inline-flex; align-items: baseline; gap: 6px; padding: 5px 11px; border-radius: 999px; background: var(--sup); border: 1px solid var(--linha); font-size: .82rem; }
.mt-h b { font-family: var(--f-tit); color: var(--bic); }
.mt-h small { color: var(--tinta-2); }
@media (max-width: 640px) { .mt-meio { flex-direction: column; align-items: stretch; } .mt-num { justify-items: start; } .mt-cab { flex-wrap: wrap; } }
.pp2-apto { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; border-radius: 16px; background: rgba(245, 158, 11, .1); border: 1px solid rgba(245, 158, 11, .3); }
.pp2-apto i { color: #B45309; margin-top: 3px; }
.pp2-apto b { display: block; font-size: .92rem; }
.pp2-apto small { display: block; margin-top: 2px; font-size: .82rem; color: var(--tinta-2); line-height: 1.4; }
.al { display: grid; gap: 14px; }
.al-regras { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; }
.al-regras i { color: var(--bic); margin-top: 3px; }
.al-regras p { margin: 0; font-size: .88rem; line-height: 1.5; color: var(--tinta-2); }
.al-s { padding: 14px; border-radius: 16px; border: 1px solid rgba(214, 48, 49, .25); background: rgba(214, 48, 49, .04); margin-bottom: 10px; }
.al-s-cab { display: flex; gap: 10px; align-items: center; margin-bottom: 10px; }
.al-s-ic { flex: none; width: 36px; height: 36px; border-radius: 12px; display: grid; place-items: center; background: rgba(214, 48, 49, .12); color: #D63031; }
.al-s-cab b { display: block; font-size: .92rem; } .al-s-cab small { font-size: .8rem; color: var(--tinta-2); }
.al-s-gente { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 8px; }
.al-p { display: inline-flex; align-items: center; gap: 8px; color: var(--tinta); text-decoration: none; }
.al-p .av { width: 34px; height: 34px; }
.al-p b { display: block; font-size: .88rem; } .al-p small { font-size: .78rem; color: var(--tinta-3); }
.al-l { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.al-t { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; padding: 8px 10px; border-radius: 12px; background: var(--sup); border: 1px solid var(--linha); font-size: .84rem; }
.al-t i { color: var(--tinta-3); font-size: .74rem; }
.al-t b { color: var(--bic); }
.al-t small { color: var(--tinta-3); margin-right: auto; }
.al-t em { font-style: normal; font-size: .78rem; font-weight: 800; padding: 2px 8px; border-radius: 999px; background: var(--linha); color: var(--tinta-3); }
.al-t.anulada { opacity: .6; text-decoration: line-through; }

/* ---------- 118.ª parte: página de entrada do simulado nos telemóveis ----------
   Havia uma regra posterior que obrigava o cabeçalho a ter 2 colunas (texto + Caloiro) até 1100 px: no telemóvel o
   Caloiro ficava escondido mas a coluna dele não, e o texto ficava espremido numa coluna estreita. */
@media (max-width: 760px) {
  .tsi3-hero { grid-template-columns: minmax(0, 1fr) !important; gap: 12px; padding: 18px 16px !important; border-radius: 22px; }
  .tsi3-cal { display: none !important; }
  .tsi3-hero h1 { font-size: clamp(1.35rem, 6.2vw, 1.85rem); line-height: 1.15; }
  .tsi3-desc { font-size: .95rem; }
  .tsi3-n { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  .tsi3-n li { flex-direction: column; align-items: flex-start; gap: 2px; min-width: 0; padding: 10px 12px; }
  .tsi3-n li i { display: none; }
  .tsi3-n li b { font-size: 1.2rem; }
  .tsi3-n li span { max-width: 100%; font-size: .78rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
}
/* a caixa de abrir: fica por cima da barra de baixo (antes ficava por trás dela) e numa só linha:
   [Abrir por 30 pontos] [partilhar] [flyer], estes dois só com o ícone */
@media (max-width: 640px) {
  .tsi3-dir { bottom: calc(66px + env(safe-area-inset-bottom, 0px)); margin: 0; }
  .tsi3-pronto { padding: 12px; border-radius: 20px; border-width: 2px; box-shadow: 0 16px 34px -20px rgba(16, 22, 51, .5); }
  .tsi3-bts { grid-template-columns: minmax(0, 1fr) auto !important; align-items: center; gap: 8px; }
  .tsi3-bts .btn-pri { min-width: 0; padding-inline: 14px; }
  .tsi3-bts .tr-partilhar span, .tsi3-bts .tr-flyer span { display: none !important; }
  .tsi3-bts .tr-partilhar, .tsi3-bts .tr-flyer { width: 50px !important; height: 50px; padding: 0 !important; border-radius: 50%; display: inline-grid !important; place-items: center; }
}
@media (max-width: 360px) { .tsi3-n li { padding: 9px 8px; } .tsi3-n li span { font-size: .72rem; } .tsi3-bts .btn-pri { font-size: .92rem; } }
@media (max-width: 640px) {
  .tsi3-bts .btn-pri { font-size: .95rem; padding-inline: 12px; gap: 8px; white-space: nowrap; }
  .tsi3-bts .tr-partilhar, .tsi3-bts .tr-flyer { width: 46px !important; height: 46px; }
}
@media (max-width: 360px) {
  .tsi3-bts .btn-pri { font-size: .86rem; padding-inline: 10px; }
  .tsi3-bts .btn-pri i { display: none; }
  .tsi3-n li span { font-size: .66rem; letter-spacing: -.01em; }
}

/* ---------- 119.ª parte: no simulado em curso, «Terminar» e o X ficam mesmo no canto direito ----------
   O tempo estava na mesma coluna que o X: como é mais largo, alargava a coluna e o X ficava longe do canto.
   Agora o tempo ocupa as duas colunas dos botões (Terminar + X) e tudo encosta à direita. */
@media (max-width: 1099px) {
  .ts .ts-topo { grid-template-areas: "tt fim x" "barra tempo tempo" !important; }
  .ts .ts-topo .tp-x, .ts .ts-topo .ts-entregar-topo, .ts .ts-topo .ts-tempo { justify-self: end; }
}

/* ---------- 121.ª parte: página de entrada do simulado, a valer em qualquer largura até 900 px ----------
   (antes só até 760/640 px; num browser de computador estreito ou com zoom ficava com o desenho antigo) */
@media (max-width: 900px) {
  .tsi3-hero { grid-template-columns: minmax(0, 1fr) !important; gap: 12px !important; }
  .tsi3-cal { display: none !important; }
  .tsi3-n { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 8px !important; max-width: 520px; }
  .tsi3-n li { flex-direction: column !important; align-items: flex-start !important; gap: 2px !important; min-width: 0 !important; padding: 10px 12px !important; }
  .tsi3-n li i { display: none !important; }
  .tsi3-n li span { max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .tsi3-corpo { grid-template-columns: minmax(0, 1fr) !important; }
  .tsi3-bts { grid-template-columns: minmax(0, 1fr) auto !important; align-items: center !important; gap: 8px !important; }
  .tsi3-bts > .btn-pri, .tsi3-bts > .tsi-esg { min-width: 0; }
  .tsi3-bts .tr-partilhar span, .tsi3-bts .tr-flyer span { display: none !important; }
  .tsi3-bts .tr-partilhar, .tsi3-bts .tr-flyer { width: 48px !important; height: 48px !important; min-width: 48px; padding: 0 !important; border-radius: 50% !important; display: inline-grid !important; place-items: center !important; }
  .tsi3-pronto { border-radius: 20px !important; border-width: 2px !important; }
}
/* entre 761 e 900 px não há barra de baixo: a caixa fica no sítio, sem colar */
@media (min-width: 761px) and (max-width: 900px) { .tsi3-dir { position: static !important; } }
/* até 760 px (com a barra de baixo): cola por cima da barra, nunca por trás dela */
@media (max-width: 760px) {
  .tsi3-dir { position: sticky !important; top: auto !important; bottom: calc(66px + env(safe-area-inset-bottom, 0px)) !important; z-index: 6; margin: 0 !important; }
  .tsi3-pronto { padding: 12px !important; box-shadow: 0 16px 34px -20px rgba(16, 22, 51, .5) !important; }
}
.diag-versao .n-chip.ok { background: rgba(22, 163, 74, .12); color: #15803D; }
.diag-versao .n-chip.mal { background: rgba(214, 48, 49, .12); color: #D63031; }
@media (max-width: 360px) { .tsi3-n li { padding: 9px 8px !important; } .tsi3-n li span { font-size: .66rem !important; letter-spacing: -.01em; } }

/* ---------- 122.ª parte: o cartaz (flyer) à vista na página, em vez do botão de o baixar ---------- */
.tr-cartaz { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 20px; align-items: center; margin: 18px 0; padding: 16px; border-radius: 24px; background: var(--sup); border: 1px solid var(--linha); }
.tr-cartaz img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: 18px; background: var(--azul-suave); box-shadow: 0 16px 34px -20px rgba(16, 22, 51, .55); }
.tr-cartaz-t { display: grid; gap: 6px; justify-items: start; min-width: 0; }
.tr-cartaz-k { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); font-size: .78rem; font-weight: 800; }
.tr-cartaz h2 { margin: 2px 0 0; font-family: var(--f-tit); font-size: 1.2rem; line-height: 1.2; }
.tr-cartaz p { margin: 0 0 6px; color: var(--tinta-2); font-size: .92rem; line-height: 1.45; }
.tr-cartaz .btn i { margin-right: 6px; }
@media (max-width: 560px) {
  .tr-cartaz { grid-template-columns: 112px minmax(0, 1fr); gap: 12px; padding: 12px; border-radius: 20px; }
  .tr-cartaz img { border-radius: 14px; }
  .tr-cartaz h2 { font-size: 1rem; }
  .tr-cartaz p { font-size: .82rem; }
  .tr-cartaz .btn { padding: 9px 14px; font-size: .86rem; }
}
@media (max-width: 560px) {
  .tr-cartaz { grid-template-columns: minmax(0, 1fr) !important; justify-items: center; text-align: center; gap: 14px; padding: 16px; }
  .tr-cartaz img { width: min(100%, 300px); }
  .tr-cartaz-t { justify-items: center; }
  .tr-cartaz .btn { width: 100%; max-width: 300px; justify-content: center; padding: 12px 16px; font-size: .95rem; }
}

/* ---------- 123.ª parte: penalidade nas contas ligadas ---------- */
.lg-grupo li { display: flex; align-items: center; gap: 10px; }
.lg-c-t { flex: 1; min-width: 0; }
.lg-pen { flex: none; }
.lg-pen i { margin-right: 6px; }
.lg-mail-susp { display: inline-block; padding: 1px 7px; border-radius: 999px; background: rgba(214, 48, 49, .1); color: #D63031; font-size: .76rem; font-weight: 800; }
.pen { display: grid; gap: 12px; }
.pen-cab { display: flex; gap: 12px; align-items: center; }
.pen-ic { flex: none; width: 46px; height: 46px; border-radius: 15px; display: grid; place-items: center; background: rgba(214, 48, 49, .12); color: #D63031; font-size: 1.1rem; }
.pen-cab h2 { margin: 0; font-family: var(--f-tit); font-size: 1.25rem; }
.pen-cab p { margin: 2px 0 0; color: var(--tinta-2); font-size: .88rem; }
.pen-op { display: grid; gap: 8px; }
.pen-o { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border-radius: 14px; border: 1.5px solid var(--linha-2); background: var(--sup); cursor: pointer; }
.pen-o:has(input:checked) { border-color: var(--bic); background: var(--azul-suave); }
.pen-o input { margin-top: 3px; accent-color: var(--bic); }
.pen-o b { display: block; font-size: .95rem; }
.pen-o small { display: block; color: var(--tinta-2); font-size: .82rem; line-height: 1.35; }
.pen-pts { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: .88rem; font-weight: 800; color: var(--tinta-2); }
.pen-pts[hidden] { display: none; }
.pen-pts span { display: inline-flex; align-items: center; gap: 8px; height: 42px; padding: 0 12px; border-radius: 12px; border: 1.5px solid var(--linha-2); background: var(--sup); }
.pen-pts input { width: 80px; border: 0 !important; outline: 0; box-shadow: none !important; background: transparent; font: inherit; font-size: 1rem; font-weight: 800; color: var(--tinta); padding: 0; }
.pen-pts em { font-style: normal; font-size: .8rem; color: var(--tinta-3); font-weight: 600; }
.pen textarea { width: 100%; min-height: 110px; resize: vertical; padding: 12px 14px; border-radius: 14px; border: 1.5px solid var(--linha-2); font: inherit; font-size: .92rem; line-height: 1.45; background: var(--sup); color: var(--tinta); }
.pen textarea:focus { outline: none; border-color: var(--bic); box-shadow: 0 0 0 4px var(--azul-suave); }
.pen .btn-perigo i { margin-right: 6px; }
@media (max-width: 560px) { .lg-grupo li { flex-wrap: wrap; } .lg-pen { width: 100%; justify-content: center; } }
.ligadas .lg-grupo li { display: flex !important; align-items: center; gap: 12px; }
.ligadas .lg-c-t > a { display: block; }
.ligadas .lg-c-t > small { display: block; margin-top: 2px; line-height: 1.45; }
@media (max-width: 560px) { .ligadas .lg-grupo li { flex-wrap: wrap; } }
.ligadas .lg-grupo li { flex-direction: row !important; }

/* ---------- 124.ª parte: contas em observação ---------- */
.lg-cartoes { display: grid; gap: 8px; margin-bottom: 12px; }
.lg-cartoes:empty { display: none; }
.obs-cart .lg-ic { background: rgba(245, 158, 11, .14); color: #B45309; }
.obs-l { list-style: none; margin: 0 0 12px; padding: 0; display: grid; gap: 8px; max-height: 62vh; overflow-y: auto; }
.obs-c { display: flex; align-items: flex-start; gap: 12px; padding: 12px 14px; border-radius: 16px; border: 1px solid var(--linha); background: var(--sup); }
.obs-c.banida { opacity: .6; }
.obs-c .lg-c-t > a { display: block; }
.obs-c .lg-c-t > small { display: block; margin-top: 2px; color: var(--tinta-2); font-size: .82rem; line-height: 1.45; }
.obs-c .lg-mot { margin-top: 6px; }
.obs-esp { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 8px 0 0; padding: 8px 10px; border-radius: 12px; background: rgba(245, 158, 11, .1); color: #92400E; font-size: .8rem; line-height: 1.4; }
.obs-lib { margin-left: auto; padding: 4px 10px; border-radius: 999px; border: 1.5px solid rgba(146, 64, 14, .35); background: var(--sup); color: #92400E; font: inherit; font-size: .8rem; font-weight: 800; cursor: pointer; }
@media (max-width: 560px) { .obs-c { flex-wrap: wrap; } .obs-c .lg-pen { width: 100%; justify-content: center; } }
.obs-c .lg-mot { display: flex !important; flex-wrap: wrap; gap: 4px; }
.obs-c .lg-mot span { margin: 0 !important; }
.obs-esp i { margin-right: 2px; }

/* ---------- 125.ª parte: a festa das metas com o azul sólido do site e os rostos a flutuar ---------- */
.mc3 { background: var(--bic) !important; }
.mc3-portal { display: none !important; }
.mc3-v.mc3-f { left: auto; top: auto; width: var(--tam); height: var(--tam); opacity: 0; transform: translate(-50%, -50%); background: rgba(255, 255, 255, .16); box-shadow: 0 14px 32px -10px rgba(5, 12, 60, .45), 0 0 0 3px rgba(255, 255, 255, .22); animation: mc3Aparece .6s ease-out var(--e) forwards, mc3Flutua var(--t) ease-in-out var(--a) infinite alternate; }
@keyframes mc3Aparece { from { opacity: 0; } to { opacity: 1; } }
@keyframes mc3Flutua { 0% { translate: 0 0; rotate: calc(var(--r) * -1); } 100% { translate: var(--dx) calc(var(--dy) * -1); rotate: var(--r); } }
@media (prefers-reduced-motion: reduce) { .mc3-v.mc3-f { animation: mc3Aparece .3s ease-out forwards; } }

/* ---------- 125.ª parte: números do que falta resolver nos separadores do painel; «Está tudo bem» ---------- */
.adm-n { display: inline-grid; place-items: center; min-width: 20px; height: 20px; margin-left: 7px; padding: 0 6px; border-radius: 999px; background: #E5484D; color: #fff; font-size: .74rem; font-weight: 800; line-height: 1; box-shadow: 0 0 0 2px var(--sup); }
.adm-sub-b .adm-n { min-width: 18px; height: 18px; font-size: .7rem; }
.obs-bts { flex: none; display: flex; flex-direction: column; gap: 6px; }
.obs-bts .btn i { margin-right: 6px; }
.obs-ok { color: #15803D; border-color: rgba(22, 163, 74, .35); }
.obs-ok:hover { background: rgba(22, 163, 74, .08); }
@media (max-width: 560px) { .obs-bts { width: 100%; flex-direction: row; } .obs-bts .btn { flex: 1; justify-content: center; } }

/* ---------- 126.ª parte: última atividade — quem está ativo agora fica a verde (com o ponto a pulsar) ---------- */
.ua.ua-on { color: #15803D !important; }
.ua.ua-on i { position: relative; background: #22C55E !important; box-shadow: 0 0 0 3px rgba(34, 197, 94, .22) !important; }
.ua.ua-on i::after { content: ''; position: absolute; inset: -3px; border-radius: 50%; border: 2px solid rgba(34, 197, 94, .55); animation: uaPulso 1.8s ease-out infinite; }
@keyframes uaPulso { 0% { transform: scale(.7); opacity: 1; } 100% { transform: scale(2.1); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .ua.ua-on i::after { animation: none; display: none; } }

/* ---------- 127.ª parte: histórico de decisões com procura, páginas e «Mudar a decisão» ---------- */
.hist-busca { display: flex; max-width: 520px; margin: 0 0 12px; }
.hist-sec .tempo li { display: flex !important; align-items: flex-start; gap: 12px; }
.hist-sec .tempo li > div { flex: 1; min-width: 0; }
.hist-mudar { flex: none; align-self: center; white-space: nowrap; }
.hist-mudar i { margin-right: 6px; }
.hist-sec .paginacao { margin-top: 14px; }
.mdec-txt { margin: 0 0 12px; color: var(--tinta-2); font-size: .92rem; line-height: 1.5; }
.mdec-ic { background: rgba(214, 48, 49, .12); color: #D63031; }
.mdec-ic.ok { background: rgba(22, 163, 74, .12); color: #15803D; }
.mdec .btn i { margin-right: 6px; }
@media (max-width: 640px) { .hist-sec .tempo li { flex-wrap: wrap; } .hist-mudar { width: 100%; justify-content: center; margin-left: 40px; width: calc(100% - 40px); } }
.hist-busca { width: 100%; max-width: 560px !important; }
.hist-busca input { flex: 1; min-width: 0; }

/* ---------- 129.ª parte: «Enviar um aviso» na janela da penalidade ---------- */
.pen-onde { display: flex; gap: 8px; align-items: flex-start; margin: -2px 0 2px; padding: 10px 12px; border-radius: 12px; background: var(--azul-suave); color: var(--tinta-2); font-size: .82rem; line-height: 1.45; }
.pen-onde i { color: var(--bic); margin-top: 3px; }
.pen .btn-pri i, .pen .btn-perigo i { margin-right: 6px; }

/* ---------- 131.ª parte: folha de respostas no fim do simulado ---------- */
.fr { padding: 20px 22px 18px; border-radius: 26px; background: var(--sup); border: 1px solid var(--linha); box-shadow: 0 22px 46px -30px rgba(16, 22, 51, .45); }
.fr-topo { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.fr-topo h2 { margin: 0; font-family: var(--f-tit); font-size: 1.2rem; }
.fr-topo p { margin: 2px 0 0; font-size: .84rem; color: var(--tinta-2); }
.fr-tempo { flex: none; display: inline-flex; align-items: center; gap: 7px; font-family: var(--f-tit); font-weight: 800; font-size: 1.05rem; color: var(--bic); }
.fr-leg { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 12px 0 6px; font-size: .82rem; color: var(--tinta-2); }
.fr-leg > span { display: inline-flex; align-items: center; gap: 7px; }
.fr-leg .fb { width: 20px; height: 20px; font-size: .66rem; }
.fr-cols { display: flex; flex-wrap: wrap; gap: 8px 36px; }
.fr-col { flex: 1 1 280px; min-width: 0; }
.fr-cab, .fr-l { display: grid; grid-template-columns: 34px minmax(0, 1fr) 26px; align-items: center; gap: 8px; }
.fr-cab { padding: 6px 8px 2px; }
.fr-l { width: 100%; padding: 6px 8px; border: 0; border-radius: 12px; background: transparent; font: inherit; color: inherit; text-align: left; cursor: pointer; transition: background .15s; }
.fr-l:hover { background: var(--azul-suave); }
.fr-l:focus-visible { outline: 3px solid var(--azul-suave); outline-offset: 1px; }
.fr-n { font-family: var(--f-tit); font-weight: 800; font-size: .92rem; color: var(--tinta-2); text-align: right; }
.fr-ops { display: flex; gap: 10px; align-items: center; min-width: 0; }
.fb-l { width: 28px; text-align: center; font-size: .78rem; font-weight: 800; color: var(--tinta-3); }
.fb { flex: none; display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; border: 2px solid #C9D0F2; font-size: .74rem; font-weight: 800; font-style: normal; color: var(--tinta-3); box-sizing: border-box; }
.fb.fb-oco { visibility: hidden; }
.fb.ok { border-color: #16A34A; background: #16A34A; color: #fff; }
.fb.mal { border-color: #E5484D; background: #E5484D; color: #fff; }
.fb.falta { border: 3px solid #16A34A; background: rgba(22, 163, 74, .12); }
.fr-escrita { font-size: .8rem; font-weight: 700; color: var(--tinta-2); padding: 4px 10px; border-radius: 999px; background: var(--sup-2, #F3F5FB); }
.fr-est { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; font-size: .74rem; }
.fr-l.ok .fr-est { color: #15803D; background: rgba(22, 163, 74, .12); }
.fr-l.mal .fr-est { color: #D63031; background: rgba(229, 72, 77, .12); }
.fr-l.branco .fr-est { color: var(--tinta-3); background: var(--sup-2, #F3F5FB); }
.fr-l.branco .fr-n { opacity: .7; }
.tcor-i.fr-pisca { animation: frPisca 1.4s ease-out; }
@keyframes frPisca { 0%, 30% { box-shadow: 0 0 0 4px var(--bic); } 100% { box-shadow: 0 0 0 0 transparent; } }
@media (max-width: 420px) { .fb, .fb-l { width: 25px; } .fb { height: 25px; } .fr-ops { gap: 7px; } .fr { padding: 16px 12px 14px; } }

/* ---------- 132.ª parte: «Criados por mim» com o cartaz (flyer) de cada treino ---------- */
.trm-grade { grid-template-columns: repeat(auto-fill, minmax(min(250px, 100%), 1fr)) !important; gap: 18px !important; }
.trm-c.trm-f { display: flex; flex-direction: column; gap: 0; padding: 0; overflow: hidden; border-radius: 24px; background: var(--sup); border: 1px solid var(--linha); box-shadow: 0 14px 34px -26px rgba(16, 22, 51, .55); transition: transform .2s ease, box-shadow .2s ease, border-color .2s; }
.trm-c.trm-f:hover, .trm-c.trm-f:focus-within { transform: translateY(-3px); border-color: var(--cor, var(--bic)); box-shadow: 0 24px 46px -26px rgba(30, 64, 230, .55); }
.trm-cartaz { position: relative; display: block; aspect-ratio: 1; overflow: hidden; background: linear-gradient(160deg, #3459F8, #1C3BDB); text-decoration: none; }
.trm-ph { position: absolute; inset: 0; display: grid; place-items: center; }
.trm-ph .trm-ic { width: 72px; height: 72px; border-radius: 22px; display: grid; place-items: center; background: rgba(255, 255, 255, .16); color: #fff; font-size: 1.6rem; }
.trm-cartaz.ok .trm-ph { display: none; }
.trm-img { position: relative; display: block; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .35s ease, transform .5s ease; }
.trm-cartaz.ok .trm-img { opacity: 1; }
.trm-c.trm-f:hover .trm-img { transform: scale(1.035); }
.trm-badges { position: absolute; top: 12px; left: 12px; right: 12px; display: flex; justify-content: space-between; gap: 8px; pointer-events: none; }
.trm-badges .trm-tipo, .trm-badges .trm-est { display: inline-flex; align-items: center; gap: 6px; padding: 5px 11px; border-radius: 999px; font-size: .78rem; font-weight: 800; background: rgba(255, 255, 255, .92); color: var(--bic); box-shadow: 0 6px 16px -8px rgba(5, 12, 60, .5); backdrop-filter: blur(6px); }
.trm-badges .trm-est { color: var(--tinta-2); }
.trm-badges .trm-est.e-publicado { color: #15803D; }
.trm-badges .trm-est.e-publicado i { font-size: .5rem; color: #22C55E; }
.trm-aviso { position: absolute; left: 12px; right: 12px; bottom: 12px; display: flex; align-items: center; justify-content: center; gap: 8px; padding: 8px 12px; border-radius: 14px; background: rgba(16, 22, 51, .72); color: #fff; font-size: .82rem; font-weight: 700; backdrop-filter: blur(6px); }
.trm-corpo { display: grid; gap: 6px; padding: 14px 16px 14px; }
.trm-t { color: var(--tinta); text-decoration: none; }
.trm-t strong { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-family: var(--f-tit); font-size: 1.02rem; line-height: 1.3; }
.trm-corpo small { color: var(--tinta-2); font-size: .8rem; line-height: 1.4; }
.trm-corpo .trm-pe { margin-top: 4px; }
.trm-acoes { display: inline-flex; align-items: center; gap: 10px; }
.trm-par { display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta); cursor: pointer; }
.trm-par:hover { border-color: var(--bic); color: var(--bic); }
.trm-par i { margin: 0 !important; }
.trm-ir { text-decoration: none; }

/* ---------- 133.ª parte: vistos nas mensagens do «Falar com a equipa» ---------- */
.msg small .msg-visto { display: inline-flex; align-items: center; gap: 4px; margin-left: 8px; font-weight: 700; color: var(--tinta-3); white-space: nowrap; }
.msg small .msg-visto i { font-size: .76rem; }
.msg small .msg-visto.lida { color: #1E40E6; }
.conv-i small i.conv-lida { color: #1E40E6; margin-right: 4px; font-size: .76rem; }
.conv-i small i.conv-env { color: var(--tinta-3); margin-right: 4px; font-size: .76rem; }

/* ---------- 134.ª parte: Notificações e Mensagens a todos (painel) ---------- */
.env { display: grid; gap: 14px; }
.env-g { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 22px; align-items: start; }
.env-form { display: grid; gap: 8px; }
.env-form textarea, .env-form input#env-link { width: 100%; padding: 12px 14px; border-radius: 14px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta); font: inherit; font-size: .95rem; line-height: 1.45; resize: vertical; }
.env-form textarea:focus, .env-form input#env-link:focus { outline: none; border-color: var(--bic); box-shadow: 0 0 0 4px var(--azul-suave); }
.env-cont { display: flex; justify-content: flex-end; margin-top: -4px; font-size: .78rem; color: var(--tinta-3); }
.env-pub { margin-bottom: 4px; }
.env-dica { margin: 6px 0; font-size: .82rem; color: var(--tinta-2); }
.env-pe { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-top: 8px; padding-top: 12px; border-top: 1px solid var(--linha); }
.env-n { display: inline-flex; align-items: center; gap: 8px; font-size: .92rem; color: var(--tinta-2); }
.env-n b { color: var(--tinta); font-family: var(--f-tit); font-size: 1.1rem; }
.env-pe .btn i { margin-right: 8px; }
.env-previa { position: sticky; top: 90px; display: grid; gap: 8px; padding: 16px; border-radius: 18px; background: var(--azul-suave); }
.env-previa-t { font-size: .78rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--bic); }
.env-np { display: flex; gap: 10px; align-items: flex-start; padding: 12px; border-radius: 14px; background: var(--sup); box-shadow: 0 10px 24px -18px rgba(16, 22, 51, .5); text-decoration: none; color: var(--tinta); }
.env-np .np-ic { flex: none; width: 36px; height: 36px; border-radius: 12px; display: grid; place-items: center; background: var(--azul-claro, #E8EDFF); color: var(--bic); }
.env-np .np-ic svg { width: 20px; height: 20px; }
.env-np .np-t { display: grid; gap: 2px; min-width: 0; }
.env-np .np-txt { font-size: .9rem; line-height: 1.4; overflow-wrap: anywhere; }
.env-np small { font-size: .78rem; color: var(--tinta-3); }
.env-chat { padding: 12px; border-radius: 14px; background: #EFEAE2; }
.env-chat .msg { max-width: 100%; }
.env-hist { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.env-hist li { display: flex; align-items: flex-start; gap: 12px; padding: 12px 14px; border-radius: 14px; border: 1px solid var(--linha); background: var(--sup); }
.env-hist li.retirado { opacity: .55; }
.env-h-ic { flex: none; width: 34px; height: 34px; border-radius: 11px; display: grid; place-items: center; background: var(--azul-suave); color: var(--bic); }
.env-h-t { flex: 1; min-width: 0; }
.env-h-t p { margin: 0; font-size: .9rem; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.env-h-t small { display: block; margin-top: 4px; font-size: .8rem; color: var(--tinta-3); }
@media (max-width: 860px) { .env-g { grid-template-columns: minmax(0, 1fr); } .env-previa { position: static; } }

/* ---------- 135.ª parte: dar/pedir pontos fechado, nível no perfil e o avatar em grande ---------- */
.pp2-fecho { display: flex; align-items: flex-start; gap: 14px; padding: 18px; border-radius: 18px; background: var(--azul-suave); border: 1px solid rgba(30, 64, 230, .16); }
.pp2-fecho-ic { flex: none; width: 46px; height: 46px; border-radius: 15px; display: grid; place-items: center; background: var(--bic); color: #fff; font-size: 1.1rem; }
.pp2-fecho b { display: block; font-size: 1rem; }
.pp2-fecho small { display: block; margin-top: 3px; color: var(--tinta-2); font-size: .86rem; line-height: 1.45; }
.al-lig { display: flex; align-items: center; gap: 14px; padding: 16px 18px; }
.al-lig-ic { flex: none; width: 46px; height: 46px; border-radius: 15px; display: grid; place-items: center; background: var(--sup-3, #EEF1F8); color: var(--tinta-2); font-size: 1.1rem; }
.al-lig.on .al-lig-ic { background: var(--bic); color: #fff; }
.al-lig-t { flex: 1; min-width: 0; }
.al-lig-t b { display: block; font-size: 1rem; }
.al-lig-t small { display: block; margin-top: 2px; color: var(--tinta-2); font-size: .84rem; line-height: 1.4; }
.pf-nivel { display: inline-flex; align-items: center; gap: 7px; margin: 4px 0 0; padding: 4px 11px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); font-size: .82rem; font-weight: 800; }
.pf-av-zoom { cursor: zoom-in; transition: transform .2s ease; }
.pf-av-zoom:hover { transform: scale(1.04) rotate(-2deg); }
.pf-av-zoom:focus-visible { outline: 3px solid var(--azul-suave); outline-offset: 3px; border-radius: 50%; }
body.avz-aberto { overflow: hidden; }
.avz-ov { position: fixed; inset: 0; z-index: 430; display: grid; place-items: center; padding: 24px; background: radial-gradient(60% 50% at 50% 42%, rgba(46, 80, 246, .55), rgba(8, 14, 48, .86)); backdrop-filter: blur(6px); animation: avzFundo .25s ease-out; }
@keyframes avzFundo { from { opacity: 0; } to { opacity: 1; } }
.avz { position: relative; display: grid; justify-items: center; gap: 6px; text-align: center; color: #fff; }
.avz-x { position: fixed; top: max(16px, env(safe-area-inset-top)); right: 16px; width: 46px; height: 46px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .16); color: #fff; font-size: 1.15rem; cursor: pointer; }
.avz-x:hover { background: rgba(255, 255, 255, .26); }
.avz-palco { position: relative; width: min(72vw, 320px); aspect-ratio: 1; border-radius: 50%; cursor: pointer; animation: avzEntra .8s cubic-bezier(.2, .9, .3, 1.25) both; box-shadow: 0 0 0 8px rgba(255, 255, 255, .14), 0 30px 70px -20px rgba(0, 0, 0, .6); -webkit-tap-highlight-color: transparent; }
.avz-palco:focus-visible { outline: 4px solid rgba(255, 255, 255, .6); outline-offset: 6px; }
.avz-img { position: absolute; inset: 0; width: 100%; height: 100%; border-radius: 50%; user-select: none; -webkit-user-drag: none; }
.avz-f, .avz-p { opacity: 0; }
.avz-palco.fecha .avz-f { opacity: 1; }
.avz-palco.fecha .avz-n { opacity: 0; }
.avz-palco.pisca .avz-p { opacity: 1; }
.avz-palco.pisca .avz-n, .avz-palco.pisca .avz-f { opacity: 0; }
.avz-palco .avz-ini { width: 100% !important; height: 100% !important; font-size: 4rem; }
.avz-palco.salta { animation: avzSalta .6s cubic-bezier(.3, 1.4, .5, 1); }
@keyframes avzEntra { 0% { transform: scale(.35) rotate(-14deg); opacity: 0; } 55% { transform: scale(1.08) rotate(5deg); opacity: 1; } 78% { transform: scale(.97) rotate(-2deg); } 100% { transform: scale(1) rotate(0); } }
@keyframes avzSalta { 0% { transform: translateY(0) scale(1); } 30% { transform: translateY(-22px) scale(1.04, .96); } 55% { transform: translateY(0) scale(1.06, .92); } 75% { transform: translateY(-6px) scale(.98, 1.02); } 100% { transform: translateY(0) scale(1); } }
.avz-nome { margin: 18px 0 0; font-family: var(--f-tit); font-size: clamp(1.4rem, 5vw, 2rem); line-height: 1.15; animation: avzSobe .5s .25s ease-out both; }
.avz-sub { margin: 0; max-width: 32ch; font-size: .95rem; color: rgba(255, 255, 255, .82); animation: avzSobe .5s .35s ease-out both; }
.avz-dica { display: inline-flex; align-items: center; gap: 7px; margin: 10px 0 0; padding: 6px 12px; border-radius: 999px; background: rgba(255, 255, 255, .12); font-size: .82rem; color: rgba(255, 255, 255, .85); animation: avzSobe .5s .5s ease-out both; }
@keyframes avzSobe { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .avz-palco, .avz-nome, .avz-sub, .avz-dica { animation: none; } }

/* ---------- 136.ª parte: «material geral» claro, listas grandes com «… mais» e procura ---------- */
.u-geral-mini { display: flex; align-items: flex-start; gap: 10px; margin: 6px 0 2px; padding: 10px 12px; border-radius: 14px; border: 1px dashed var(--linha-2); color: var(--tinta-2); font-size: .84rem; line-height: 1.4; cursor: pointer; }
.u-geral-mini:hover { border-color: var(--bic); background: var(--azul-suave); }
.u-geral-mini input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.u-geral-mini strong { color: var(--tinta); }
.u-geral-mini-sw { flex: none; position: relative; width: 34px; height: 20px; margin-top: 1px; border-radius: 999px; background: var(--linha-2); }
.u-geral-mini-sw::after { content: ''; position: absolute; top: 3px; left: 3px; width: 14px; height: 14px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .2); }
.ug-conf { display: grid; justify-items: center; gap: 10px; text-align: center; }
.ug-conf-ic { width: 56px; height: 56px; border-radius: 18px; display: grid; place-items: center; background: var(--azul-suave); color: var(--bic); font-size: 1.4rem; }
.ug-conf h2 { margin: 4px 0 0; font-family: var(--f-tit); font-size: 1.25rem; }
.ug-conf p { margin: 0; color: var(--tinta-2); font-size: .92rem; line-height: 1.5; max-width: 46ch; }
.ug-conf-achou { display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px; border-radius: 12px; background: rgba(22, 163, 74, .1); color: #166534 !important; font-weight: 700; }
.ug-conf-bts { display: grid; gap: 8px; width: 100%; margin-top: 6px; }
.ug-conf-bts .btn i { margin-right: 8px; }
.chips-tot { display: inline-grid; place-items: center; min-width: 26px; height: 22px; margin-left: 6px; padding: 0 7px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); font-size: .82rem; font-weight: 800; vertical-align: middle; }
.bloco-cab .btn i { margin-right: 6px; }
.chip.chip-todas { border-style: dashed; color: var(--bic); font-weight: 800; background: var(--azul-suave); cursor: pointer; font: inherit; }
.cht { display: grid; gap: 10px; }
.cht h2 { margin: 0; font-family: var(--f-tit); font-size: 1.2rem; }
.cht-busca { display: flex; align-items: center; gap: 10px; padding: 0 14px; height: 48px; border-radius: 14px; border: 1.5px solid var(--linha-2); background: var(--sup); }
.cht-busca:focus-within { border-color: var(--bic); box-shadow: 0 0 0 4px var(--azul-suave); }
.cht-busca i { color: var(--tinta-3); }
.cht-busca input { flex: 1; min-width: 0; border: 0 !important; outline: 0; box-shadow: none !important; background: transparent; font: inherit; font-size: .98rem; color: var(--tinta); }
.cht-l { display: grid; gap: 4px; max-height: 58vh; overflow-y: auto; }
.cht-i { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 11px 14px; border-radius: 12px; color: var(--tinta); text-decoration: none; font-weight: 700; font-size: .92rem; }
.cht-i:hover { background: var(--azul-suave); color: var(--bic); }
.cht-i b { min-width: 28px; padding: 2px 8px; border-radius: 999px; background: var(--sup-3, #EEF1F8); color: var(--tinta-2); font-size: .82rem; text-align: center; }

/* ---------- 137.ª parte: o avatar com personalidade (gestos, expressões e emojis) ---------- */
.avz-palco { animation: none; transform-origin: 50% 80%; }
.avz-palco.entra { animation: avzEntra .8s cubic-bezier(.2, .9, .3, 1.25) both; }
.avz-palco.m-inclina { animation: avzInclina .7s ease-in-out; }
.avz-palco.m-olha { animation: avzOlha 1.3s ease-in-out; }
.avz-palco.m-salta { animation: avzSaltaG 1.1s cubic-bezier(.3, 1.4, .5, 1); }
.avz-palco.m-treme { animation: avzTreme 1.3s linear; }
.avz-palco.m-abana { animation: avzAbana 1.2s ease-in-out; }
.avz-palco.m-balanca { animation: avzBalanca 1.6s ease-in-out; }
.avz-palco.m-dorme { animation: avzDorme 2.65s ease-in-out; }
.avz-palco.m-acena { animation: avzAcena 1s ease-in-out; }
.avz-palco.m-nega { animation: avzNega 1s ease-in-out; }
.avz-palco.m-danca { animation: avzDanca 1.9s ease-in-out; }
.avz-palco.m-gira { animation: avzGira 1.85s cubic-bezier(.4, 0, .2, 1); }
.avz-palco.m-pulsa { animation: avzPulsa 1.5s ease-in-out; }
.avz-palco.m-cool { animation: avzCool 1.8s ease-in-out; }
.avz-palco.m-toque { animation: avzSalta .6s cubic-bezier(.3, 1.4, .5, 1); }
@keyframes avzInclina { 0%, 100% { transform: rotate(0); } 30%, 70% { transform: rotate(-9deg); } }
@keyframes avzOlha { 0%, 100% { transform: none; } 25%, 45% { transform: translateX(calc(-10px * var(--k, 1))) rotate(-5deg); } 60%, 85% { transform: translateX(calc(10px * var(--k, 1))) rotate(5deg); } }
@keyframes avzSaltaG { 0%, 100% { transform: none; } 25% { transform: translateY(calc(-30px * var(--k, 1))) scale(1.06, .96); } 45% { transform: translateY(0) scale(1.08, .9); } 62% { transform: translateY(calc(-9px * var(--k, 1))) scale(.98, 1.02); } 80% { transform: translateY(0) scale(1.02, .98); } }
@keyframes avzTreme { 0%, 100% { transform: none; } 10%, 30%, 50%, 70%, 90% { transform: translateY(calc(-5px * var(--k, 1))) rotate(-2deg); } 20%, 40%, 60%, 80% { transform: translateY(calc(2px * var(--k, 1))) rotate(2deg); } }
@keyframes avzAbana { 0%, 100% { transform: rotate(0); } 15%, 55% { transform: rotate(-11deg); } 35%, 75% { transform: rotate(11deg); } }
@keyframes avzBalanca { 0%, 100% { transform: rotate(0); } 25%, 75% { transform: rotate(-6deg); } 50% { transform: rotate(6deg); } }
@keyframes avzDorme { 0%, 100% { transform: none; } 15% { transform: rotate(9deg) translateY(calc(4px * var(--k, 1))); } 72% { transform: rotate(12deg) translateY(calc(7px * var(--k, 1))); } 82% { transform: rotate(-4deg) translateY(calc(-16px * var(--k, 1))); } 90% { transform: rotate(2deg) translateY(0); } }
@keyframes avzAcena { 0%, 100% { transform: none; } 20%, 60% { transform: translateY(calc(10px * var(--k, 1))) rotate(3deg); } 40%, 80% { transform: translateY(calc(-3px * var(--k, 1))); } }
@keyframes avzNega { 0%, 100% { transform: none; } 15%, 55% { transform: translateX(calc(-14px * var(--k, 1))) rotate(-4deg); } 35%, 75% { transform: translateX(calc(14px * var(--k, 1))) rotate(4deg); } }
@keyframes avzDanca { 0%, 100% { transform: none; } 12.5%, 62.5% { transform: rotate(-12deg) translateY(calc(-10px * var(--k, 1))); } 25%, 75% { transform: rotate(0) translateY(0); } 37.5%, 87.5% { transform: rotate(12deg) translateY(calc(-10px * var(--k, 1))); } }
@keyframes avzGira { 0% { transform: rotate(0); } 46% { transform: rotate(360deg) scale(1.04); } 60% { transform: rotate(350deg); } 72% { transform: rotate(368deg); } 84% { transform: rotate(356deg); } 100% { transform: rotate(360deg); } }
@keyframes avzPulsa { 0%, 50%, 100% { transform: scale(1); } 15%, 65% { transform: scale(1.1); } 30%, 80% { transform: scale(.98); } }
@keyframes avzCool { 0%, 100% { transform: none; } 20%, 80% { transform: rotate(-7deg) translateX(calc(-8px * var(--k, 1))); } }
.avz-fx { position: absolute; z-index: 2; pointer-events: none; line-height: 1; opacity: 0; filter: drop-shadow(0 6px 10px rgba(0, 0, 0, .25)); animation: avzFxSobe 1.9s ease-out forwards; }
@keyframes avzFxSobe { 0% { opacity: 0; transform: translateY(14px) scale(.5); } 15% { opacity: 1; transform: translateY(0) scale(1.15); } 100% { opacity: 0; transform: translate(var(--dx, 0), -110px) scale(1); } }
.avz-estado { min-height: 1.5em; margin: 6px 0 0; font-weight: 800; font-size: .95rem; color: #fff; opacity: 0; }
.avz-estado.on { animation: avzEstado 2.4s ease forwards; }
@keyframes avzEstado { 0% { opacity: 0; transform: translateY(6px); } 12%, 75% { opacity: 1; transform: none; } 100% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .avz-palco[class*="m-"] { animation: none !important; } .avz-fx { display: none; } }

/* ---------- 139.ª parte: créditos dos avatares no rodapé ---------- */
.rodape .rodape-creditos { max-width: none; width: 100%; margin: 22px 0 0; padding: 14px 0 0; border-top: 1px solid var(--linha); text-align: center; color: var(--tinta-3); font-size: .8rem; line-height: 1.5; }
.rodape-creditos a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.rodape-creditos a:hover { color: var(--bic); }

/* ---------- 140.ª parte: o avatar vivo no próprio perfil ---------- */
.pf-av-w > .pf-fx { position: absolute; top: 4%; z-index: 3; pointer-events: none; font-size: 1.2rem; line-height: 1; opacity: 0; filter: drop-shadow(0 4px 6px rgba(0, 0, 0, .2)); animation: pfFxSobe 1.8s ease-out forwards; }
@keyframes pfFxSobe { 0% { opacity: 0; transform: translateY(8px) scale(.5); } 15% { opacity: 1; transform: translateY(0) scale(1.1); } 100% { opacity: 0; transform: translate(var(--dx, 0), -58px) scale(1); } }
.pf-av-vivo { --k: .35; transform-origin: 50% 85%; }
.pf-av-vivo.m-inclina { animation: avzInclina .7s ease-in-out; }
.pf-av-vivo.m-olha { animation: avzOlha 1.3s ease-in-out; }
.pf-av-vivo.m-salta { animation: avzSaltaG 1.1s cubic-bezier(.3, 1.4, .5, 1); }
.pf-av-vivo.m-treme { animation: avzTreme 1.3s linear; }
.pf-av-vivo.m-abana { animation: avzAbana 1.2s ease-in-out; }
.pf-av-vivo.m-balanca { animation: avzBalanca 1.6s ease-in-out; }
.pf-av-vivo.m-dorme { animation: avzDorme 2.65s ease-in-out; }
.pf-av-vivo.m-acena { animation: avzAcena 1s ease-in-out; }
.pf-av-vivo.m-nega { animation: avzNega 1s ease-in-out; }
.pf-av-vivo.m-danca { animation: avzDanca 1.9s ease-in-out; }
.pf-av-vivo.m-gira { animation: avzGira 1.85s cubic-bezier(.4, 0, .2, 1); }
.pf-av-vivo.m-pulsa { animation: avzPulsa 1.5s ease-in-out; }
.pf-av-vivo.m-cool { animation: avzCool 1.8s ease-in-out; }
@media (prefers-reduced-motion: reduce) { .pf-av-vivo[class*="m-"] { animation: none !important; } .pf-av-w > .pf-fx { display: none; } }

/* ---------- 141.ª parte: contra as contas falsas (Contas ligadas, convites à espera) ---------- */
.lgg-cab { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.lgg-cab .lg-mot { flex: 1; min-width: 0; }
.lg-fechar { flex: none; }
.lg-fechar i { margin-right: 6px; }
.conv-est.conv-espera { color: var(--bic); background: var(--azul-suave); }

/* ---------- 142.ª parte: telefone obrigatório (campo com indicativo) e o perfil completo obrigatório ---------- */
.tel-campo { display: flex; align-items: stretch; height: 50px; border-radius: 14px; border: 1.5px solid var(--linha-2); background: var(--sup); overflow: hidden; transition: border-color .15s, box-shadow .15s; }
.tel-campo:focus-within { border-color: var(--bic); box-shadow: 0 0 0 4px var(--azul-suave); }
.tel-campo.ok { border-color: #16A34A; }
.tel-campo.mal { border-color: #DC2626; }
.tel-cc { flex: none; max-width: 112px; padding: 0 8px 0 12px; border: 0 !important; border-right: 1px solid var(--linha) !important; border-radius: 0 !important; background: var(--sup-2, #F6F8FD) !important; color: var(--tinta); font: inherit; font-weight: 700; font-size: .95rem; box-shadow: none !important; cursor: pointer; }
.tel-nac { flex: 1; min-width: 0; padding: 0 14px; border: 0 !important; outline: 0; box-shadow: none !important; background: transparent !important; color: var(--tinta); font: inherit; font-size: 1.05rem; font-weight: 700; letter-spacing: .04em; }
.tel-nac::placeholder { font-weight: 500; letter-spacing: normal; color: var(--tinta-3); }
.tel-ajuda { margin: 6px 2px 0; font-size: .8rem; color: var(--tinta-3); }
.tel-ajuda.bem { color: #15803D; font-weight: 700; }
.tel-ajuda.mal { color: #B91C1C; font-weight: 700; }
body.po-aberto { overflow: hidden; }
.po-ov { position: fixed; inset: 0; z-index: 460; display: grid; place-items: center; padding: 20px; background: rgba(10, 16, 48, .62); backdrop-filter: blur(5px); animation: avzFundo .25s ease-out; }
.po { width: min(460px, 100%); max-height: calc(100vh - 40px); overflow-y: auto; display: grid; gap: 12px; padding: 26px 24px 20px; border-radius: 26px; background: var(--sup); box-shadow: 0 30px 80px -30px rgba(0, 0, 0, .55); text-align: left; }
.po-ic { width: 56px; height: 56px; border-radius: 18px; display: grid; place-items: center; background: var(--azul-suave); color: var(--bic); font-size: 1.4rem; }
.po h2 { margin: 0; font-family: var(--f-tit); font-size: 1.3rem; line-height: 1.25; }
.po-intro { margin: 0; color: var(--tinta-2); font-size: .92rem; line-height: 1.5; }
.po-tel { display: grid; gap: 4px; }
.po-l { font-weight: 800; font-size: .92rem; color: var(--tinta); }
.po-erro { margin: 2px 0 0; min-height: 1em; color: #B91C1C; font-size: .84rem; font-weight: 700; }
.po-falta { margin: 0; padding: 10px 12px; border-radius: 12px; background: var(--azul-suave); color: var(--tinta-2); font-size: .88rem; }
.po-bts { display: grid; gap: 8px; margin-top: 4px; }
.po-bts .btn i { margin-right: 8px; }
.po-sair { justify-self: center; border: 0; background: none; color: var(--tinta-3); font: inherit; font-size: .84rem; text-decoration: underline; cursor: pointer; }

/* ---------- 143.ª parte: «Mostrar o meu perfil no Google» ---------- */
.d-google { display: flex; align-items: flex-start; gap: 12px; margin: 4px 0 6px; padding: 12px 14px; border-radius: 14px; border: 1px solid var(--linha); background: var(--sup); cursor: pointer; }
.d-google input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.d-google-sw { flex: none; position: relative; width: 40px; height: 24px; margin-top: 2px; border-radius: 999px; background: var(--linha-2); transition: background .2s; }
.d-google-sw::after { content: ''; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .25); transition: transform .2s; }
.d-google input:checked + .d-google-sw { background: var(--bic); }
.d-google input:checked + .d-google-sw::after { transform: translateX(16px); }
.d-google input:focus-visible + .d-google-sw { outline: 3px solid var(--azul-suave); outline-offset: 2px; }
.d-google strong { display: block; font-size: .92rem; }
.d-google small { display: block; margin-top: 2px; color: var(--tinta-2); font-size: .8rem; line-height: 1.4; }
.tsi-pub .tsi-nota { color: var(--tinta-2); font-size: .92rem; line-height: 1.5; }
.tsi-pub .tsi-bts { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 6px; }

/* ---------- 144.ª parte: só +244 (fixo) no campo do telefone ---------- */
.tel-cc.tel-cc-fixo { display: grid; place-items: center; padding: 0 14px; min-width: 72px; font-weight: 800; letter-spacing: .02em; cursor: default; }
.tel-campo:not(.tel-fixo) .tel-cc { max-width: 168px; }
@media (max-width: 420px) { .tel-campo:not(.tel-fixo) .tel-cc { max-width: 128px; } }

/* ---------- 145.ª parte: a opção escolhida a azul com letra branca; publicar só na página de gerir ---------- */
.ta-seg button[aria-pressed="true"] { background: var(--bic); color: #fff; box-shadow: 0 6px 16px -10px rgba(30, 64, 230, .7); }
.ta-seg button[aria-pressed="true"]:hover { background: var(--bic); color: #fff; }
.ta-pub-alt { justify-self: start; margin-top: 4px; }
.ta-pub-alt i { margin-right: 6px; }

/* ---------- 149.ª parte: cursos e cadeiras arrumados em duas colunas no telemóvel ---------- */
.escola-chips .chip-nome { min-width: 0; }
@media (max-width: 640px) {
  .chips.escola-chips { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .escola-chips .chip { display: flex; align-items: center; justify-content: space-between; gap: 8px; height: auto; min-height: 54px; padding: 9px 10px 9px 12px; border-radius: 14px; white-space: normal; text-align: left; }
  .escola-chips .chip-nome { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: .84rem; line-height: 1.25; }
  .escola-chips .n-chip { flex: none; margin-left: 0; }
  .escola-chips .chip.chip-todas { grid-column: 1 / -1; justify-content: center; min-height: 46px; }
}

/* ---------- 150.ª parte: «‹ Voltar a …» no topo das páginas ---------- */
.volta-topo { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; margin: 0 0 10px; font-weight: 800; font-size: .92rem; text-decoration: none; }
.volta-topo span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-decoration: underline; text-underline-offset: 3px; }
.volta-topo svg { flex: none; width: 14px; height: 14px; }
.pf > .volta-topo { margin-bottom: 12px; }

/* ---------- 151.ª parte: publicar no tema e na cadeira; o olho em cada lição ---------- */
.ta-est.e-nova { background: var(--azul-suave); color: var(--bic); }
.ta-m-pub { white-space: nowrap; }
.ta-m-pub i { margin-right: 6px; }
.ta-m-ok { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; background: rgba(22, 163, 74, .1); color: #15803D; font-size: .8rem; font-weight: 800; white-space: nowrap; }
.ta-m-ok i { font-size: .82rem; }

/* ---------- 152.ª parte: imagens num tamanho razoável, cenas e perguntas mais equilibradas, resultado centrado ---------- */
/* imagens das lições: cada tamanho com um limite de altura (antes as grandes enchiam o ecrã) */
.tb-img img { width: auto; max-width: 100%; max-height: min(48vh, 420px); }
.tb-img-p img { width: auto; max-width: 40%; max-height: 240px; }
.tb-img-m img { width: auto; max-width: 65%; max-height: 340px; }
.tb-img-g img { width: auto; max-width: 85%; max-height: 440px; }
.tb-img-t img { width: auto; max-width: 100%; max-height: 520px; }
@media (max-width: 640px) { .tb-img-p img { max-width: 70%; } .tb-img-m img, .tb-img-g img, .tb-img-t img { max-width: 100%; } .tb-img img { max-height: 46vh; } }
/* imagens dentro do texto (perguntas, opções, explicações e passos da resolução) e a imagem da pergunta */
.tx img { width: auto; max-width: min(100%, 520px); max-height: 340px; }
.ex-img { width: auto; max-height: min(40vh, 340px); }
.ex-op img, .ex-vf img { width: auto; max-width: 100%; max-height: 140px; margin: 6px 0; }
.te-ex-img img { max-height: 220px; width: auto; max-width: 100%; }
/* as cenas e as perguntas no computador: maiores do que no telemóvel, mas sem exagero */
@media (min-width: 900px) {
  #treino-raiz .tp-cena { font-size: 1.06rem; }
  #treino-raiz .tp-cena h2, #treino-raiz .tp-cena .tp-tit { font-size: 1.6rem; }
  #treino-raiz .ex-enun { font-size: 1.08rem; }
  #treino-raiz .ex-op, #treino-raiz .ex-vf button { min-height: 56px; font-size: 1rem; }
}
/* o resultado do simulado: os botões ao centro */
.tres-t .linha-btn { justify-self: stretch; justify-content: center; }
@media (max-width: 760px) { .tres-t { justify-items: center; text-align: center; } .tres-n { justify-content: center; } }

/* ---------- 154.ª parte: o editor dos treinos arrumado (∞, preço por tentativa, só a seta para voltar) ---------- */
.te-in-inf::placeholder { color: var(--tinta-2); font-weight: 800; font-size: 1.15rem; opacity: 1; }
.te-dica-modo { display: flex; gap: 8px; align-items: flex-start; margin: 6px 0 0; }
.te-dica-modo i { margin-top: 3px; color: var(--bic); }
.te-preco-t { display: grid; gap: 8px; margin-top: 16px; padding-top: 14px; border-top: 1px dashed var(--linha); }
.te-voltar.te-voltar-so { width: 42px; height: 42px; padding: 0; justify-content: center; border-radius: 50%; flex: none; }
.te-voltar.te-voltar-so i { margin: 0; }
/* a opção escolhida também a azul com letra branca no editor (preço, preço por tentativa…) */
.te-seg button[aria-pressed="true"] { background: var(--bic); color: #fff; box-shadow: 0 6px 16px -10px rgba(30, 64, 230, .7); }

/* ---------- 155.ª parte: perfil com o nome da universidade por extenso; telemóvel com o avatar maior e os números mais baixos ---------- */
.pf-uni { display: flex; align-items: flex-start; gap: 7px; margin: 2px 0 0; color: var(--tinta-2); font-size: .9rem; line-height: 1.35; }
.pf-uni i { margin-top: 3px; color: var(--tinta-3); font-size: .85rem; }
@media (max-width: 760px) {
  .pf-av { width: 132px; height: 132px; }
  .pf-uni { justify-content: center; text-align: center; max-width: 34ch; }
  .pf-nums { gap: 8px; }
  .pf-num { padding: 9px 11px; gap: 9px; border-radius: 14px; }
  .pf-num-ic { width: 32px; height: 32px; border-radius: 10px; font-size: .85rem; }
  .pf-num b { font-size: 1.08rem; }
  .pf-num small { font-size: .78rem; line-height: 1.2; }
}
/* no telemóvel os números ficam baixinhos: o ícone ao lado do número, não por cima */
@media (max-width: 760px) {
  .pf-nums .pf-num { flex-direction: row; align-items: center; min-height: 0; }
  .pf-nums .pf-num-t { gap: 0; }
}

/* ---------- 156.ª parte: no cartão, só «Treino» ou «Simulado», no canto de cima à direita; o estado vai para baixo ---------- */
.trm-badges { justify-content: flex-end; }
.trm-badges .trm-tipo { margin: 0 0 0 auto; }
.trm-estado { display: inline-flex; align-items: center; gap: 6px; justify-self: start; padding: 3px 10px; border-radius: 999px; font-size: .8rem; font-weight: 800; background: var(--azul-suave); color: var(--bic); }
.trm-estado i { font-size: .74rem; }
.trm-estado.e-publicado { background: rgba(22, 163, 74, .1); color: #15803D; }
.trm-estado.e-publicado i { font-size: .5rem; color: #22C55E; }
.trm-estado.e-arquivado { background: var(--sup-3, #EEF1F8); color: var(--tinta-2); }

/* ---------- 157.ª parte: a nota primeiro, depois de entregar o simulado ---------- */
body.tnp-aberto { overflow: hidden; }
.tnp-ov { position: fixed; inset: 0; z-index: 470; display: grid; place-items: center; padding: 20px; background: radial-gradient(70% 60% at 50% 35%, rgba(46, 80, 246, .35), rgba(8, 14, 48, .82)); backdrop-filter: blur(6px); animation: avzFundo .25s ease-out; }
.tnp { width: min(440px, 100%); display: grid; justify-items: center; gap: 14px; padding: 26px 22px 22px; border-radius: 28px; background: var(--sup); box-shadow: 0 40px 90px -30px rgba(0, 0, 0, .6); text-align: center; animation: tnpEntra .5s cubic-bezier(.2, .9, .3, 1.2) both; }
@keyframes tnpEntra { from { opacity: 0; transform: translateY(18px) scale(.94); } to { opacity: 1; transform: none; } }
.tnp-k { margin: 0; font-size: .8rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--bic); }
.tnp-anel { position: relative; width: 180px; height: 180px; display: grid; place-items: center; color: var(--bic); }
.tnp-anel svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.tnp-arco { transition: stroke-dashoffset 1.1s cubic-bezier(.2, .8, .2, 1); }
.tnp-anel b, .tnp-anel small { grid-area: 1 / 1; position: relative; }
.tnp-anel b { font-family: var(--f-tit); font-size: 3.6rem; line-height: 1; color: var(--tinta); font-variant-numeric: tabular-nums; transform: translateY(-8px); }
.tnp-anel small { transform: translateY(30px); font-size: .82rem; font-weight: 700; color: var(--tinta-3); }
.tnp-l { display: flex; gap: 8px; padding: 0; margin: 0; list-style: none; }
.tnp-l li { display: grid; min-width: 82px; padding: 8px 12px; border-radius: 14px; background: var(--sup-2); font-size: .82rem; font-weight: 650; color: var(--tinta-2); }
.tnp-l b { font-family: var(--f-tit); font-size: 1.3rem; color: var(--tinta); }
.tnp-l .ok b { color: #15803D; }
.tnp-l .mal b { color: #B91C1C; }
.tnp-bts { display: grid; gap: 8px; width: 100%; margin-top: 4px; }
.tnp-bts .btn i { margin-right: 8px; }
.ta-estado { gap: 12px; border: 1.5px solid var(--linha); background: var(--sup); }
.ta-estado.e-rascunho { border-color: color-mix(in srgb, var(--bic) 38%, transparent); background: var(--azul-suave); }
.ta-estado.e-publicado { border-color: rgba(22, 163, 74, .38); background: rgba(22, 163, 74, .07); }
.ta-estado.e-arquivado { border-color: var(--linha-2); background: var(--sup-2); }
.ta-estado-at { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; align-items: center; }
.ta-estado-ic { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 14px; background: var(--bic); color: var(--sobre-bic); font-size: 1.15rem; }
.ta-estado.e-publicado .ta-estado-ic { background: #16A34A; color: #fff; }
.ta-estado.e-arquivado .ta-estado-ic { background: var(--tinta-3); color: #fff; }
.ta-estado-at strong { display: block; color: var(--tinta); font-size: 1.1rem; line-height: 1.25; }
.ta-estado-at small { display: block; margin-top: 3px; color: var(--tinta-2); font-size: .86rem; line-height: 1.4; }
.ta-estado-bts { display: flex; flex-wrap: wrap; gap: 8px; }
.ta-estado-bts .btn { height: 46px; padding: 0 20px; }
.ta-estado-bts .btn-pri { box-shadow: 0 10px 22px -14px rgba(30, 64, 230, .9); }
:root[data-theme="dark"] .ta-estado.e-publicado { border-color: rgba(74, 222, 128, .35); background: rgba(74, 222, 128, .07); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .ta-estado.e-publicado { border-color: rgba(74, 222, 128, .35); background: rgba(74, 222, 128, .07); } }
@media (max-width: 640px) { .ta-estado-bts { flex-direction: column; } .ta-estado-bts .btn { width: 100%; height: auto; min-height: 46px; justify-content: center; text-align: center; } }
.ta-conf { display: grid; justify-items: center; gap: 8px; text-align: center; }
.ta-conf-ic { display: grid; place-items: center; width: 64px; height: 64px; margin-top: 4px; border-radius: 20px; background: var(--bic); color: var(--sobre-bic); font-size: 1.6rem; box-shadow: 0 16px 30px -16px rgba(30, 64, 230, .9); }
.ta-conf-ic.arq { background: var(--tinta-2); color: var(--sup); box-shadow: none; }
.modal .ta-conf h2 { margin: 6px 0 0; font-size: 1.35rem; }
.ta-conf-nome { margin: 0; color: var(--tinta-2); font-weight: 700; overflow-wrap: anywhere; }
.ta-conf-l { display: grid; gap: 10px; width: 100%; margin: 10px 0 0; padding: 14px 16px; border-radius: 16px; background: var(--sup-2); list-style: none; text-align: left; box-sizing: border-box; }
.ta-conf-l li { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 10px; align-items: start; color: var(--tinta); font-size: .93rem; line-height: 1.45; }
.ta-conf-l li i { margin-top: 3px; color: var(--bic); text-align: center; }
.ta-conf-l li span { overflow-wrap: anywhere; }
.ta-conf-nota { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 10px; width: 100%; margin: 0; padding: 10px 14px; border-radius: 12px; background: rgba(198, 40, 57, .08); color: var(--tinta); font-size: .88rem; line-height: 1.45; text-align: left; box-sizing: border-box; }
.ta-conf-nota i { margin-top: 3px; color: #C62839; text-align: center; }
.modal .ta-conf .linha-btn { width: 100%; margin-top: 12px; }
@media (max-width: 480px) { .modal .ta-conf .linha-btn { flex-direction: column-reverse; } .modal .ta-conf .linha-btn .btn { flex: none; width: 100%; } }

/* 162.ª parte: estrela nas notificações importantes (azul, como o resto do site) e os desbloqueios grátis do fogo */
.np-i.np-imp .np-ic { position: relative; background: var(--bic); color: var(--sobre-bic); }
.np-estrela { position: absolute; top: -6px; right: -6px; width: 18px; height: 18px; border-radius: 50%; display: grid; place-items: center; background: var(--sup); color: var(--bic); box-shadow: 0 0 0 1.5px var(--bic); }
.np-estrela svg { width: 12px; height: 12px; }
.np-i.np-imp .np-txt { font-weight: 700; color: var(--tinta); }
.trh2-fogo-gr { display: flex; align-items: center; gap: 6px; margin-top: 4px; color: var(--bic); font-weight: 700; }
.trh2-fogo-gr i { font-size: .85em; }

/* 165.ª parte: o avatar com cadeados e preços, e o painel dos preços (Pontos → Avatar) */
.ed-op { position: relative; }
.ed-preco { position: absolute; right: 3px; bottom: 3px; display: inline-flex; align-items: center; gap: 3px; padding: 2px 6px; border-radius: 999px; background: var(--bic); color: var(--sobre-bic); font-size: .76rem; font-weight: 800; line-height: 1.2; box-shadow: 0 0 0 2px var(--sup); }
.ed-preco i { font-size: .6rem; }
.ed-dica i { margin-right: 6px; color: var(--bic); }
.ed-conta-t { display: flex; align-items: center; gap: 6px; margin: 0 0 10px; font-size: .9rem; color: var(--tinta); }
.ed-conta-t i { color: var(--bic); }
.ed-conta-t.falta b { color: #C62828; }
.bn-ligs { display: grid; gap: 12px; margin-bottom: 10px; }
.bn-lig { display: flex; flex-direction: column; gap: 4px; }
.bn-lig small, .bn-t small, .bn-n small, .bn-cat small { display: block; color: var(--tinta-2); font-size: .82rem; font-weight: 500; }
.bn-sec summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; cursor: pointer; list-style: none; }
.bn-sec summary::-webkit-details-marker { display: none; }
.bn-sec[open] summary .fa-chevron-down { transform: rotate(180deg); }
.bn-t { display: flex; flex-direction: column; }
.bn-cat { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin: 12px 0 6px; font-weight: 700; }
.bn-cat input, .bn-item input { width: 70px; padding: 6px 8px; border: 1px solid rgba(127, 127, 127, .35); border-radius: 10px; background: var(--sup); color: var(--tinta); font: inherit; text-align: center; }
.bn-grelha { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px; margin-top: 8px; }
.bn-item { display: flex; align-items: center; gap: 10px; padding: 6px 8px; border: 1px solid rgba(127, 127, 127, .25); border-radius: 12px; background: var(--sup); }
.bn-item.mudado { border-color: var(--bic); }
.bn-av img, .bn-av .av { width: 44px; height: 44px; }
.bn-n { flex: 1; min-width: 0; font-size: .88rem; line-height: 1.25; }

/* 166.ª parte: o avatar «solto» (com espaço à volta, para os chapéus e as orelhas saírem do círculo inteiros) e maior no perfil e no editor */
.av-img.av-solto { background: transparent !important; border-radius: 0 !important; object-fit: contain; box-shadow: none !important; }
.pf-cab { gap: 26px; }
.pf-cab .pf-av { width: 156px; height: 156px; border-radius: 0; overflow: visible; background: transparent; }
.pf-cab .pf-av-ed { right: 16px; bottom: 12px; }
.pf-cab .pf-meta { font-size: .95rem; }
@media (max-width: 980px) { .pf-cab .pf-av { width: 128px; height: 128px; } .pf-cab .pf-av-ed { right: 12px; bottom: 8px; } }
@media (max-width: 640px) { .pf-cab .pf-av { width: 150px; height: 150px; } }
.ed-pagina .ed-lado .ed-previa { width: 290px; height: 290px; }
@media (max-width: 760px) { .ed-pagina .ed-lado .ed-previa { width: 140px; height: 140px; } }
.ed-op .ed-mini.av-solto { width: 100%; height: 100%; }

/* 169.ª parte: o avatar vivo do perfil e o zoom também «soltos» (os gestos já não trocam para o boneco cortado) */
.avz-palco { border-radius: 0 !important; box-shadow: none !important; background: transparent !important; overflow: visible !important; }
.avz-img { border-radius: 0 !important; }

/* 170.ª parte: «Editar avatar» escrito por baixo do avatar; avatares maiores no ranking e na pesquisa de pessoas; «sem fundo» no editor */
.pf-av-w { display: flex; flex-direction: column; align-items: center; gap: 8px; }
.pf-av-editar { display: inline-flex; align-items: center; gap: 7px; padding: 8px 16px; border: 0; border-radius: 999px; background: var(--marca); color: #fff; font: inherit; font-size: .86rem; font-weight: 800; cursor: pointer; box-shadow: 0 6px 16px -8px rgba(16, 22, 51, .5); }
.pf-av-editar:hover { filter: brightness(1.08); }
.pf-av-editar i { font-size: .85em; }
.avz-editar { margin-top: 10px; display: inline-flex; align-items: center; gap: 8px; }
.ed-cor.ed-cor-nenhum { display: grid; place-items: center; background: var(--sup) !important; color: var(--tinta-2); }
.ed-cor.ed-cor-nenhum svg { width: 18px; height: 18px; }
.rk-deg-av { width: 124px; height: 124px; border: 0; border-radius: 0; overflow: visible; box-shadow: none; background: transparent; margin-bottom: 0; }
.rkl-av { width: 62px; height: 62px; }
.rk2 .rk-rosto { width: 60px; height: 60px; }
.pes-av { width: 92px; height: 92px; border-radius: 0; overflow: visible; background: transparent; }
@media (max-width: 640px) { .rk-deg-av { width: 92px; height: 92px; } .rkl-av { width: 52px; height: 52px; } .rk2 .rk-rosto { width: 48px; height: 48px; } .pes-av { width: 78px; height: 78px; } }

/* 171.ª parte: avatares sem cortes no menu e no topo (o círculo fica do mesmo tamanho e os chapéus saem por cima),
   ranking e pessoas com avatares maiores e sem o quadrado à volta, carteira, cupões e o aviso das metas no telemóvel */
.av-img.av-igual { transform: translateY(-4.07%) scale(1.289); transform-origin: 50% 54.07%; }
.rk-deg-av { width: 116px !important; height: 116px !important; border: 0 !important; border-radius: 0 !important; overflow: visible !important; box-shadow: none !important; background: transparent !important; margin: 10px 0 8px !important; }
.rk-deg small { white-space: normal !important; overflow: visible !important; text-overflow: clip !important; line-height: 1.3; }
.rk-lin { grid-template-columns: 44px 80px minmax(0, 1fr) auto 150px !important; gap: 14px !important; }
.rkl-av { width: 70px !important; height: 70px !important; border-radius: 0 !important; overflow: visible !important; background: transparent !important; }
.pes-av { width: 108px !important; height: 108px !important; border-radius: 0 !important; overflow: visible !important; background: transparent !important; box-shadow: none !important; border: 0 !important; }
.rk2 .rk-rosto { width: 62px !important; height: 62px !important; }
@media (max-width: 640px) { .rk-deg-av { width: 84px !important; height: 84px !important; } .rk-lin { grid-template-columns: 34px 62px minmax(0, 1fr) 70px !important; gap: 10px !important; } .rkl-av { width: 54px !important; height: 54px !important; } .pes-av { width: 88px !important; height: 88px !important; } .rk2 .rk-rosto { width: 46px !important; height: 46px !important; } }
.ext-res.so-um { grid-template-columns: minmax(0, 1fr) !important; }
.cup-g { grid-template-columns: repeat(auto-fill, minmax(min(440px, 100%), 1fr)) !important; }
.cup { grid-template-columns: 84px minmax(0, 1fr) auto !important; gap: 12px !important; padding: 12px 14px 12px 0 !important; }
.cup.feito { grid-template-columns: 84px minmax(0, 1fr) !important; }
.cup-v { margin: -12px 0 !important; }
.cup-v b { font-size: 1.45rem !important; }
.cup-t strong { font-size: .98rem; line-height: 1.25; }
.cup-t p { font-size: .82rem !important; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.cup-t small { font-size: .8rem; }
.cup .cup-ok { display: inline-flex; align-items: center; gap: 6px; margin-top: 4px; font-size: .8rem; font-weight: 700; color: var(--tinta-2); }
.mc3-t, .mc3-sub { text-shadow: 0 2px 14px rgba(8, 18, 70, .6); }
@media (max-width: 600px) { .mc3 .mc-n { font-size: clamp(4.2rem, 22vw, 6.8rem) !important; } .mc3-anel { font-size: clamp(5.4rem, 28vw, 8.6rem) !important; } .mc3-t { font-size: 1.5rem !important; } .mc3-sub { font-size: .9rem !important; } .mc3-centro { padding-top: 64px !important; } }
.ed-ops .ed-sec { grid-column: 1 / -1; margin: 10px 0 2px; font-size: .95rem; font-weight: 800; color: var(--tinta); }
.ed-op .ed-op-nome { position: absolute; left: 4px; right: 4px; bottom: 4px; padding: 2px 4px; border-radius: 8px; background: var(--sup); color: var(--tinta); font-size: .72rem; font-weight: 800; line-height: 1.15; text-align: center; box-shadow: 0 2px 6px rgba(16, 22, 51, .12); }
.ed-op .ed-op-nome + .ed-preco { bottom: auto; top: 3px; }

/* 172.ª parte: os números do perfil cabem todos (também no telemóvel), visitas ao perfil, associações, notificações por alturas */
.pf-nums { display: grid !important; grid-template-columns: repeat(5, minmax(0, 1fr)) !important; gap: 10px !important; }
.pf-nums > * { min-width: 0; }
.pf-nums b, .pf-nums strong { overflow-wrap: anywhere; }
@media (max-width: 1100px) { .pf-nums { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; } }
@media (max-width: 640px) { .pf-nums { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 8px !important; } .pf-nums > *:last-child { grid-column: 1 / -1; } .pf-nums small, .pf-nums span { font-size: .82rem; } }
.pf-papel-assoc { display: inline-flex; align-items: center; gap: 6px; background: #E8F5E9 !important; color: #1B5E20 !important; }
.pf-desc { margin: 6px 0 0; max-width: 620px; color: var(--tinta-2); font-size: .92rem; line-height: 1.5; white-space: pre-line; }
.pf-av-desc { background: var(--sup) !important; color: var(--tinta) !important; border: 1px solid var(--linha) !important; box-shadow: none !important; }
.av-img.av-quad { border-radius: 18% !important; object-fit: cover; background: var(--sup) !important; transform: none !important; }
.np-sec { margin: 10px 14px 4px; font-size: .82rem; font-weight: 800; letter-spacing: .02em; color: var(--tinta-2); }
.assoc-link { margin: 14px 0 0; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: .88rem; color: var(--tinta-2); }
.assoc-link a { font-weight: 800; color: var(--marca); }
.assoc-pag { max-width: 720px; margin: 0 auto; }
.assoc-cx { padding: 22px; display: grid; gap: 12px; }
.assoc-cx h1 { margin: 0; font-size: 1.5rem; }
.assoc-cx h2 { margin: 14px 0 4px; font-size: 1.05rem; }
.assoc-form { display: grid; gap: 12px; }
.assoc-form label { display: grid; gap: 6px; font-size: .86rem; font-weight: 700; color: var(--tinta); }
.assoc-form input, .assoc-form select, .assoc-form textarea, .assoc-ta { width: 100%; box-sizing: border-box; padding: 11px 14px; border-radius: 12px; border: 1.5px solid var(--linha); background: var(--sup); color: var(--tinta); font: inherit; font-weight: 500; }
.assoc-form select { appearance: none; -webkit-appearance: none; background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%); background-position: calc(100% - 20px) 50%, calc(100% - 14px) 50%; background-size: 6px 6px; background-repeat: no-repeat; padding-right: 36px; }
.assoc-form input:focus, .assoc-form select:focus, .assoc-form textarea:focus, .assoc-ta:focus { outline: none; border-color: var(--marca); box-shadow: 0 0 0 3px var(--azul-suave); }
.assoc-ok { padding: 28px 22px; display: grid; gap: 10px; justify-items: center; text-align: center; }
.assoc-ok > i { font-size: 2.6rem; color: #2E7D32; }
.assoc-ok h1 { margin: 0; }
.assoc-ok p { max-width: 520px; color: var(--tinta-2); line-height: 1.55; }
.assoc-l { display: flex; gap: 14px; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; padding: 14px; border: 1px solid var(--linha); border-radius: 16px; background: var(--sup); }
.assoc-l-t { display: grid; gap: 3px; min-width: 0; flex: 1 1 280px; }
.assoc-l-t small { color: var(--tinta-2); }
.assoc-l-t p { margin: 4px 0 0; font-size: .86rem; color: var(--tinta-2); }
.assoc-l-a { display: flex; gap: 8px; flex-wrap: wrap; }
.assoc-estado { font-size: .82rem; font-weight: 800; color: var(--tinta-2); }
.assoc-l.ativa .assoc-estado { color: #2E7D32; }

/* 173.ª parte: separadores dos países e nomes por baixo das miniaturas dos temas */
.ed-sub { margin: -2px 0 10px; gap: 6px; flex-wrap: wrap; }
.ed-sub .chip { font-size: .82rem; padding: 6px 12px; }
.ed-op .ed-op-nome { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: .68rem !important; }

/* 174.ª parte: separadores do avatar numa só linha com deslizar; preço com outro desenho; o painel do avatar fica parado;
   o avatar do registo mexe-se sozinho; «Sem IA» nos simulados e «Editar as questões» bem à vista */
.ed-sub { display: flex; flex-wrap: wrap; gap: 6px; }
@media (max-width: 760px) { /* só nos ecrãs pequenos: os separadores numa linha que desliza para o lado; nos grandes ficam como estavam */
  .ed-cats { flex-wrap: nowrap !important; overflow-x: auto !important; overflow-y: hidden !important; -webkit-overflow-scrolling: touch; scrollbar-width: thin; padding-bottom: 8px; margin-bottom: 14px !important; }
  .ed-cats .chip, .ed-sub .chip { flex: none !important; white-space: nowrap; }
  .ed-sub { flex-wrap: nowrap !important; overflow-x: auto; scrollbar-width: thin; padding-bottom: 6px; }
}
.ed-op .ed-preco { top: auto !important; bottom: 5px !important; right: 5px !important; left: auto !important; display: inline-flex !important; align-items: center; gap: 3px; padding: 2px 8px !important; border-radius: 999px !important; background: var(--bic) !important; color: #fff !important; border: 0 !important; box-shadow: 0 2px 6px rgba(30, 64, 230, .3) !important; font-size: .76rem !important; font-weight: 800 !important; }
.ed-op .ed-preco svg, .ed-op .ed-preco i { width: 10px !important; height: 10px !important; color: #fff !important; }
@media (min-width: 900px) { .ed-pagina .ed-lado { position: relative !important; top: auto !important; align-self: start; max-height: calc(100vh - 100px); overflow-y: auto; will-change: transform; } } /* fica à vista pelo fixarPainelAvatar (085-boneco.js) */
@media (min-width: 900px) and (max-height: 820px) { .ed-pagina .ed-lado .ed-previa { width: 200px !important; height: 200px !important; } }
@media (min-width: 900px) and (max-height: 680px) { .ed-pagina .ed-lado .ed-previa { width: 150px !important; height: 150px !important; } .ed-pagina .ed-lado { gap: 10px !important; padding: 16px !important; } }
.pa-previa .av-img { animation: paRespira 3.2s ease-in-out infinite; transform-origin: 50% 80%; }
@keyframes paRespira { 0%, 100% { transform: translateY(0) rotate(0) scale(1); } 25% { transform: translateY(-7px) rotate(-2.5deg) scale(1.012); } 50% { transform: translateY(0) rotate(0) scale(.995); } 75% { transform: translateY(-5px) rotate(2.5deg) scale(1.012); } }
@media (prefers-reduced-motion: reduce) { .pa-previa .av-img { animation: none; } }
.te-semia { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 4px 0 12px; }
.te-semia button { display: grid; grid-template-columns: auto 1fr; column-gap: 8px; align-items: center; text-align: left; padding: 10px 12px; border-radius: 14px; border: 1.5px solid var(--linha); background: var(--sup); color: var(--tinta); font: inherit; cursor: pointer; }
.te-semia button i { grid-row: span 2; color: var(--marca); }
.te-semia button b { font-size: .9rem; }
.te-semia button small { font-size: .78rem; color: var(--tinta-2); }
.te-semia button[aria-pressed="true"] { border-color: var(--marca); background: var(--azul-suave); }
.ta-editar-q { display: inline-flex; align-items: center; gap: 8px; }

/* 175.ª parte: girar páginas no leitor (cada um, para si) e ao publicar (fica no PDF) */
.pagina { position: relative; }
.pg-girar { position: absolute; top: 8px; right: 8px; z-index: 3; width: 36px; height: 36px; border-radius: 50%; border: 0; display: grid; place-items: center; background: rgba(16, 22, 51, .62); color: #fff; font-size: .95rem; cursor: pointer; opacity: .85; transition: opacity .15s, transform .15s; }
.pg-girar:hover, .pg-girar:focus-visible { opacity: 1; transform: scale(1.06); }
.pg-girar:active i { transform: rotate(90deg); transition: transform .2s; }
.u-previa-btn { margin-top: 10px; display: inline-flex; align-items: center; gap: 8px; }
.gp-g { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 14px; max-height: min(62vh, 640px); overflow: auto; padding: 4px 2px 8px; }
.gp-p { margin: 0; display: grid; gap: 8px; padding: 10px; border: 1px solid var(--linha); border-radius: 14px; background: var(--sup); }
.gp-p.girada { border-color: var(--marca); box-shadow: 0 0 0 3px var(--azul-suave); }
.gp-c { display: grid; place-items: center; min-height: 240px; background: var(--fundo, #f3f4f8); border-radius: 10px; overflow: hidden; }
.gp-c canvas { display: block; max-width: 100%; height: auto; box-shadow: 0 2px 10px rgba(16, 22, 51, .15); }
.gp-p figcaption { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: .85rem; font-weight: 700; color: var(--tinta-2); }
.gp-acoes { margin-top: 14px; display: flex; gap: 10px; justify-content: flex-end; flex-wrap: wrap; }

/* 177.ª parte: cadeiras do início — no telemóvel, 3 e «…» que abre a lista toda por cima */
.foco-reticencias { justify-content: center; padding: 6px 16px !important; font: inherit; font-weight: 900; font-size: 1.1rem; letter-spacing: .12em; color: var(--bic); background: var(--sup); cursor: pointer; }
.foco-chips > .foco-chip:not(.foco-mais):not(.foco-reticencias):nth-child(n+7) { display: none; }
.foco-chips:not(.mais6) .foco-reticencias { display: none; }
@media (max-width: 640px) {
  .foco-chips > .foco-chip:not(.foco-mais):not(.foco-reticencias):nth-child(n+4) { display: none; }
  .foco-chips .foco-reticencias { display: inline-flex !important; }
  .foco-chips .foco-mais { display: none !important; }
}
.foco-ecra-l { display: grid; gap: 8px; }
.fe-l { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border: 1.5px solid var(--linha-2); border-radius: 16px; background: var(--sup); color: var(--tinta); text-decoration: none; }
.fe-l:hover { border-color: var(--bic); background: var(--azul-suave); }
.fe-n { flex: 1; min-width: 0; font-weight: 700; line-height: 1.3; }
.fe-l small { color: var(--tinta-3); font-size: .82rem; font-weight: 650; }
.fe-l b { display: inline-grid; place-items: center; min-width: 30px; height: 28px; padding: 0 9px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); font-size: .8rem; }
.fe-todas { margin-top: 6px; justify-self: start; display: inline-flex; align-items: center; gap: 8px; }

/* 182.ª parte: perfil com 4 números (sem «no Veteraano desde»); cadeiras do início arrumadas pelo espaço; nomes por baixo dos cientistas */
.pf-nums { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
@media (max-width: 900px) { .pf-nums { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } .pf-nums > *:last-child { grid-column: auto !important; } }
@media (min-width: 641px) { .foco-chips.arrumado > .foco-chip:not(.foco-mais):not(.foco-reticencias) { flex: 1 1 auto; justify-content: space-between; } }
.ed-op-w { display: grid; gap: 5px; align-content: start; }
.ed-op-w .ed-op { width: 100%; }
.ed-op-nm { font-size: .72rem; font-weight: 700; line-height: 1.2; text-align: center; color: var(--tinta-2); overflow-wrap: anywhere; }

/* 183.ª/188.ª parte: o topo do perfil no telemóvel — «Editar avatar» na linha dos botões de cima; o avatar grande e
   centrado, como estava; o nome e o resto centrados por baixo, mais juntos, com o nível e a patente na mesma linha */
.pf-b-av { display: none; }
@media (max-width: 640px) {
  .pf-cab { display: grid !important; grid-template-columns: minmax(0, 1fr) !important; grid-template-areas: "acoes" "av" "quem" !important; gap: 8px !important; justify-items: center !important; text-align: center !important; padding: 14px 14px 18px !important; }
  .pf-cab > .pf-acoes { grid-area: acoes; position: static !important; display: flex !important; flex-wrap: nowrap; justify-content: flex-end; align-items: center; gap: 8px; margin: 0 !important; width: 100%; justify-self: stretch !important; }
  .pf-cab > .pf-acoes .pf-b-av { display: inline-flex !important; align-items: center; margin-right: auto; padding: 0 14px !important; height: 40px; border-radius: 999px; gap: 7px; font-size: .86rem; white-space: nowrap; width: auto !important; }
  .pf-cab > .pf-acoes .pf-b-av span { display: inline !important; }
  .pf-cab > .pf-av-w { grid-area: av; justify-self: center !important; align-self: center; width: 150px; gap: 0 !important; margin: 0 auto; }
  .pf-cab .pf-av, .pf-cab .pf-av .av, .pf-cab .pf-av img { width: 150px !important; height: 150px !important; max-width: none !important; object-fit: contain; } /* avatar grande e centrado, sem achatar */
  .pf-av-w .pf-av-editar[data-action="abrir-bonecos"] { display: none !important; }
  .pf-cab > .pf-quem { grid-area: quem; display: block !important; text-align: center !important; min-width: 0; width: 100%; }
  .pf-cab .pf-quem h1 { font-size: 1.4rem !important; line-height: 1.15; margin: 0 !important; overflow-wrap: anywhere; text-align: center !important; }
  .pf-cab .pf-quem .pf-arroba { font-size: .88rem; margin: 2px 0 0 !important; text-align: center !important; }
  .pf-cab .pf-quem .pf-onde, .pf-cab .pf-quem .pf-uni { font-size: .84rem !important; margin: 4px 0 0 !important; justify-content: center !important; text-align: center !important; }
  .pf-cab .pf-quem .pf-nivel, .pf-cab .pf-quem .pf-meta { display: inline-flex !important; vertical-align: middle; margin: 6px 3px 0 !important; font-size: .82rem !important; }
}

/* 185.ª parte: «Tirar os acessórios» no painel do avatar */
.ed-tirar-tudo { display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.ed-tirar-tudo i { font-size: .95em; }

/* 186.ª parte: a janela «Escolhe o teu @» */
.arr-m { display: grid; gap: 12px; }
.arr-campo { display: flex; align-items: center; gap: 6px; padding: 4px 14px; border: 1.5px solid var(--linha); border-radius: 14px; background: var(--sup); }
.arr-campo span { font-weight: 800; color: var(--tinta-2); }
.arr-campo input { flex: 1; min-width: 0; border: 0; outline: none; background: transparent; padding: 10px 0; font: inherit; font-size: 1.05rem; font-weight: 700; color: var(--tinta); }
.arr-campo:focus-within { border-color: var(--marca); box-shadow: 0 0 0 3px var(--azul-suave); }
.arr-estado { margin: 0; min-height: 1.3em; font-size: .86rem; font-weight: 600; }
.arr-estado.bom { color: #2E7D32; }
.arr-estado.mau { color: #C62828; }
@media (max-width: 370px) { .pf-cab > .pf-av-w { width: 128px; } .pf-cab .pf-av, .pf-cab .pf-av .av, .pf-cab .pf-av img { width: 128px !important; height: 128px !important; } }

/* 189.ª parte: o avatar do perfil ainda maior (no computador e no telemóvel) e a universidade bem centrada no telemóvel */
.pf-cab .pf-av { width: 200px !important; height: 200px !important; }
@media (max-width: 980px) { .pf-cab .pf-av { width: 170px !important; height: 170px !important; } }
@media (max-width: 640px) {
  .pf-cab > .pf-av-w { width: 190px !important; }
  .pf-cab .pf-av, .pf-cab .pf-av .av, .pf-cab .pf-av img { width: 190px !important; height: 190px !important; }
  .pf-cab .pf-quem .pf-onde, .pf-cab .pf-quem .pf-uni { margin-left: auto !important; margin-right: auto !important; justify-content: center !important; text-align: center !important; }
}
@media (max-width: 370px) { .pf-cab > .pf-av-w { width: 160px !important; } .pf-cab .pf-av, .pf-cab .pf-av .av, .pf-cab .pf-av img { width: 160px !important; height: 160px !important; } }

/* 192.ª parte: o painel «O teu avatar» arrumado e sempre à vista, no computador e no telemóvel — o título e
   «Escolher / Criar o meu» na mesma linha, o avatar grande, o total dos acessórios novos e os botões sem cortes */
.ed-pagina .ed-lado { display: grid !important; grid-template-columns: minmax(0, 1fr) auto !important; grid-template-areas: "t m" "p p" "c c" "b b" "l l" !important; align-items: center !important; gap: 12px !important; position: relative !important; z-index: 6; background: var(--sup); }
.ed-pagina .ed-lado > h1 { grid-area: t; margin: 0 !important; font-size: 1.3rem !important; white-space: nowrap; }
.ed-pagina .ed-lado > .ed-modo { grid-area: m; width: auto !important; display: inline-flex !important; justify-self: end; }
.ed-pagina .ed-lado > .ed-modo button { height: 36px !important; padding: 0 10px !important; font-size: .8rem !important; gap: 5px !important; white-space: nowrap; }
.ed-pagina .ed-lado > .ed-modo button svg { width: 15px !important; height: 15px !important; }
.ed-pagina .ed-lado > .ed-previa { grid-area: p; justify-self: center; }
.ed-pagina .ed-lado > .ed-conta { grid-area: c; min-width: 0; }
.ed-pagina .ed-lado > .ed-conta .ed-conta-t { margin: 0; font-size: .84rem; line-height: 1.35; display: flex; flex-wrap: wrap; align-items: center; gap: 4px; }
.ed-pagina .ed-lado > .ed-botoes { grid-area: b; display: grid !important; grid-template-columns: 1fr 1fr; gap: 8px !important; flex-direction: initial !important; }
.ed-pagina .ed-lado > .ed-botoes .btn { height: 44px !important; padding: 0 10px !important; font-size: .86rem !important; white-space: nowrap; min-width: 0; overflow: hidden; text-overflow: ellipsis; gap: 6px !important; flex: initial !important; }
.ed-pagina .ed-lado > .ed-botoes .btn[data-action="ed-guardar"] { grid-column: 1 / -1; }
.ed-pagina .ed-lado > .ed-logo { grid-area: l; }
.ed-pagina .ed-lado.preso { box-shadow: 0 12px 26px -14px rgba(16, 22, 51, .38); }
@media (min-width: 900px) { .ed-pagina { grid-template-columns: 380px minmax(0, 1fr) !important; } }
@media (max-width: 899px) {
  .ed-pagina .ed-lado { grid-template-columns: 132px minmax(0, 1fr) !important; grid-template-areas: "t m" "p c" "p b" "l l" !important; gap: 8px 12px !important; padding: 12px !important; border-radius: 18px !important; max-height: none !important; overflow: visible !important; }
  .ed-pagina .ed-lado > h1 { font-size: 1.05rem !important; }
  .ed-pagina .ed-lado > .ed-modo button { height: 32px !important; padding: 0 8px !important; font-size: .78rem !important; }
  .ed-pagina .ed-lado .ed-previa { width: 132px !important; height: 132px !important; margin: 0 !important; align-self: start; }
  .ed-pagina .ed-lado > .ed-conta .ed-conta-t { font-size: .8rem; }
  .ed-pagina .ed-lado > .ed-botoes { gap: 6px !important; align-self: end; }
  .ed-pagina .ed-lado > .ed-botoes .btn { height: 38px !important; font-size: .8rem !important; padding: 0 6px !important; gap: 4px !important; }
  .ed-pagina .ed-lado > .ed-botoes .btn svg, .ed-pagina .ed-lado > .ed-botoes .btn i { width: 14px !important; height: 14px !important; font-size: .8rem; }
}
@media (max-width: 380px) { .ed-pagina .ed-lado { grid-template-columns: 108px minmax(0, 1fr) !important; } .ed-pagina .ed-lado .ed-previa { width: 108px !important; height: 108px !important; } .ed-pagina .ed-lado > .ed-modo button svg { display: none; } }

/* 193.ª/194.ª parte: o editor do avatar como uma app — com a classe «ed-app» (posta pelo fixarPainelAvatar, que mede a
   altura certa), o painel «O teu avatar» fica parado e só a zona dos separadores e das opções desliza. Sem ela (ecrãs
   muito baixos ou noutras páginas), tudo volta ao normal. No computador, o título fica numa linha e «Escolher / Criar o
   meu» por baixo; no telemóvel, na mesma linha. */
.ed-pagina .ed-lado { transform: none !important; box-shadow: none; }
@media (min-width: 900px) {
  .ed-pagina { grid-template-columns: 380px minmax(0, 1fr) !important; }
  .ed-pagina .ed-lado { position: relative !important; top: auto !important; align-self: start !important; grid-template-columns: minmax(0, 1fr) !important; grid-template-areas: "t" "m" "p" "c" "b" "l" !important; }
  .ed-pagina .ed-lado > h1 { white-space: normal !important; font-size: 1.5rem !important; }
  .ed-pagina .ed-lado > .ed-modo { justify-self: stretch !important; display: grid !important; grid-template-columns: 1fr 1fr; width: 100% !important; }
  .ed-pagina .ed-lado > .ed-modo button { height: 42px !important; font-size: .9rem !important; justify-content: center; }
}
html.ed-app, html.ed-app body { overflow: hidden !important; }
html.ed-app main { padding-bottom: 10px !important; }
html.ed-app .pag-boneco { display: flex; flex-direction: column; min-height: 0; }
html.ed-app .pag-boneco > .voltar-link { flex: none; align-self: flex-start; }
html.ed-app .pag-boneco > .ed-pagina { flex: 1 1 auto; min-height: 0; }
html.ed-app .ed-pagina > .ed-main { min-height: 0; overflow-y: auto !important; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
@media (min-width: 900px) {
  html.ed-app .ed-pagina { display: grid !important; align-items: stretch !important; height: 100%; }
  html.ed-app .ed-pagina .ed-lado { max-height: 100% !important; overflow-y: auto !important; }
  html.ed-app .ed-pagina > .ed-main { height: 100%; padding: 2px 8px 24px 0 !important; }
}
@media (max-width: 899px) {
  html.ed-app .ed-pagina { display: flex !important; flex-direction: column !important; gap: 10px !important; }
  html.ed-app .ed-pagina .ed-lado { flex: none; }
  html.ed-app .ed-pagina > .ed-main { flex: 1 1 auto; padding-bottom: 16px !important; }
}

/* 195.ª parte: o painel «O teu avatar» fixo como os «Filtros» do Explorar — a página desliza normalmente (separadores e
   miniaturas acompanham o deslizar do site) e o painel fica parado (position: sticky), sem deslizar para o lado.
   No computador fica ao lado das opções; no telemóvel fica por cima, compacto, e as opções passam por baixo. */
html.ed-app, html.ed-app body { overflow: visible !important; }
.pag-boneco { display: block !important; height: auto !important; min-height: 0 !important; }
.ed-pagina > .ed-main { overflow: visible !important; height: auto !important; max-height: none !important; }
.ed-pagina .ed-lado { transform: none !important; overflow-x: hidden !important; }
@media (min-width: 900px) {
  .ed-pagina { display: grid !important; grid-template-columns: 380px minmax(0, 1fr) !important; align-items: start !important; height: auto !important; }
  .ed-pagina .ed-lado { position: sticky !important; top: calc(var(--topo-vis, var(--topo-h)) + 16px) !important; align-self: start !important; max-height: calc(100vh - var(--topo-h) - 32px) !important; overflow-y: auto !important; overscroll-behavior: contain; scrollbar-width: thin; }
}
@media (max-width: 899px) {
  .ed-pagina { display: block !important; }
  .ed-pagina .ed-lado { position: sticky !important; top: calc(var(--topo-vis, var(--topo-h)) + 6px) !important; z-index: 6; margin: 0 0 12px !important; max-height: none !important; overflow: visible !important; }
}

/* 196.ª parte: no telemóvel, o painel «O teu avatar» inteiro fica fixo por cima e o que desliza passa por baixo sem se
   ver: o painel tapa tudo à volta dele (por cima, até ao topo do site, e dos lados) com a cor do fundo da página */
@media (max-width: 899px) {
  .ed-pagina .ed-lado { z-index: 20 !important; background: var(--sup) !important; box-shadow: 0 -18px 0 12px var(--mesa), 0 12px 18px -12px rgba(16, 22, 51, .35) !important; }
  .ed-pagina > .ed-main { position: relative; z-index: 1; }
}

/* 197.ª parte: os separadores do avatar agrupados (9 em cima) e os de cada grupo por baixo, mais pequenos */
.ed-subcats { display: flex; flex-wrap: wrap; gap: 6px; margin: -6px 0 12px; padding: 8px; border-radius: 16px; background: var(--sup-2); }
.ed-subcats .chip { font-size: .82rem; padding: 6px 12px; background: var(--sup); }
.ed-subcats .chip.ativo { background: var(--bic); color: var(--sobre-bic, #fff); border-color: var(--bic); }
@media (max-width: 760px) { .ed-subcats { flex-wrap: nowrap !important; overflow-x: auto; scrollbar-width: thin; } .ed-subcats .chip { flex: none; white-space: nowrap; } }

/* 198.ª parte: no telemóvel, os botões do painel em coluna (sem cortes) e os separadores (os grupos e os de cada grupo)
   fixos logo por baixo do painel, com fundo: só as miniaturas deslizam, e o que passa por baixo não se vê */
@media (max-width: 899px) {
  .ed-pagina .ed-lado > .ed-botoes { grid-template-columns: 1fr !important; gap: 6px !important; }
  .ed-pagina .ed-lado > .ed-botoes .btn { height: 36px !important; font-size: .82rem !important; }
  .ed-pagina .ed-lado > .ed-botoes .btn[data-action="ed-guardar"] { grid-column: auto !important; }
  .ed-pagina .ed-navs { position: sticky; top: calc(var(--topo-vis, var(--topo-h)) + 6px + var(--ed-lado-h, 232px) + 2px); z-index: 19; background: var(--mesa); padding: 8px 0 6px; margin: 0 0 8px; box-shadow: 0 12px 10px -8px rgba(16, 22, 51, .16); }
  .ed-pagina .ed-navs .ed-cats { margin-bottom: 6px !important; padding-bottom: 4px !important; }
  .ed-pagina .ed-navs .ed-subcats { margin: 0 !important; }
  .ed-pagina .ed-navs .ed-sub { margin: 6px 0 0 !important; }
}

/* 199.ª parte: capas nos cartões dos simulados e treinos; no telemóvel, nada se vê entre o painel do avatar e os separadores */
.tsz-capa { display: block; margin: -16px -16px 6px; border-radius: 18px 18px 0 0; overflow: hidden; aspect-ratio: 3 / 2; background: linear-gradient(135deg, var(--azul-suave), var(--sup-2)); }
.tsz-capa img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; opacity: 0; transition: opacity .35s ease, transform .5s ease; }
.tsz-capa.ok img { opacity: 1; }
.tsz-c:hover .tsz-capa img { transform: scale(1.03); }
@media (max-width: 899px) {
  .ed-pagina .ed-navs { top: calc(var(--topo-vis, var(--topo-h)) + 6px + var(--ed-lado-h, 232px)) !important; box-shadow: 0 -14px 0 0 var(--mesa), 0 12px 10px -8px rgba(16, 22, 51, .16) !important; padding: 10px 0 8px !important; margin: 0 !important; }
  .ed-pagina .ed-lado { box-shadow: 0 -18px 0 12px var(--mesa), 0 14px 0 0 var(--mesa) !important; }
}

/* 200.ª parte: a capa dos cartões desenhada pelo site */
.tsz-capa .capa-svg, .trm-cartaz .capa-svg { display: block; width: 100%; height: 100%; }
.tsz-capa.ok .capa-svg { opacity: 1; }

/* 201.ª parte: o topo do simulado arrumado — 1.ª linha: título (numa linha, com reticências) e «x de y respondidas»,
   «Terminar» e o ×; 2.ª linha: a barra do progresso e o tempo. Nada fica por cima de nada. */
.ts-topo .ts-barra { height: 8px; border-radius: 99px; background: var(--sup-3); overflow: hidden; min-width: 80px; }
.ts-topo .ts-barra i { display: block; height: 100%; border-radius: 99px; background: var(--bic); transition: width .6s cubic-bezier(.2, .8, .2, 1); }
@media (max-width: 1099px) {
  .tp .ts-topo { display: grid !important; grid-template-columns: minmax(0, 1fr) auto auto; grid-template-areas: "tt ent x" "barra tempo tempo"; align-items: center; column-gap: 10px; row-gap: 10px; }
  .tp .ts-topo .ts-tt { grid-area: tt; min-width: 0; }
  .tp .ts-topo .ts-tt strong { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .tp .ts-topo .ts-entregar-topo { grid-area: ent; white-space: nowrap; }
  .tp .ts-topo .tp-x { grid-area: x; order: 0; }
  .tp .ts-topo .ts-barra { grid-area: barra; }
  .tp .ts-topo .ts-tempo { grid-area: tempo; justify-self: end; }
  .tp .ts-topo:not(:has(.ts-tempo)) { grid-template-areas: "tt ent x" "barra barra barra"; }
}
@media (min-width: 1100px) { .ts .ts-topo .ts-barra { grid-column: 1 / -1; } }

/* 202.ª parte: no telemóvel o painel do avatar só tapa a frincha por cima dele (o «Voltar ao perfil» deixa de ficar
   escondido); na grelha «Escolher» o círculo de seleção fica certinho à volta do avatar */
@media (max-width: 899px) {
  .ed-pagina .ed-lado { box-shadow: 0 -8px 0 0 var(--mesa), 0 14px 0 0 var(--mesa), 0 12px 18px -12px rgba(16, 22, 51, .3) !important; }
}
.ed-pronto { position: relative; overflow: hidden; }
.ed-pronto .av, .ed-pronto .av-img { display: block; width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }

/* 206.ª parte: nos cartões dos simulados diz-se se é grátis ou quantos pontos custa */
.tsz-custo { font-weight: 800; color: var(--tinta); }
.tsz-custo.gratis { color: #1E7F4F; }
.tsz-custo i { color: inherit; }

/* 207.ª parte: publicidades com vídeo (ecrãs grandes e telemóvel), anúncios com imagem, formulário do vídeo */
.av-pub-vid { position: relative; width: 100%; aspect-ratio: 16 / 9; border-radius: 14px; overflow: hidden; background: #000; margin-bottom: 10px; }
.av-pub.vertical .av-pub-vid { aspect-ratio: 9 / 16; max-height: 62vh; }
.av-pub-vid video, .av-pub-vid iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; object-fit: contain; background: #000; }
.av-pub.com-video { width: min(92vw, 420px); }
.av-pub-x[disabled] { opacity: .35; cursor: not-allowed; }
.av-pub-esp { display: block; font-size: .82rem; font-weight: 700; color: var(--tinta-2); margin: -4px 0 8px; }
.av-an-img { display: block; width: 100%; max-height: 260px; object-fit: cover; border-radius: 16px; margin-bottom: 14px; }
.ave-mini-an .av-an-img { max-height: 140px; }
.av-vid-b { padding: 10px 12px; border: 1px solid var(--linha); border-radius: 14px; margin-bottom: 10px; background: var(--sup-2); }
.av-vid-b strong { display: block; font-size: .92rem; }
.av-vid-b small { display: block; color: var(--tinta-2); font-size: .82rem; margin-bottom: 8px; }
.av-vid-l { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.av-vid-l input[type="url"] { flex: 1 1 220px; min-width: 0; padding: 8px 10px; border: 1px solid var(--linha); border-radius: 10px; background: var(--sup); color: var(--tinta); font: inherit; }
.av-vid-l .ou { color: var(--tinta-2); font-size: .82rem; }
.av-vid-ok { font-weight: 700; color: #1E7F4F; display: inline-flex; align-items: center; gap: 6px; }
.ave-sem-img.ave-vid { display: grid; place-items: center; gap: 6px; padding: 24px; color: var(--tinta-2); }
.ave-sem-img.ave-vid small { font-size: .8rem; }
@media (max-width: 759px) { .av-pub.com-video { width: auto; } .av-pub.vertical .av-pub-vid { max-height: 68vh; } }

/* 207.ª parte: associações dentro de Pessoas (o link para enviar) e a página de pedido toda azul, com bonecos */
.assoc-link { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 6px 0 14px; }
.assoc-link code { padding: 8px 12px; border-radius: 10px; background: var(--sup-2); font-weight: 700; }
#adm-tab .assoc-cx { padding: 0; border: 0; background: none; box-shadow: none; }
.pag.assoc-azul { color: #fff; max-width: none; margin: -20px 0 0; padding: 28px 16px 48px; border-radius: 0; min-height: calc(100vh - var(--topo-h, 64px)); box-shadow: 0 0 0 100vmax #1d3bd0; clip-path: inset(0 -100vmax); position: relative; z-index: 1; background: radial-gradient(120% 90% at 50% -10%, #3458ff 0%, #2346e6 45%, #1a33c0 100%); }
.assoc-hero { max-width: 1040px; margin: 0 auto 24px; position: relative; }
.assoc-hero-topo { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 26px; }
.assoc-logo { font-weight: 800; font-size: 1.25rem; display: inline-flex; align-items: center; gap: 8px; }
.assoc-pill { background: #fff; color: var(--bic); font-weight: 800; padding: 8px 14px; border-radius: 999px; font-size: .9rem; }
.assoc-hero-k { font-size: clamp(1.1rem, 2.6vw, 1.5rem); font-weight: 700; color: #dbe3ff; margin: 0 0 4px; }
.assoc-hero h1 { font-size: clamp(2rem, 6vw, 3.8rem); line-height: 1.02; letter-spacing: -.02em; margin: 0 0 14px; max-width: 12ch; color: #fff; }
.assoc-hero-s { max-width: 560px; color: #e6ebff; font-size: 1.02rem; line-height: 1.5; margin: 0 0 22px; }
.assoc-cena { position: relative; height: 330px; max-width: 900px; margin: 0 auto; }
.assoc-cartao { position: absolute; width: 190px; padding: 12px; border-radius: 16px; background: #fff; color: var(--bic); box-shadow: 0 16px 36px rgba(0, 0, 0, .25); transform: rotate(-7deg); }
.assoc-cartao b { display: inline-block; padding: 4px 10px; border-radius: 999px; background: #e4ebff; font-size: .82rem; margin-bottom: 8px; }
.assoc-cartao i { display: block; height: 6px; border-radius: 3px; background: #1a2250; margin: 0 0 6px; }
.assoc-cartao i.curto { width: 70%; background: #c9d6ff; }
.assoc-cartao.c1 { left: 0; top: 10px; }
.assoc-cartao.c2 { right: 0; top: 0; transform: rotate(6deg); }
.assoc-cartao.c3 { left: 10px; bottom: 10px; transform: rotate(4deg); }
.assoc-selo { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: min(340px, 70%); padding: 22px 18px 16px; border-radius: 22px; background: #fff; color: #1a2250; text-align: center; box-shadow: 0 24px 50px rgba(0, 0, 0, .3); display: grid; justify-items: center; gap: 4px; }
.assoc-ae { position: relative; display: grid; place-items: center; width: 74px; height: 80px; margin-bottom: 6px; }
.assoc-ae i { position: absolute; inset: 0; font-size: 74px; color: var(--bic); }
.assoc-ae b { position: relative; color: #fff; font-size: 1.3rem; }
.assoc-selo strong { font-size: 1.15rem; line-height: 1.15; }
.assoc-selo small { color: #5c6485; font-weight: 600; }
.assoc-tags { display: flex; gap: 6px; flex-wrap: wrap; justify-content: center; margin-top: 8px; }
.assoc-tags em { font-style: normal; font-size: .82rem; font-weight: 700; padding: 5px 10px; border-radius: 999px; background: #eef2ff; color: var(--bic); }
.assoc-tags em + em { background: #f3f4f8; color: #1a2250; }
.assoc-bon { position: absolute; width: 78px; height: 78px; border-radius: 50%; background: #fff; padding: 4px; box-shadow: 0 10px 24px rgba(0, 0, 0, .25); animation: assoc-flutua 5s ease-in-out infinite; }
.assoc-bon .av, .assoc-bon .av-img { width: 100%; height: 100%; border-radius: 50%; }
.assoc-bon.b1 { right: 6%; top: 44%; } .assoc-bon.b2 { right: 24%; top: 8%; animation-delay: -1.2s; } .assoc-bon.b3 { left: 26%; bottom: 0; animation-delay: -2.4s; } .assoc-bon.b4 { left: 6%; top: 42%; animation-delay: -3.1s; width: 64px; height: 64px; } .assoc-bon.b5 { right: 8%; bottom: 2%; animation-delay: -4s; width: 64px; height: 64px; }
@keyframes assoc-flutua { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
.assoc-azul .assoc-cx { max-width: 720px; margin: 0 auto; color: var(--tinta); }
.assoc-azul .assoc-h2 { margin: 0 0 6px; }
@media (max-width: 760px) {
  .assoc-cena { height: 300px; }
  .assoc-cartao { width: 140px; padding: 10px; }
  .assoc-cartao.c3 { display: none; }
  .assoc-selo { width: min(250px, 72%); padding: 16px 12px 12px; }
  .assoc-bon.b4, .assoc-bon.b5 { display: none; }
}

/* 208.ª parte: a linha dos botões da escola com menos opções (um menu «Mais») e o preenchimento com Excel */
.tax-mais { position: relative; display: inline-block; }
.tax-mais > summary { list-style: none; cursor: pointer; }
.tax-mais > summary::-webkit-details-marker { display: none; }
.tax-mais-m { position: absolute; left: 0; top: calc(100% + 6px); z-index: 30; display: grid; gap: 4px; min-width: 240px; padding: 8px; border-radius: 14px; background: var(--sup); border: 1px solid var(--linha); box-shadow: 0 14px 30px rgba(16, 22, 51, .18); }
.tax-mais-m .btn { justify-content: flex-start; width: 100%; }
.tx-excel .lt-passo { margin-bottom: 14px; }
.tx-prompt { width: 100%; font: inherit; font-size: .84rem; line-height: 1.4; padding: 10px 12px; border: 1px solid var(--linha); border-radius: 12px; background: var(--sup-2); color: var(--tinta); margin: 8px 0; resize: vertical; }
.tx-excel-res { font-weight: 700; margin: 10px 0 6px; }
.tx-excel-res i { color: #1E7F4F; }
.tx-excel-l { max-height: 220px; overflow: auto; margin: 0 0 10px; padding: 0 0 0 18px; font-size: .9rem; }
.tx-excel-l li { margin: 2px 0; }
.tx-excel-l li.tx-ja { color: var(--tinta-3); }
.tax-filtro { display: flex; margin: 10px 0 6px; }
.tax-filtro button { flex: 1; }
.tax-ok { display: inline-flex; align-items: center; gap: 4px; font-style: normal; font-weight: 800; color: #1E7F4F; }
.tax-i.feita .tax-sig { background: rgba(30, 127, 79, .12); color: #1E7F4F; }
.tax-feita { position: relative; display: flex; align-items: center; gap: 12px; margin: 0 0 14px; padding: 10px 14px; border: 1.5px dashed var(--linha-2); border-radius: 14px; background: var(--sup-2); cursor: pointer; }
.tax-feita input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.tax-feita-c { flex: none; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 8px; border: 2px solid var(--linha-2); background: var(--sup); color: transparent; font-size: .8rem; }
.tax-feita-t { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.tax-feita-t strong { font-size: .95rem; }
.tax-feita-t small { color: var(--tinta-2); font-size: .8rem; }
.tax-feita:hover { border-color: #1E7F4F; }
.tax-feita input:focus-visible + .tax-feita-c { outline: 3px solid var(--azul-claro); outline-offset: 2px; }
.tax-feita.on { border-style: solid; border-color: #1E7F4F; background: rgba(30, 127, 79, .08); }
.tax-feita.on .tax-feita-c { background: #1E7F4F; border-color: #1E7F4F; color: #fff; }
.tax-feita.on .tax-feita-t strong { color: #1E7F4F; }
:root[data-theme="dark"] .tax-ok, :root[data-theme="dark"] .tax-feita.on .tax-feita-t strong, :root[data-theme="dark"] .tax-i.feita .tax-sig { color: #5BD08A; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .tax-ok, :root:not([data-theme="light"]) .tax-feita.on .tax-feita-t strong, :root:not([data-theme="light"]) .tax-i.feita .tax-sig { color: #5BD08A; } }
.tx-excel-l small b { color: var(--bic); }
.tx-excel-sub { margin: 0 0 8px; font-size: .9rem; color: var(--tinta-2); }
.tx-novo { display: inline-block; margin-left: 4px; padding: 1px 8px; border-radius: 99px; background: var(--azul-claro); color: var(--bic); font-size: .76rem; font-weight: 800; vertical-align: 1px; }

/* 209.ª parte: o «Quando aparece» dos avisos — datas num bloco e pílulas para o atraso e a periodicidade */
.ave-datas { padding: 12px 12px 10px; border: 1px solid var(--linha); border-radius: 14px; background: var(--sup-2); margin-bottom: 14px; }
.ave-datas .def-g { margin-bottom: 4px; }
.ave-datas input[type="datetime-local"] { font-weight: 600; }
.ave-datas .ajuda { display: flex; align-items: center; gap: 6px; margin: 6px 0 0; }
.ave-pil-c { margin-bottom: 12px; }
.ave-pil-c > label { display: block; margin-bottom: 8px; }
.ave-pils { display: flex; flex-wrap: wrap; gap: 6px; }
.ave-pil { padding: 8px 14px; border-radius: 999px; border: 1px solid var(--linha); background: var(--sup); color: var(--tinta); font: inherit; font-size: .9rem; font-weight: 700; cursor: pointer; transition: background .12s, color .12s, border-color .12s; }
.ave-pil:hover { border-color: var(--bic); }
.ave-pil.on { background: var(--bic); border-color: var(--bic); color: #fff; }
.ave-pil-c .ajuda { display: block; margin-top: 8px; }

/* 210.ª parte: a página dos preços do avatar (Pontos → Avatar) com espaço entre tudo e «Grátis» à vista */
.bn-sec { margin-bottom: 12px !important; }
.bn-sec summary { padding: 4px 0; }
.bn-sec summary .fa-chevron-down { transition: transform .2s; color: var(--tinta-2); }
.bn-cat { padding: 12px 14px; border-radius: 14px; background: var(--sup-2); margin: 14px 0 10px !important; }
.bn-grelha { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)) !important; gap: 10px !important; margin-top: 10px !important; }
.bn-item { display: flex !important; align-items: center; gap: 12px; padding: 10px 12px !important; border: 1px solid var(--linha) !important; border-radius: 14px !important; background: var(--sup-2) !important; }
.bn-item.mudado { border-color: var(--bic) !important; box-shadow: 0 0 0 2px rgba(35, 70, 230, .15); }
.bn-item input { width: 74px !important; height: 38px; font-weight: 700 !important; }
.bn-n { line-height: 1.3 !important; }
.bn-n small { margin-top: 2px; }
.bn-gratis { color: #1E7F4F; font-weight: 800; }

/* 211.ª parte: a pré-visualização das publicidades com o vídeo a tocar, em ecrã grande ou em telemóvel */
.ave-ecras { display: flex; gap: 6px; margin: 0 0 10px; }
.ave-moldura { display: flex; justify-content: center; }
.ave-moldura .ave-mini-pub { width: 100%; }
.ave-moldura.tm { padding: 14px 0; }
.ave-moldura.tm .ave-mini-pub { width: 300px; border-radius: 26px; box-shadow: 0 0 0 10px #1a2250, 0 0 0 12px #3a4470, 0 18px 40px rgba(16, 22, 51, .35); }
.ave-mini-pub .av-pub-vid { aspect-ratio: 16 / 9; }
.ave-mini-pub.vertical .av-pub-vid { aspect-ratio: 9 / 16; max-height: 420px; }

/* 212.ª parte: os cartões das publicidades e dos anúncios no painel, arrumados: imagem à esquerda, título e texto ao
   meio, os números (viram, clicaram, taxa, público) por baixo em pílulas, e os botões à direita */
.avc { display: grid !important; grid-template-columns: 76px minmax(0, 1fr) auto !important; grid-template-areas: "img t a" "img met a" !important; align-items: center; gap: 8px 16px !important; padding: 14px 16px !important; border-radius: 18px !important; }
.avc-ic, .avc-img { grid-area: img; width: 76px !important; height: 76px !important; border-radius: 16px !important; position: relative; }
.avc-img.com-video { background: #1a2250; color: #fff; }
.avc-vid { position: absolute; right: -6px; bottom: -6px; min-width: 24px; height: 24px; padding: 0 6px; border-radius: 999px; background: var(--bic); color: #fff; font-size: .66rem; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; gap: 3px; box-shadow: 0 0 0 3px var(--sup); }
.avc-t { grid-area: t; align-self: end; gap: 2px !important; }
.avc-cab strong { font-size: 1.02rem !important; line-height: 1.25; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; }
.avc-t > small { -webkit-line-clamp: 1 !important; }
.avc-est-n { grid-area: met; align-self: start; display: flex !important; flex-wrap: wrap; gap: 6px; margin: 0 !important; }
.avc-est-n > span { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; background: var(--sup-2); font-size: .82rem; font-weight: 700; color: var(--tinta); }
.avc-est-n > span i { color: var(--bic); }
.avc-est-n > .avc-rel { display: inline-flex; align-items: center; gap: 6px; padding: 3px 11px; border-radius: 999px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--bic); font: inherit; font-size: .82rem; font-weight: 800; cursor: pointer; }
.avc-est-n > .avc-rel i { color: var(--vermelho); }
.avc-est-n > .avc-rel:hover { border-color: var(--bic); background: var(--azul-suave); }
.avc-est-n > .avc-rel:focus-visible { outline: 3px solid var(--azul-claro); outline-offset: 2px; }
.avc-a { grid-area: a; display: flex !important; align-items: center; gap: 6px; }
@media (max-width: 760px) {
  .avc { grid-template-columns: 60px minmax(0, 1fr) !important; grid-template-areas: "img t" "met met" "a a" !important; gap: 8px 12px !important; }
  .avc-ic, .avc-img { width: 60px !important; height: 60px !important; }
  .avc-a { justify-content: flex-end; }
}

/* 213.ª parte: a publicidade e o anúncio no site, afinados de alto a baixo */
#pub-raiz { right: 20px; bottom: calc(20px + env(safe-area-inset-bottom, 0px)); width: min(380px, calc(100vw - 32px)); animation: pub-entra .5s cubic-bezier(.2, .8, .2, 1); }
#pub-raiz .av-pub.com-video { width: 100%; }
@keyframes pub-entra { from { opacity: 0; transform: translateY(18px) scale(.98); } to { opacity: 1; transform: none; } }
.av-pub { display: grid !important; gap: 0 !important; padding: 0 !important; overflow: hidden; border-radius: 22px !important; border: 1px solid var(--linha); background: var(--sup); box-shadow: 0 22px 60px rgba(16, 22, 51, .22) !important; }
.av-pub-media { position: relative; background: #0f1430; }
.av-pub-media > img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 0 !important; }
.av-pub-media .av-pub-vid { margin: 0 !important; border-radius: 0 !important; }
.av-pub.vertical .av-pub-media .av-pub-vid { aspect-ratio: 9 / 16; max-height: 58vh; }
.av-pub-corpo { display: grid; gap: 6px; padding: 14px 16px 16px; }
.av-pub.sem-media .av-pub-corpo { padding-top: 18px; padding-right: 52px; }
.av-pub-et { font-size: .7rem !important; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; color: var(--tinta-3); }
.av-pub-tit { display: block; font-size: 1.08rem; font-weight: 800; line-height: 1.25; letter-spacing: -.01em; color: var(--tinta); }
.av-pub-txt { margin: 0; color: var(--tinta-2); font-size: .9rem; line-height: 1.5; }
.av-pub-txt.av-pub-vazio { color: var(--tinta-3); font-style: italic; }
.av-pub-btn { justify-self: stretch !important; justify-content: center; gap: 8px; margin-top: 6px; }
.av-pub-x { position: absolute; top: 10px; right: 10px; z-index: 3; width: 36px; height: 36px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .92); color: #1a2250; display: grid; place-items: center; cursor: pointer; box-shadow: 0 6px 16px rgba(16, 22, 51, .25); transition: transform .15s, opacity .2s; }
.av-pub-x:hover { transform: scale(1.06); }
.av-pub.sem-media .av-pub-x { background: var(--sup-2); box-shadow: none; }
.av-pub-x[disabled] { opacity: .4; cursor: not-allowed; transform: none; }
.av-pub-esp { position: absolute; left: 10px; bottom: 10px; z-index: 2; display: inline-flex !important; align-items: center; gap: 6px; padding: 6px 10px; border-radius: 999px; background: rgba(16, 22, 51, .78); color: #fff; font-size: .78rem !important; font-weight: 700; margin: 0 !important; backdrop-filter: blur(4px); }
.av-pub-esp.ok { background: #1E7F4F; }
.av-pub-esp b { font-weight: 700; }
.av-pub-vid video, .av-pub-vid iframe { object-fit: cover; }
/* no telemóvel: por cima de tudo, com o fundo escurecido, o cartão ao centro e o × fixo */
@media (max-width: 760px) {
  #pub-raiz { inset: 0 !important; width: auto !important; right: 0 !important; bottom: 0 !important; z-index: 400; display: flex !important; align-items: center; justify-content: center; padding: calc(64px + env(safe-area-inset-top, 0px)) 14px calc(20px + env(safe-area-inset-bottom, 0px)) !important; background: rgba(10, 14, 40, .62) !important; backdrop-filter: blur(8px); animation: none; }
  #pub-raiz .av-pub { width: 100% !important; max-width: 440px; max-height: 100%; overflow: auto; box-shadow: 0 30px 80px rgba(0, 0, 0, .45) !important; animation: pub-entra .45s cubic-bezier(.2, .8, .2, 1); padding: 0 !important; gap: 0 !important; }
  #pub-raiz .av-pub-x { position: fixed !important; top: calc(14px + env(safe-area-inset-top, 0px)) !important; right: 14px !important; width: 44px !important; height: 44px !important; background: #fff !important; color: #1a2250 !important; }
  #pub-raiz .av-pub.vertical .av-pub-media .av-pub-vid { max-height: 62vh; }
  #pub-raiz .av-pub-corpo { padding: 14px 16px 16px; }
  body.com-pub { overflow: hidden; }
}
/* o anúncio */
.av-anuncio { gap: 14px !important; padding: 6px 2px 2px !important; }
.av-anuncio .av-an-img { width: calc(100% + 8px); margin: -4px -4px 4px; max-height: 280px; border-radius: 18px; }
.av-anuncio .av-logo-ic { width: 48px; height: 48px; border-radius: 14px; }
.av-anuncio .av-logo-ic svg { width: 34px; height: 34px; }
.av-anuncio .av-logo strong { font-size: 1.35rem; }
.av-anuncio h2 { font-size: 1.5rem; line-height: 1.2; letter-spacing: -.01em; margin: 2px 0 0; }
.av-anuncio p { font-size: 1rem; }
.av-anuncio .linha-btn .btn { gap: 8px; }
@media (max-width: 480px) { .av-anuncio .linha-btn .btn { flex-basis: 100%; } }
/* a pré-visualização no painel segue o mesmo cartão */
.ave-moldura .ave-mini-pub { animation: none; }
.ave-moldura.tm .ave-mini-pub .av-pub-x { position: absolute !important; }

/* 214.ª parte: capas nas Novidades; o preço nos cartões; as publicidades de imagem em sítios discretos */
.nov-c.com-capa { padding-top: 0 !important; overflow: hidden; }
.nov-capa { display: block; aspect-ratio: 3 / 2; margin: 0 -16px 10px; }
.nov-capa .capa-svg { display: block; width: 100%; height: 100%; }
.tsz-teu { font-weight: 700; color: #1E7F4F; }
.pub-inline { margin-top: 16px; }
.pub-inline-a { display: block; border-radius: 18px; overflow: hidden; background: var(--sup); border: 1px solid var(--linha); text-decoration: none; color: var(--tinta); box-shadow: 0 8px 24px rgba(16, 22, 51, .06); transition: transform .15s, box-shadow .15s; }
.pub-inline-a:hover { transform: translateY(-2px); box-shadow: 0 14px 32px rgba(16, 22, 51, .12); }
.pub-inline-et { display: block; padding: 8px 12px 0; font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--tinta-3); }
.pub-inline img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; margin-top: 6px; }
.pub-inline-t { display: grid; gap: 4px; padding: 10px 12px 12px; }
.pub-inline-t strong { font-size: .95rem; line-height: 1.25; }
.pub-inline-t small { color: var(--tinta-2); font-size: .82rem; line-height: 1.4; }
.pub-inline-btn { display: inline-flex; align-items: center; gap: 6px; margin-top: 4px; font-size: .86rem; font-weight: 800; color: var(--bic); }
.pub-inicio { max-width: 420px; }
.pub-lista { margin: 0; }
.grelha-docs > .pub-lista .pub-inline-a { height: 100%; }
@media (max-width: 899px) { .pub-lateral { display: none; } }
@media (min-width: 760px) { .pub-lista { display: none; } }

/* 215.ª parte: a publicidade a cobrir o ecrã também no computador; o formulário por tipo; a pré-visualização maior;
   o relatório por cima; capas nos cartões dos treinos */
#pub-raiz { inset: 0 !important; width: auto !important; right: 0 !important; bottom: 0 !important; z-index: 400; display: flex !important; align-items: center; justify-content: center; padding: calc(64px + env(safe-area-inset-top, 0px)) 16px calc(24px + env(safe-area-inset-bottom, 0px)) !important; background: rgba(10, 14, 40, .62) !important; backdrop-filter: blur(8px); animation: none !important; }
#pub-raiz .av-pub { width: 100% !important; max-width: 460px; max-height: 100%; overflow: auto; box-shadow: 0 30px 80px rgba(0, 0, 0, .45) !important; animation: pub-entra .45s cubic-bezier(.2, .8, .2, 1); }
#pub-raiz .av-pub.com-video:not(.vertical) { max-width: 760px; }
#pub-raiz .av-pub-x { position: fixed !important; top: calc(14px + env(safe-area-inset-top, 0px)) !important; right: 16px !important; width: 44px !important; height: 44px !important; background: #fff !important; color: #1a2250 !important; }
body.com-pub { overflow: hidden; }
.ave { grid-template-columns: minmax(0, 1fr) minmax(380px, 480px) !important; }
@media (max-width: 1000px) { .ave { grid-template-columns: minmax(0, 1fr) !important; } }
.ave-moldura .ave-mini-pub { max-width: 460px; }
.ave-moldura.tm .ave-mini-pub { width: 340px; }
.ave-tipo .ave-pils { margin-bottom: 8px; }
.ave-tipo .ave-pil { padding: 10px 16px; font-size: .95rem; }
.ave-onde { display: grid; gap: 8px; }
.ave-onde-i { display: flex; align-items: flex-start; gap: 10px; padding: 10px 12px; border: 1px solid var(--linha); border-radius: 14px; background: var(--sup-2); cursor: pointer; }
.ave-onde-i.on { border-color: var(--bic); box-shadow: 0 0 0 2px rgba(35, 70, 230, .15); }
.ave-onde-i input { margin-top: 3px; width: 18px; height: 18px; accent-color: var(--bic); }
.ave-onde-i strong { display: block; }
.ave-onde-i small { color: var(--tinta-2); font-size: .8rem; }
.av-rel-modal .rel-caixa { padding: 0; border: 0; background: none; box-shadow: none; }
.trc.com-capa { overflow: hidden; grid-template-areas: "capa capa" "ic t" "n n" "p p" "pc pc" !important; }
.trc-capa { grid-area: capa; display: block; aspect-ratio: 3 / 2; margin: -18px -16px 6px; }
.trc-capa .capa-svg { display: block; width: 100%; height: 100%; }

/* 216.ª parte: a gestão das associações com melhor desenho */
.assoc-topo { display: grid; gap: 12px; margin: 4px 0 10px; }
.assoc-link { display: grid !important; gap: 8px; padding: 14px 16px; border-radius: 16px; background: var(--azul-suave); border: 1px solid rgba(35, 70, 230, .18); margin: 0 !important; }
.assoc-link-k { font-weight: 800; color: var(--bic); }
.assoc-link-l { display: flex; flex-wrap: wrap; gap: 8px; }
.assoc-link-l input { flex: 1 1 260px; min-width: 0; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--linha); background: var(--sup); font: inherit; font-weight: 700; color: var(--tinta); }
.assoc-link small { color: var(--tinta-2); }
.assoc-sw { padding: 14px 16px; border-radius: 16px; border: 1px solid var(--linha); background: var(--sup-2); display: grid; gap: 6px; }
.assoc-sw .mt-lig { font-size: .95rem; color: var(--tinta); }
.assoc-sw .vp-nota { margin: 0; }
.assoc-h2 { display: flex; align-items: center; gap: 8px; font-size: 1.1rem; margin: 14px 0 6px; }
.assoc-h2 i { color: var(--bic); }
.assoc-l { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px; border: 1px solid var(--linha); border-radius: 16px; background: var(--sup); margin-bottom: 8px; }
.assoc-l.pendente { border-color: rgba(35, 70, 230, .35); box-shadow: 0 0 0 2px rgba(35, 70, 230, .08); }
.assoc-l-t { display: grid; gap: 2px; min-width: 0; flex: 1 1 280px; }
.assoc-l-t strong { font-size: 1.02rem; }
.assoc-l-t small { color: var(--tinta-2); font-size: .82rem; }
.assoc-l-t p { margin: 4px 0 0; font-size: .9rem; color: var(--tinta-2); }
.assoc-l-a { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.assoc-estado { font-weight: 800; color: #1E7F4F; }
.assoc-l.recusada .assoc-estado { color: var(--tinta-3); }

/* 217.ª parte: a página das associações com o desenho da página de entrar; sem dois olhos na palavra-passe */
input[type="password"]::-ms-reveal, input[type="password"]::-ms-clear { display: none; }
.auth-nav { display: flex; gap: 18px; align-items: center; }
.auth-assoc .pasta-auth { width: min(1080px, 100%); }
.assoc-capa { display: grid; gap: 16px; }
.assoc-capa .grad { margin-bottom: 4px; }
.assoc-k { margin: 0; font-weight: 800; font-size: 1.05rem; color: rgba(255, 255, 255, .8); letter-spacing: .01em; }
.assoc-capa h2 { margin: -8px 0 0; font-size: clamp(2rem, 4vw, 3rem); line-height: 1.02; letter-spacing: -.02em; color: #fff; max-width: 14ch; }
.assoc-s { margin: 0; color: rgba(255, 255, 255, .85); font-size: 1.02rem; line-height: 1.5; max-width: 44ch; }
.assoc-pontos { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 10px; }
.assoc-pontos li { display: flex; align-items: flex-start; gap: 10px; color: #fff; font-weight: 600; line-height: 1.35; }
.assoc-pontos i { flex: none; width: 32px; height: 32px; border-radius: 10px; display: grid; place-items: center; background: rgba(255, 255, 255, .16); font-size: .9rem; }
.assoc-folha h1 { margin: 0 0 4px; font-size: 1.6rem; }
.assoc-folha .assoc-form { display: grid; gap: 12px; }
.assoc-folha .assoc-form label { display: grid; gap: 6px; font-weight: 700; font-size: .9rem; }
.assoc-folha .assoc-form input, .assoc-folha .assoc-form select, .assoc-folha .assoc-form textarea { width: 100%; padding: 12px 14px; border: 1px solid var(--linha); border-radius: 14px; background: var(--sup-2); font: inherit; font-weight: 500; color: var(--tinta); }
.assoc-folha .assoc-form input:focus, .assoc-folha .assoc-form select:focus, .assoc-folha .assoc-form textarea:focus { outline: none; border-color: var(--bic); box-shadow: 0 0 0 4px var(--azul-suave); background: var(--sup); }
.assoc-folha .assoc-form .btn { width: 100%; justify-content: center; margin-top: 4px; }
.assoc-folha .assoc-ok { display: grid; justify-items: center; text-align: center; gap: 12px; padding: 10px 0; }
.assoc-folha .assoc-ok i { font-size: 3rem; color: var(--bic); }
.assoc-folha .assoc-ok h1 { margin: 0; }
.assoc-folha .assoc-ok p { color: var(--tinta-2); max-width: 40ch; }
@media (max-width: 760px) { .auth-nav { gap: 12px; } .auth-assoc .folha-auth { border-radius: 22px; } }

/* 224.ª parte: o × da publicidade com o tempo que falta num anel; o som; o vídeo que não abre; o fundo preso */
.av-pub-x { overflow: visible; }
.av-pub-x.preso { background: rgba(16, 22, 51, .82) !important; color: #fff !important; }
.av-pub-x.preso::before { content: ""; position: absolute; inset: -3px; border-radius: 50%; background: conic-gradient(#fff calc(var(--p, 0) * 360deg), rgba(255, 255, 255, .25) 0); -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 3px)); mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 3px)); }
.av-pub-x.preso .av-pub-xi { display: none; }
.av-pub-seg { font-size: .95rem; font-weight: 900; line-height: 1; }
.av-pub-x:not(.preso) .av-pub-seg { display: none; }
.av-pub-som { position: absolute; right: 10px; bottom: 10px; z-index: 2; width: 40px; height: 40px; border-radius: 50%; border: 0; background: rgba(16, 22, 51, .72); color: #fff; display: grid; place-items: center; cursor: pointer; backdrop-filter: blur(4px); }
.av-pub-falhou { display: grid; place-items: center; gap: 8px; aspect-ratio: 16 / 9; color: #c9d1ff; font-weight: 700; }
.av-pub-falhou i { font-size: 2rem; }
.av-pub-esp { display: none !important; }
html.fundo-preso { overflow: hidden !important; }
html.fundo-preso body { position: fixed !important; left: 0; right: 0; width: 100%; overflow: hidden !important; }
#pub-raiz { overscroll-behavior: contain; touch-action: pan-y; }

/* 225.ª parte: o vídeo da publicidade com som; «Toca para ver» quando o browser não deixa arrancar sozinho */
.av-pub-som { display: none !important; }
.av-pub-play { position: absolute; inset: 0; z-index: 2; display: grid; place-content: center; justify-items: center; gap: 10px; border: 0; background: rgba(10, 14, 40, .45); color: #fff; font: inherit; font-weight: 800; font-size: 1.05rem; cursor: pointer; }
.av-pub-play[hidden] { display: none; }
.av-pub-play i { width: 76px; height: 76px; border-radius: 50%; display: grid; place-items: center; background: #fff; color: var(--bic); font-size: 1.8rem; padding-left: 5px; box-shadow: 0 14px 36px rgba(0, 0, 0, .35); }

/* 226.ª parte: a lista das cadeiras (início) com procura; no computador numa janela ao centro */
.foco-procura { display: flex; align-items: center; gap: 10px; padding: 0 14px; height: 46px; border: 1px solid var(--linha); border-radius: 14px; background: var(--sup-2); margin: 0 0 12px; }
.foco-procura i { color: var(--tinta-3); }
.foco-procura input { flex: 1; min-width: 0; border: 0; background: none; font: inherit; color: var(--tinta); outline: none; }
.foco-modal .foco-ecra-l { max-height: min(62vh, 640px); overflow: auto; padding-right: 4px; }
.foco-modal .fe-l[hidden] { display: none; }
.foco-nada { color: var(--tinta-2); text-align: center; padding: 18px 0; }
.foco-ecra .fe-l[hidden] { display: none; }

/* 227.ª parte: letra mais leve em todo o site — o Poppins só vem até ao 600 (o que era 700 e 800 fica 600), e os
   títulos grandes usam um serif elegante (Source Serif 4). Pesos e tamanhos arrumados: nada em bold a mais. */
:root { --f-serif: "Source Serif 4", Georgia, "Times New Roman", serif; }
body { font-weight: 400; }
h1, h2, h3, h4 { font-weight: 600 !important; letter-spacing: -.01em; }
.foco-ola h1, .folha-auth h1, .pasta-capa h2, .assoc-capa h2, .auth-assoc h1, .mc3-t { font-family: var(--f-serif) !important; font-weight: 600 !important; letter-spacing: -.01em; }
.foco-ola h1 { font-size: clamp(1.9rem, 3.4vw, 2.6rem) !important; }
.foco-ola p { font-weight: 400; color: var(--tinta-2); }
strong, b { font-weight: 600; }
.chip, .btn, .n-chip, label, .rotulo { font-weight: 500 !important; }
.btn-pri, .btn-sec { font-weight: 600 !important; }
.foco-chips .chip, .foco-chips .fe-l { font-weight: 500 !important; }
.foco-chips .chip small, .foco-chips .chip b { font-weight: 500 !important; }
.foco-chips .chip b, .fe-l b { font-weight: 600 !important; }
/* a lista das cadeiras (o «…» do início): leve, com linhas finas e etiquetas discretas */
.foco-ecra h2, .modal h2, .modal-cab h2, .modal-cab strong { font-weight: 600 !important; font-size: 1.05rem; letter-spacing: 0; }
.foco-ecra-l { gap: 6px !important; }
.fe-l { padding: 11px 14px !important; border: 1px solid var(--linha) !important; border-radius: 14px !important; background: var(--sup) !important; box-shadow: none !important; gap: 12px !important; transition: background .12s, border-color .12s; }
.fe-l:hover { background: var(--azul-suave) !important; border-color: rgba(35, 70, 230, .35) !important; }
.fe-l .fe-n { font-weight: 500 !important; font-size: .96rem; letter-spacing: 0; }
.fe-l small { font-weight: 500 !important; font-size: .78rem !important; letter-spacing: .04em; text-transform: uppercase; color: var(--tinta-3) !important; }
.fe-l b { font-weight: 600 !important; font-size: .82rem !important; min-width: 26px !important; height: 24px !important; padding: 0 8px !important; background: var(--sup-2) !important; color: var(--tinta) !important; }
.foco-procura { height: 44px; border-radius: 12px; }
.foco-procura input { font-weight: 400; font-size: .95rem; }
.foco-modal .foco-ecra-l { max-height: min(60vh, 600px); }
/* a barra da palavra-passe: enquanto não serve, o primeiro traço fica vermelho */
.forca.f0.tem i:first-child { background: var(--vermelho) !important; }

/* 228.ª parte: o Poppins fica só nos títulos, nos botões e nos campos; o resto do site (texto, menu, listas, cartões)
   usa o Source Serif 4 — o ar do tipo de letra do Claude, mais agradável de ler. */
:root { --f: Arial, Helvetica, sans-serif; --f-tit: "Poppins", system-ui, sans-serif; } /* (229.ª parte) o padrão: Arial no texto, Poppins nos títulos; muda-se no painel, em Sistema → Tipo de letra */
body { font-family: var(--f); font-size: 16px; line-height: 1.55; }
h1, h2, h3, h4, h5, h6, .btn, button, input, select, textarea, .chip, .n-chip, .tag, .pill, .ave-pil, .xchip, .tsz-av, .nov-topo, .capa-svg text { font-family: var(--f-tit) !important; }
.foco-ola h1, .folha-auth h1, .pasta-capa h2, .assoc-capa h2, .auth-assoc h1, .mc3-t { font-family: var(--f-tit) !important; }
.lateral a, .lateral .nav-l, nav.lateral, .menu-lateral, .topo-nav { font-family: var(--f); }
.lateral small, .lateral .sub, .lateral .etiqueta { font-family: var(--f-tit); }
/* a lista das cadeiras numa janela: título, o × com espaço, e a altura que não muda com a procura */
.foco-modal { padding-top: 2px; }
.foco-modal-t { margin: 0 48px 12px 0 !important; font-size: 1.08rem !important; line-height: 1.3; }
.foco-modal .foco-ecra-l { height: min(60vh, 600px) !important; max-height: none !important; align-content: start; }
.foco-modal .foco-nada { align-self: start; }

/* 229.ª parte: Sistema → Tipo de letra */
.letras-adm .letra-sel { width: 100%; padding: 10px 12px; border: 1px solid var(--linha); border-radius: 12px; background: var(--sup-2); font: inherit; color: var(--tinta); }
.letra-previa { margin: 14px 0; padding: 18px; border: 1px dashed var(--linha); border-radius: 16px; background: var(--sup); }
.letra-previa h2 { margin: 0 0 6px; font-size: 1.6rem; }
.letra-previa p { margin: 0 0 12px; color: var(--tinta-2); }

/* 231.ª parte: o aviso da sessão terminada, simples */
.modal .aviso-sessao h2 { font-size: 1.3rem; margin: 0 auto 8px; }
.aviso-sessao .as-txt { margin: 0 auto 6px; max-width: 34ch; color: var(--tinta-2); line-height: 1.5; }
.aviso-sessao .as-txt strong { color: var(--tinta); }
.aviso-sessao .as-txt2 { margin-bottom: 18px; }
.aviso-sessao .as-btns { flex-direction: column; gap: 6px; }
.aviso-sessao .as-btns .btn { width: 100%; justify-content: center; }
.aviso-sessao .as-nota { display: block; margin-top: 14px; color: var(--tinta-3); }

/* 232.ª parte: o mapa de Angola no painel */
.mapa-top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin: 4px 0 14px; }
.mapa-legenda { display: inline-flex; align-items: center; gap: 4px; font-size: .82rem; color: var(--tinta-2); }
.mapa-legenda i { width: 22px; height: 12px; border-radius: 3px; display: inline-block; }
.mapa-corpo { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(240px, .8fr); gap: 20px; align-items: start; }
.mapa-svg { width: 100%; height: auto; display: block; }
.mapa-bloco { cursor: pointer; }
.mapa-bloco rect { transition: filter .15s, transform .15s; }
.mapa-bloco:hover rect { filter: brightness(1.06) saturate(1.1); stroke: #1a2250; }
.mapa-bloco text { font-family: var(--f-tit); pointer-events: none; }
.mapa-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; max-height: 560px; overflow: auto; }
.mapa-lista a { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "n v" "s v"; align-items: center; column-gap: 10px; padding: 8px 12px; border-radius: 12px; background: var(--sup-2); color: var(--tinta); text-decoration: none; }
.mapa-lista a:hover { background: var(--azul-suave); }
.mapa-lista a span { grid-area: n; font-weight: 500; }
.mapa-lista a small { grid-area: s; color: var(--tinta-3); font-size: .78rem; }
.mapa-lista a b { grid-area: v; font-weight: 600; color: var(--bic); font-family: var(--f-tit); }
.mapa-lista li.sem a { border: 1px dashed var(--linha); background: none; }
.mapa-unis { display: grid; gap: 8px; margin-top: 8px; }
.mapa-uni { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: 14px; padding: 12px 14px; border: 1px solid var(--linha); border-radius: 14px; background: var(--sup); color: var(--tinta); text-decoration: none; }
.mapa-uni:hover { border-color: var(--bic); }
.mapa-uni-n { display: grid; gap: 2px; min-width: 0; }
.mapa-uni-n strong { font-weight: 600; }
.mapa-uni-n small { color: var(--tinta-3); font-size: .82rem; }
.mapa-n { display: grid; justify-items: end; min-width: 72px; }
.mapa-n b { font-family: var(--f-tit); font-weight: 600; font-size: 1.05rem; color: var(--bic); }
.mapa-n small { color: var(--tinta-3); font-size: .76rem; }
.voltar-lnk { color: var(--bic); font-weight: 600; text-decoration: none; font-size: .9rem; }
.tax-acoes .sem-prov { color: #B45309; }
@media (max-width: 900px) { .mapa-corpo { grid-template-columns: 1fr; } .mapa-uni { grid-template-columns: auto minmax(0, 1fr); } .mapa-uni .mapa-n { justify-items: start; } }

/* 232.ª parte: os pesos escolhidos no painel (títulos, menu e texto) e o tipo de letra do menu */
body { font-weight: var(--p-txt, 400); }
strong, b { font-weight: var(--p-forte, 600); }
h1, h2, h3, h4 { font-weight: var(--p-tit, 600) !important; }
.lateral, .nav-l, .lat-eu, .lat-sec, .lat-cab .marca, .nav-recolher { font-family: var(--f-menu, var(--f)); }
.nav-l, .lat-eu strong, .lat-sec { font-weight: var(--p-menu, 500) !important; }
.letra-zonas { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px; margin-bottom: 4px; }
.letra-zona { display: grid; gap: 8px; padding: 12px 14px; border: 1px solid var(--linha); border-radius: 14px; background: var(--sup-2); }
.letra-zona > strong { font-size: 1rem; }
.letra-zona > small { color: var(--tinta-2); margin-top: -6px; }
.letra-pesos .ave-pil { padding: 6px 10px; font-size: .82rem; }
.letra-previa-menu { display: flex; gap: 6px; margin: 12px 0 0 !important; }
.letra-previa-menu .nav-l { padding: 8px 12px; background: var(--sup-2); }

/* 233.ª parte: o mapa a sério, com relevo */
.mapa-svg { max-width: 640px; margin: 0 auto; }
.mapa-degrau polygon { fill: #1630b8; }
.mapa-bloco polygon { transition: transform .15s; transform-box: fill-box; transform-origin: center; }
.mapa-bloco:hover polygon { transform: translateY(-2px); stroke: #1a2250; stroke-width: 2; }
.mapa-bloco text { font-family: var(--f-tit); pointer-events: none; }

/* 234.ª parte: o mapa bem desenhado, a dica, a lista ao lado e a página da província com os cursos */
.mapa-quadro { position: relative; border-radius: 18px; background: var(--sup); border: 1px solid var(--linha); padding: 10px; }
.mapa-svg { max-width: 720px; }
.mapa-degrau polygon { fill: #142a9a; }
.mapa-bloco polygon { transition: transform .18s, filter .18s; transform-box: fill-box; transform-origin: center; }
.mapa-bloco:hover polygon { transform: translateY(-3px); filter: brightness(1.08); stroke: #1a2250; stroke-width: 2.6; }
.mapa-dica { position: absolute; z-index: 5; min-width: 200px; padding: 12px 14px; border-radius: 14px; background: #1a2250; color: #fff; pointer-events: none; display: grid; gap: 3px; box-shadow: 0 16px 36px rgba(16, 22, 51, .35); font-family: var(--f-tit); }
.mapa-dica strong { font-size: 1.05rem; margin-bottom: 4px; }
.mapa-dica span { font-size: .84rem; color: #c9d1ff; }
.mapa-dica span b { color: #fff; font-weight: 600; margin-right: 4px; }
.mapa-dica small { margin-top: 6px; color: #8b97d6; font-size: .76rem; }
.mapa-lista { max-height: 720px; }
.mapa-lista a { display: grid !important; grid-template-columns: 30px minmax(0, 1fr) auto !important; grid-template-areas: "k n v" !important; align-items: center; gap: 10px !important; padding: 9px 12px !important; }
.mapa-l-k { grid-area: k; width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; background: var(--sup); border: 1px solid var(--linha); font: 600 .82rem var(--f-tit); font-style: normal; color: var(--tinta-2); }
.mapa-l-n { grid-area: n; display: grid; gap: 2px; min-width: 0; font-weight: 500; }
.mapa-l-n small { color: var(--tinta-3); font-size: .78rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mapa-l-v { grid-area: v; display: grid; justify-items: end; font-family: var(--f-tit); font-weight: 600; font-size: 1.05rem; color: var(--tinta); padding-left: 10px; border-left: 4px solid var(--cor, var(--linha)); }
.mapa-l-v small { font-size: .72rem; color: var(--tinta-3); font-weight: 500; }
.mapa-uni { display: block !important; padding: 0 !important; }
.mapa-uni summary { list-style: none; display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto auto; align-items: center; gap: 14px; padding: 12px 14px; cursor: pointer; }
.mapa-uni summary::-webkit-details-marker { display: none; }
.mapa-uni-seta { color: var(--tinta-3); transition: transform .2s; }
.mapa-uni[open] .mapa-uni-seta { transform: rotate(180deg); }
.mapa-cursos { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 14px 14px; border-top: 1px solid var(--linha); padding-top: 12px; }
.mapa-curso { display: grid; gap: 1px; padding: 8px 12px; border-radius: 12px; background: var(--sup-2); min-width: 180px; }
.mapa-curso strong { font-weight: 600; font-size: .92rem; }
.mapa-curso small { color: var(--tinta-3); font-size: .78rem; }
@media (max-width: 900px) { .mapa-uni summary { grid-template-columns: auto minmax(0, 1fr) auto; } .mapa-uni summary .mapa-n:nth-of-type(2) { display: none; } }

/* 235.ª parte: o mapa em 2D, com as formas reais */
.mapa-fundo polygon { fill: #fff; stroke: #c9d3ff; stroke-width: 7; stroke-linejoin: round; }
.mapa-bloco polygon { transition: filter .15s; transform: none !important; }
.mapa-bloco:hover polygon { filter: brightness(1.06) saturate(1.15); stroke: #1a2250; stroke-width: 2.6; }
.mapa-svg { max-width: 760px; }

/* 235.ª parte: as universidades com foto e província; a página da escola com a foto; os vazios com ícone */
.unis-provs { margin: 10px 0 2px; }
.uni-cartao { position: relative; padding: 16px !important; gap: 8px !important; min-height: 0 !important; }
.uni-foto { width: 64px; height: 64px; border-radius: 16px; object-fit: cover; background: var(--sup-2); border: 1px solid var(--linha); }
.uni-sigla { display: inline-grid; place-items: center; width: 64px; height: 64px; border-radius: 16px; background: var(--azul-suave); color: var(--bic); font-family: var(--f-tit); font-weight: 600; font-size: .9rem; padding: 0 4px; text-align: center; line-height: 1.1; }
.uni-cartao .uni-t { display: grid; gap: 2px; }
.uni-cartao .uni-s { font-family: var(--f-tit); font-weight: 600; color: var(--bic); font-size: .82rem; letter-spacing: .04em; }
.uni-cartao .uni-t > span { font-weight: 500; line-height: 1.3; }
.uni-cartao em { font-style: normal; color: var(--tinta-2); font-size: .82rem; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.uni-prov { font-style: normal; display: inline-flex; align-items: center; gap: 4px; color: var(--tinta-3); font-size: .8rem; }
.cab-escola { align-items: center; gap: 16px; }
.cab-escola-foto .uni-foto.grande, .cab-escola-foto .uni-sigla.grande { width: 92px; height: 92px; border-radius: 22px; font-size: 1.2rem; }
.cab-escola > div:not(.cab-escola-foto) { flex: 1 1 auto; min-width: 0; }
.tax-foto-bt { position: relative; overflow: hidden; }
.tax-foto-bt input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.tax-foto-mini { width: 20px; height: 20px; border-radius: 6px; object-fit: cover; }
.foco-nada .off-vazio, .fac-vazio .off-vazio { padding: 18px 0; }
.foco-nada .off-vazio-ic, .fac-vazio .off-vazio-ic { transform: scale(.75); margin-bottom: -6px; }
@media (max-width: 760px) { .cab-escola { flex-wrap: wrap; } }

/* 236.ª parte: os cartões das universidades arrumados; a capa da página da universidade com a procura; o cabeçalho no painel */
.unis-c { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(280px, 100%), 1fr)); gap: 12px; margin-top: 6px; }
.uni-c { display: flex; flex-direction: column; gap: 14px; padding: 16px; border: 1px solid var(--linha); border-radius: 18px; background: var(--sup); color: var(--tinta); text-decoration: none; transition: border-color .15s, box-shadow .15s, transform .15s; min-width: 0; }
.uni-c:hover { border-color: rgba(35, 70, 230, .4); box-shadow: 0 12px 28px rgba(16, 22, 51, .08); transform: translateY(-2px); }
.uni-c-topo { display: flex; align-items: center; gap: 12px; min-width: 0; }
.uni-c .uni-foto, .uni-c .uni-sigla { flex: none; width: 56px; height: 56px; border-radius: 14px; }
.uni-sigla { display: inline-grid !important; place-items: center; background: var(--azul-suave); color: var(--bic); font-family: var(--f-tit); font-weight: 700 !important; font-size: calc(1.15rem * var(--t, 1)) !important; letter-spacing: -.01em !important; line-height: 1 !important; overflow: hidden; white-space: nowrap; padding: 0 4px; }
.uni-c-t { display: grid; gap: 2px; min-width: 0; }
.uni-c-s { font-family: var(--f-tit); font-weight: 600; font-size: .82rem; letter-spacing: .05em; color: var(--bic); }
.uni-c-n { font-weight: 500; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.uni-c-pe { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: auto; padding-top: 10px; border-top: 1px solid var(--linha); font-size: .84rem; }
.uni-c-m { color: var(--tinta-2); }
.uni-c-m b { font-family: var(--f-tit); font-weight: 600; color: var(--bic); }
.uni-c-m.zero { color: var(--tinta-3); }
.uni-c-p { display: inline-flex; align-items: center; gap: 4px; color: var(--tinta-3); font-size: .82rem; white-space: nowrap; }
.esc-capa { position: relative; border-radius: 24px; overflow: hidden; margin: 6px 0 22px; color: #fff; background: linear-gradient(135deg, #2f52ff, #1530b8); }
.esc-capa-fundo { position: absolute; inset: 0; background: radial-gradient(60% 90% at 90% 0%, rgba(255, 255, 255, .22), transparent 60%), radial-gradient(40% 60% at 0% 100%, rgba(0, 0, 0, .18), transparent 70%); }
.esc-capa.com-img .esc-capa-fundo { background: linear-gradient(180deg, rgba(10, 16, 50, .25), rgba(10, 16, 50, .78)), var(--capa) center / cover no-repeat; }
.esc-capa-corpo { position: relative; display: flex; align-items: flex-end; gap: 18px; padding: 34px 26px 18px; }
.esc-capa-foto .uni-foto.grande, .esc-capa-foto .uni-sigla.grande { width: 104px; height: 104px; border-radius: 24px; border: 4px solid #fff; box-shadow: 0 14px 34px rgba(0, 0, 0, .3); background: #fff; font-size: calc(1.7rem * var(--t, 1)) !important; }
.esc-capa-t { flex: 1 1 auto; min-width: 0; display: grid; gap: 4px; }
.esc-capa-s { font-family: var(--f-tit); font-weight: 600; font-size: .86rem; letter-spacing: .04em; color: rgba(255, 255, 255, .85); }
.esc-capa h1 { margin: 0; color: #fff; font-size: clamp(1.4rem, 3vw, 2.2rem); line-height: 1.12; }
.esc-capa p { margin: 0; color: rgba(255, 255, 255, .85); }
.esc-capa-n { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.esc-capa-n span { padding: 5px 12px; border-radius: 999px; background: rgba(255, 255, 255, .16); font-size: .86rem; }
.esc-capa-n b { font-family: var(--f-tit); font-weight: 600; }
.esc-capa-pub { background: #fff !important; color: var(--bic) !important; border-color: #fff !important; }
.esc-procura { position: relative; display: flex; align-items: center; gap: 10px; margin: 0 26px 24px; padding: 0 16px; height: 52px; border-radius: 16px; background: #fff; color: var(--tinta-3); box-shadow: 0 12px 30px rgba(0, 0, 0, .18); }
.esc-procura svg { width: 20px; height: 20px; flex: none; }
.esc-procura input { flex: 1; min-width: 0; border: 0; outline: none; background: none; font: inherit; color: var(--tinta); font-size: 1rem; }
.esc-procura kbd { font: 600 .76rem var(--f-tit); padding: 3px 8px; border-radius: 8px; background: var(--sup-2); color: var(--tinta-3); }
.grelha-docs > [hidden] { display: none !important; }
@media (max-width: 760px) { .esc-capa-corpo { flex-wrap: wrap; align-items: flex-start; padding: 24px 18px 14px; } .esc-capa-pub { order: 3; } .esc-procura { margin: 0 18px 18px; } .esc-procura kbd { display: none; } .esc-capa-foto .uni-foto.grande, .esc-capa-foto .uni-sigla.grande { width: 80px; height: 80px; } }
.tax-capa { height: 110px; border-radius: 18px 18px 0 0; margin: -18px -18px 0; background: center / cover no-repeat; }
.tax-cab-t { display: flex !important; align-items: center; gap: 12px; }
.tax-logo { flex: none; width: 56px; height: 56px; border-radius: 14px; overflow: hidden; display: grid; place-items: center; background: var(--azul-suave); border: 1px solid var(--linha); }
.tax-logo img { width: 100%; height: 100%; object-fit: cover; }
.tax-logo b { font-family: var(--f-tit); font-weight: 700; color: var(--bic); font-size: .8rem; padding: 0 4px; text-align: center; line-height: 1.1; }
.tax-cab.com-capa .tax-logo { margin-top: -30px; border: 3px solid #fff; box-shadow: 0 8px 20px rgba(16, 22, 51, .2); width: 64px; height: 64px; }
.tax-cab-tt { display: grid; gap: 2px; min-width: 0; }
.tax-prov { display: inline-flex; align-items: center; gap: 4px; color: var(--bic); font-weight: 600; }
.tax-prov.falta { color: #B45309; }

/* ================================================================
   Veteraano 237 — Universidade, pesquisa, categorias e publicação
   Melhorias aditivas: preservam os cartões e estilos antigos noutros ecrãs
   ================================================================ */
.unis-toolbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,290px);align-items:center;gap:14px;margin:24px 0 30px;max-width:980px}
.unis-busca-nova,.unis-prov-select{display:flex;align-items:center;gap:13px;min-height:58px;padding:0 19px;background:#fff;border:1px solid #dce2ef;border-radius:18px;color:#61708d;box-shadow:0 4px 17px rgba(16,39,89,.035);transition:border-color .18s,box-shadow .18s}
.unis-busca-nova:focus-within,.unis-prov-select:focus-within{border-color:#2c4af4;box-shadow:0 0 0 4px rgba(48,76,233,.10)}
.unis-busca-nova>i,.unis-prov-select>i:first-child{color:#3151d7;font-size:17px;flex:none}
.unis-busca-nova input,.unis-prov-select select{appearance:none;min-width:0;width:100%;font:inherit;font-size:14px;outline:none;border:none;background:transparent;color:#111c3a}
.unis-busca-nova input::placeholder{color:#8390aa}
.unis-busca-nova kbd{background:#f4f6fc;border:1px solid #dce2ef;border-radius:7px;padding:3px 8px;font-size:12px;color:#7f8aa1}
.unis-prov-select{position:relative;cursor:pointer}
.unis-prov-select select{cursor:pointer;font-weight:650}
.unis-prov-select>i:last-child{pointer-events:none;font-size:12px}
.unis-secao{margin:18px 0 32px}
.unis-secao .bloco-cab{display:flex;flex-wrap:wrap;align-items:center;column-gap:14px;row-gap:4px;margin-bottom:18px}
.unis-secao .bloco-cab h2{display:flex;align-items:center;gap:10px;font-size:20px;letter-spacing:-.4px}
.unis-secao .bloco-cab h2>i{color:#3154e9;font-size:16px}
.unis-total{display:inline-grid;place-items:center;min-width:28px;min-height:27px;padding:0 8px;background:#edf1ff;color:#2845cf;font-size:12px;border-radius:9px}
.unis-secao .sub-bloco{flex-basis:100%;margin:0;color:#63718a;font-size:13px}
.unis-c{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px!important}
.uni-c{display:flex!important;flex-direction:column;justify-content:space-between;min-width:0;min-height:171px;padding:20px!important;border:1px solid #e3e8f3!important;border-radius:20px!important;background:#fff!important;text-decoration:none!important;box-shadow:0 5px 22px rgba(18,38,95,.037);transition:transform .2s,border-color .2s,box-shadow .2s}
.uni-c:hover,.uni-c:focus-visible{transform:translateY(-3px);border-color:#9fb2fe!important;box-shadow:0 14px 32px rgba(37,65,156,.115)}
.uni-c-topo{display:flex!important;gap:14px;align-items:flex-start;min-width:0}
.uni-c-topo>.uni-foto,.uni-c-topo>.uni-sigla{width:58px!important;height:58px!important;min-width:58px;border:1px solid #e9edfa;border-radius:15px!important;object-fit:contain;background:#edf1ff}
.uni-c-topo>.uni-sigla{display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#4769ff,#1a37be);font-size:calc(16px * var(--t,1));font-weight:850}
.uni-c-t{display:flex!important;flex-direction:column;align-items:flex-start;gap:5px;min-width:0}
.uni-c-s{font-weight:850!important;font-size:15px!important;color:#142346!important;letter-spacing:.1px}
.uni-c-n{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;line-height:1.42!important;color:#596982!important;font-size:13px!important}
.uni-c-pe{display:flex!important;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid #edf0f7;margin-top:18px;padding-top:14px}
.uni-c-m{display:inline-flex;align-items:center;gap:5px!important;font-size:12px!important;font-weight:600;color:#2a49dc!important}
.uni-c-m b{font-weight:850}
.uni-c-m.zero{color:#60728f!important}
.uni-c-p{display:inline-flex;gap:4px;align-items:center;font-size:12px!important;color:#8792a7!important}
.esc-capa{border-radius:26px!important;overflow:hidden;box-shadow:0 14px 36px rgba(30,55,171,.14);margin-bottom:22px!important}
.esc-capa:not(.com-img){background:linear-gradient(115deg,#3c64f8 0%,#2649dc 46%,#172caa 100%)!important}
.esc-capa-corpo{min-height:202px;gap:20px!important;padding:32px!important}
.esc-capa-t h1{letter-spacing:-.7px;line-height:1.16;font-weight:850}
.esc-capa-pub{box-shadow:0 7px 22px rgba(0,0,0,.13)}
.esc-descobrir{background:#fff;border:1px solid #e1e7f3;border-radius:23px;padding:23px;margin:0 0 22px;box-shadow:0 7px 27px rgba(26,48,111,.04)}
.esc-descobrir-cab{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:15px}
.esc-descobrir-cab h2{color:#132143;font-size:21px;margin:0 0 4px;letter-spacing:-.5px}
.esc-descobrir-cab p{margin:0;color:#748098;font-size:13px}
.esc-descobrir-cab>i{color:#2e52e9;background:#eff2ff;padding:12px;border-radius:13px}
.esc-procura-nova{display:flex!important;align-items:center;gap:12px;max-width:none!important;width:100%!important;min-height:58px;padding:0 17px!important;border:1px solid #d9e0f2!important;background:#f8faff!important;border-radius:14px!important;box-shadow:none!important;margin:0 0 18px!important}
.esc-procura-nova:focus-within{border-color:#3f5cee!important;background:#fff!important;box-shadow:0 0 0 4px rgba(58,80,223,.09)!important}
.esc-procura-nova>i{color:#4565e4;flex:none}
.esc-procura-nova input{flex:1;min-width:0;border:0!important;outline:none;background:transparent!important;box-shadow:none!important;font:inherit;color:#162445;font-size:14px!important}
.esc-procura-nova kbd{flex:none;font-size:11.5px;color:#71819e;padding:4px 8px;border:1px solid #dce2ed;background:#fff;border-radius:7px}
.esc-categorias{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}
.esc-cat{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:9px;min-width:0;text-align:left;cursor:pointer;border:1px solid #e4e8f1;border-radius:15px;background:#fff;padding:14px 11px 12px;color:#1a2949;transition:border-color .15s,background .15s,transform .15s}
.esc-cat:hover{transform:translateY(-2px);border-color:#9eaffb;background:#f9faff}
.esc-cat.ativo{border-color:#4868ef;background:#f2f5ff;box-shadow:inset 0 0 0 1px #4868ef}
.esc-cat-ic{display:grid;place-items:center;width:33px;height:33px;border-radius:10px;background:#edf1ff;color:#3153e6;font-size:14px}
.esc-cat.ativo .esc-cat-ic{background:#2f50e7;color:#fff}
.esc-cat-t{display:flex;flex-direction:column;gap:3px;min-width:0;width:100%}
.esc-cat-t b{font-size:12px;line-height:1.2;letter-spacing:-.1px}
.esc-cat-t small{font-size:11.5px;line-height:1.4;color:#7c879a;font-weight:450}
.esc-cat-n{position:absolute;right:10px;top:14px;display:grid;place-items:center;border-radius:8px;padding:3px 7px;min-width:26px;background:#f0f2fa;color:#334268;font-size:12px}
.esc-cat.ativo .esc-cat-n{background:#dbe4ff;color:#2a49d0}
.esc-bloco-resultados{scroll-margin-top:100px}
.esc-bloco-resultados .bloco-cab h2 i{font-size:17px;color:#3455db}
.esc-bloco-resultados .bloco-cab h2{font-size:21px}
.esc-bloco-resultados #esc-n-atual{padding:3px 9px;border-radius:9px;background:#edf1ff;color:#294bd3;font-size:12px}
/* Fluxo guiado: 5 etapas, sem perturbar a edição do material antigo */
.pub-wizard{display:block}
.pub-wizard .pub-etapa[hidden],.pub-wizard [hidden]{display:none!important}
.pub-wizard .pub-progresso{padding:21px 24px;background:#fff;border:1px solid #e0e7f4;border-radius:20px;margin-bottom:18px;box-shadow:0 4px 18px rgba(12,36,95,.035)}
.pub-progresso-top{display:flex;justify-content:space-between;gap:12px;font-size:13px;font-weight:650;color:#647490;margin-bottom:11px}
.pub-progresso-top strong{color:#274bd5}
.pub-progresso-barra{height:7px;background:#edf1fa;border-radius:99px;overflow:hidden}
.pub-progresso-barra i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#3e66f2,#1d39ba);transition:width .2s}
.pub-progresso-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:16px}
.pub-progresso-tabs button{display:flex;align-items:center;flex-direction:column;gap:7px;min-width:0;padding:2px;background:transparent;border:0;color:#8e9bb1;font-size:12px;cursor:pointer}
.pub-progresso-tabs button:disabled{cursor:default;opacity:.6}
.pub-progresso-tabs button>span{display:grid;place-items:center;width:32px;height:32px;border:1px solid #dfe5f2;border-radius:50%;font-weight:850;background:#f6f8fc;font-size:12px}
.pub-progresso-tabs button.atual{color:#2444db;font-weight:800}
.pub-progresso-tabs button.atual>span{background:#2c51e4;color:#fff;border-color:#2c51e4}
.pub-progresso-tabs button.feita>span{background:#ebf5ef;color:#198854;border-color:#c5e7d1}
.pub-progresso-tabs button small{font-size:11.5px;line-height:1.2;white-space:normal;text-align:center}
.pub-etapa>.form-sec{border-radius:20px!important;padding:25px!important;background:#fff!important;border:1px solid #e2e8f2!important}
.pub-escopo{margin-bottom:20px}
.pub-escolhas-scope{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pub-scope{display:flex;align-items:center;gap:13px;min-height:94px;padding:15px;border:1px solid #dfe5f1;border-radius:16px;background:#fff;text-align:left;cursor:pointer;color:#172446}
.pub-scope>i:first-child{display:grid;place-items:center;color:#4566e7;background:#eef2ff;border-radius:12px;font-size:23px;padding:13px}
.pub-scope>span{display:flex;flex:1;flex-direction:column;gap:5px;min-width:0}
.pub-scope b{font-size:14px}.pub-scope small{font-size:12px;color:#76839c;line-height:1.4}
.pub-scope>i:last-child{color:#b8c2d6}
.pub-scope.ativo,.pub-entidade.ativo{background:#f3f6ff;border-color:#3a5dee;box-shadow:inset 0 0 0 1px #3a5dee}
.pub-scope.ativo>i:last-child{color:#2c51e0}
.pub-enti{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0}
.pub-entidade{display:flex;align-items:center;gap:12px;min-height:68px;border:1px solid #e0e7f2;border-radius:14px;text-align:left;padding:14px;cursor:pointer;background:#fff;color:#1a2b4e}
.pub-entidade>i:first-child{font-size:18px;color:#3457dc}
.pub-entidade>span{flex:1;min-width:0;font-size:13px;line-height:1.35}
.pub-entidade>span b{display:block}
.pub-entidade>span small{display:block;font-size:12px;color:#758399;margin-top:3px}
.pub-entidade>i:last-child{opacity:0;color:#2c51e0}
.pub-entidade.ativo>i:last-child{opacity:1}
.pub-wizard .tipo-g4{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.pub-wizard .tipo-g4>.tipo-opcoes{grid-column:1/-1}
.pub-wizard .tipo-cat{width:auto;min-width:0}
.pub-wizard .tipo-opcoes{margin-top:6px}
.pub-gratis,.aviso-medio{display:flex;align-items:flex-start;gap:9px;padding:13px 15px;border:1px solid #cfdfed;border-radius:12px;background:#f4f9ff;color:#255083;font-size:13px;line-height:1.45}
.pub-wizard:not([data-pub-passo="5"])>.linha-btn,.pub-wizard:not([data-pub-passo="5"])>#u-erro,.pub-wizard:not([data-pub-passo="5"])>.verif,.pub-wizard:not([data-pub-passo="5"])>.u-aviso-not{display:none!important}
.pub-navegacao{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:20px 0;padding:10px 0}
.pub-navegacao .btn{min-height:47px}
.pub-ano-select{width:100%;max-width:420px;min-height:52px;padding:12px 14px;border:1px solid #dde4f0;border-radius:12px;background:#fff;color:#1b2b4b;font:inherit}
.pub-impedido{margin:60px auto;text-align:center;max-width:590px;padding:45px 24px;background:#fff;border:1px solid #e3e8f0;border-radius:24px;box-shadow:0 8px 32px rgba(22,36,75,.04)}
.pub-impedido>i{display:inline-grid;place-items:center;font-size:27px;border-radius:18px;color:#3153dc;background:#eef2ff;padding:19px}
.pub-impedido h1{font-size:27px;margin:17px 0 11px}
.pub-impedido p{color:#6e7c95;line-height:1.7;margin:0 0 22px}
@media(max-width:1050px){.unis-c{grid-template-columns:repeat(2,minmax(0,1fr))}.esc-categorias{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:660px){.unis-toolbar{grid-template-columns:1fr;margin:16px 0 24px;gap:10px}.unis-busca-nova,.unis-prov-select{min-height:53px;border-radius:14px}.unis-c{grid-template-columns:1fr!important;gap:11px!important}.uni-c{min-height:132px;padding:16px!important}.uni-c-topo>.uni-foto,.uni-c-topo>.uni-sigla{width:48px!important;height:48px!important;min-width:48px}.esc-capa-corpo{padding:21px!important}.esc-descobrir{padding:16px;border-radius:17px}.esc-descobrir-cab h2{font-size:18px}.esc-categorias{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.esc-cat{min-height:95px;padding:11px 9px}.esc-cat-t small{font-size:11.5px}.esc-cat-n{right:8px;top:11px}.pub-escolhas-scope,.pub-enti{grid-template-columns:1fr}.pub-wizard .pub-progresso{padding:15px 11px}.pub-progresso-tabs{gap:1px}.pub-progresso-tabs button small{font-size:10.5px}.pub-progresso-tabs button>span{width:29px;height:29px}.pub-etapa>.form-sec{padding:17px!important}.pub-wizard .tipo-g4{grid-template-columns:1fr}.pub-navegacao .btn{flex:1}.pub-escopo{margin-bottom:14px}}
.pub-sugerir{display:flex;gap:9px;align-items:center;font-size:12px;color:#687995;margin:14px 0 0}
.pub-sugerir i{color:#4160dc}.pub-sugerir a{color:#2b4cd1;font-weight:750;text-decoration:underline}
.lp-sugere{padding:10px 0}.lp-sugere h4{font-size:13px;color:#3252de;padding:9px 14px}
.unis-sem-busca{padding:24px 10px;text-align:center}
.unis-parecidas{display:flex;flex-wrap:wrap;gap:9px;justify-content:center;margin:20px auto;max-width:680px}
.unis-parecidas h3{flex-basis:100%;font-size:16px;margin:0 0 5px}
.unis-parecidas a{background:#fff;border:1px solid #dce4f7;border-radius:12px;padding:12px 15px;text-decoration:none;color:#1d335b;font-size:13px}
.unis-parecidas a:hover{border-color:#4866ef;background:#f4f7ff}
.unis-parecidas b{color:#3155d6;padding-left:5px}

/* ===== Veteraano v238 — navegação, descoberta e experiência móvel ===== */
.pub-progresso-tabs button.feita{color:#2449d5!important;opacity:1!important}
.pub-progresso-tabs button.feita>span{background:#ecf2ff!important;color:#2450db!important;border-color:#b9cafa!important}
.pub-wizard .pub-progresso{border:1px solid #dce5f8;box-shadow:0 8px 30px rgba(24,51,119,.045)}
.pub-wizard .pub-etapa>.form-sec{box-shadow:0 8px 28px rgba(24,51,119,.035)}
.pub-wizard .pub-navegacao{display:flex;justify-content:flex-end;gap:10px;margin:16px 0 0;padding:15px 0 0;border-top:1px solid var(--linha-2,#e8edf8)}
.pub-wizard .pub-navegacao .btn{min-width:140px;justify-content:center;border-radius:13px}
.pub-wizard .pub-navegacao .btn:disabled{opacity:.35}
.pub-resumo{position:sticky;top:100px;background:var(--sup,#fff);border:1px solid var(--linha-2,#e2e9f8);border-radius:20px;padding:22px;box-shadow:0 10px 36px rgba(22,42,91,.05);min-width:0;overflow:hidden}
.pub-resumo-cab{display:flex;align-items:center;gap:12px;padding-bottom:17px;border-bottom:1px solid var(--linha-2,#edf1f9)}
.pub-resumo-icone{display:grid;place-items:center;width:43px;height:43px;border-radius:13px;background:#eaf0ff;color:#2750db;flex:none}
.pub-resumo h3{font-size:17px;font-weight:800;margin:0;color:var(--tinta,#192443)}
.pub-resumo-cab p{font-size:12px;color:var(--tinta-2,#72809a);margin:3px 0 0}
.pub-resumo-titulo{font-weight:800;font-size:16px;line-height:1.4;color:var(--tinta,#152443);padding:19px 0 16px;overflow-wrap:anywhere}
.pub-resumo-dados{display:grid;gap:14px;margin:0}
.pub-resumo-dados>div{display:grid;grid-template-columns:minmax(90px,38%) minmax(0,1fr);align-items:start;gap:12px}
.pub-resumo dt{color:var(--tinta-2,#8190a7);font-size:12px;display:flex;align-items:center;gap:6px}
.pub-resumo dt i{color:#4767e2}
.pub-resumo dd{color:var(--tinta,#132248);margin:0;text-align:right;font-size:12px;font-weight:700;overflow-wrap:anywhere}
.pub-resumo-nota{color:var(--tinta-2,#6d7b91);line-height:1.55;font-size:12px;display:flex;gap:7px;border-top:1px solid var(--linha-2,#e8edf5);padding-top:15px;margin:19px 0 0}
.pub-resumo-nota i{color:#3159dd;margin-top:2px}
.pub-legado{grid-column:1/-1;display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:13px;border-radius:13px;background:#edf2ff;color:#304e95;font-size:12px}
.pub-legado strong{color:#163a8f}
/* Guiador da descoberta com escolhas pequenas, progressivas e acessíveis */
.sec-guia-inicio{padding-top:12px!important}
.busca-guiada{--bg-blue:#2e50e1;max-width:1100px;margin:16px auto 26px;padding:clamp(18px,3vw,30px);background:var(--sup,#fff);border:1px solid var(--linha-2,#e1e8f5);border-radius:24px;box-shadow:0 14px 45px rgba(34,57,111,.06);color:var(--tinta,#14213f)}
.bg-topo{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:20px}
.bg-mini{display:inline-flex;align-items:center;gap:7px;background:#eaf0ff;color:#2b51d9;border-radius:999px;font-size:12px;font-weight:800;padding:6px 10px;margin-bottom:10px}
.bg-topo h2{font-size:clamp(20px,2.4vw,27px);font-weight:850;letter-spacing:-.6px;color:var(--tinta,#14213f);margin:0 0 5px}
.bg-topo p{font-size:13px;color:var(--tinta-2,#687895);line-height:1.6;margin:0}
.bg-passos{font-size:12px;color:#5471c9;white-space:nowrap;display:flex;align-items:center;gap:7px}
.bg-categorias{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.bg-categoria{display:flex;flex-direction:column;align-items:flex-start;min-height:154px;gap:10px;text-align:left;padding:17px;border:1px solid var(--linha-2,#e2e8f5);background:var(--sup,#fff);color:var(--tinta,#172748);border-radius:17px;cursor:pointer;transition:background .15s,border .15s,transform .15s}
.bg-categoria:hover{border-color:#a7b8f9;transform:translateY(-2px)}
.bg-categoria.ativo{border-color:#3155e5;background:#f1f5ff;box-shadow:inset 0 0 0 1px #3155e5}
.bg-categoria>.bg-icone{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;color:#3156db;background:#ecf1ff}
.bg-categoria.ativo>.bg-icone{background:#3154df;color:white}
.bg-categoria>span:nth-child(2){flex:1;min-width:0}
.bg-categoria b{display:block;font-size:13px;font-weight:850;line-height:1.3}
.bg-categoria small{display:block;font-size:12px;color:var(--tinta-2,#78859d);line-height:1.4;margin-top:5px}
.bg-categoria>i:last-child{align-self:flex-end;font-size:12px;color:#9ba9c4}
.bg-detalhes{border-top:1px solid var(--linha-2,#e2e9f4);padding-top:18px;margin-top:19px}
.bg-detalhes>p{margin:0 0 12px;color:var(--tinta-2,#6b7a94);font-size:12px}
.bg-subtipos{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}
.bg-tipo{background:var(--sup,#fff);color:var(--tinta,#233251);border:1px solid var(--linha-2,#dbe4f2);border-radius:999px;font-size:12px;padding:9px 13px;cursor:pointer;text-align:left}
.bg-tipo.ativo{background:#3154e5;color:#fff;border-color:#3154e5}
.bg-caminho{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-bottom:16px}
.bg-seletor{display:flex;justify-content:space-between;align-items:center;text-align:left;gap:9px;min-width:0;border-radius:14px;background:var(--sup-2,#fafbff);color:var(--tinta,#203354);border:1px solid var(--linha-2,#e1e6f2);min-height:72px;padding:13px;cursor:pointer}
.bg-seletor:disabled{opacity:.55;cursor:not-allowed}.bg-seletor>span{min-width:0}.bg-seletor small{display:block;color:var(--tinta-2,#748298);font-size:11.5px;margin-bottom:5px}.bg-seletor strong{display:block;font-size:12px;line-height:1.35;overflow-wrap:anywhere}.bg-seletor>i{color:#4666d9;font-size:12px;flex:none}
.bg-ver{width:100%;min-height:46px;justify-content:center;border-radius:12px}
/* pesquisa do acervo: categorias imediatamente abaixo da pesquisa */
.exp-cats-rapidas{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:13px 0 12px}
.exp-cat-b{display:inline-flex;align-items:center;gap:8px;min-height:39px;padding:8px 12px;color:var(--tinta,#1c2c50);background:var(--sup,#fff);border:1px solid var(--linha-2,#dce4f0);border-radius:11px;cursor:pointer;font-size:12px;font-weight:750}
.exp-cat-b i{color:#3154df}.exp-cat-b b{font-size:12px;border-radius:7px;padding:2px 5px;background:#edf2fa;color:#456189}
.exp-cat-b.ativo{background:#3154df;border-color:#3154df;color:#fff}.exp-cat-b.ativo i{color:#fff}.exp-cat-b.ativo b{color:#2147d5;background:#e4eaff}
/* selector de província limpo (sem chevron duplicado) */
.unis-prov-select{display:flex!important;align-items:center;gap:12px;padding:10px 15px!important;width:100%;min-width:0;min-height:57px;background:var(--sup,#fff)!important;border:1px solid var(--linha-2,#d9e2f2)!important;border-radius:16px;cursor:pointer;text-align:left;color:var(--tinta,#182849)}
.unis-prov-select>i:first-child{display:grid;place-items:center;color:#3457df;background:#edf2ff;border-radius:10px;width:37px;height:37px;flex:none}
.unis-prov-select>span{flex:1;min-width:0}.unis-prov-select small{display:block;font-size:11.5px;color:var(--tinta-2,#7b8aa3)}.unis-prov-select strong{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.unis-prov-select>i:last-child{color:#5870a6;font-size:12px;flex:none}
.ecra-ov.ecra-provincia .eo-rolo{padding:12px 17px 24px}
.unis-prov-folha{max-width:620px;margin:0 auto}.unis-prov-folha>p{margin:8px 0 14px;color:var(--tinta-2,#748099);font-size:13px}
.unis-prov-lista{display:grid;gap:7px}.unis-prov-op{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:51px;width:100%;text-align:left;border:1px solid var(--linha-2,#e1e7f2);background:var(--sup,#fff);border-radius:12px;padding:13px 16px;color:var(--tinta,#1c2a4b);cursor:pointer;font-size:14px;font-weight:650}.unis-prov-op span{display:flex;align-items:center;gap:13px}.unis-prov-op span i{color:#4965db}.unis-prov-op.ativo{background:#edf2ff;border-color:#7897f9;color:#1f45cb}
.selo-ensino-medio{display:inline-flex;align-items:center;gap:7px;padding:7px 11px;border-radius:999px;border:1px solid #bdcffc;background:#edf3ff;color:#254ccf;font-size:12px;font-weight:800;margin-top:8px}
@media(max-width:850px){.bg-categorias{grid-template-columns:repeat(2,minmax(0,1fr))}.bg-categoria{min-height:127px}.bg-caminho{grid-template-columns:1fr}}
@media(max-width:670px){
 .partilhar:has(.pub-wizard){display:flex;flex-direction:column;gap:10px;align-items:stretch}
 .partilhar:has(.pub-wizard) .form-partilhar{width:100%;min-width:0}
 .partilhar:has(.pub-wizard) .pub-resumo{display:none}
 .pub-wizard .pub-navegacao{position:sticky;bottom:calc(0px + env(safe-area-inset-bottom,0px));z-index:22;background:var(--mesa,#f6f8fd);border:1px solid var(--linha-2,#dee5f3);border-radius:16px;padding:10px;box-shadow:0 -8px 26px rgba(24,46,104,.12);justify-content:stretch;gap:8px}
 .pub-wizard .pub-navegacao .btn{flex:1;min-width:0;min-height:46px;font-size:13px}
 .pub-progresso-tabs button.feita>span{background:#edf2ff!important;color:#2550d9!important}
 .pub-wizard .pub-etapa>.form-sec{padding:16px!important}
 .bg-passos{display:none}.bg-categorias{gap:8px}.bg-categoria{padding:13px;min-height:132px}.bg-categoria b{font-size:12px}.bg-categoria small{font-size:11.5px}.busca-guiada{margin:12px 0 24px;padding:16px;border-radius:19px}.bg-topo h2{font-size:21px}.bg-seletor{min-height:59px}
 .exp-cats-rapidas{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:-12px;padding:0 12px 6px}.exp-cat-b{flex:none}
 .ecra-ov.ecra-provincia{inset:auto 0 0!important;top:7vh!important;max-height:93dvh;background:var(--mesa,#f7f9ff);border-radius:24px 24px 0 0;box-shadow:0 -20px 90px rgba(16,27,60,.28);animation:provSubir .2s ease-out}
 body:has(.ecra-ov.ecra-provincia) #leitor-raiz:before{content:"";position:fixed;inset:0;background:rgba(12,20,45,.55);z-index:149}
 .ecra-ov.ecra-provincia .eo-topo{padding-top:20px}
 .ecra-ov.ecra-provincia .eo-topo:before{content:"";position:absolute;top:9px;left:calc(50% - 23px);width:46px;height:5px;background:#b8c3d7;border-radius:99px}
 .unis-prov-folha{padding-bottom:env(safe-area-inset-bottom,20px)}
 @keyframes provSubir{from{transform:translateY(55px);opacity:.7}to{transform:translateY(0);opacity:1}}
}
@media(prefers-reduced-motion:reduce){.bg-categoria,.ecra-ov.ecra-provincia{transition:none;animation:none}}

@media(max-width:670px){.pag:has(.pub-wizard)>.rodape{display:none!important}}

/* O ficheiro anexado continua visível em cada etapa (sem recarregar o PDF). */
.pub-ficheiro-acesso{display:flex;align-items:center;gap:12px;min-width:0;border:1px solid #cfddf8;border-radius:14px;background:#f3f7ff;padding:12px 14px;margin:12px 0 16px;color:#264bc7}
.pub-ficheiro-acesso>i{font-size:22px;flex:none}
.pub-ficheiro-acesso>span{min-width:0;flex:1;display:grid;gap:3px}
.pub-ficheiro-acesso small{font-size:11.5px;color:#627ba9}
.pub-ficheiro-acesso strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pub-ficheiro-voltar{display:inline-flex;align-items:center;gap:6px;flex:none;cursor:pointer;border:1px solid #b2c7f7;border-radius:10px;background:white;color:#2248cb;padding:9px 12px;font-size:12px;font-weight:800}
@media(max-width:500px){.pub-ficheiro-acesso{gap:7px;padding:10px}.pub-ficheiro-voltar{padding:9px 8px;font-size:11.5px}}

/* 239.ª parte: a reorganização dos materiais antigos; a barra das Instituições com a província à direita; a descoberta
   guiada a toda a largura; o Publicar arrumado, com os botões fixos em baixo no telemóvel e a capa na pré-visualização */
.reorg-caixa { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.reorg-caixa small { display: block; color: var(--tinta-2); }
.reorg-saida pre { white-space: pre-wrap; font: .82rem/1.5 ui-monospace, SFMono-Regular, Menlo, monospace; background: var(--sup-2); padding: 12px 14px; border-radius: 12px; max-height: 50vh; overflow: auto; }
.unis-toolbar { max-width: none !important; grid-template-columns: minmax(0, 1fr) auto !important; justify-content: space-between; }
.unis-prov-select { justify-self: end; }
.busca-guiada { max-width: none !important; margin: 16px 0 26px !important; }
.bg-categorias { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)) !important; }
@media (max-width: 760px) { .busca-guiada { padding: 14px !important; border-radius: 18px !important; } .bg-categorias { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 8px !important; } .bg-topo { flex-wrap: wrap; } }
.pub-resumo-capa { display: block; width: 100%; aspect-ratio: 3 / 4; max-height: 260px; object-fit: cover; object-position: top; border-radius: 14px; border: 1px solid var(--linha); background: var(--sup-2); margin: 0 0 12px; }
.pub-resumo-capa.vazia { display: grid; place-items: center; color: var(--tinta-3); font-size: .86rem; }
@media (max-width: 760px) {
  .pub-navegacao { position: sticky; bottom: calc(60px + env(safe-area-inset-bottom, 0px)); z-index: 20; background: var(--sup); margin: 12px -16px 0 !important; padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px)) !important; border-top: 1px solid var(--linha); box-shadow: 0 -8px 24px rgba(16, 22, 51, .08); }
  .pub-navegacao .btn { flex: 1 1 0; justify-content: center; }
  .pub-progresso-tabs { overflow-x: auto; scrollbar-width: none; }
}

/* ============ 241.ª parte ============ */
/* os separadores (radio) com o mesmo ar do .segmento */
.segmento button[aria-checked="true"] { background: var(--sup); color: var(--tinta); box-shadow: var(--sombra-leve), 0 1px 3px rgba(16, 22, 51, .1); }
.segmento button { display: inline-flex; align-items: center; gap: 8px; }
.segmento button b { font-family: var(--f-tit); font-weight: 600; font-size: .82rem; padding: 2px 8px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); }

/* Explorar: Ensino superior | Concursos e bolsas */
.exp-amb-cx { margin: 0 0 12px; }
.exp-amb { display: flex; width: 100%; max-width: 560px; }
.exp-amb button { flex: 1 1 0; justify-content: center; height: 44px !important; font-size: .95rem !important; }

/* Descoberta guiada em etapas */
.bg2 { padding: clamp(18px, 3vw, 30px) !important; }
.bg2-topo { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.bg2-topo h2 { margin: 8px 0 0; font-size: clamp(1.45rem, 2.6vw, 1.9rem); line-height: 1.15; }
.bg2-voltar { flex: none; font-size: 1rem; }
.bg2-etapas { list-style: none; margin: 0 0 20px; padding: 0; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 8px; }
.bg2-etapas button { width: 100%; display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid var(--linha); border-radius: 14px; background: var(--sup); color: var(--tinta-3); text-align: left; cursor: pointer; font: inherit; min-width: 0; }
.bg2-etapas button[disabled] { cursor: default; opacity: .6; }
.bg2-etapas li.feito button { color: var(--tinta); border-color: rgba(35, 70, 230, .35); background: var(--azul-suave); }
.bg2-etapas li.feito button:hover { border-color: var(--bic); }
.bg2-etapas li.ativo button { color: var(--tinta); border-color: var(--bic); box-shadow: 0 0 0 3px rgba(35, 70, 230, .14); }
.bg2-n { flex: none; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; font: 600 .95rem var(--f-tit); background: var(--sup-2); color: var(--tinta-2); }
.bg2-etapas li.feito .bg2-n, .bg2-etapas li.ativo .bg2-n { background: var(--bic); color: #fff; }
.bg2-pt { display: grid; gap: 1px; min-width: 0; }
.bg2-pt small { font-size: .82rem; color: var(--tinta-3); }
.bg2-pt strong { font-size: .95rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bg2-q { margin: 0 0 12px; font: 600 1.2rem var(--f-tit); color: var(--tinta); }
.bg2-procura { max-width: 520px; margin: 0 0 12px; }
.bg2-cats { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.bg2-ops { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(260px, 100%), 1fr)); gap: 10px; }
.bg2-lista { max-height: 420px; overflow: auto; padding: 2px; }
.bg2-op { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border: 1px solid var(--linha); border-radius: 16px; background: var(--sup); color: var(--tinta); text-align: left; cursor: pointer; font: inherit; min-width: 0; transition: border-color .12s, background .12s; }
.bg2-op:hover { border-color: rgba(35, 70, 230, .45); background: var(--azul-suave); }
.bg2-op.on { border-color: var(--bic); background: var(--azul-suave); box-shadow: 0 0 0 3px rgba(35, 70, 230, .12); }
.bg2-op[hidden] { display: none; }
.bg2-op-ic { flex: none; width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; background: var(--azul-suave); color: var(--bic); font-size: 1.25rem; }
.bg2-op.on .bg2-op-ic { background: var(--bic); color: #fff; }
.bg2-op-t { display: grid; gap: 3px; min-width: 0; }
.bg2-op-t strong { font-size: 1.05rem; font-weight: 600; line-height: 1.25; }
.bg2-op-t small { font-size: .9rem; color: var(--tinta-2); line-height: 1.35; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.bg2-cats .bg2-op { padding: 18px; min-height: 96px; }
.bg2-fim { margin-top: 18px; }
.bg2-ver { width: 100%; justify-content: center; font-size: 1.05rem; }
.bg2-ver svg { width: 20px; height: 20px; }
@media (max-width: 760px) {
  .bg2-etapas { grid-auto-flow: row; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-columns: auto; }
  .bg2-cats { grid-template-columns: 1fr; }
  .bg2-topo { flex-wrap: wrap; }
}

/* Publicar: letra maior; no telemóvel «Voltar / Avançar» fixos em baixo, no lugar da barra de baixo */
.pub-progresso-top { font-size: .95rem !important; }
.pub-progresso-tabs, .pub-progresso-tabs * { font-size: .86rem !important; }
.pub-resumo-cab h3 { font-size: 1.15rem !important; }
.pub-resumo-cab p, .pub-resumo-dados dt, .pub-resumo-dados dd, .pub-resumo-nota { font-size: .95rem !important; }
.pub-resumo-titulo { font-size: 1.1rem !important; }
.form-sec .ajuda, .pub-scope small, .pub-scope span { font-size: .95rem !important; }
.pub-scope b { font-size: 1.05rem !important; }
.pub-entidade, .pub-enti button { font-size: 1rem !important; }
.pub-sub { margin: 18px 0 4px; font-size: 1.05rem; }
.pub-discs { display: flex; flex-wrap: wrap; gap: 8px; }
.pub-discs .chip { font-size: .95rem; }
@media (max-width: 760px) {
  body:has(.pub-navegacao) .abas-m { display: none !important; }
  .pub-navegacao { position: fixed !important; left: 0; right: 0; bottom: 0 !important; margin: 0 !important; z-index: 60; background: var(--sup); padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px)) !important; border-top: 1px solid var(--linha); box-shadow: 0 -8px 24px rgba(16, 22, 51, .1); }
  body:has(.pub-navegacao) main { padding-bottom: 96px !important; }
  body:has(.pub-navegacao) .toasts { bottom: calc(86px + env(safe-area-inset-bottom, 0px)); }
}

/* Instituições: separadores, a procura igual às outras, a janela das 21 províncias */
.unis-tipos { margin: 18px 0 4px; flex-wrap: wrap; }
.unis-tipos button { height: 42px !important; font-size: .95rem !important; }
.unis-toolbar .exp-busca { margin: 0; }
.unis-prov-lista { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 8px !important; }
.unis-prov-op { display: flex !important; align-items: center; justify-content: space-between; gap: 8px; padding: 12px 14px !important; border: 1px solid var(--linha); border-radius: 14px; background: var(--sup); font: inherit; font-size: .98rem; color: var(--tinta); cursor: pointer; text-align: left; }
.unis-prov-op span { display: inline-flex; align-items: center; gap: 8px; }
.unis-prov-op i { color: var(--bic); }
.unis-prov-op b { font: 600 .82rem var(--f-tit); padding: 2px 9px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); }
.unis-prov-op.ativo { border-color: var(--bic); background: var(--azul-suave); }
.unis-prov-op.vazia { opacity: .5; cursor: default; }
.prov-modal { width: min(760px, 92vw); }
@media (max-width: 760px) { .unis-tipos { display: flex; width: 100%; } .unis-tipos button { flex: 1 1 0; justify-content: center; font-size: .86rem !important; padding: 0 8px !important; } }

/* ============ 242.ª parte ============ */
/* página da universidade: as 3 categorias por baixo de «Materiais disponíveis» */
.esc-cats3 { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 10px !important; margin: 4px 0 16px !important; }
.esc-cats3 .esc-cat { display: flex !important; align-items: center; gap: 12px; padding: 12px 14px !important; border: 1px solid var(--linha); border-radius: 16px; background: var(--sup); text-align: left; cursor: pointer; font: inherit; color: var(--tinta); position: relative; min-height: 0 !important; }
.esc-cats3 .esc-cat.ativo { border-color: var(--bic); background: var(--azul-suave); box-shadow: 0 0 0 3px rgba(35, 70, 230, .12); }
.esc-cats3 .esc-cat-t { display: grid; gap: 2px; min-width: 0; }
.esc-cats3 .esc-cat-t b { font-size: 1rem; font-weight: 600; }
.esc-cats3 .esc-cat-t small { font-size: .84rem; color: var(--tinta-2); }
.esc-cats3 .esc-cat em { margin-left: auto; font: 600 .82rem var(--f-tit); font-style: normal; padding: 2px 9px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); }
@media (max-width: 760px) { .esc-cats3 { grid-template-columns: 1fr !important; } }

/* descoberta guiada: escolhas múltiplas, a janela das instituições, «continuar» */
.bg2-q-l { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin-bottom: 12px; }
.bg2-q-l .bg2-q { margin: 0; }
.bg2-q-l small { color: var(--tinta-2); font-size: .92rem; }
.bg2-cx { flex: none; width: 24px; height: 24px; border-radius: 7px; border: 2px solid var(--linha); display: grid; place-items: center; color: #fff; font-size: .8rem; }
.bg2-op.on .bg2-cx { background: var(--bic); border-color: var(--bic); }
.bg2-op.multi { padding: 12px 14px; }
.bg2-escolha { display: grid; gap: 12px; justify-items: start; }
.bg2-sel { display: flex; flex-wrap: wrap; gap: 8px; }
.bg2-abrir { font-size: 1rem; }
.bg2-seguir-l { display: flex; justify-content: flex-end; margin-top: 14px; }
.bg2-seguir { font-size: 1rem; }
.bg2-fim small { display: block; margin-top: 8px; text-align: center; color: var(--tinta-2); }
.bg2-etapas-cx { margin: 0 0 20px; }
.bg2-etapas-cx .bg2-etapas { margin: 0; }
@media (max-width: 760px) {
  /* no telemóvel: sem a caixa à volta, e as etapas achatadas lado a lado, com deslize */
  .busca-guiada.bg2 { background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; border-radius: 0 !important; }
  .bg2-etapas-cx { overflow-x: auto; scrollbar-width: none; margin: 0 -16px 16px; padding: 2px 16px; scroll-padding-inline: 16px; }
  .bg2-etapas-cx::-webkit-scrollbar { display: none; }
  .bg2-etapas { display: flex !important; grid-template-columns: none !important; gap: 6px; width: max-content; }
  .bg2-etapas li { flex: none; }
  .bg2-etapas button { padding: 7px 10px; gap: 8px; border-radius: 12px; max-width: 200px; }
  .bg2-n { width: 24px; height: 24px; font-size: .82rem; }
  .bg2-pt small { font-size: .74rem; }
  .bg2-pt strong { font-size: .86rem; }
}

/* Publicar: os tipos e as entidades dos concursos maiores; a procura das entidades */
.pub-enti .pub-entidade, .pub-tipos .pub-entidade { font-size: 1.02rem !important; padding: 16px 18px !important; }
.pub-tipos .pub-entidade b, .pub-tipos .pub-entidade strong { font-size: 1.05rem !important; }
.pub-tipos .pub-entidade small, .pub-tipos .pub-entidade span small { font-size: .9rem !important; }
.pub-ent-procura { max-width: 520px; margin: 4px 0 12px; }
.pub-enti [hidden] { display: none !important; }
.pub-discs .chip { display: inline-flex; align-items: center; gap: 6px; }

/* Instituições: separadores sem números; procura e província na mesma linha no telemóvel */
.unis-tipos { display: inline-flex; }
.unis-tipos button { padding: 0 18px !important; }
@media (max-width: 760px) {
  .unis-toolbar { grid-template-columns: minmax(0, 1fr) auto !important; gap: 8px !important; }
  .unis-prov-select { min-height: 48px !important; padding: 0 12px !important; }
  .unis-prov-select small, .unis-prov-select strong { display: none !important; }
  .unis-prov-select::after { content: none !important; }
  .unis-toolbar .exp-busca { min-height: 48px; }
}

/* painel: a entidade e a lista das disciplinas dos concursos */
.ent-info { display: flex; gap: 10px; align-items: flex-start; margin-top: 14px; padding: 14px 16px; border-radius: 14px; background: var(--sup-2); color: var(--tinta-2); }
.ent-info i { color: var(--bic); margin-top: 3px; }
.ent-info p { margin: 0; }
.disc-conc { margin: 0 0 14px; }
.disc-conc-l { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 12px; }
.disc-conc-novo { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.disc-conc-novo input { flex: 1 1 240px; min-width: 0; height: 40px; padding: 0 12px; border: 1px solid var(--linha); border-radius: 12px; background: var(--sup); font: inherit; color: var(--tinta); }

.foco { grid-template-columns: minmax(0, 1fr); }
.foco > * { min-width: 0; max-width: 100%; }

.bg2 .bg-mini { font-size: .8rem; padding: 6px 12px; }
.bg2-topo { align-items: center; }
.bg2-recomecar { display: inline-flex; align-items: center; gap: 6px; font-size: .95rem; font-weight: 650; color: var(--tinta-2); flex: none; }
.bg2-recomecar:hover { color: var(--bic); }
.bg2-etapas li.fechada button { opacity: .55; cursor: not-allowed; }
.bg2-etapas li.ativo button { opacity: 1; cursor: default; }
.bg2-pt small { font-size: .8rem; }
.bg2-pt strong { font-size: .98rem; }
.bg2-q { font-size: 1.25rem; }
.bg2-q-l small { font-size: .95rem; }
.bg2-ops { grid-template-columns: repeat(auto-fill, minmax(min(240px, 100%), 1fr)); }
.bg2-op { min-height: 56px; }
.bg2-op-t strong { font-size: 1.04rem; }
.bg2-op-t small { font-size: .9rem; }
.bg2-op.todos { border-style: dashed; }
.bg2-op.todos.on { border-style: solid; }
.bg2-cx.redondo { border-radius: 50%; }
.bg2-op.on .bg2-cx.redondo { background: var(--bic); border-color: var(--bic); }
.bg2-op-n { margin-left: auto; font: 600 .82rem var(--f-tit); font-style: normal; padding: 2px 9px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); }
.bg2-lista { max-height: 440px; }
.bg2-nada { grid-column: 1 / -1; display: flex; align-items: center; gap: 8px; margin: 6px 2px; color: var(--tinta-2); font-size: .95rem; }
.bg2-nada[hidden] { display: none; }
.bg2-escolha { justify-items: stretch; max-width: 640px; }
.bg2-sel { display: grid; gap: 8px; }
.bg2-sel-i { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border: 1px solid var(--bic); border-radius: 16px; background: var(--azul-suave); min-width: 0; }
.bg2-sel-i > span { display: grid; gap: 1px; min-width: 0; flex: 1; }
.bg2-sel-i strong { font-size: 1rem; }
.bg2-sel-i small { font-size: .88rem; color: var(--tinta-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bg2-sel-i button { flex: none; width: 34px; height: 34px; border-radius: 50%; border: 0; background: var(--sup); color: var(--tinta-2); display: grid; place-items: center; cursor: pointer; }
.bg2-sel-i button:hover { color: var(--bic); }
.bg2-sel-i .uni-foto, .bg2-sel-i .uni-sigla { width: 40px !important; height: 40px !important; min-width: 40px; border-radius: 12px; font-size: .82rem; }
.bg2-abrir { display: flex; align-items: center; gap: 12px; width: 100%; padding: 14px 16px; border: 1.5px dashed var(--linha-2); border-radius: 16px; background: var(--sup); color: var(--tinta); text-align: left; cursor: pointer; font: inherit; }
.bg2-abrir:hover { border-color: var(--bic); background: var(--azul-suave); }
.bg2-abrir > i:last-child { margin-left: auto; color: var(--tinta-3); }
.bg2-abrir .bg2-op-t strong { font-size: 1.04rem; }
.bg2-nav { display: flex; align-items: center; gap: 12px; margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--linha); }
.bg2-nav .btn { min-height: 48px; font-size: 1rem; }
.bg2-voltar { flex: none; }
.bg2-conta { flex: 1; min-width: 0; margin: 0; color: var(--tinta-2); font-size: .95rem; text-align: right; }
.bg2-conta b { color: var(--tinta); font-family: var(--f-tit); }
.bg2-conta.zero { color: #b45309; }
.bg2-avancar, .bg2-ver { flex: none; min-width: 160px; justify-content: center; gap: 10px; }
.bg2-avancar[disabled], .bg2-ver[disabled] { opacity: .45; cursor: not-allowed; }
.bg2-ver { width: auto !important; }
@media (max-width: 760px) {
  .bg2-topo h2 { font-size: 1.4rem; }
  .bg2-etapas-cx { overflow-x: auto; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; scroll-snap-type: x proximity; max-width: calc(100% + 32px); }
  .bg2-etapas li { scroll-snap-align: start; }
  .bg2-etapas button { max-width: 210px; min-height: 52px; }
  .bg2-pt small { font-size: .78rem; }
  .bg2-pt strong { font-size: .9rem; }
  .bg2-q { font-size: 1.12rem; }
  .bg2-ops { grid-template-columns: 1fr; gap: 8px; }
  .bg2-op { padding: 12px 14px; min-height: 52px; }
  .bg2-cats .bg2-op { min-height: 80px; padding: 14px; }
  .bg2-lista { max-height: 52vh; }
  .bg2-nav { position: sticky; bottom: calc(64px + env(safe-area-inset-bottom, 0px)); z-index: 5; margin: 16px -16px 0; padding: 10px 16px; background: var(--mesa); border-top: 1px solid var(--linha); box-shadow: 0 -8px 20px rgba(16, 22, 51, .06); flex-wrap: wrap; gap: 8px 10px; }
  .bg2-conta { order: -1; flex: 1 0 100%; text-align: left; font-size: .9rem; }
  .bg2-voltar span { display: none; }
  .bg2-voltar { width: 48px; padding: 0; justify-content: center; }
  .bg2-avancar, .bg2-ver { flex: 1; min-width: 0; }
}

.fe-pega { display: none; }
.fe-cx header h2 { font-size: 1.3rem; }
.fe-sub { font-size: .92rem !important; color: var(--tinta-2) !important; }
.fe-lista .fac-op { min-height: 52px; font-size: 1rem; padding: 9px 10px; }
.fe-lista .fac-t small { font-size: .86rem; }
.fe-lista .fac-n { font-size: .82rem; }
.fe-sep { font-size: .84rem !important; }
.fe-nada, .fac-dica { display: flex; align-items: flex-start; gap: 8px; margin: 10px 8px; color: var(--tinta-2); font-size: .95rem; line-height: 1.45; }
.fe-nada i, .fac-dica i { color: var(--bic); margin-top: 3px; }
.fe-cx footer .btn { min-height: 46px; font-size: 1rem; }
.fe-cx footer .btn-pri { gap: 8px; }
.fe-cx footer .btn-pri[disabled] { opacity: .5; }
.escl-ecra { z-index: 300; }
@media (max-width: 760px) {
  .fac-ecra { place-items: end stretch !important; padding: 0 !important; }
  .fac-ecra .fe-cx { width: 100% !important; height: auto !important; max-height: 90dvh !important; border-radius: 24px 24px 0 0 !important; box-shadow: 0 -20px 60px rgba(16, 22, 51, .25); animation: folhaSobe .22s ease-out; }
  .fac-ecra .fe-lista { flex: 1 1 auto; min-height: 120px; }
  .fe-pega { display: block; flex: none; width: 46px; height: 5px; margin: 10px auto 0; border-radius: 99px; background: var(--linha-2); }
  .fe-cx header { padding-top: 10px !important; }
}
@keyframes folhaSobe { from { transform: translateY(40px); opacity: .6; } to { transform: none; opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .fac-ecra .fe-cx { animation: none; } }

.exp-amb button { gap: 8px; }
.exp-amb button span { white-space: nowrap; }
.fac-op .fac-t small { font-size: .8rem; }
.vazio-exp .vz-acao { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 14px; }
.vazio-exp .off-vazio-t { max-width: 46ch; }
@media (max-width: 760px) {
  .pag-exp .cab-pag h1 { font-size: 1.7rem; }
  .exp-amb { max-width: none; }
  .exp-amb button { height: 42px !important; font-size: .9rem !important; padding: 0 8px !important; }
  .exp-amb button i { display: none; }
}
.bg2-op.zero:not(.on) { opacity: .72; }
.bg2-op.zero .bg2-op-n { background: var(--sup-2); color: var(--tinta-3); }

.pub-wizard .pub-progresso { background: var(--sup); border-color: var(--linha); }
.pub-progresso-top { color: var(--tinta-2); }
.pub-progresso-top strong { color: var(--bic); }
.pub-progresso-barra { background: var(--sup-3); }
.pub-progresso-tabs button { color: var(--tinta-3); }
.pub-progresso-tabs button > span { background: var(--sup-2); border-color: var(--linha); color: var(--tinta-2); font-size: .9rem !important; }
.pub-progresso-tabs button.atual { color: var(--bic); }
.pub-progresso-tabs button.atual > span { background: var(--bic); border-color: var(--bic); color: var(--sobre-bic); }
.pub-progresso-tabs button.feita > span { background: var(--azul-suave) !important; color: var(--bic) !important; border-color: rgba(35, 70, 230, .3) !important; }
.pub-progresso-tabs button small { font-size: .84rem !important; }
.pub-scope, .pub-entidade { background: var(--sup); border-color: var(--linha); color: var(--tinta); }
.pub-scope.ativo, .pub-entidade.ativo { background: var(--azul-suave); border-color: var(--bic); box-shadow: inset 0 0 0 1px var(--bic); }
.pub-scope small, .pub-entidade > span small { color: var(--tinta-2); }

.pub-enti-s { grid-template-columns: repeat(auto-fill, minmax(min(240px, 100%), 1fr)); gap: 10px; }
.pub-ent-s { min-height: 64px; padding: 12px 16px !important; }
.pub-ent-t { display: grid; gap: 2px; min-width: 0; flex: 1; }
.pub-ent-t b { font: 700 1.05rem var(--f-tit); letter-spacing: .01em; }
.pub-ent-t small { font-size: .9rem !important; color: var(--tinta-2); line-height: 1.3; }
.pub-ent-s > i:last-child { flex: none; width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; background: var(--bic); color: var(--sobre-bic) !important; font-size: .76rem; }
.pub-ent-s.ativo > i:last-child { opacity: 1; }
.pub-ent-nada { grid-column: 1 / -1; display: flex; align-items: flex-start; gap: 10px; margin: 2px 0; padding: 14px 16px; border: 1px dashed var(--linha-2); border-radius: 14px; color: var(--tinta-2); font-size: .98rem; line-height: 1.45; }
.pub-ent-nada i { color: var(--bic); margin-top: 3px; }
.pub-ent-nada[hidden] { display: none; }

.pub-fins { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 14px 0 6px; }
.pub-fin { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding: 16px; min-height: 132px; border: 1px solid var(--linha); border-radius: 16px; background: var(--sup); color: var(--tinta); text-align: left; cursor: pointer; font: inherit; transition: border-color .12s, background .12s; }
.pub-fin:hover { border-color: rgba(35, 70, 230, .45); }
.pub-fin.ativo { border-color: var(--bic); background: var(--azul-suave); box-shadow: inset 0 0 0 1px var(--bic); }
.pub-fin-ic { width: 44px; height: 44px; border-radius: 13px; display: grid; place-items: center; background: var(--azul-suave); color: var(--bic); font-size: 1.2rem; }
.pub-fin.ativo .pub-fin-ic { background: var(--bic); color: var(--sobre-bic); }
.pub-fin-t { display: grid; gap: 4px; }
.pub-fin-t b { font-size: 1.06rem; }
.pub-fin-t small { font-size: .92rem; color: var(--tinta-2); line-height: 1.4; }
.pub-fin-t em { justify-self: start; margin-top: 4px; font-style: normal; font-size: .8rem; font-weight: 700; padding: 2px 9px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); }
.pub-fin.ativo .tc-ok { opacity: 1; transform: none; }
@media (max-width: 760px) {
  .pub-fins { grid-template-columns: 1fr; gap: 8px; }
  .pub-fin { flex-direction: row; align-items: center; min-height: 0; padding: 14px; padding-right: 44px; }
  .pub-fin .tc-ok { top: 50%; transform: translateY(-50%) scale(.6); }
  .pub-fin.ativo .tc-ok { transform: translateY(-50%); }
}

.pub-ficheiro-acesso { gap: 14px !important; padding: 12px 14px !important; border: 1px solid var(--linha) !important; border-radius: 16px !important; background: var(--sup) !important; color: var(--tinta) !important; box-shadow: var(--sombra-leve); }
.pub-ficheiro-acesso.falta { border-style: dashed !important; }
.pub-ficheiro-acesso > .pfa-capa, .pfa-capa { flex: none; width: 46px; aspect-ratio: 210 / 297; border-radius: 6px; border: 1px solid var(--linha); background: #fff; display: grid; place-items: center; overflow: hidden; color: var(--bic); font-size: 1.2rem; box-shadow: 0 2px 6px rgba(16, 22, 51, .1); }
.pfa-capa img { width: 100%; height: 100%; object-fit: cover; object-position: top; display: block; }
.pub-ficheiro-acesso > .pfa-t { min-width: 0; flex: 1; display: grid; gap: 2px; }
.pfa-t small { display: inline-flex; align-items: center; gap: 6px; font-size: .84rem !important; font-weight: 650; color: var(--tinta-2) !important; }
.pfa-t small i { color: #16a34a; }
.pfa-t strong { font-size: 1rem !important; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pfa-t em { font-style: normal; font-size: .86rem; color: var(--tinta-2); }
.pub-ficheiro-voltar { display: inline-flex !important; align-items: center; gap: 8px !important; min-height: 42px; padding: 0 16px !important; border-radius: 12px !important; border: 1px solid var(--linha-2) !important; background: var(--sup) !important; color: var(--tinta) !important; font-size: .95rem !important; font-weight: 700 !important; }
.pub-ficheiro-voltar:hover { border-color: var(--bic) !important; color: var(--bic) !important; }
@media (max-width: 500px) { .pub-ficheiro-voltar span { display: none; } .pub-ficheiro-voltar { width: 42px; padding: 0 !important; justify-content: center; } }

.pr2 { padding: 20px !important; background: var(--sup) !important; border-color: var(--linha) !important; }
.pr2 .pub-resumo-cab { border-color: var(--linha); }
.pr2 .pub-resumo-icone { background: var(--azul-suave); color: var(--bic); }
.pr2 .pub-resumo-cab h3 { font-size: 1.15rem !important; }
.pr2 .pub-resumo-cab p { font-size: .9rem !important; color: var(--tinta-2); }
.pr2-topo { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 16px; align-items: start; padding: 16px 0; border-bottom: 1px solid var(--linha); }
.pr2-a4 { position: relative; width: 112px; aspect-ratio: 210 / 297; border-radius: 6px; background: #fff; border: 1px solid #dfe3ee; box-shadow: 0 6px 18px rgba(16, 22, 51, .12), 0 1px 2px rgba(16, 22, 51, .08); overflow: hidden; display: grid; place-items: center; }
.pr2-a4 img { width: 100%; height: 100%; object-fit: contain; object-position: top; display: block; background: #fff; }
.pr2-a4-vazia { display: grid; justify-items: center; gap: 6px; padding: 8px; text-align: center; color: #8a93ad; }
.pr2-a4-vazia i { font-size: 1.6rem; }
.pr2-a4-vazia small { font-size: .78rem; line-height: 1.3; }
.pr2-pags { position: absolute; right: 5px; bottom: 5px; padding: 2px 7px; border-radius: 6px; background: rgba(16, 22, 51, .82); color: #fff; font-size: .76rem; font-weight: 700; }
.pr2-tit { display: grid; gap: 6px; min-width: 0; }
.pr2-tit small { font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--tinta-3); }
.pr2-tit strong { font: 700 1.04rem/1.35 var(--f-tit); color: var(--tinta); overflow-wrap: anywhere; }
.pr2-tit strong.falta { color: var(--tinta-3); font-weight: 600; }
.pr2-tit .etiquetas { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 2px; }
.pr2-dados { display: grid; gap: 14px; padding-top: 14px; }
.pr2-g h4 { display: flex; align-items: center; gap: 8px; margin: 0 0 6px; font-size: .86rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: var(--tinta-2); }
.pr2-g h4 i { color: var(--bic); width: 16px; text-align: center; }
.pr2-g dl { margin: 0; display: grid; gap: 6px; }
.pr2-l { display: grid; grid-template-columns: minmax(96px, 36%) minmax(0, 1fr); gap: 10px; align-items: baseline; }
.pr2-l dt { font-size: .9rem !important; color: var(--tinta-2) !important; }
.pr2-l dd { margin: 0; font-size: .95rem !important; font-weight: 650 !important; color: var(--tinta) !important; text-align: left !important; overflow-wrap: anywhere; }
.pr2-l.falta dd span { color: var(--tinta-3); font-weight: 500; font-style: italic; }
.pr2-desc { grid-template-columns: 1fr; }
.pr2-desc dd { font-weight: 500 !important; line-height: 1.5; }
.pr2 .pub-resumo-nota { font-size: .88rem !important; }
.et-fin { background: #E8F7EE; color: #12703F; }
.et-fin-bolsa { background: #FFF3DC; color: #8A5300; }
.et-fin-estagio { background: #F1E9FF; color: #5B2FB0; }
:root[data-theme="dark"] .et-fin { background: #173528; color: #7EE2A8; }
:root[data-theme="dark"] .et-fin-bolsa { background: #3A2A10; color: #F5C97A; }
:root[data-theme="dark"] .et-fin-estagio { background: #2A1F45; color: #C9B2FF; }
.et-gratis { background: #E8F7EE; color: #12703F; }
.pr2-compacto { display: none; }
@media (max-width: 670px) {
  .pr2-compacto, .partilhar:has(.pub-wizard) .pub-resumo.pr2-compacto { display: block; position: static !important; margin: 16px 0 4px; box-shadow: none !important; }
  .pr2-topo { grid-template-columns: 92px minmax(0, 1fr); gap: 12px; }
  .pr2-a4 { width: 92px; }
}

.u-aviso-not { align-items: flex-start !important; gap: 10px !important; margin: 22px 0 0 !important; padding: 14px 16px; border-radius: 14px; background: var(--azul-suave); color: var(--tinta-2); font-size: .95rem !important; line-height: 1.45; }
.u-aviso-not i { margin-top: 3px; }
#verif-declara { margin: 14px 0 0; padding: 14px 16px; border: 1px solid var(--linha); border-radius: 14px; background: var(--sup); font-size: .98rem; line-height: 1.45; }
#verif-declara input { width: 22px; height: 22px; }
#u-erro:not(:empty) { margin-top: 14px; }
#form-partilhar .linha-btn { margin-top: 22px; }
#form-partilhar .linha-btn .btn-lg { min-height: 52px; }
@media (max-width: 670px) {
  .u-aviso-not { margin-top: 18px !important; font-size: .92rem !important; }
  #verif-declara { margin-top: 12px; font-size: .95rem; }
  #form-partilhar .linha-btn { margin-top: 18px; }
  #form-partilhar .linha-btn .btn { width: 100%; justify-content: center; }
}

@media (max-width: 760px) {
  .pub-wizard .pub-progresso { padding: 14px 0 12px !important; overflow: hidden; }
  .pub-wizard .pub-progresso-top, .pub-wizard .pub-progresso-barra { margin-left: 14px; margin-right: 14px; }
  .pub-progresso-tabs { display: flex !important; gap: 6px !important; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none; padding: 2px 14px 2px; scroll-snap-type: x proximity; scroll-padding-inline: 14px; }
  .pub-progresso-tabs::-webkit-scrollbar { display: none; }
  .pub-progresso-tabs button { flex: none !important; flex-direction: row !important; gap: 8px !important; padding: 7px 12px 7px 7px !important; border: 1px solid var(--linha) !important; border-radius: 999px !important; background: var(--sup) !important; scroll-snap-align: start; }
  .pub-progresso-tabs button > span { width: 28px !important; height: 28px !important; }
  .pub-progresso-tabs button small { font-size: .88rem !important; white-space: nowrap !important; }
  .pub-progresso-tabs button.atual { border-color: var(--bic) !important; background: var(--azul-suave) !important; }
}
.pr2-sis { margin: 6px 0 0; font-size: .82rem; line-height: 1.45; color: var(--tinta-2); }
@media (max-width: 760px) {
  .topo { grid-template-columns: auto minmax(0, 1fr) auto; }
  .topo .marca { min-width: 0; overflow: hidden; }
  .topo .marca span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .acoes > .conta-w, .acoes .av-link { flex: none; }
  .acoes .av-link .av { max-width: none; flex: none; }
}
@media (max-width: 400px) {
  .topo { padding: 0 12px 0 4px; gap: 6px; }
  .topo .marca { font-size: 1.04rem; gap: 8px; }
  .topo .marca svg { width: 28px; height: 28px; }
  .acoes { gap: 2px; }
}
@media (max-width: 340px) { .topo .marca span { display: none; } }

.esc-cats3 .esc-cat { flex-direction: row !important; align-items: center !important; min-height: 64px !important; transform: none !important; transition: border-color .15s, background .15s; }
.esc-cats3 .esc-cat:hover { transform: none !important; border-color: rgba(35, 70, 230, .45); background: var(--azul-suave); }
.esc-cats3 .esc-cat-ic { flex: none; width: 40px; height: 40px; border-radius: 12px; font-size: 1.05rem; }
.esc-cats3 .esc-cat-t { width: auto !important; flex: 1 1 auto; }
.esc-cats3 .esc-cat-t b { line-height: 1.25; }
.esc-cats3 .esc-cat-t small { line-height: 1.35; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.esc-cats3 .esc-cat em { flex: none; }
@media (max-width: 760px) {
  .esc-cats3 { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 8px !important; }
  .esc-cats3 .esc-cat { flex-direction: column !important; align-items: flex-start !important; gap: 8px !important; padding: 10px !important; min-height: 0 !important; border-radius: 14px; }
  .esc-cats3 .esc-cat-ic { width: 32px; height: 32px; border-radius: 10px; font-size: .92rem; }
  .esc-cats3 .esc-cat-t small { display: none; }
  .esc-cats3 .esc-cat-t b { font-size: .9rem; }
  .esc-cats3 .esc-cat em { position: absolute; top: 10px; right: 10px; }
}
.esc-fins { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 16px; }
.esc-fin { min-height: 40px; padding: 0 16px; border: 1px solid var(--linha-2); border-radius: 999px; background: var(--sup); color: var(--tinta); font: inherit; font-size: .95rem; font-weight: 600; cursor: pointer; }
.esc-fin:hover { border-color: var(--bic); color: var(--bic); }
.esc-fin.ativo { background: var(--bic); border-color: var(--bic); color: var(--sobre-bic, #fff); }
.ut-c { display: none; }
@media (max-width: 560px) {
  .unis-tipos { display: flex !important; width: 100%; }
  .unis-tipos button { flex: 1 1 0; min-width: 0; justify-content: center; padding: 0 10px !important; white-space: nowrap; }
  .ut-l { display: none; }
  .ut-c { display: inline; }
}
.unis-prov-select .up-c { display: none; font-style: normal; }
@media (max-width: 760px) {
  .unis-prov-select .up-c { display: block; max-width: 96px; font-size: .92rem; font-weight: 650; color: var(--tinta); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .unis-prov-select { gap: 8px !important; }
}
.escl-unica .caixa-v { border-radius: 50%; }
.escl-unica .fac-op[aria-pressed="true"] .caixa-v svg { display: none; }
.escl-unica .fac-op[aria-pressed="true"] .caixa-v::after { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--sobre-bic, #fff); }
.escl-imediato .fac-op[aria-pressed="true"] { background: var(--azul-suave); }
.escl-imediato .fe-lista { padding-bottom: calc(14px + env(safe-area-inset-bottom, 0px)); }
.fac-op .fac-ic { flex: none; width: 20px; text-align: center; color: var(--bic); font-size: 1rem; }
.fac-op.zero .fac-ic { color: var(--tinta-3); }
.fac-op[disabled] { cursor: not-allowed; }
.fac-op[disabled]:hover { background: none; }

.ff-pessoa .ff-todos { grid-template-columns: minmax(0, 1fr); margin-bottom: 18px; }
.ff-pessoa .ff-sec h3 { display: flex; align-items: center; gap: 8px; margin: 0 0 10px; font-size: .9rem; font-weight: 700; letter-spacing: .02em; text-transform: uppercase; color: var(--tinta-2); }
.ff-pessoa .ff-cat-t strong { font-size: 1rem; line-height: 1.3; }
.ff-pessoa .ff-cat-t small { font-size: .85rem; }
.ff-pessoa .ff-cat b { font-size: .86rem; }
@media (max-width: 760px) {
  .ff-pessoa .ff-cat { padding: 10px 12px; }
  .ff-pessoa .ff-cat-ic { width: 38px; height: 38px; }
}

.tax-tipos2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; max-width: 860px; margin: 4px 0 12px; }
.tax-tipo-b { display: flex; align-items: center; gap: 12px; min-width: 0; padding: 14px 16px; border: 1.5px solid var(--linha-2); border-radius: 16px; background: var(--sup); color: var(--tinta); font: inherit; text-align: left; cursor: pointer; transition: border-color .15s, background .15s; }
.tax-tipo-b:hover { border-color: rgba(35, 70, 230, .45); }
.tax-tipo-b[aria-pressed="true"] { border-color: var(--bic); background: var(--azul-suave); box-shadow: 0 0 0 3px rgba(35, 70, 230, .12); }
.tax-tipo-ic { flex: none; width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; background: var(--sup-2); color: var(--bic); font-size: 1.1rem; }
.tax-tipo-b[aria-pressed="true"] .tax-tipo-ic { background: var(--bic); color: #fff; }
.tax-tipo-t { display: grid; gap: 2px; min-width: 0; }
.tax-tipo-t strong { font-size: 1.02rem; line-height: 1.25; }
.tax-tipo-t small { font-size: .86rem; line-height: 1.35; color: var(--tinta-2); }
.tax-ajuda { display: flex; align-items: flex-start; gap: 10px; max-width: 860px; margin: 0 0 16px; padding: 12px 14px; border-radius: 14px; background: var(--sup-2); color: var(--tinta-2); font-size: .95rem; line-height: 1.5; }
.tax-ajuda i { color: var(--bic); margin-top: 4px; }
.tax-g + .disc-conc { margin-top: 18px; }
@media (max-width: 640px) {
  .tax-tipos2 { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .tax-tipo-b { padding: 12px 14px; }
}

.rodape-redes { display: grid; gap: 10px; margin: 18px 0 16px; }
.rodape-redes > span { font-size: .9rem; font-weight: 700; color: var(--tinta); }
.rodape-redes-l { display: flex; flex-wrap: wrap; gap: 10px; }
.rodape-redes-l a { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--linha-2); background: var(--sup); color: var(--tinta); font-size: 1.15rem; text-decoration: none; transition: background .15s, color .15s, border-color .15s, transform .15s; }
.rodape-redes-l a:hover, .rodape-redes-l a:focus-visible { background: var(--bic); border-color: var(--bic); color: #fff; transform: translateY(-2px); }
.redes-adm .redes-g { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 16px; }
.redes-adm .rede-campo label { display: inline-flex; align-items: center; gap: 8px; }
.redes-adm .rede-campo label i { width: 18px; text-align: center; color: var(--bic); font-size: 1.05rem; }
@media (max-width: 640px) { .redes-adm .redes-g { grid-template-columns: minmax(0, 1fr); } }
@media (prefers-reduced-motion: reduce) { .rodape-redes-l a { transition: none; } .rodape-redes-l a:hover { transform: none; } }

.tsz-abas { display: inline-flex; gap: 4px; padding: 4px; margin: 4px 0 18px; border-radius: 999px; background: var(--sup-2); border: 1px solid var(--linha); max-width: 100%; }
.tsz-aba { min-height: 40px; padding: 0 18px; border: 0; border-radius: 999px; background: none; color: var(--tinta-2); font: inherit; font-size: .98rem; font-weight: 650; white-space: nowrap; cursor: pointer; }
.tsz-aba:hover { color: var(--tinta); }
.tsz-aba[aria-selected="true"] { background: var(--sup); color: var(--bic); box-shadow: 0 1px 4px rgba(16, 22, 51, .12); }
@media (max-width: 480px) {
  .tsz-abas { display: flex; width: 100%; }
  .tsz-aba { flex: 1 1 0; min-width: 0; padding: 0 8px; }
}

/* lisibilité */
.unis-secao .sub-bloco { font-size: .92rem; }
.uni-c-n { font-size: .9rem !important; }
.uni-c-m, .uni-c-p { font-size: .84rem !important; }
.esc-descobrir-cab p { font-size: .92rem; line-height: 1.5; }
.unis-total, .esc-bloco-resultados #esc-n-atual { font-size: .8rem; }
.pub-progresso-top { font-size: .92rem; }
.pub-scope b { font-size: 1rem; }
.pub-scope small { font-size: .86rem; }
.pub-entidade > span { font-size: .95rem; }
.pub-entidade > span small { font-size: .84rem; }
.pub-gratis, .aviso-medio { font-size: .92rem; }
.pub-sugerir { font-size: .88rem; }
.unis-parecidas a { font-size: .92rem; }
.pub-resumo-nota { font-size: .86rem; }
.pub-legado { font-size: .88rem; }
.bg-mini { font-size: .8rem; }
.unis-prov-select strong { font-size: .92rem; }
.unis-prov-select small { font-size: .78rem; }
.selo-ensino-medio { font-size: .8rem; }
.cartao .quem .quem-t small { font-size: .8rem; }
@media (max-width: 670px) { .pub-wizard .pub-navegacao .btn { font-size: .98rem; } }

/* mode sombre */
:root[data-theme="dark"] .uni-c, :root[data-theme="dark"] .esc-descobrir { background: var(--sup) !important; border-color: var(--linha) !important; box-shadow: none; }
:root[data-theme="dark"] .uni-c-s, :root[data-theme="dark"] .esc-descobrir-cab h2 { color: var(--tinta) !important; }
:root[data-theme="dark"] .uni-c-n, :root[data-theme="dark"] .esc-descobrir-cab p, :root[data-theme="dark"] .unis-secao .sub-bloco { color: var(--tinta-2) !important; }
:root[data-theme="dark"] .uni-c-pe { border-color: var(--linha) !important; }
:root[data-theme="dark"] .uni-c-m { color: var(--bic) !important; }
:root[data-theme="dark"] .uni-c-p, :root[data-theme="dark"] .uni-c-m.zero { color: var(--tinta-3) !important; }
:root[data-theme="dark"] .esc-procura-nova { background: var(--sup-2) !important; border-color: var(--linha-2) !important; }
:root[data-theme="dark"] .esc-procura-nova input { color: var(--tinta) !important; }
:root[data-theme="dark"] .esc-descobrir-cab > i, :root[data-theme="dark"] .unis-total, :root[data-theme="dark"] .esc-bloco-resultados #esc-n-atual { background: var(--azul-suave); color: var(--bic); }
:root[data-theme="dark"] .uni-c-topo > .uni-foto { border-color: var(--linha) !important; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .uni-c, :root:not([data-theme="light"]) .esc-descobrir { background: var(--sup) !important; border-color: var(--linha) !important; box-shadow: none; }
  :root:not([data-theme="light"]) .uni-c-s, :root:not([data-theme="light"]) .esc-descobrir-cab h2 { color: var(--tinta) !important; }
  :root:not([data-theme="light"]) .uni-c-n, :root:not([data-theme="light"]) .esc-descobrir-cab p, :root:not([data-theme="light"]) .unis-secao .sub-bloco { color: var(--tinta-2) !important; }
  :root:not([data-theme="light"]) .uni-c-pe { border-color: var(--linha) !important; }
  :root:not([data-theme="light"]) .uni-c-m { color: var(--bic) !important; }
  :root:not([data-theme="light"]) .uni-c-p, :root:not([data-theme="light"]) .uni-c-m.zero { color: var(--tinta-3) !important; }
  :root:not([data-theme="light"]) .esc-procura-nova { background: var(--sup-2) !important; border-color: var(--linha-2) !important; }
  :root:not([data-theme="light"]) .esc-procura-nova input { color: var(--tinta) !important; }
  :root:not([data-theme="light"]) .esc-descobrir-cab > i, :root:not([data-theme="light"]) .unis-total, :root:not([data-theme="light"]) .esc-bloco-resultados #esc-n-atual { background: var(--azul-suave); color: var(--bic); }
  :root:not([data-theme="light"]) .uni-c-topo > .uni-foto { border-color: var(--linha) !important; }
}

/* ============ 243.ª parte: o Monitor (ao estilo das IA, só com o acervo) ============ */
body.rota-monitor .rodape, body.rota-monitor .subir { display: none !important; }
.mon { display: flex; flex-direction: column; min-height: calc(100vh - 150px); max-width: 860px; margin: 0 auto; }
.mon-topo { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 4px 0 10px; }
.mon-marca { display: inline-flex; align-items: center; gap: 8px; font: 600 1rem var(--f-tit); color: var(--tinta); }
.mon-marca i { color: var(--bic); }
.mon-marca em { font-style: normal; font: 600 .7rem var(--f-tit); text-transform: uppercase; letter-spacing: .06em; padding: 2px 7px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); }
.mon-ola { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 14px; padding: 4vh 0 8vh; }
.mon-orb { width: 72px; height: 72px; border-radius: 24px; display: grid; place-items: center; font-size: 1.8rem; color: #fff; background: linear-gradient(135deg, #3b63ff, #1631b0); box-shadow: 0 18px 40px rgba(35, 70, 230, .35); animation: mon-flutua 4s ease-in-out infinite; }
@keyframes mon-flutua { 50% { transform: translateY(-6px); } }
.mon-ola h1 { margin: 6px 0 0; font-size: clamp(1.6rem, 3.4vw, 2.3rem); line-height: 1.15; }
.mon-ola p { margin: 0; max-width: 560px; color: var(--tinta-2); font-size: 1.02rem; }
.mon-caixa { position: relative; width: 100%; display: flex; align-items: flex-end; gap: 10px; padding: 10px 10px 10px 18px; border: 1px solid var(--linha); border-radius: 26px; background: var(--sup); box-shadow: 0 12px 34px rgba(16, 22, 51, .08); transition: border-color .15s, box-shadow .15s; }
.mon-caixa:focus-within { border-color: rgba(35, 70, 230, .5); box-shadow: 0 0 0 4px rgba(35, 70, 230, .12), 0 12px 34px rgba(16, 22, 51, .08); }
.mon-caixa.grande { max-width: 720px; margin-top: 10px; }
.mon-caixa textarea { flex: 1; min-width: 0; border: 0; outline: none; resize: none; background: none; font: inherit; font-size: 1.05rem; line-height: 1.5; color: var(--tinta); padding: 8px 0; max-height: 180px; }
.mon-enviar { flex: none; width: 44px; height: 44px; border: 0; border-radius: 50%; display: grid; place-items: center; background: var(--bic); color: #fff; cursor: pointer; }
.mon-enviar svg { width: 20px; height: 20px; transform: rotate(-90deg); }
.mon-ex { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; width: 100%; max-width: 720px; margin-top: 6px; }
.mon-ex-b { display: flex; align-items: center; gap: 10px; padding: 14px 16px; border: 1px solid var(--linha); border-radius: 16px; background: var(--sup); color: var(--tinta); font: inherit; font-size: .98rem; text-align: left; cursor: pointer; }
.mon-ex-b:hover { border-color: rgba(35, 70, 230, .45); background: var(--azul-suave); }
.mon-ex-b i { color: var(--bic); }
.mon-conversa { flex: 1; display: flex; flex-direction: column; gap: 18px; padding: 8px 0 20px; }
.mon-msg.eu { display: flex; justify-content: flex-end; }
.mon-msg.eu .mon-bolha { max-width: 78%; padding: 12px 16px; border-radius: 20px 20px 6px 20px; background: var(--bic); color: #fff; font-size: 1rem; line-height: 1.5; white-space: pre-wrap; }
.mon-msg.ia { display: flex; gap: 12px; align-items: flex-start; }
.mon-av { flex: none; width: 36px; height: 36px; border-radius: 12px; display: grid; place-items: center; color: #fff; background: linear-gradient(135deg, #3b63ff, #1631b0); }
.mon-ia-c { flex: 1; min-width: 0; display: grid; gap: 12px; }
.mon-txt { margin: 0; font-size: 1.02rem; line-height: 1.6; color: var(--tinta); }
.mon-txt b { font-weight: 600; color: var(--bic); }
.mon-pensa { display: inline-flex; align-items: center; gap: 5px; padding: 10px 0; color: var(--tinta-2); font-size: .95rem; }
.mon-pensa i { width: 7px; height: 7px; border-radius: 50%; background: var(--bic); animation: mon-ponto 1s infinite ease-in-out; }
.mon-pensa i:nth-child(2) { animation-delay: .15s; } .mon-pensa i:nth-child(3) { animation-delay: .3s; }
.mon-pensa span { margin-left: 8px; }
@keyframes mon-ponto { 0%, 80%, 100% { opacity: .25; transform: translateY(0); } 40% { opacity: 1; transform: translateY(-3px); } }
.mon-docs { display: grid; gap: 8px; animation: mon-entra .35s ease both; }
@keyframes mon-entra { from { opacity: 0; transform: translateY(6px); } }
.mon-doc { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border: 1px solid var(--linha); border-radius: 16px; background: var(--sup); color: var(--tinta); text-decoration: none; transition: border-color .12s, background .12s; }
.mon-doc:hover { border-color: rgba(35, 70, 230, .45); background: var(--azul-suave); }
.mon-doc-th { flex: none; width: 48px; height: 62px; border-radius: 8px; overflow: hidden; background: var(--sup-2); border: 1px solid var(--linha); }
.mon-doc-th img, .mon-doc-th > * { width: 100%; height: 100%; object-fit: cover; }
.mon-doc-t { flex: 1; min-width: 0; display: grid; gap: 3px; }
.mon-doc-t strong { font-weight: 600; font-size: .98rem; line-height: 1.3; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.mon-doc-t small { color: var(--tinta-2); font-size: .84rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mon-doc-et { display: flex; flex-wrap: wrap; gap: 5px; }
.mon-doc-et em { font-style: normal; font-size: .74rem; padding: 2px 8px; border-radius: 999px; background: var(--sup-2); color: var(--tinta-2); display: inline-flex; align-items: center; gap: 3px; }
.mon-doc-et em svg { width: 11px; height: 11px; }
.mon-doc-et em.mon-res { background: #E8F7EF; color: #12764A; width: auto; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .mon-doc-et em.mon-res { background: #10331F; color: #86E0AC; } }
:root[data-theme="dark"] .mon-doc-et em.mon-res { background: #10331F; color: #86E0AC; }
.mon-doc-et em.mon-gratis { background: var(--azul-suave); color: var(--bic); }
.mon-orb svg { width: 34px; height: 34px; }
.mon-av svg { width: 18px; height: 18px; }
.mon-marca svg { width: 18px; height: 18px; color: var(--bic); }
.mon-doc-seta { color: var(--tinta-3); }
.mon-sugs { display: flex; flex-wrap: wrap; gap: 8px; animation: mon-entra .35s .1s ease both; }
.mon-sug { display: inline-flex; align-items: center; gap: 7px; padding: 8px 14px; border: 1px solid var(--linha); border-radius: 999px; background: var(--sup); color: var(--tinta); font: inherit; font-size: .9rem; cursor: pointer; }
.mon-sug:hover { border-color: var(--bic); color: var(--bic); }
.mon-sug i { color: var(--bic); font-size: .85rem; }
.mon-pe { position: sticky; bottom: 0; padding: 10px 0 14px; background: linear-gradient(180deg, transparent, var(--mesa) 30%); display: grid; gap: 6px; justify-items: center; }
.mon-pe small { color: var(--tinta-3); font-size: .78rem; }
.nav-beta { margin-left: auto; font: 600 .62rem var(--f-tit); text-transform: uppercase; letter-spacing: .06em; padding: 2px 6px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); }
@media (max-width: 760px) {
  .mon { min-height: calc(100vh - 190px); }
  .mon-ex { grid-template-columns: 1fr; }
  .mon-msg.eu .mon-bolha { max-width: 88%; }
  .mon-av { width: 30px; height: 30px; border-radius: 10px; font-size: .85rem; }
  body.rota-monitor .abas-m { display: none !important; }
  body.rota-monitor main { padding-bottom: 16px !important; }
  .mon-pe { padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px)); }
}

/* ============ 245.ª parte ============ */
.exp-lado { display: grid; gap: 14px; align-content: start; }
.exp-lado > .facetas { position: sticky; }
.exp-lado .pub-inline { margin: 0; }
.exp-amb-l { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.exp-monitor { display: inline-flex; align-items: center; gap: 6px; height: 44px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--linha); background: var(--sup); color: var(--bic); font: 600 .9rem var(--f-tit); text-decoration: none; }
.exp-monitor svg { width: 18px; height: 18px; }
.exp-monitor:hover { border-color: var(--bic); background: var(--azul-suave); }
.sug-mats > h4 { position: sticky; top: 0; z-index: 2; background: var(--sup); margin: 0; padding: 10px 14px 8px; }
.sug .sug-todos { position: sticky; bottom: 0; z-index: 2; background: var(--sup); box-shadow: 0 -8px 16px rgba(16, 22, 51, .06); }
@media (min-width: 761px) {
  .pub-navegacao { position: sticky; bottom: 12px; z-index: 20; margin: 16px 0 0 !important; padding: 10px 14px !important; border-radius: 16px; background: var(--sup); border: 1px solid var(--linha); box-shadow: 0 12px 30px rgba(16, 22, 51, .12); }
}
.pub-fin { display: flex !important; flex-direction: column; align-items: flex-start; gap: 10px; }
.pub-fin-t { display: grid; gap: 4px; }
.pub-fin-t em { font-style: normal; white-space: nowrap; font: 600 .76rem var(--f-tit); padding: 4px 10px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); width: max-content; margin-top: 4px; }
.form-sec .ano-passo { margin-top: 8px; }
.form-sec .campo + p { margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--linha); }
.foco-chips2 { margin-top: 14px; }
.foco-rot { margin: 0 0 8px; font: 600 .92rem var(--f-tit); color: var(--tinta-2); }
.foco-chips2 .chip small { color: var(--tinta-3); margin-left: 6px; }
.foco-chips2 .chip b { margin-left: 8px; font: 600 .78rem var(--f-tit); padding: 1px 8px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); }
.sec-faixa { padding: 10px 0 0; }
.sec-faixa .pub-inline { margin: 0; }
.sec-faixa .pub-inline img { width: 100%; aspect-ratio: 4 / 1; object-fit: cover; border-radius: 20px; display: block; }
.faixa-vazia { width: 100%; aspect-ratio: 4 / 1; border-radius: 20px; border: 1px dashed var(--linha); background: repeating-linear-gradient(135deg, var(--sup-2) 0 12px, transparent 12px 24px); opacity: .55; }
.inicio-sug { margin-top: 22px; }
.inicio-sug .bloco-cab p { margin: 2px 0 0; color: var(--tinta-2); }
@media (max-width: 760px) { .faixa-vazia { display: none; } .sec-faixa { padding: 0; } }
.geral-cx { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; border-left: 4px solid #B45309; }
.geral-cx small { display: block; color: var(--tinta-2); }
.monitor-ia header { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.monitor-ia h3 i { color: var(--bic); margin-right: 6px; }
body.rota-monitor, body.rota-monitor main { background: var(--mesa); }
.mon-pe { background: linear-gradient(180deg, transparent, var(--mesa) 30%); }
.mon-caixa { border-color: var(--linha); box-shadow: 0 10px 30px rgba(16, 22, 51, .07); }
.mon-doc, .mon-ex-b, .mon-sug { background: var(--sup); }

/* ============ 246.ª parte ============ */
/* Explorar: os separadores e a estrela do Monitor na mesma linha, também no telemóvel */
.exp-amb-l { flex-wrap: nowrap; }
.exp-amb { flex: 1 1 auto; min-width: 0; }
.exp-monitor { flex: none; width: 44px; padding: 0; justify-content: center; }
.exp-monitor svg { width: 20px; height: 20px; }
/* Monitor: conversas guardadas, resultados dentro dos PDF */
.mon-topo-b { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.mon-convs { display: grid; gap: 8px; }
.mon-conv { display: flex; align-items: center; gap: 8px; border: 1px solid var(--linha); border-radius: 14px; background: var(--sup); padding: 4px 6px 4px 0; }
.mon-conv.atual { border-color: var(--bic); background: var(--azul-suave); }
.mon-conv-a { flex: 1; min-width: 0; display: grid; gap: 2px; text-align: left; border: 0; background: none; font: inherit; color: var(--tinta); padding: 10px 14px; cursor: pointer; }
.mon-conv-a strong { font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mon-conv-a small { color: var(--tinta-3); font-size: .78rem; }
.mon-conv-x { flex: none; }
.mon-pdf { display: grid; gap: 10px; margin-top: 4px; }
.mon-doc-pg { display: grid; place-items: center; color: var(--bic); font-size: 1.2rem; gap: 2px; }
.mon-doc-pg small { font-size: .62rem; color: var(--tinta-3); }
/* Início: a faixa também no telemóvel (a imagem; o espaço tracejado só no computador) */
@media (max-width: 760px) { .sec-faixa { padding: 4px 0 0; } .sec-faixa .pub-inline img { border-radius: 16px; } }
/* as novidades (simulados) sem encostar às bordas no telemóvel */
@media (max-width: 760px) { .novs-l { margin: 0 -16px !important; padding: 0 16px !important; scroll-padding-inline: 16px; } }
/* o topo do simulado no telemóvel: título + Terminar + ×; por baixo a barra e o tempo */
@media (max-width: 760px) {
  .ts .ts-topo, .ts-topo { display: grid !important; grid-template-columns: minmax(0, 1fr) auto auto !important; grid-template-areas: "tt ent x" "barra barra tempo" !important; gap: 10px !important; align-items: center !important; padding: 12px 16px 10px !important; }
  .ts .ts-topo .ts-tt, .ts-topo .ts-tt { grid-area: tt !important; }
  .ts .ts-topo .tp-x, .ts-topo .tp-x { grid-area: x !important; }
  .ts .ts-topo .ts-barra, .ts-topo .ts-barra { grid-area: barra !important; margin: 0 !important; }
  .ts .ts-topo .ts-tempo, .ts-topo .ts-tempo { grid-area: tempo !important; justify-content: center !important; font-size: 1rem !important; padding: 6px 10px !important; border-radius: 12px !important; margin: 0 !important; }
  .ts .ts-topo .ts-entregar-topo, .ts-topo .ts-entregar-topo { grid-area: ent !important; width: auto !important; min-height: 36px !important; padding: 6px 12px !important; font-size: .86rem !important; }
  .ts-palco .katex { font-size: 1.05em; } .ts-palco .katex-display { margin: 10px 0; overflow-x: auto; overflow-y: hidden; } .ts-palco .ts-enunciado, .ts-palco p { line-height: 1.6; }
}
/* no telemóvel os campos de procura com letra de 16px (o iPhone deixa de fazer zoom ao tocar) */
@media (max-width: 760px) { input[type="search"], input[type="text"], textarea, .exp-busca input, #esc-q, #mon-q { font-size: 16px !important; } }
/* a página da universidade no telemóvel: o «Publicar» no canto superior direito da capa; os cursos numa folha */
@media (max-width: 760px) {
  .esc-capa-corpo { position: relative; padding-top: 22px !important; }
  .esc-capa-pub { position: absolute; top: 14px; right: 14px; order: 0 !important; width: auto !important; padding: 8px 14px !important; min-height: 0 !important; font-size: .9rem !important; }
  .esc-capa-foto { margin-top: 36px; }
  .esc-cursos-m .chips { display: flex; flex-wrap: wrap; gap: 8px; }
  .esc-cursos-m .chip-mais { border-style: dashed; }
}

/* 247.ª parte: os materiais que ainda estão no «Geral» com uma linha vermelha (só a equipa vê), no site e no painel */
.cartao.cartao-geral { outline: 2px solid #DC2626; outline-offset: 2px; position: relative; }
.geral-etq { position: absolute; top: 8px; left: 8px; z-index: 3; display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; background: #DC2626; color: #fff; font: 600 .72rem var(--f-tit); }
.geral-etq a { color: #fff; text-decoration: underline; }
tr.tr-geral > td { box-shadow: inset 0 2px 0 #DC2626, inset 0 -2px 0 #DC2626; background: #FEF2F2 !important; }
tr.tr-geral > td:first-child { box-shadow: inset 2px 2px 0 #DC2626, inset 0 -2px 0 #DC2626; }
tr.tr-geral > td:last-child { box-shadow: inset -2px 2px 0 #DC2626, inset 0 -2px 0 #DC2626; }

/* ============ 248.ª parte: o Monitor com a conversa a rolar dentro da caixa (a escrita fica quieta) e a janela das conversas ============ */
.mon { height: calc(100dvh - var(--topo-h, 72px) - 40px); min-height: 0 !important; }
.mon-conversa { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 8px 4px 16px; scrollbar-width: thin; }
.mon-pe { position: static; background: #fff; padding-top: 8px; }
.mon-ola { overflow-y: auto; }
.mon-ecra .fe-cx { width: min(560px, 100%); }
.mon-ecra .fe-lista { height: min(60vh, 520px); overflow-y: auto; padding: 14px 16px; }
.mon-ecra header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 18px 16px 12px; border-bottom: 1px solid var(--linha); }
.mon-ecra header h2 { margin: 0; font-size: 1.15rem; }
.mon-ecra .fe-sub { margin: 4px 0 0; color: var(--tinta-2); font-size: .9rem; }
body.sem-rolar { overflow: hidden; }
@media (max-width: 760px) {
  .mon { height: calc(100dvh - var(--topo-h, 64px) - 16px); }
  .mon-ecra .fe-lista { height: auto; max-height: 70dvh; }
}

/* ============ 250.ª parte ============ */
body.rota-monitor { overflow: hidden; }
body.rota-monitor main { overflow: hidden; }
.mon { height: auto; }
.escl-cursos .fac-op .caixa-v, .escl-cursos .fac-op > i, .escl-cursos .fac-op .fa-solid { display: none !important; }
.escl-cursos .fac-op { padding-left: 14px !important; }

/* 251.ª parte: a capa do Início (uma só imagem) */
.faixa-a { display: block; }
.faixa-a img { width: 100%; aspect-ratio: 4 / 1; object-fit: cover; border-radius: 20px; display: block; }
a.faixa-vazia { display: grid !important; place-items: center; text-decoration: none; color: var(--tinta-3); font: 600 .9rem var(--f-tit); opacity: .8; }
a.faixa-vazia span { display: inline-flex; gap: 8px; align-items: center; padding: 8px 14px; border-radius: 999px; background: var(--sup); }
@media (max-width: 760px) { a.faixa-vazia { display: none !important; } .faixa-a img { border-radius: 14px; } }
.faixa-prev { margin: 12px 0; }
.faixa-prev img { width: 100%; aspect-ratio: 4 / 1; object-fit: cover; border-radius: 14px; border: 1px solid var(--linha); display: block; }
.faixa-prev.vazia { aspect-ratio: 4 / 1; border: 1px dashed var(--linha); border-radius: 14px; display: grid; place-items: center; color: var(--tinta-3); }
.faixa-form { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.faixa-form input[type="text"] { flex: 1 1 260px; min-width: 0; height: 38px; padding: 0 12px; border: 1px solid var(--linha); border-radius: 12px; background: var(--sup); font: inherit; color: var(--tinta); }

/* 252.ª parte: a capa com duas imagens, e afastada do que vem a seguir */
.sec-faixa { margin-bottom: 22px !important; }
.faixa-a img.tem-m { aspect-ratio: 4 / 1; }
@media (max-width: 760px) { .sec-faixa { margin-bottom: 18px !important; padding-top: 6px !important; } .faixa-a img.tem-m { aspect-ratio: 2 / 1; } }
.faixa-g { display: grid; grid-template-columns: 1.6fr 1fr; gap: 16px; margin: 12px 0; }
.faixa-rot { margin: 0 0 8px; display: flex; align-items: center; gap: 6px; color: var(--tinta-2); font-size: .9rem; }
.faixa-rot i { color: var(--bic); }
.faixa-m .faixa-prev img, .faixa-m .faixa-prev.vazia { aspect-ratio: 2 / 1; }
.faixa-bt { display: flex; gap: 8px; margin-top: 8px; }
.faixa-g .faixa-prev { margin: 0; }
@media (max-width: 760px) { .faixa-g { grid-template-columns: 1fr; } }

/* ============ 253.ª parte ============ */
/* separadores com ícones 3D, o ativo como no Treino (azul cheio) */
.tabs3d { display: inline-flex !important; align-items: center; gap: 4px; padding: 5px; border: 1px solid var(--linha); border-radius: 16px; background: var(--sup); box-shadow: 0 6px 18px rgba(16, 22, 51, .05); flex-wrap: nowrap; max-width: 100%; overflow-x: auto; scrollbar-width: none; }
.tabs3d::-webkit-scrollbar { display: none; }
.tabs3d button { display: inline-flex !important; align-items: center; gap: 10px; height: 48px !important; padding: 0 16px 0 10px !important; border: 0; border-radius: 12px; background: none; color: var(--tinta-2); font: 600 .98rem var(--f-tit) !important; cursor: pointer; white-space: nowrap; box-shadow: none !important; transition: background .15s, color .15s; }
.tabs3d button:hover { background: var(--sup-2); color: var(--tinta); }
.tabs3d button[aria-checked="true"] { background: var(--bic) !important; color: #fff !important; box-shadow: 0 8px 20px rgba(35, 70, 230, .28) !important; }
.tabs3d .i3d { width: 34px; height: 34px; flex: none; filter: drop-shadow(0 2px 2px rgba(16, 22, 51, .15)); transition: transform .2s; }
.tabs3d button:hover .i3d { transform: translateY(-2px) scale(1.05); }
.tabs3d button[aria-checked="true"] .i3d { transform: scale(1.06); }
.tabs3d b { display: none; }
.exp-amb-l { gap: 10px !important; }
.exp-amb.tabs3d { flex: 0 1 auto; }
.exp-monitor { width: 48px !important; height: 48px !important; border-radius: 14px !important; background: var(--sup) !important; }
.exp-monitor .logo-svg { width: 28px; height: 28px; }
.unis-tipos, .tabs3d.unis-t { margin: 18px 0 6px; }
@media (max-width: 760px) { .tabs3d { display: flex !important; width: 100%; } .tabs3d button { flex: 1 1 0; justify-content: center; padding: 0 10px !important; font-size: .88rem !important; height: 46px !important; } .tabs3d .i3d { width: 26px; height: 26px; } .exp-amb-l { flex-wrap: nowrap !important; } }
/* Instituições: o botão Explorar */
.btn-explorar { gap: 10px; border-radius: 999px !important; padding: 0 20px !important; box-shadow: 0 10px 24px rgba(35, 70, 230, .25); }
.btn-explorar .fa-arrow-right { transition: transform .15s; }
.btn-explorar:hover .fa-arrow-right { transform: translateX(3px); }
/* o Monitor rola com o site; a caixa de escrever presa ao fundo */
body.rota-monitor, body.rota-monitor main { overflow: visible !important; }
.mon { height: auto !important; min-height: calc(100dvh - 160px); }
.mon-conversa { overflow: visible !important; flex: 1 1 auto; padding-bottom: 12px; }
.mon-pe { position: sticky !important; bottom: 0; z-index: 6; background: #fff; padding: 10px 0 14px !important; }
.mon-orb { background: #fff !important; border: 1px solid #e6e9f5; box-shadow: 0 14px 34px rgba(35, 70, 230, .18) !important; animation: none !important; }
.mon-orb .logo-svg { width: 46px; height: 46px; }
.mon-av { background: #fff !important; border: 1px solid #e6e9f5; }
.mon-av .logo-svg { width: 24px; height: 24px; }
.mon-marca .logo-svg { width: 22px; height: 22px; }
.mon-ola h1 { font-family: "Source Serif 4", Georgia, serif !important; font-weight: 500 !important; font-size: clamp(1.8rem, 4vw, 2.6rem) !important; letter-spacing: -.01em; }
.mon-ola p { font-size: 1.05rem; }
/* as respostas: os materiais em grelha de cartões, as sugestões em pílulas leves */
.mon-docs { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px !important; }
.mon-doc { align-items: flex-start !important; padding: 12px !important; border-radius: 18px !important; box-shadow: 0 6px 18px rgba(16, 22, 51, .05); }
.mon-doc-th { width: 58px !important; height: 76px !important; border-radius: 10px !important; }
.mon-doc-t strong { font-size: .95rem !important; -webkit-line-clamp: 3 !important; }
.mon-doc-seta { display: none; }
.mon-sug { background: var(--sup-2) !important; border-color: transparent !important; font-weight: 500; }
.mon-sug:hover { background: var(--azul-suave) !important; border-color: transparent !important; }
.mon-txt { font-size: 1.04rem !important; }
@media (max-width: 760px) {
  .mon-docs { grid-template-columns: 1fr; }
  /* o ecrã inicial como no Claude: o logótipo e a saudação ao centro, a caixa em baixo */
  .mon-vazio .mon-ola { padding-bottom: 120px; }
  .mon-vazio .mon-ola .mon-caixa { position: fixed; left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom, 0px)); width: auto; max-width: none; z-index: 20; }
  .mon-pe { padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px)) !important; }
}
/* Ordenar: «Mostrar» compacto (resolução e acesso) */
.ord2-sub { display: grid; gap: 6px; margin-bottom: 10px; }
.ord2-sub > small { color: var(--tinta-3); font: 600 .78rem var(--f-tit); text-transform: uppercase; letter-spacing: .04em; }
.ord2-chips { display: flex !important; flex-wrap: wrap; gap: 8px !important; }
.ord2-chips .ord2-i { flex-direction: row !important; align-items: center !important; gap: 8px !important; padding: 8px 12px !important; min-height: 0 !important; width: auto !important; border-radius: 999px !important; }
.ord2-chips .ord2-ic { width: 26px !important; height: 26px !important; border-radius: 50% !important; font-size: .8rem; }
.ord2-chips .ord2-t small { display: none; }
.ord2-chips .ord2-t strong { font-size: .92rem; }
.ord2-chips .ord2-i > svg, .ord2-chips .ord2-i > .ord2-ok { display: none; }
/* Publicar: no telemóvel a seta para o Início; mais espaço por baixo (a câmara nunca fica atrás dos botões); só «Avançar» no 1.º passo */
.pub-voltar-inicio { display: none; }
@media (max-width: 760px) {
  .pub-voltar-inicio { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 8px; color: var(--bic); font: 600 .95rem var(--f-tit); text-decoration: none; }
  body:has(.pub-navegacao) main { padding-bottom: 150px !important; }
  .pub-navegacao.so-avancar .btn { flex: 1 1 auto; }
}
.pub-navegacao.so-avancar { justify-content: flex-end; }
/* edição: «Cancelar» à esquerda; «Voltar», «Avançar» e «Guardar alterações» à direita */
.pub-nav-ed { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.pub-nav-dir { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
@media (max-width: 760px) { .pub-nav-ed { flex-wrap: wrap; } .pub-nav-ed .pub-cancelar { order: 2; width: 100%; text-align: center; } .pub-nav-dir { width: 100%; } .pub-nav-dir .btn { flex: 1 1 0; justify-content: center; padding: 0 10px; } }
/* a pré-visualização: o botão «Ver o material» */
.pr2-a4 { position: relative; }
.pr2-ver { position: absolute; left: 50%; bottom: 10px; transform: translateX(-50%); white-space: nowrap; box-shadow: 0 8px 20px rgba(16, 22, 51, .2); }
/* as fotos das associações e da equipa: quadradas só dentro do perfil; redondas no resto */
.av-img.av-quad { border-radius: 50% !important; }
.pf-av .av-img.av-quad, .pf-av-w .av-img.av-quad, .perfil-cab .av-img.av-quad, .pf-cab .av-img.av-quad { border-radius: 18% !important; }
img.av[src*="perfil-veteraano"] { border-radius: 50% !important; }
.pf-av img.av[src*="perfil-veteraano"], .pf-av-w img.av[src*="perfil-veteraano"] { border-radius: 18% !important; }
/* no topo, a foto afastada dos pontos */
.conta-w { margin-left: 10px; }
/* pessoas: o «Ver mais» */
.pes-mais { display: flex; justify-content: center; margin: 22px 0 6px; }
.pes-mais-b { min-width: 260px; height: 50px; border-radius: 999px !important; font-size: 1rem; gap: 10px; box-shadow: 0 8px 22px rgba(16, 22, 51, .08); }

/* ============ 255.ª parte: a matriz da publicação ============ */
.escolha-multi .esc-mais { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; }
.escolha-multi .esc-mais em { font-style: normal; font-size: .76rem; padding: 2px 8px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); font-weight: 600; }
.pub-matriz-nota { display: flex; gap: 8px; align-items: flex-start; padding: 10px 12px; border-radius: 12px; background: var(--sup-2); margin: 0 0 12px !important; }
.pub-matriz-nota i { color: var(--bic); margin-top: 3px; }
.pub-escrever { margin: 6px 0 0; text-align: right; }
.pub-escrever .link { font-size: .9rem; }
/* o ano dos concursos e o «Ano não indicado» com espaço e o mesmo desenho do resto */
.form-sec .campo .ano-passo, .ano-passo { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 8px 0 18px; }
.ano-passo .ano-b { width: 48px; height: 48px; border-radius: 14px; border: 1px solid var(--linha); background: var(--sup-2); color: var(--tinta); display: grid; place-items: center; cursor: pointer; }
.ano-passo .ano-b:disabled { opacity: .45; cursor: default; }
.ano-passo input { width: 120px; height: 48px; border-radius: 14px; border: 1px solid var(--linha); background: var(--sup); text-align: center; font: 600 1.1rem var(--f-tit); color: var(--tinta); }
.ano-na { height: 44px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--linha); background: var(--sup); color: var(--tinta); font: 600 .92rem var(--f-tit); cursor: pointer; }
.ano-na.on, .ano-na[aria-pressed="true"] { background: var(--bic); border-color: var(--bic); color: #fff; }
/* os cartões da finalidade (Concurso público, Bolsa de estudo, Estágio) arrumados, com o «Sugerido» em baixo */
.pub-fin { position: relative; }
.pub-fin-t em { margin-top: 8px !important; }

/* ============ 256.ª parte ============ */
/* separadores com ícones 2D (na cor do texto: brancos no ativo) */
.tabs3d .i2d { width: 22px; height: 22px; flex: none; }
.tabs3d .i3d { display: none; }
.tabs3d button { padding: 0 18px !important; gap: 8px !important; }
/* o Monitor: a caixa de escrever presa ao fundo do ecrã; sem sombras nos cartões; sem barra dentro da caixa */
.mon-pe { position: fixed !important; bottom: 0; left: 0; width: 100%; z-index: 30; padding: 10px 16px calc(14px + env(safe-area-inset-bottom, 0px)) !important; background: linear-gradient(180deg, rgba(255, 255, 255, 0), #fff 28%) !important; }
.mon-pe .mon-caixa { max-width: 860px; margin: 0 auto; }
.mon-caixa textarea { overflow-y: hidden; scrollbar-width: none; }
.mon-caixa textarea::-webkit-scrollbar { width: 0; }
.mon-doc { box-shadow: none !important; }
.mon-caixa { box-shadow: 0 6px 20px rgba(16, 22, 51, .06) !important; }
.mon-trechos { display: grid; gap: 10px; }
.mon-trecho { display: grid; gap: 8px; padding: 14px 16px; border: 1px solid var(--linha); border-left: 4px solid var(--bic); border-radius: 14px; background: #fff; color: var(--tinta); text-decoration: none; }
.mon-trecho:hover { background: var(--azul-suave); }
.mon-trecho-cab { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.mon-trecho-cab i { color: var(--bic); }
.mon-trecho-cab strong { font-weight: 600; font-size: .95rem; }
.mon-trecho-cab em { font-style: normal; font-size: .75rem; padding: 2px 8px; border-radius: 999px; background: var(--sup-2); color: var(--tinta-2); }
.mon-trecho-txt { font-family: "Source Serif 4", Georgia, serif; font-size: 1.02rem; line-height: 1.6; color: var(--tinta); }
.mon-trecho-txt mark { background: #FFF3BF; color: inherit; padding: 0 2px; border-radius: 3px; }
.mon-trecho-ir { justify-self: end; display: inline-flex; gap: 6px; align-items: center; color: var(--bic); font: 600 .85rem var(--f-tit); }
.mon-pdf-1 { margin-bottom: 6px; }
/* Início: «Bem-vindo, José» com letra serifada */
.foco-ola h1.ola-serif { font-family: "Source Serif 4", Georgia, serif !important; font-weight: 600 !important; letter-spacing: -.01em; }
/* a pré-visualização: «Ver o material» só com o olho */
.pr2-ver { width: 44px; height: 44px; padding: 0 !important; border-radius: 50% !important; display: grid !important; place-items: center; bottom: 12px; }
.pr2-ver i { font-size: 1.05rem; }
/* a capa do Início no telemóvel: 1080 × 650 */
@media (max-width: 760px) { .faixa-a img.tem-m { aspect-ratio: 108 / 65; } }
.faixa-m .faixa-prev img, .faixa-m .faixa-prev.vazia { aspect-ratio: 108 / 65; }
/* treinos: os separadores Todos · Já fiz · Por fazer */
.tr-abas3 { margin: 6px 0 16px; }
/* Publicar: a navegação com «Enviar para revisão» ao lado do «Voltar», em qualquer ecrã */
.pub-navegacao { display: flex; align-items: center; justify-content: flex-end; gap: 10px; flex-wrap: wrap; }
@media (max-width: 760px) { .pub-navegacao .btn { flex: 1 1 0; justify-content: center; padding: 0 12px; min-width: 0; } }

/* 257.ª parte: a publicidade como um cartão igual aos dos materiais */
.cartao-pub .pub-th { position: relative; display: block; overflow: hidden; background: var(--sup-2); }
.cartao-pub .pub-th img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cartao-pub .pub-et { position: absolute; top: 8px; left: 8px; padding: 3px 10px; border-radius: 999px; background: rgba(16, 22, 51, .78); color: #fff; font: 600 .72rem var(--f-tit); letter-spacing: .02em; }
.cartao-pub h3 a { color: var(--tinta); text-decoration: none; }
.cartao-pub .pub-desc { margin: 6px 0 0; color: var(--tinta-2); line-height: 1.5; }
.cartao-pub .pub-quem .logo-svg { width: 36px; height: 36px; flex: none; }
.cartao-pub .pub-cta { margin-left: auto; gap: 8px; border-radius: 999px !important; }
.cartao-pub .cartao-pe { align-items: center; }

/* ============ 259.ª parte: a janela das conversas do Monitor (como no Claude e no ChatGPT) ============ */
.mon-ecra .fe-cx.mcv { width: min(520px, 100%); display: flex; flex-direction: column; max-height: min(78vh, 680px); border-radius: 22px; overflow: hidden; }
.mcv-cab { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 16px 16px 8px 20px; border: 0 !important; }
.mcv-tt { display: flex; align-items: center; gap: 8px; }
.mcv-tt h2 { margin: 0; font-size: 1.2rem; }
.mcv-ferr { display: flex; gap: 8px; padding: 4px 16px 10px 20px; }
.mcv-q { flex: 1; display: flex; align-items: center; gap: 8px; height: 40px; padding: 0 12px; border-radius: 12px; background: var(--sup-2); color: var(--tinta-3); }
.mcv-q input { flex: 1; min-width: 0; border: 0; outline: none; background: none; font: inherit; color: var(--tinta); font-size: 16px; }
.mon-ecra .fe-lista.mon-ecra-l { flex: 1 1 auto; height: auto !important; min-height: 220px; overflow-y: auto; padding: 0 10px 8px !important; }
.mcv-g { margin: 6px 0 10px; }
.mcv-g h3 { margin: 6px 10px; font: 600 .74rem var(--f-tit); color: var(--tinta-3); text-transform: uppercase; letter-spacing: .05em; }
.mcv-i { position: relative; display: flex; align-items: center; border-radius: 12px; transition: background .12s; }
.mcv-i:hover { background: var(--sup-2); }
.mcv-i.atual { background: var(--azul-suave); }
.mcv-a { flex: 1; min-width: 0; display: flex; align-items: center; gap: 12px; padding: 10px 10px; border: 0; background: none; text-align: left; font: inherit; color: var(--tinta); cursor: pointer; border-radius: 12px; }
.mcv-a > i { flex: none; width: 32px; height: 32px; border-radius: 10px; display: grid; place-items: center; background: var(--sup-2); color: var(--tinta-2); font-size: .9rem; }
.mcv-i.atual .mcv-a > i { background: #fff; color: var(--bic); }
.mcv-t { min-width: 0; display: grid; gap: 1px; }
.mcv-t strong { font-weight: 500; font-size: .96rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mcv-t small { color: var(--tinta-3); font-size: .78rem; }
.mcv-x { flex: none; width: 34px; height: 34px; margin-right: 6px; border: 0; border-radius: 10px; background: none; color: var(--tinta-3); cursor: pointer; opacity: 0; transition: opacity .12s, background .12s, color .12s; }
.mcv-i:hover .mcv-x, .mcv-x:focus-visible { opacity: 1; }
.mcv-x:hover { background: #FEE2E2; color: #B91C1C; }
.mcv-vazio { display: grid; justify-items: center; gap: 6px; padding: 40px 16px; text-align: center; color: var(--tinta-2); }
.mcv-vazio i { font-size: 1.8rem; color: var(--bic); margin-bottom: 4px; }
.mcv-vazio small { color: var(--tinta-3); }
.mcv-pe { margin: 0; padding: 10px 20px 14px; border-top: 1px solid var(--linha); color: var(--tinta-3); font-size: .78rem; display: flex; gap: 6px; align-items: center; }
@media (max-width: 760px) {
  .mon-ecra .fe-cx.mcv { max-height: 82dvh; border-radius: 22px 22px 0 0; }
  .mcv-x { opacity: .7; }
}

/* 260.ª parte: a publicidade na lista com o flyer grande (inteiro) e o texto por baixo ou ao lado */
.pub-cartao2 { container-type: inline-size; padding: 14px; border: 1px solid var(--linha); border-radius: 20px; background: var(--sup); }
.pub-cartao2 .pc2-in { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
.pub-cartao2 .pc2-img { display: block; border-radius: 14px; overflow: hidden; background: var(--sup-2); }
.pub-cartao2 .pc2-img img { display: block; width: 100%; height: auto; }
.pub-cartao2 .pc2-t { display: grid; gap: 8px; align-content: center; min-width: 0; }
.pub-cartao2 .pc2-et { display: inline-flex; align-items: center; gap: 6px; width: max-content; padding: 3px 10px; border-radius: 999px; background: var(--sup-2); color: var(--tinta-2); font: 600 .74rem var(--f-tit); }
.pub-cartao2 .pc2-et i { color: var(--bic); }
.pub-cartao2 h3 { margin: 0; font-size: 1.12rem; line-height: 1.3; }
.pub-cartao2 h3 a { color: var(--tinta); text-decoration: none; }
.pub-cartao2 p { margin: 0; color: var(--tinta-2); line-height: 1.55; }
.pub-cartao2 .pc2-cta { justify-self: start; gap: 8px; border-radius: 999px !important; margin-top: 4px; }
/* com espaço (o computador, na lista do Explorar): o flyer grande à esquerda, o texto ao lado */
@container (min-width: 620px) { .pub-cartao2 .pc2-in { grid-template-columns: minmax(0, 50%) minmax(0, 1fr); gap: 24px; align-items: center; } .pub-cartao2 h3 { font-size: 1.25rem; } }
@supports not (container-type: inline-size) { @media (min-width: 900px) { .pub-cartao2 .pc2-in { grid-template-columns: minmax(0, 50%) minmax(0, 1fr); gap: 24px; align-items: center; } } }

/* 261.ª parte: abrir a publicidade da lista; a publicidade no Início */
.pub-cartao2 .pc2-img { padding: 0; border: 0; cursor: zoom-in; width: 100%; }
.pub-cartao2 .pc2-tit { padding: 0; border: 0; background: none; font: inherit; color: var(--tinta); text-align: left; cursor: pointer; }
.pub-cartao2 .pc2-tit:hover { color: var(--bic); }
.inicio-pub { margin-top: 18px; }

/* Pré-visualizar: o documento completo, página a página, em grande */
.gp > .gp-g { flex: 1 1 100%; width: 100%; grid-template-columns: 1fr; max-height: min(74vh, 1000px); }
.gp > .gp-acoes { flex: 1 1 100%; }
.gp-g .gp-c { min-height: 0; padding: 8px; }
.gp-g .gp-c canvas { width: 100%; height: auto; }

/* (262.ª parte) Publicar/editar: escolhas múltiplas fora do cartão, com × para tirar */
.escolha-bloco { display: flex; flex-direction: column; gap: 8px; }
.escolha-multi .esc-t strong { white-space: normal; overflow-wrap: anywhere; }
.escolha-multi .esc-add { display: inline-flex; align-items: center; gap: 6px; margin-top: 3px; font-size: .8rem; font-weight: 700; color: var(--bic); }
.escolha-multi .esc-add i { font-size: .72rem; }
.esc-chips { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 2px; }
.esc-chip { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; min-height: 34px; padding: 4px 4px 4px 12px; border: 1px solid rgba(35, 70, 230, .22); border-radius: 999px; background: var(--azul-suave); color: var(--bic); font-size: .84rem; font-weight: 700; line-height: 1.25; }
.esc-chip.principal { background: var(--bic); border-color: var(--bic); color: var(--sobre-bic, #fff); }
.esc-chip > i { font-size: .7rem; }
.esc-chip-t { min-width: 0; overflow-wrap: anywhere; }
.esc-chip button { display: grid; place-items: center; flex: none; width: 26px; height: 26px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: inherit; cursor: pointer; }
.esc-chip button:hover, .esc-chip button:focus-visible { background: rgba(0, 0, 0, .1); }
.esc-chip.principal button:hover, .esc-chip.principal button:focus-visible { background: rgba(255, 255, 255, .22); }

/* (262.ª parte) barra de etapas: a etapa com problema fica com o círculo vermelho e um ícone branco */
.pub-progresso-tabs button.erro > span, .pub-progresso-tabs button.erro.feita > span, .pub-progresso-tabs button.erro.atual > span { background: #dc2626 !important; border-color: #dc2626 !important; color: #fff !important; }
.pub-progresso-tabs button.erro, .pub-progresso-tabs button.erro.feita, .pub-progresso-tabs button.erro.atual { color: #c81e1e !important; opacity: 1 !important; }
.pub-progresso-tabs button.erro > span i { font-size: .85rem; }
@media (max-width: 760px) { .pub-progresso-tabs button.erro { border-color: #f3b4b4 !important; background: #fdeeee !important; } }

/* (262.ª parte) o «Cancelar» da edição fica lá em cima, ao lado da etapa */
.pub-progresso-top { align-items: center; }
.pub-progresso-top .pp-dir { display: inline-flex; align-items: center; gap: 12px; flex-wrap: wrap; justify-content: flex-end; }
.pp-cancelar { display: inline-flex; align-items: center; gap: 6px; min-height: 34px; padding: 4px 12px; border: 1px solid var(--linha); border-radius: 999px; background: var(--sup); color: var(--tinta-2); font-size: .85rem; font-weight: 700; text-decoration: none; white-space: nowrap; }
.pp-cancelar:hover, .pp-cancelar:focus-visible { border-color: #dc2626; color: #c81e1e; }

/* (262.ª parte) os botões do fundo: «Voltar» à esquerda, «Avançar» (ou o envio, no fim) à direita */
.pub-wizard .pub-navegacao.pn2 { display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; gap: 10px; }
.pub-wizard .pub-navegacao.pn2.so-avancar { justify-content: flex-end; }
.pub-wizard .pub-navegacao.pn2 .btn { min-width: 150px; }
.pub-wizard .pub-navegacao.pn2 [data-action="u-wizard-proximo"], .pub-wizard .pub-navegacao.pn2 [type="submit"] { margin-left: auto; }
@media (max-width: 760px) {
  .pub-wizard .pub-navegacao.pn2 { gap: 8px; }
  .pub-wizard .pub-navegacao.pn2 .btn { flex: 1 1 0; min-width: 0; padding: 0 10px; justify-content: center; }
  .pub-wizard .pub-navegacao.pn2 [data-action="u-wizard-voltar"] { flex: 0 1 38%; }
  .pub-wizard .pub-navegacao.pn2.so-avancar .btn { flex: 1 1 auto; }
}
@media (max-width: 420px) {
  .pub-progresso-top { flex-wrap: wrap; }
  .pub-progresso-top .pp-dir { gap: 8px; }
  .pp-cancelar { min-height: 30px; padding: 3px 10px; font-size: .8rem; }
  .esc-chip { font-size: .8rem; }
  .pub-wizard .pub-navegacao.pn2 .btn { font-size: .92rem; }
}

/* (262.ª parte) duas secções na mesma etapa (ex.: finalidade e ano) não ficam coladas */
.pub-wizard .pub-etapa > .form-sec + .form-sec, .pub-wizard .pub-etapa > .pub-escopo + .form-sec { margin-top: 18px !important; }
.pub-progresso-tabs button.erro > span i { color: #fff !important; font-size: .8rem; }

/* (262.ª parte) cabeçalhos das páginas uniformes: título em Poppins, sem ícone à frente, sem «Voltar ao início» nem «Início /» nas páginas principais */
.foco-ola h1.ola-serif { font-family: var(--f-tit, "Poppins", system-ui, sans-serif) !important; font-weight: 800 !important; font-stretch: 90%; letter-spacing: -.035em; }
.tr-titulo { margin: 0 0 14px; }
.tr-titulo h1 { margin: 0; font-family: var(--f-tit); font-weight: 800; font-stretch: 90%; letter-spacing: -.035em; font-size: clamp(1.6rem, 2.8vw, 2.2rem); }
.tsz-cab.tsz-sem-ic { grid-template-columns: minmax(0, 1fr) auto; }
.aov-cab h1 { gap: 0; }
@media (max-width: 760px) {
  .tsz-cab.tsz-sem-ic { grid-template-columns: minmax(0, 1fr); }
  .tr-titulo { margin-bottom: 10px; }
  .off-cab, .aov-cab { gap: 10px; }
  .foco-ola h1.ola-serif, .tr-titulo h1, .off-cab h1, .aov-cab h1, .cab-pag h1 { font-size: clamp(1.45rem, 6.4vw, 1.8rem) !important; overflow-wrap: anywhere; }
}

/* (262.ª parte) a capa do Início vai de ponta a ponta, alinhada com a caixa de pesquisa (sem a margem extra do .wrap) */
/* só no Início de quem entrou (a capa vem logo a seguir à pesquisa); na página de visitante fica com margens */
.foco + .sec-faixa > .wrap { max-width: none; margin: 0; padding-inline: 0; }
.sec-faixa .faixa-a, .sec-faixa .faixa-a picture, .sec-faixa .faixa-a img { width: 100%; max-width: 100%; }
.sec-faixa .faixa-a picture { display: block; }

/* (262.ª parte) Explorar: a pesquisa quebra a linha em vez de cortar o texto */
.bi-campo textarea#exp-q { flex: 1; min-width: 120px; width: 100%; min-height: 40px; max-height: 132px; padding: 9px 0; border: 0; background: none; outline: none; resize: none; overflow-y: auto; font: inherit; font-size: 1.02rem; line-height: 1.35; color: inherit; white-space: pre-wrap; overflow-wrap: anywhere; field-sizing: content; }
.bi:has(#exp-q) { align-items: center; }

/* (262.ª parte) Monitor: título em Poppins, cartões leves e as sugestões arrumadas */
.mon-ola h1 { font-family: var(--f-tit, "Poppins", system-ui, sans-serif) !important; font-weight: 800 !important; font-stretch: 90%; letter-spacing: -.035em !important; }
.mon-docs { grid-template-columns: repeat(auto-fill, minmax(min(100%, 330px), 1fr)) !important; gap: 10px !important; }
.mon-doc.md2 { position: relative; display: flex; align-items: center; gap: 14px; padding: 12px 12px 12px 12px; border: 1px solid var(--linha); border-radius: 18px; background: var(--sup); box-shadow: 0 1px 2px rgba(16, 22, 51, .04); color: inherit; text-decoration: none; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; animation: md2-entra .42s cubic-bezier(.2, .7, .2, 1) both; animation-delay: calc(var(--i, 0) * 45ms); }
.mon-doc.md2:hover, .mon-doc.md2:focus-visible { transform: translateY(-2px); border-color: rgba(35, 70, 230, .28); background: var(--sup); box-shadow: 0 14px 28px -16px rgba(30, 64, 230, .45); }
.mon-doc.md2:active { transform: scale(.985); }
.md2-th { position: relative; flex: none; width: 54px; height: 70px; border-radius: 8px; overflow: hidden; background: var(--sup-2); box-shadow: 0 0 0 1px rgba(16, 22, 51, .08), 0 6px 12px -8px rgba(16, 22, 51, .35); transform: rotate(-2.5deg); transition: transform .22s ease; }
.mon-doc.md2:hover .md2-th { transform: rotate(0) scale(1.05); }
.md2-th > :not(.md2-pg) { width: 100%; height: 100%; object-fit: cover; }
.md2-pg { position: absolute; left: 3px; right: 3px; bottom: 3px; padding: 1px 4px; border-radius: 5px; background: rgba(16, 22, 51, .72); color: #fff; font-size: .58rem; font-weight: 700; text-align: center; }
.md2-t { flex: 1; min-width: 0; display: grid; gap: 4px; }
.md2-tipo { justify-self: start; display: inline-flex; align-items: center; gap: 7px; font-size: .72rem; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; color: var(--bic); }
.md2-tipo::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 3px color-mix(in srgb, currentColor 18%, transparent); }
.md2-ano { padding-left: 7px; border-left: 1px solid var(--linha); color: var(--tinta-3); }
.md2-provas { color: #3346d3; } .md2-pratica { color: #0e8a6a; } .md2-teoria { color: #b7701f; } .md2-conc { color: #7c3aed; }
.md2-t strong { font-family: var(--f-tit); font-weight: 600; font-size: .98rem; line-height: 1.3; color: var(--tinta); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.md2-t small { color: var(--tinta-2); font-size: .82rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.md2-et { display: flex; flex-wrap: wrap; gap: 6px; }
.md2-et em { display: inline-flex; align-items: center; gap: 5px; font-style: normal; font-size: .72rem; font-weight: 700; padding: 2px 9px; border-radius: 999px; }
.md2-res { background: #e8f7ef; color: #12764a; } .md2-gratis { background: var(--azul-suave); color: var(--bic); }
.md2-ir { flex: none; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--sup-2); color: var(--tinta-3); font-size: .85rem; transition: background .18s, color .18s, transform .18s; }
.mon-doc.md2:hover .md2-ir, .mon-doc.md2:focus-visible .md2-ir { background: var(--bic); color: #fff; transform: translateX(3px); }
@keyframes md2-entra { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

.mon-sugs2 { display: grid; gap: 12px; margin-top: 4px; animation: mon-entra .35s .15s ease both; }
.mon-escolhas { display: flex; flex-wrap: wrap; gap: 8px; }
.mon-afinar { display: grid; gap: 10px; padding: 12px 14px; border: 1px solid var(--linha); border-radius: 16px; background: var(--sup-2); }
.mon-afinar-t { display: flex; align-items: center; gap: 8px; margin: 0; font-size: .74rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--tinta-3); }
.mon-afinar-t i { color: var(--bic); }
.mon-afinar-g { display: flex; align-items: center; gap: 12px; }
.mon-afinar-r { flex: none; width: 52px; font-size: .82rem; font-weight: 700; color: var(--tinta-2); }
.mon-afinar-l { display: flex; flex-wrap: wrap; gap: 6px; min-width: 0; }
.mon-pill { display: inline-flex; align-items: center; gap: 8px; min-height: 34px; padding: 5px 6px 5px 13px; border: 1px solid var(--linha); border-radius: 999px; background: var(--sup); color: var(--tinta); font: inherit; font-size: .86rem; font-weight: 600; white-space: nowrap; cursor: pointer; transition: border-color .15s, color .15s, transform .15s, box-shadow .15s; }
.mon-pill:not(:has(b)) { padding-right: 13px; }
.mon-pill i { color: var(--bic); font-size: .85rem; }
.mon-pill b { min-width: 24px; padding: 2px 7px; border-radius: 999px; background: var(--sup-2); color: var(--tinta-2); font-size: .74rem; font-weight: 800; text-align: center; transition: background .15s, color .15s; }
.mon-pill:hover, .mon-pill:focus-visible { border-color: var(--bic); color: var(--bic); transform: translateY(-1px); box-shadow: 0 6px 14px -10px rgba(30, 64, 230, .6); }
.mon-pill:hover b, .mon-pill:focus-visible b { background: var(--bic); color: #fff; }
.mon-pill:active { transform: scale(.97); }
.mon-pe-acoes { display: flex; align-items: center; gap: 8px 14px; flex-wrap: wrap; }
.mon-mais { flex: 1 1 260px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 10px 16px; border: 1.5px dashed var(--linha); border-radius: 14px; background: transparent; color: var(--bic); font: inherit; font-weight: 700; cursor: pointer; transition: background .15s, border-color .15s; }
.mon-mais:hover, .mon-mais:focus-visible { background: var(--azul-suave); border-style: solid; border-color: var(--bic); }
.mon-links { display: inline-flex; align-items: center; gap: 4px 14px; flex-wrap: wrap; margin-left: auto; }
.mon-link { display: inline-flex; align-items: center; gap: 7px; min-height: 36px; padding: 6px 2px; border: 0; background: none; color: var(--tinta-2); font: inherit; font-size: .9rem; font-weight: 700; cursor: pointer; }
.mon-link:hover, .mon-link:focus-visible { color: var(--bic); }
.mon-link .fa-arrow-right { transition: transform .15s; }
.mon-link:hover .fa-arrow-right { transform: translateX(3px); }
@media (max-width: 760px) {
  .mon-docs { grid-template-columns: 1fr !important; }
  .mon-doc.md2 { padding: 10px; gap: 12px; }
  .md2-th { width: 48px; height: 62px; }
  .mon-afinar { padding: 10px 12px; }
  .mon-afinar-g { flex-direction: column; align-items: stretch; gap: 6px; }
  .mon-afinar-r { width: auto; }
  .mon-afinar-l { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-right: -12px; padding-right: 12px; }
  .mon-afinar-l::-webkit-scrollbar { display: none; }
  .mon-mais { flex-basis: 100%; }
  .mon-links { margin-left: 0; width: 100%; justify-content: space-between; }
}
@media (prefers-reduced-motion: reduce) { .mon-doc.md2, .mon-sugs2 { animation: none; } .mon-doc.md2, .md2-th, .mon-pill { transition: none; } }
.mon-msg.ia .mon-ia-c, .mon-docs > *, .mon-sugs2, .mon-afinar, .mon-afinar-g { min-width: 0; }
.mon-msg.ia .mon-ia-c { flex: 1 1 auto; max-width: 100%; }
@media (max-width: 760px) { .md2-ir { display: none; } .md2-tipo { font-size: .68rem; } }

/* (262.ª parte) Publicar · última etapa: quanto vale o material se for aprovado */
.rec-pub { position: relative; display: flex; align-items: center; gap: 16px; margin-top: 16px; padding: 16px 18px; border-radius: 20px; overflow: hidden; color: #fff; background: radial-gradient(120% 140% at 0% 0%, #4e6bff 0%, #2346e6 45%, #1530b8 100%); box-shadow: 0 18px 36px -22px rgba(30, 64, 230, .9); isolation: isolate; }
.rec-pub::before { content: ""; position: absolute; right: -40px; top: -60px; width: 200px; height: 200px; border-radius: 50%; background: radial-gradient(circle, rgba(255, 255, 255, .18), transparent 65%); z-index: -1; }
.rec-pub::after { content: ""; position: absolute; inset: 0; background-image: radial-gradient(rgba(255, 255, 255, .12) 1px, transparent 1px); background-size: 16px 16px; mask-image: linear-gradient(90deg, transparent 40%, #000); z-index: -1; }
.rp-moeda { position: relative; flex: none; display: grid; place-items: center; width: 58px; height: 58px; border-radius: 18px; background: rgba(255, 255, 255, .14); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .22); animation: rp-flutua 3.2s ease-in-out infinite; }
.rp-moeda .moeda { width: 34px; height: 34px; filter: drop-shadow(0 4px 8px rgba(0, 0, 0, .25)); }
.rp-brilho { position: absolute; inset: 0; border-radius: inherit; background: linear-gradient(120deg, transparent 30%, rgba(255, 255, 255, .45) 50%, transparent 70%); background-size: 250% 100%; animation: rp-brilho 3.2s ease-in-out infinite; }
.rp-t { min-width: 0; display: grid; gap: 2px; }
.rp-t small { font-size: .74rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; opacity: .8; }
.rp-t strong { font-family: var(--f-tit); font-size: 1.25rem; font-weight: 800; letter-spacing: -.02em; line-height: 1.2; }
.rp-n { display: inline-block; padding: 0 8px; border-radius: 10px; background: #ffd23f; color: #1b2a8a; animation: rp-pop .6s cubic-bezier(.2, 1.6, .4, 1) both .15s; }
.rp-t p { margin: 4px 0 0; font-size: .88rem; line-height: 1.45; opacity: .92; }
.rp-t p b { font-weight: 800; }
.rp-dica { display: inline-flex; align-items: center; gap: 7px; justify-self: start; margin-top: 6px; padding: 4px 10px; border-radius: 12px; line-height: 1.35; background: rgba(255, 255, 255, .14); font-size: .78rem; font-weight: 600; }
@keyframes rp-flutua { 0%, 100% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-4px) rotate(3deg); } }
@keyframes rp-brilho { 0%, 55% { background-position: 150% 0; } 100% { background-position: -100% 0; } }
@keyframes rp-pop { from { transform: scale(.4); opacity: 0; } to { transform: none; opacity: 1; } }
@media (max-width: 520px) { .rec-pub { align-items: flex-start; gap: 12px; padding: 14px; } .rp-moeda { width: 46px; height: 46px; border-radius: 14px; } .rp-moeda .moeda { width: 28px; height: 28px; } .rp-t strong { font-size: 1.1rem; } }
@media (prefers-reduced-motion: reduce) { .rp-moeda, .rp-brilho, .rp-n { animation: none; } }

/* (262.ª parte) Explorar · «Não encontrámos nada»: o termo procurado quebra a linha e fica mais leve */
.vazio-exp .off-vazio > strong { max-width: min(100%, 640px); font-size: clamp(1.05rem, 2.2vw, 1.25rem); font-weight: 700; line-height: 1.35; overflow-wrap: anywhere; }
.vz-termo { display: block; margin-top: 6px; font-family: var(--f, inherit); font-size: .95rem; font-weight: 500; color: var(--tinta-2); overflow-wrap: anywhere; word-break: break-word; }

/* (262.ª parte) Monitor: o botão de voltar ao topo, por cima da caixa de escrever */
body.rota-monitor .subir { display: grid !important; place-items: center; bottom: calc(118px + env(safe-area-inset-bottom, 0px)) !important; z-index: 40; }

/* (262.ª parte) fila de aprovação: os pontos que o autor ganha */
.fila-quem .fila-ganho { display: inline-flex; align-items: center; gap: 6px; justify-self: start; width: max-content; margin-top: 5px; padding: 3px 10px 3px 4px; border-radius: 999px; background: linear-gradient(90deg, #fff6d6, #ffe9a8); color: #7a4f00; font-style: normal; font-size: .76rem; font-weight: 800; white-space: nowrap; box-shadow: inset 0 0 0 1px rgba(214, 158, 0, .35); }
.fila-quem .fila-ganho .moeda { width: 18px; height: 18px; }
.fila-quem > span { display: grid; }
.campo-autor { margin-top: 16px; }
.campo-autor .chip-ed i { margin-right: 6px; color: var(--bic); font-size: .8rem; }

/* (262.ª parte) «Qual destes exatamente?»: duas opções por linha, alinhadas, no computador e no telemóvel */
.tipo-opcoes .tipo-lista { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 8px; }
.tipo-opcoes .tipo-op { min-height: 52px; text-align: left; }
@media (max-width: 360px) { .tipo-opcoes .tipo-lista { grid-template-columns: minmax(0, 1fr) !important; } }

/* (262.ª parte) Publicar · «Para que é este material?»: duas finalidades lado a lado, a ocupar a largura toda */
.pub-fins { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
@media (max-width: 560px) { .pub-fins { grid-template-columns: minmax(0, 1fr) !important; } }

/* (262.ª parte) Painel · fila de aprovação em cartões, lado a lado */
.fila { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(100%, 380px), 1fr)); gap: 14px; }
.fila > .fila-i { position: relative; display: grid !important; grid-template-columns: 76px minmax(0, 1fr) !important; grid-template-areas: "th t" "quem quem" "ac ac"; align-items: start; align-content: start; gap: 14px; padding: 16px !important; border: 1px solid var(--linha); border-radius: 22px !important; background: var(--sup); box-shadow: 0 1px 2px rgba(16, 22, 51, .04); transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.fila > .fila-i:hover { transform: translateY(-2px); border-color: rgba(35, 70, 230, .25); box-shadow: 0 16px 32px -20px rgba(30, 64, 230, .45); }
.fila > .fila-i > .th { grid-area: th; width: 76px !important; height: auto !important; aspect-ratio: 3 / 4 !important; border-radius: 10px !important; box-shadow: 0 0 0 1px rgba(16, 22, 51, .08), 0 8px 16px -10px rgba(16, 22, 51, .4); transform: rotate(-2deg); transition: transform .2s ease; }
.fila > .fila-i:hover > .th { transform: rotate(0) scale(1.04); }
.fila > .fila-i > .fila-t { grid-area: t; gap: 3px; }
.fila > .fila-i > .fila-t > strong { font-family: var(--f-tit); font-size: 1.02rem; font-weight: 700; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.fila > .fila-i > .fila-t > small { font-size: .84rem; line-height: 1.4; }
.fila > .fila-i .fila-desc { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.fila > .fila-i > .fila-quem { grid-area: quem; grid-column: 1 / -1 !important; display: flex; align-items: center; gap: 10px; padding: 12px 0 0; border-top: 1px dashed var(--linha); }
.fila > .fila-i > .fila-quem > span { flex: 1; min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "n g" "d g"; column-gap: 10px; align-items: center; }
.fila > .fila-i > .fila-quem > span > strong { grid-area: n; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fila > .fila-i > .fila-quem > span > small { grid-area: d; }
.fila > .fila-i > .fila-quem .fila-ganho { grid-area: g; margin: 0; }
.fila > .fila-i > .fila-acoes { grid-area: ac; grid-column: 1 / -1 !important; display: grid !important; grid-template-columns: 1fr 1fr; gap: 8px; }
.fila > .fila-i > .fila-acoes .btn { width: 100%; justify-content: center; min-height: 40px; }
.fila > .fila-i > .fila-acoes [data-action="ver-anuncio"] { grid-column: 1; grid-row: 1; }
.fila > .fila-i > .fila-acoes [data-action="adm-editar"] { grid-column: 2; grid-row: 1; }
.fila > .fila-i > .fila-acoes [data-action="adm-aprovar"] { grid-column: 1; grid-row: 2; }
.fila > .fila-i > .fila-acoes [data-action="adm-rejeitar"] { grid-column: 2; grid-row: 2; }
.fila > .fila-i > .fila-acoes:not(:has([data-action="adm-editar"])) [data-action="ver-anuncio"] { grid-column: 1 / -1; }
.fila > .fila-i > .fila-acoes .btn-ghost { background: var(--sup-2); }
@media (max-width: 420px) { .fila > .fila-i { grid-template-columns: 60px minmax(0, 1fr) !important; padding: 14px !important; } .fila > .fila-i > .th { width: 60px !important; } .fila > .fila-i > .fila-quem > span { grid-template-columns: minmax(0, 1fr); grid-template-areas: "n" "d" "g"; } .fila > .fila-i > .fila-quem .fila-ganho { margin-top: 6px; justify-self: start; } }
.fila-ganho .fg-rot { margin-left: 2px; padding-left: 7px; border-left: 1px solid rgba(122, 79, 0, .25); font-weight: 600; opacity: .8; }
.fila-quem .fila-ganho.zero { background: var(--sup-2); color: var(--tinta-2); box-shadow: inset 0 0 0 1px var(--linha); }
.fila-aviso-amb { grid-column: 1 / -1; display: flex; align-items: flex-start; gap: 8px; margin-top: 8px; padding: 8px 10px; border-radius: 12px; background: #fff1f0; color: #9f1d1d; font-size: .8rem; font-weight: 600; line-height: 1.4; white-space: normal; }
.fila-aviso-amb i { margin-top: 2px; }
.fila > .fila-i > .fila-quem > span { grid-template-columns: minmax(0, 1fr) !important; grid-template-areas: none !important; }
.fila > .fila-i > .fila-quem > span > * { grid-area: auto !important; }
.fila > .fila-i > .fila-quem .fila-ganho { justify-self: start; margin-top: 6px !important; max-width: 100%; white-space: normal; flex-wrap: wrap; }
.fila-aviso-amb > span { display: block !important; }
.fila-aviso-amb b { display: inline !important; font-weight: 800; }
.fila > .fila-i > .fila-quem { align-items: flex-start; }

/* (262.ª parte) Criar conta · «Sou»: cartões grandes com ícone */
.sou-g { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.sou-c { position: relative; display: flex; align-items: center; gap: 12px; min-height: 76px; padding: 12px 14px; border: 1.5px solid var(--linha); border-radius: 18px; background: var(--sup); color: var(--tinta); font: inherit; text-align: left; cursor: pointer; transition: border-color .15s, background .15s, transform .15s, box-shadow .15s; }
.sou-c:hover { border-color: rgba(35, 70, 230, .45); transform: translateY(-1px); box-shadow: 0 10px 22px -16px rgba(30, 64, 230, .6); }
.sou-c.on { border-color: var(--bic); background: var(--azul-suave); box-shadow: 0 0 0 3px rgba(35, 70, 230, .12); }
.sou-ic { flex: none; display: grid; place-items: center; width: 46px; height: 46px; border-radius: 14px; background: var(--azul-suave); color: var(--bic); font-size: 1.2rem; transition: background .15s, color .15s; }
.sou-c.on .sou-ic { background: var(--bic); color: #fff; }
.sou-t { flex: 1; min-width: 0; display: grid; gap: 2px; }
.sou-t b { font-family: var(--f-tit); font-size: .98rem; font-weight: 700; line-height: 1.2; }
.sou-t small { color: var(--tinta-2); font-size: .78rem; line-height: 1.3; }
.sou-ok { flex: none; color: var(--bic); opacity: 0; transform: scale(.6); transition: opacity .15s, transform .15s; }
.sou-c.on .sou-ok { opacity: 1; transform: none; }
.sou-assoc { border-style: dashed; }
.sou-assoc .sou-ok { opacity: .55; transform: none; color: var(--tinta-2); }
.sou-assoc:hover .sou-ok { opacity: 1; color: var(--bic); }
@media (max-width: 480px) { .sou-g { grid-template-columns: minmax(0, 1fr); } .sou-c { min-height: 64px; } }

/* (262.ª parte) lista de escolhas: «Usar o que escrevi» no fim dos resultados */
.lp-usar-q { color: var(--bic); font-weight: 600; border-top: 1px dashed var(--linha); margin-top: 6px; }

/* (262.ª parte) página de visitante: a capa com margens e um tamanho certo para o ecrã */
.sec-faixa:not(.foco + .sec-faixa) > .wrap { max-width: min(1240px, 100%); margin-inline: auto; padding-inline: clamp(16px, 4vw, 40px); }
.sec-faixa:not(.foco + .sec-faixa) .faixa-a img { border-radius: clamp(14px, 1.6vw, 22px); }

/* (262.ª parte) a publicidade de todo o ecrã: maior no computador, à medida do ecrã */
#pub-raiz .av-pub:not(.vertical) { width: min(92vw, clamp(460px, 62vw, 920px)) !important; max-width: none !important; }
#pub-raiz .av-pub:not(.vertical) .av-pub-media img { width: 100%; height: auto; max-height: min(64vh, 560px); aspect-ratio: auto; object-fit: contain; border-radius: 0; display: block; }
#pub-raiz .av-pub:not(.vertical) .av-pub-corpo { padding: clamp(14px, 2vw, 24px) clamp(16px, 2.4vw, 28px) !important; }
#pub-raiz .av-pub-txt { font-size: clamp(.92rem, 1.2vw, 1.05rem); line-height: 1.55; }
@media (max-width: 560px) { #pub-raiz .av-pub:not(.vertical) { width: 100% !important; } }

/* (262.ª parte) selos do perfil: professor(a), profissional e associação (como o do ensino médio) */
.selo-perfil { display: inline-flex; align-items: center; gap: 7px; margin: 6px 6px 0 0; padding: 7px 11px; border-radius: 999px; font-size: .8rem; font-weight: 800; }
.selo-prof { background: #fff4e5; color: #9a4b00; border: 1px solid #ffd9a8; }
.selo-pro { background: #eefaf3; color: #13704a; border: 1px solid #bfe8d1; }
.selo-assoc { background: #f3edff; color: #5b2bc4; border: 1px solid #d9c9ff; }

/* (262.ª parte) os títulos dos cartões usam a largura toda (o «balance» partia o título a meio sem precisar) */
.cartao h3 { text-wrap: pretty; }
/* (262.ª parte) «Bolsa de estudo» sem o amarelo: azul-petróleo */
.et-fin-bolsa { background: #E3F4FA !important; color: #0B6584 !important; }
:root[data-theme="dark"] .et-fin-bolsa { background: #0F3442 !important; color: #8FD6EE !important; }

/* (262.ª parte) «Criados por mim» com a mesma capa desenhada dos cartões dos estudantes */
.trm-c.trm-f .trm-cartaz { aspect-ratio: 3 / 2; }
.trm-c.trm-f .trm-cartaz .capa-svg { transition: transform .5s ease; }
.trm-c.trm-f:hover .trm-cartaz .capa-svg { transform: scale(1.035); }

/* (262.ª parte) Estude ao Vivo · criar a sessão: «Para os estudantes» ou «Só para mim», pré-visualização e secções com ícone */
.avn-cab-sub { margin: 6px 0 0; color: var(--tinta-2); max-width: 70ch; line-height: 1.5; }
.avn-modo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 18px 0 16px; }
.avn-m { position: relative; display: flex; align-items: center; gap: 14px; padding: 16px 18px; border: 1.5px solid var(--linha); border-radius: 20px; background: var(--sup); color: var(--tinta); font: inherit; text-align: left; cursor: pointer; transition: border-color .15s, box-shadow .15s, transform .15s, background .15s; }
.avn-m:hover { transform: translateY(-1px); border-color: rgba(35, 70, 230, .45); box-shadow: 0 12px 26px -18px rgba(30, 64, 230, .6); }
.avn-m.on { border-color: var(--bic); background: var(--azul-suave); box-shadow: 0 0 0 3px rgba(35, 70, 230, .12); }
.avn-m-ic { flex: none; display: grid; place-items: center; width: 50px; height: 50px; border-radius: 16px; background: var(--azul-suave); color: var(--bic); font-size: 1.25rem; transition: background .15s, color .15s; }
.avn-m.on .avn-m-ic { background: var(--bic); color: #fff; }
.avn-m:last-child.on .avn-m-ic { background: #1d1f3a; }
.avn-m-t { flex: 1; min-width: 0; display: grid; gap: 3px; }
.avn-m-t b { font-family: var(--f-tit); font-size: 1.02rem; font-weight: 700; }
.avn-m-t small { color: var(--tinta-2); font-size: .82rem; line-height: 1.35; }
.avn-m-ok { color: var(--bic); opacity: 0; transform: scale(.6); transition: opacity .15s, transform .15s; }
.avn-m.on .avn-m-ok { opacity: 1; transform: none; }
.avn-sec h3 { display: flex; align-items: center; gap: 10px; }
.avn-sec h3 .avn-n { flex: none; }
.avn-h-ic { color: var(--bic); font-size: .95rem; opacity: .85; }
.avn-opc { margin-left: 4px; padding: 2px 8px; border-radius: 999px; background: var(--sup-2); color: var(--tinta-3); font-size: .7rem; font-weight: 700; letter-spacing: .02em; text-transform: uppercase; }
.avn-previa { position: relative; display: grid; gap: 8px; margin-bottom: 16px; padding: 20px 22px; border-radius: 22px; color: #fff; overflow: hidden; background: radial-gradient(120% 140% at 0% 0%, #4e6bff 0%, #2346e6 45%, #1530b8 100%); box-shadow: 0 18px 36px -22px rgba(30, 64, 230, .9); isolation: isolate; }
.avn-previa::after { content: ""; position: absolute; right: -50px; top: -70px; width: 220px; height: 220px; border-radius: 50%; background: radial-gradient(circle, rgba(255, 255, 255, .16), transparent 65%); z-index: -1; }
.avn-previa.privada { background: radial-gradient(120% 140% at 0% 0%, #3a3f6b 0%, #1f2244 55%, #121428 100%); }
.avn-p-k { display: inline-flex; align-items: center; gap: 7px; justify-self: start; padding: 4px 11px; border-radius: 999px; background: rgba(255, 255, 255, .16); font-size: .74rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.avn-p-k svg { width: 14px; height: 14px; }
.avn-p-t { font-family: var(--f-tit); font-size: clamp(1.2rem, 2vw, 1.5rem); font-weight: 800; letter-spacing: -.02em; line-height: 1.2; overflow-wrap: anywhere; }
.avn-p-m { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: .88rem; font-weight: 600; opacity: .95; }
.avn-p-m span { display: inline-flex; align-items: center; gap: 6px; }
.avn-p-n { font-size: .78rem; opacity: .75; }
.avn-priv .avn-acoes .btn-pri { background: #1d1f3a; border-color: #1d1f3a; }
@media (max-width: 760px) { .avn-modo { grid-template-columns: minmax(0, 1fr); } .avn-m { padding: 14px; } .avn-previa { padding: 16px; } }

/* (262.ª parte) Sala ao vivo: o fundo (Branco…), «Ciência» e «PDF» com espaço entre si */
.sq-grupo { gap: 8px !important; padding: 5px 6px !important; }
.sq-grupo .sq-fundo { margin-right: 2px; padding: 0 10px; }
.sq-grupo .sq-b { padding-inline: 12px; }

/* (264.ª parte) Instituições: o painel arrumado — ferramentas lado a lado, lista mais limpa, ficha da escola com
   cabeçalho, ações em fila e cursos numa lista simples */
.tax-v2 .tax-tipos2 { max-width: none; margin: 4px 0 14px; }
.tax-v2 .tax-tipo-b { padding: 12px 14px; }
.tax-v2 .tax-tipo-t small { font-size: .82rem; }
.tax-ferr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0 0 16px; }
.tax-ferr > * { margin: 0 !important; }
.tax-ferr-c, .tax-ferr .ia-tudo { display: flex !important; flex-wrap: nowrap !important; align-items: center; gap: 14px; min-width: 0; padding: 14px 16px; border-radius: 18px; border: 1px solid var(--linha); background: var(--sup); }
.tax-ferr-c.ia, .tax-ferr .ia-tudo { background: var(--azul-suave); border-color: rgba(30, 64, 230, .16); }
.tax-ferr-c.varrer { background: rgba(30, 127, 79, .06); border-color: rgba(30, 127, 79, .2); }
.tax-ferr-ic { flex: none; width: 44px; height: 44px; border-radius: 14px; display: grid; place-items: center; font-size: 1.05rem; color: #fff; background: var(--bic); }
.tax-ferr-c.varrer .tax-ferr-ic { background: #1E7F4F; }
.tax-ferr-ic .roda-c { border-color: rgba(255, 255, 255, .35); border-top-color: #fff; }
.tax-ferr-t { flex: 1 1 auto !important; min-width: 0; display: grid !important; gap: 3px; }
.tax-ferr-t strong { font-size: .98rem; }
.tax-ferr-t small { color: var(--tinta-2); font-size: .82rem; line-height: 1.4; }
.tax-ferr-c .btn { flex: none; white-space: nowrap; }
.tax-ferr-c.varrer .ia-tudo-barra { background: rgba(30, 127, 79, .15); }
.tax-ferr-c.varrer .ia-tudo-barra i { background: #1E7F4F; }
@media (max-width: 1100px) { .tax-ferr { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 560px) { .tax-ferr-c, .tax-ferr .ia-tudo { flex-wrap: wrap !important; } .tax-ferr-c .btn { width: 100%; justify-content: center; } }

/* a lista da esquerda */
.tax-v2 .tax-g { grid-template-columns: 330px minmax(0, 1fr); gap: 16px; }
.tax-v2 .tax-lista { gap: 10px; padding: 14px; }
.tax-v2 .tax-lista-cab { display: grid !important; grid-template-columns: minmax(0, 1fr) auto auto; gap: 6px; }
.tax-v2 .tax-lista-cab .btn { height: 42px; padding: 0 12px; }
.tax-v2 .tax-lista-cab .btn-sec { width: 42px; padding: 0; justify-content: center; }
.tax-v2 .tax-filtro { margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 3px; border-radius: 12px; background: var(--sup-2); }
.tax-v2 .tax-filtro button { height: 32px; padding: 0 6px; white-space: nowrap; font-size: .8rem; border-radius: 9px; display: inline-flex; align-items: center; justify-content: center; gap: 5px; }
.tax-v2 .tax-filtro b { font-size: .74rem; padding: 1px 6px; border-radius: 999px; background: rgba(35, 70, 230, .1); color: var(--bic); margin: 0; }
.tax-v2 .tax-itens { gap: 2px; }
.tax-v2 .tax-i { grid-template-columns: 46px minmax(0, 1fr) auto !important; padding: 8px 10px; border-radius: 12px; }
.tax-v2 .tax-i .tax-sig { height: 36px; border-radius: 10px; font-size: .68rem; letter-spacing: -.01em; }
.tax-v2 .tax-i .tax-nome strong { font-size: .88rem; font-weight: 600; line-height: 1.25; }
.tax-v2 .tax-i .tax-nome small { font-size: .76rem; }
.tax-v2 .tax-i.on { box-shadow: inset 3px 0 0 var(--bic); }

/* a ficha da escola */
.tax-v2 .tax-det { padding: 20px 22px; }
.tax-v2 .tax-cab { display: block; padding-bottom: 0; border-bottom: 0; margin-bottom: 14px; }
.tax-v2 .tax-cab-tt { min-width: 0; }
.tax-v2 .tax-cab-tt .tax-sigla { display: none; }
.tax-v2 .tax-cab h3 { font-size: 1.2rem; font-weight: 700; margin: 0; }
.tax-v2 .tax-logo { width: 60px; height: 60px; border-radius: 16px; }
.tax-v2 .tax-cab > .tax-acoes { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--linha); }
.tax-v2 .tax-cab > .tax-acoes .btn { height: 34px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--linha); background: var(--sup); font-size: .84rem; }
.tax-v2 .tax-cab > .tax-acoes .btn:hover { border-color: var(--bic); color: var(--bic); }
.tax-v2 .tax-cab > .tax-acoes .perigo { margin-left: auto; color: #C62828; }
.tax-v2 .tax-cab > .tax-acoes .perigo:hover { border-color: #C62828; color: #C62828; background: rgba(198, 40, 40, .06); }
.tax-v2 .tax-feita { padding: 9px 12px; margin-bottom: 12px; border-width: 1px; }
.tax-v2 .tax-feita-c { width: 22px; height: 22px; border-radius: 7px; }
.tax-v2 .tax-feita-t strong { font-size: .9rem; }
.tax-v2 .tax-feita-t small { font-size: .78rem; }
.tax-v2 .tax-linha-btn { gap: 8px; margin-bottom: 14px; padding: 10px; border-radius: 16px; background: var(--sup-2); }
.tax-v2 .tax-linha-btn > .btn, .tax-v2 .tax-linha-btn > .tax-mais > summary { height: 38px; }
.tax-v2 .tax-linha-btn > .tax-mais { margin-left: auto; }
.tax-v2 .tax-linha-btn .tax-mais-m { left: auto; right: 0; }
.tax-v2 .tax-cursos-l { list-style: none; margin: 0; padding: 0; border: 1px solid var(--linha); border-radius: 16px; overflow: hidden; }
.tax-v2 .tax-cl { padding: 10px 12px 10px 14px; gap: 10px; }
.tax-v2 .tax-cl:hover { background: var(--sup-2); }
.tax-v2 .tax-cl-ic { width: 32px; height: 32px; border-radius: 10px; display: grid; place-items: center; background: var(--azul-suave); font-size: .85rem; }
.tax-v2 .tax-cl-t strong { font-size: .93rem; font-weight: 600; }
.tax-v2 .tax-cl-t small { font-size: .76rem; }
.tax-v2 .tax-cl-disc { height: 30px; padding: 0 10px; font-size: .8rem; border-width: 1px; }
.tax-v2 .tax-cl .tax-acoes .btn { width: 32px; height: 32px; padding: 0; justify-content: center; opacity: .55; }
.tax-v2 .tax-cl:hover .tax-acoes .btn { opacity: 1; }
@media (max-width: 1180px) and (min-width: 901px) { .tax-v2 .tax-g { grid-template-columns: 280px minmax(0, 1fr); } }
@media (max-width: 900px) { .tax-v2 .tax-g { grid-template-columns: minmax(0, 1fr); } .tax-v2 .tax-det { padding: 16px; } }
@media (max-width: 560px) { .tax-v2 .tax-linha-btn > .tax-mais { margin-left: 0; } .tax-v2 .tax-cab > .tax-acoes .perigo { margin-left: 0; } }
.tax-v2 .tax-logo b { font-size: .66rem; line-height: 1.1; overflow-wrap: anywhere; }
@media (max-width: 560px) {
  .tax-ferr-t { flex-basis: calc(100% - 58px) !important; }
  .tax-v2 .tax-cl { flex-wrap: wrap; }
  .tax-v2 .tax-cl-t { flex-basis: 100% !important; }
  .tax-v2 .tax-cl .tax-acoes { margin-left: auto; }
  .tax-v2 .tax-cl-ic { display: none; }
  .tax-v2 .tax-cl-disc { margin-left: 0; padding: 0 8px; }
  .tax-v2 .tax-cab h3 { font-size: 1.05rem; }
}

/* (267.ª parte) Explorar: os filtros voltam a ficar fixos ao descer. Desde que vivem dentro de .exp-lado (com o anúncio),
   a coluna da esquerda tinha só a altura dos filtros e o «sticky» não tinha por onde andar: a coluna estica até ao fim
   da lista e os filtros ficam presos ao topo dentro dela */
@media (min-width: 901px) {
  body.rota-explorar .exp-g > .exp-lado { align-self: stretch; align-content: start; }
  body.rota-explorar .exp-lado > .facetas { position: sticky; top: calc(var(--topo-vis, var(--topo-h)) + 16px); align-self: start; }
}

/* (268.ª parte) Visão geral → Atividade das contas */
.atc header small { color: var(--tinta-3); }
.atc-g { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin: 6px 0 16px; }
.atc-t { display: grid; gap: 2px; padding: 14px; border-radius: 16px; background: var(--sup-2); border: 1px solid var(--linha); min-width: 0; }
.atc-ic { width: 32px; height: 32px; border-radius: 10px; display: grid; place-items: center; font-size: .85rem; margin-bottom: 6px; color: #fff; background: var(--bic); }
.atc-t b { font-family: var(--f-tit); font-size: 1.6rem; line-height: 1.1; color: var(--tinta); }
.atc-r { font-weight: 600; font-size: .86rem; color: var(--tinta); }
.atc-t small { font-size: .76rem; color: var(--tinta-3); line-height: 1.3; }
.atc-t.verde .atc-ic { background: #1E7F4F; }
.atc-t.azul2 .atc-ic { background: #5B7CFA; }
.atc-t.laranja .atc-ic { background: #D97706; }
.atc-t.vermelho .atc-ic { background: #DC2626; }
.atc-barra { display: flex; height: 14px; border-radius: 999px; overflow: hidden; background: var(--sup-2); gap: 2px; }
.atc-barra i, .atc-leg i { display: block; }
.atc-barra .b7, .atc-leg .b7 { background: var(--bic); }
.atc-barra .b30, .atc-leg .b30 { background: #9DB0FF; }
.atc-barra .bpar, .atc-leg .bpar { background: #F2B45C; }
.atc-leg { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 10px; font-size: .82rem; color: var(--tinta-2); }
.atc-leg span { display: inline-flex; align-items: center; gap: 6px; }
.atc-leg i { width: 10px; height: 10px; border-radius: 3px; }
.atc-novos { display: flex; align-items: center; gap: 8px; margin: 14px 0 0; padding: 10px 12px; border-radius: 12px; background: var(--azul-suave); font-size: .86rem; color: var(--tinta-2); }
.atc-novos i { color: var(--bic); }
@media (max-width: 1100px) { .atc-g { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 600px) { .atc-g { grid-template-columns: repeat(2, minmax(0, 1fr)); } .atc-t b { font-size: 1.35rem; } }

/* (269.ª parte) Publicar em lote: o painel do lote, a IA de fora e cada PDF no assistente das 5 etapas */
.lote { --lt-duv: #B7791F; --lt-duv-bg: #FDF3E1; }
:root[data-theme="dark"] .lote { --lt-duv: #F2C46B; --lt-duv-bg: #3A2D12; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .lote { --lt-duv: #F2C46B; --lt-duv-bg: #3A2D12; } }
.lote .lote-cx { gap: 16px; }
.lote .lt-inicio { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 16px; align-items: stretch; }
.lote .lt-vazio .lt-drop { padding: 40px 24px; gap: 10px; align-content: center; min-height: 260px; border-radius: 22px; }
.lote .lt-vazio .lt-drop .re-drop-ic { width: 64px; height: 64px; }
.lote .lt-vazio .lt-drop .re-drop-ic svg { width: 28px; height: 28px; }
.lote .lt-drop-t strong { font-size: 1.08rem; }
.lote .lt-drop-t small { color: var(--tinta-3); }
.lote .lt-drop-b { pointer-events: none; margin-top: 4px; }
.lt-como { list-style: none; margin: 0; padding: 18px; display: grid; gap: 4px; border-radius: 22px; border: 1px solid var(--linha); background: var(--sup); }
.lt-como li { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 12px; align-items: start; padding: 10px 6px; }
.lt-como li + li { border-top: 1px dashed var(--linha); }
.lt-como-n { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: var(--azul-suave); color: var(--bic); font-weight: 800; }
.lt-como strong { display: block; font-size: .96rem; }
.lt-como small { color: var(--tinta-2); font-size: .84rem; line-height: 1.4; }
.lt-painel { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 20px; padding: 16px 18px; border-radius: 22px; border: 1px solid var(--linha); background: var(--sup); box-shadow: 0 8px 28px rgba(22, 42, 91, .05); transition: border-color .15s, background .15s; }
.lt-painel.sobre { border-color: var(--bic); background: var(--azul-suave); }
.lt-resumo { display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-rows: auto auto; gap: 8px 16px; align-items: center; flex: 1 1 340px; min-width: 0; }
.lt-num { grid-row: 1 / 3; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 74px; height: 74px; border-radius: 18px; background: var(--azul-suave); color: var(--bic); }
.lt-num strong { font-size: 1.7rem; line-height: 1; font-weight: 800; }
.lt-num span { font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; text-align: center; line-height: 1.1; margin-top: 3px; }
.lt-estados { display: flex; flex-wrap: wrap; gap: 6px 14px; }
.lt-e { display: inline-flex; align-items: center; gap: 7px; font-size: .88rem; font-weight: 700; color: var(--tinta-2); }
.lt-e i { width: 10px; height: 10px; border-radius: 50%; background: var(--tinta-3); }
.lt-e-pronto i { background: var(--bic); }
.lt-e-falta i { background: var(--vermelho); }
.lt-e-ler i { background: var(--sup-3); animation: lgPulsa 1.4s infinite; }
.lt-e-ok i { background: var(--acerto, #16A34A); }
.lt-barra-p { display: flex; height: 8px; border-radius: 999px; background: var(--sup-3); overflow: hidden; }
.lt-barra-p i { display: block; height: 100%; transition: width .3s; }
.lt-bp-ok { background: var(--acerto, #16A34A); }
.lt-bp-pronto { background: var(--bic); }
.lt-acoes { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; justify-content: flex-end; }
.lt-mais { position: relative; overflow: hidden; cursor: pointer; }
.lt-mais input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.lt-mais.desat, .lt-excel-btn.desat { opacity: .55; pointer-events: none; }
.lt-limpar { color: var(--tinta-3); }
.lt-fora { border-radius: 22px; border: 1px solid var(--linha); background: var(--sup); overflow: hidden; }
.lt-fora > summary { list-style: none; display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 14px 18px; cursor: pointer; }
.lt-fora > summary::-webkit-details-marker { display: none; }
.lt-fora-ic { width: 44px; height: 44px; border-radius: 14px; display: grid; place-items: center; background: linear-gradient(135deg, var(--azul-suave), var(--sup-2)); color: var(--bic); font-size: 1.15rem; }
.lt-fora-t { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.lt-fora-t strong { font-size: 1rem; }
.lt-fora-t small { color: var(--tinta-2); font-size: .86rem; line-height: 1.4; }
.lt-fora-seta { color: var(--tinta-3); transition: transform .2s; }
.lt-fora[open] .lt-fora-seta { transform: rotate(180deg); }
.lt-fora > :not(summary) { margin: 0 18px 14px; }
.lt-fora .lt-passos { margin-top: 2px; }
.lt-fora .lt-passo { background: var(--sup-2); border-color: transparent; align-content: start; }
.lt-excel-nota { display: flex; gap: 8px; align-items: flex-start; }
.lt-item > * + * { margin-top: 14px; }
.lt-cab { display: grid; grid-template-columns: 54px minmax(0, 1fr) auto; gap: 12px 16px; align-items: center; padding: 12px 16px; border-radius: 20px; border: 1px solid var(--linha); background: var(--sup); }
.lt-cab-capa { width: 54px; height: 70px; border-radius: 8px; overflow: hidden; display: grid; place-items: center; background: var(--sup-2); border: 1px solid var(--linha); color: var(--tinta-3); font-size: 1.4rem; }
.lt-cab-capa img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.lt-cab-t { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.lt-cab-t small { font-size: .74rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: var(--bic); }
.lt-cab-t strong { font-size: 1rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lt-cab-t span { font-size: .82rem; color: var(--tinta-3); }
.lt-cab-d { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; }
.lt-c-duvida { background: var(--lt-duv-bg, var(--sup-3)); color: var(--lt-duv, var(--tinta-2)); }
.lt-a-ler .a-carregar, .lt-estado .erro { padding: 18px; }
.lt-feito-c { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; padding: 18px; border-radius: 18px; background: var(--azul-suave); }
.lt-feito-c > i { font-size: 1.8rem; color: var(--acerto, var(--bic)); }
.lt-feito-c > div { flex: 1 1 240px; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.lt-feito-c small { color: var(--tinta-2); }
.lote .lt-a-ler, .lote .lt-estado { padding: 0; border: 0; background: none; }
.lt-fx { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 18px; align-items: start; }
.lt-fx-capa { position: relative; aspect-ratio: 1 / 1.414; border-radius: 10px; overflow: hidden; display: grid; place-items: center; background: var(--sup-2); border: 1px solid var(--linha); box-shadow: 0 8px 22px rgba(22, 42, 91, .08); color: var(--tinta-3); font-size: 2rem; }
.lt-fx-capa img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.lt-fx-capa span { position: absolute; right: 6px; bottom: 6px; padding: 2px 7px; border-radius: 999px; background: rgba(16, 22, 51, .72); color: #fff; font-size: .7rem; font-weight: 700; }
.lt-fx-info { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.lt-fx-nome { font-size: 1.02rem; word-break: break-word; }
.lt-fx-det { color: var(--tinta-3); font-size: .84rem; margin: 0; }
.lt-lido { list-style: none; margin: 4px 0 0; padding: 0; display: grid; border-radius: 14px; border: 1px solid var(--linha); overflow: hidden; }
.lt-lido li { display: grid; grid-template-columns: 16px 84px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 9px 12px; font-size: .9rem; }
.lt-lido li + li { border-top: 1px solid var(--linha); }
.lt-lido span { color: var(--tinta-3); font-size: .82rem; }
.lt-lido b { font-weight: 700; min-width: 0; overflow-wrap: anywhere; }
.lt-lido em { font-style: normal; font-size: .7rem; font-weight: 800; text-transform: uppercase; letter-spacing: .03em; padding: 2px 8px; border-radius: 999px; background: var(--lt-duv-bg); color: var(--lt-duv); }
.lt-lido-ok > i { color: var(--bic); }
.lt-lido-duvida > i { color: var(--lt-duv); }
.lt-lido-vazio > i, .lt-lido-vazio b { color: var(--vermelho); }
.lt-lido-vazio b { font-weight: 600; }
.lt-etapa-fx .lt-texto { margin-top: 2px; }
.lt-etapa-fx .lt-texto p { max-height: 200px; }
.lote .lt-pub .pub-progresso-top span i { margin-right: 6px; color: var(--bic); }
.lote .lt-pager { margin-top: 4px; }
.lote .lt-p-ok { background: var(--acerto-claro, var(--azul-suave)); border-color: var(--acerto-linha, var(--linha-2)); color: var(--acerto-2, var(--bic)); }
.lote .lt-p-ok::after { display: none; }
@media (max-width: 900px) {
  .lote .lt-inicio { grid-template-columns: minmax(0, 1fr); }
  .lote .lt-vazio .lt-drop { min-height: 0; padding: 30px 18px; }
  .lt-acoes { justify-content: flex-start; width: 100%; }
}
@media (max-width: 640px) {
  .lt-cab { grid-template-columns: 44px minmax(0, 1fr); padding: 10px 12px; }
  .lt-cab-capa { width: 44px; height: 58px; }
  .lt-cab-d { grid-column: 1 / -1; justify-content: flex-start; }
  .lt-fx { grid-template-columns: minmax(0, 1fr); }
  .lt-fx-capa { width: 120px; }
  .lt-lido li { grid-template-columns: 18px 92px minmax(0, 1fr); }
  .lt-lido li em { grid-column: 3; justify-self: start; }
  .lt-acoes .btn { flex: 1 1 auto; }
  .lote .lt-pager .btn span { display: none; }
}

.lote-cx > *, .lt-item > *, .lt-pub, .lt-pub .partilhar > * { min-width: 0; max-width: 100%; }
.lote-cx { grid-template-columns: minmax(0, 1fr); }
@media (max-width: 640px) { .lt-acoes .btn { white-space: normal; } .lt-resumo { flex-basis: 100%; } }

/* (270.ª parte) links nas mensagens com a equipa */
.msg p a { color: inherit; text-decoration: underline; font-weight: 600; overflow-wrap: anywhere; }

/* (270.ª parte) páginas do servidor: preço, resolução, convite e partilha */
.seo-selos { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.seo-selos b { font-size: .74rem; font-weight: 800; padding: 2px 9px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); }
.seo-selos b.gratis { background: var(--acerto-claro, #DCFCE7); color: var(--acerto-2, #15803D); }
.seo-selos .seo-res { background: var(--sup-3); color: var(--tinta); }
.seo-cta, .seo-convite { padding: 12px 14px; border-radius: 14px; background: var(--azul-suave); }
.seo-partilha a, .seo-outros a { font-weight: 700; }
.seo-outros { display: flex; flex-wrap: wrap; gap: 8px 14px; }
/* (270.ª parte) material: preço, resolução, WhatsApp e denunciar */
.et.et-preco { background: var(--azul-suave); color: var(--bic); font-weight: 800; }
.et.et-preco.et-gratis { background: var(--acerto-claro, #DCFCE7); color: var(--acerto-2, #15803D); }
.btn-wa { margin-top: 10px; gap: 8px; }
.btn-wa i { color: #25D366; font-size: 1.1rem; }
.btn-denunciar { display: inline-flex; align-items: center; gap: 6px; margin-top: 10px; font-size: .84rem; color: var(--tinta-3); background: none; border: 0; cursor: pointer; padding: 4px 0; }
.btn-denunciar:hover { color: var(--vermelho); }
.btn-denunciar svg { width: 14px; height: 14px; }
/* (271.ª parte) Painel → Denúncias */
.den-l { display: grid; gap: 12px; }
.den-c { display: grid; gap: 10px; padding: 14px 16px; border-radius: 18px; border: 1px solid var(--linha); background: var(--sup); }
.den-topo { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 12px; align-items: start; }
.den-topo .th, .den-topo > :first-child { width: 56px; height: 74px; border-radius: 8px; overflow: hidden; }
.den-t { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.den-tit { font-weight: 800; color: var(--tinta); text-decoration: none; overflow-wrap: anywhere; }
.den-t small { color: var(--tinta-3); }
.den-autor { display: inline-flex; align-items: center; gap: 8px; font-size: .84rem; color: var(--tinta-2); margin-top: 4px; }
.den-autor .av { width: 24px; height: 24px; }
.den-n { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; background: #FDECEE; color: var(--vermelho); font-weight: 800; font-size: .86rem; }
.den-motivos { display: flex; flex-wrap: wrap; gap: 6px; }
.den-mot { padding: 3px 10px; border-radius: 999px; background: var(--sup-3); font-size: .8rem; font-weight: 700; color: var(--tinta-2); }
.den-mot.den-oculto { background: var(--azul-suave); color: var(--bic); }
.den-textos { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.den-textos li { padding: 8px 12px; border-radius: 12px; background: var(--sup-2); font-size: .9rem; }
.den-textos small { display: block; color: var(--tinta-3); font-size: .76rem; margin-top: 2px; }
.den-acoes { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.den-acoes .esp { flex: 1; }
.den-tirados { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.den-tirados li { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 12px; align-items: center; padding: 10px 14px; border-radius: 14px; border: 1px solid var(--linha); background: var(--sup); }
.dt-t { display: flex; flex-direction: column; min-width: 0; }
.dt-t strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dt-t small { color: var(--tinta-3); font-size: .8rem; }
.dt-p { font-weight: 800; color: var(--vermelho); }
.dt-v { font-size: .78rem; color: var(--tinta-3); display: inline-flex; gap: 5px; align-items: center; }
.dt-v.sim { color: var(--bic); }
.tirar-m { display: grid; gap: 12px; }
.tm-ic { width: 52px; height: 52px; border-radius: 16px; display: grid; place-items: center; background: #FDECEE; color: var(--vermelho); font-size: 1.4rem; }
.tirar-m select, .tirar-m textarea { width: 100%; font: inherit; }
@media (max-width: 640px) { .den-tirados li { grid-template-columns: minmax(0, 1fr) auto; } .dt-v { grid-column: 1 / -1; } }
/* (271.ª parte) Aviso ao autor: materiais retirados */
.rem-ov { position: fixed; inset: 0; z-index: 400; display: grid; place-items: center; padding: 16px; background: rgba(12, 18, 46, .55); backdrop-filter: blur(6px); opacity: 0; transition: opacity .25s; }
.rem-ov.on { opacity: 1; }
.rem-cx { width: min(520px, 100%); max-height: calc(100vh - 32px); overflow: auto; display: grid; gap: 12px; justify-items: center; text-align: center; padding: 28px 24px 20px; border-radius: 26px; background: var(--sup); box-shadow: 0 30px 80px rgba(12, 18, 46, .35); transform: translateY(14px) scale(.98); transition: transform .3s cubic-bezier(.2, .9, .3, 1.2); }
.rem-ov.on .rem-cx { transform: none; }
.rem-ic { width: 72px; height: 72px; border-radius: 22px; display: grid; place-items: center; font-size: 2rem; color: #fff; background: linear-gradient(135deg, #F0576B, var(--vermelho)); box-shadow: 0 12px 28px rgba(217, 47, 67, .35); }
.rem-cx h2 { font-size: 1.35rem; margin: 4px 0 0; }
.rem-sub { color: var(--tinta-2); line-height: 1.5; margin: 0; }
.rem-l { list-style: none; margin: 4px 0 0; padding: 0; width: 100%; display: grid; gap: 8px; text-align: left; }
.rem-l li { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 10px 12px; border-radius: 14px; background: var(--sup-2); border: 1px solid var(--linha); }
.rem-doc { width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; background: #FDECEE; color: var(--vermelho); }
.rem-t { display: flex; flex-direction: column; min-width: 0; }
.rem-t strong { overflow-wrap: anywhere; font-size: .94rem; }
.rem-t small { color: var(--tinta-3); font-size: .8rem; }
.rem-p { font-weight: 800; color: var(--vermelho); white-space: nowrap; }
.rem-total { margin: 0; color: var(--tinta-2); }
.rem-msgs { width: 100%; display: grid; gap: 8px; text-align: left; }
.rem-msg { padding: 12px 14px; border-radius: 14px; background: var(--azul-suave); }
.rem-msg small { display: block; font-weight: 800; font-size: .74rem; text-transform: uppercase; letter-spacing: .03em; color: var(--bic); margin-bottom: 4px; }
.rem-msg p { margin: 0; line-height: 1.5; color: var(--tinta); }
.rem-btns { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; width: 100%; margin-top: 4px; }
.rem-btns .btn { flex: 1 1 180px; }
.rem-pe { font-size: .84rem; color: var(--tinta-3); margin: 0; }
.rem-pe a { color: var(--bic); font-weight: 700; }
.rem-msg-l { font-size: .86rem; color: var(--tinta-2); margin: 0 0 6px !important; }
.tm-l { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; max-height: 180px; overflow: auto; }
.tm-l li { display: flex; gap: 8px; align-items: center; padding: 6px 10px; border-radius: 10px; background: var(--sup-2); font-size: .88rem; }
.tm-l li i { color: var(--vermelho); }
.tm-l .tm-mais { color: var(--tinta-3); }
.mat-barra-sel { position: sticky; top: calc(var(--topo-h, 68px) + 8px); z-index: 20; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 8px 0 10px; padding: 10px 14px; border-radius: 16px; background: var(--tinta); color: #fff; box-shadow: 0 12px 30px rgba(16, 22, 51, .2); }
.mat-barra-sel .esp { flex: 1; }
.mat-barra-sel .btn-ghost { color: #fff; }
.th-sel, .td-sel { width: 36px; text-align: center; }
.td-sel input, .th-sel input { width: 18px; height: 18px; cursor: pointer; }
.tab-mats tr.tr-sel, .tab-mats tr[data-sel] { background: var(--azul-suave); }
.dt-ap { font-style: normal; font-size: .72rem; font-weight: 800; text-transform: uppercase; color: var(--tinta-3); }
@media (max-width: 760px) { .td-sel { position: absolute; top: 10px; right: 52px; } .tab-mats tr { position: relative; } }
/* (272.ª parte) pódio a sério: o 1.º mais acima, o 2.º um pouco abaixo e o 3.º mais abaixo ainda; as bases acabam
   todas na mesma linha (a do 1.º é a mais alta) */
.rk-podio { align-items: stretch !important; }
.rk-deg { margin-top: 0; }
.rk-deg-1 { margin-top: 0 !important; }
.rk-deg-2 { margin-top: 44px !important; }
.rk-deg-3 { margin-top: 84px !important; }
.rk-deg .rk-base { margin-top: auto; flex: 1 0 auto; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.rk-deg-1 .rk-base { min-height: 120px !important; }
.rk-deg-2 .rk-base { min-height: 84px !important; }
.rk-deg-3 .rk-base { min-height: 56px !important; }
@media (max-width: 640px) { .rk-deg-2 { margin-top: 26px !important; } .rk-deg-3 { margin-top: 50px !important; } .rk-deg-1 .rk-base { min-height: 84px !important; } .rk-deg-2 .rk-base { min-height: 60px !important; } .rk-deg-3 .rk-base { min-height: 44px !important; } }
/* (273.ª parte) os tipos, com o que cada um é */
.tipo-opcoes .tipo-lista.tipo-lista2 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px; }
.tipo-op.tipo-op2 { display: grid; grid-template-columns: 40px minmax(0, 1fr) 22px; align-items: center; gap: 12px; min-height: 68px; padding: 12px 14px; border-radius: 16px; border: 1.5px solid var(--linha); background: var(--sup); font-weight: 400; color: var(--tinta); transition: border-color .15s, background .15s, box-shadow .15s; }
.tipo-op.tipo-op2:hover { border-color: var(--linha-2); box-shadow: 0 6px 18px rgba(22, 42, 91, .06); }
.tipo-op2 .to-ic { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--sup-2); color: var(--tinta-2); font-size: 1rem; }
.tipo-op2 .to-t { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.tipo-op2 .to-t strong { font-size: .95rem; font-weight: 750; line-height: 1.25; }
.tipo-op2 .to-t small { font-size: .8rem; color: var(--tinta-3); line-height: 1.3; }
.tipo-op2 .to-ok { width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; border: 1.5px solid var(--linha-2); color: transparent; font-size: .7rem; }
.tipo-op.tipo-op2.on { border-color: var(--bic); background: var(--azul-suave); color: var(--tinta); }
.tipo-op2.on .to-ic { background: var(--bic); color: #fff; }
.tipo-op2.on .to-ok { background: var(--bic); border-color: var(--bic); color: #fff; }
.tipo-op2.on .to-t strong { color: var(--bic); }
@media (max-width: 560px) { .tipo-opcoes .tipo-lista.tipo-lista2 { grid-template-columns: minmax(0, 1fr) !important; } }
.tipo-op2 .to-ic i, .tipo-op2 .to-ok i { color: inherit !important; }

/* ---------- 120.ª parte: Preencher tudo com IA (Publicar) e Ajuste por IA (admin) ---------- */
.ia-pre { display: flex; align-items: center; gap: 14px; margin: 14px 0 4px; padding: 14px 16px; border-radius: 18px; background: linear-gradient(135deg, var(--azul-suave), var(--sup)); border: 1px solid rgba(30, 64, 230, .2); box-shadow: 0 12px 28px -22px rgba(30, 64, 230, .8); }
.ia-pre > div { flex: 1; min-width: 0; display: grid; gap: 3px; }
.ia-pre strong { font-size: .98rem; }
.ia-pre small { color: var(--tinta-2); font-size: .84rem; line-height: 1.4; }
.ia-pre .it-ic { flex: none; width: 42px; height: 42px; border-radius: 14px; display: grid; place-items: center; background: var(--bic); color: var(--sobre-bic); font-size: 1.05rem; }
.ia-pre .it-ic i { color: inherit !important; }
.ia-pre .btn { flex: none; }
.ia-pre.a-ler .roda-c { flex: none; }
.ia-pre.feito { background: var(--azul-suave); border-style: dashed; }
@media (max-width: 560px) { .ia-pre { flex-wrap: wrap; } .ia-pre .btn { width: 100%; justify-content: center; } }

.aj-ia { display: grid; gap: 14px; }
.aj-cab { display: flex; gap: 14px; align-items: flex-start; }
.aj-cab > div { display: grid; gap: 4px; min-width: 0; }
.aj-cab strong { font-size: 1.08rem; }
.aj-cab small { color: var(--tinta-2); line-height: 1.45; }
.aj-ic { flex: none; width: 46px; height: 46px; border-radius: 15px; display: grid; place-items: center; background: linear-gradient(135deg, var(--bic), var(--bic-2)); color: var(--sobre-bic); font-size: 1.15rem; box-shadow: 0 12px 26px -14px rgba(30, 64, 230, .9); }
.aj-ic i { color: inherit !important; }
.aj-acoes { display: grid; gap: 12px; }
.aj-escolha { display: flex; flex-wrap: wrap; gap: 8px; }
.aj-escolha .chip b { margin-left: 4px; font-weight: 800; }
.aj-acoes > .btn { justify-self: start; }
.aj-prog { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.aj-barra { flex: 1 1 200px; height: 10px; border-radius: 999px; background: var(--azul-claro); overflow: hidden; }
.aj-barra i { display: block; height: 100%; border-radius: inherit; background: var(--bic); transition: width .4s ease; }
.aj-log summary { cursor: pointer; font-weight: 700; }
.aj-log > ul { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 8px; max-height: 420px; overflow: auto; }
.aj-log > ul > li { display: grid; gap: 4px; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--linha, rgba(0,0,0,.08)); border-left-width: 4px; min-width: 0; }
.aj-log > ul > li > a { font-weight: 700; overflow-wrap: anywhere; }
.aj-log small { color: var(--tinta-2); }
.aj-log .aj-ok { border-left-color: var(--bic); }
.aj-log .aj-erro { border-left-color: var(--vermelho); }
.aj-log .aj-nada { border-left-color: var(--tinta-3); opacity: .8; }
.aj-mud { margin: 2px 0 0; padding-left: 18px; display: grid; gap: 2px; font-size: .88rem; overflow-wrap: anywhere; }
.aj-mud s { color: var(--tinta-3); }
.aj-sug b { color: var(--tinta); }
.aj-log .link { justify-self: start; }

/* ---------- 121.ª parte: Esconder / Apagar de vez (termos simples) ---------- */
.tm-esconder .tm-ic { background: var(--azul-suave); color: var(--bic); }
.tm-o-que { margin: 0; padding: 10px 12px; border-radius: 12px; background: var(--sup-2); font-size: .9rem; line-height: 1.45; color: var(--tinta-2); }
.tm-o-que b { color: var(--tinta); }
.tm-castigo { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; border-radius: 14px; border: 1px solid rgba(217, 47, 67, .25); background: #FFF6F7; cursor: pointer; }
.tm-castigo input { width: 20px; height: 20px; margin-top: 2px; accent-color: var(--vermelho); flex: none; }
.tm-castigo span { display: grid; gap: 3px; }
.tm-castigo small { color: var(--tinta-2); line-height: 1.4; }
.tm-aviso { display: grid; gap: 12px; }
.tm-aviso[hidden] { display: none; }
:root[data-theme="dark"] .tm-castigo { background: rgba(217, 47, 67, .1); }

/* ---------- 122.ª parte: páginas legais (Privacidade e Termos) ---------- */
.legal .lg-k { display: inline-block; margin-bottom: 6px; padding: 3px 10px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); font-size: .74rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.legal .lg-data { display: block; margin-top: 6px; color: var(--tinta-3); font-size: .82rem; }
.lg-corpo { display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 18px; align-items: start; }
.lg-indice { position: sticky; top: 84px; padding: 14px 16px; border-radius: 18px; background: var(--sup); border: 1px solid var(--linha); font-size: .86rem; }
.lg-indice strong { display: block; margin-bottom: 8px; font-size: .8rem; color: var(--tinta-3); text-transform: uppercase; letter-spacing: .04em; }
.lg-indice ol { margin: 0; padding-left: 20px; display: grid; gap: 6px; }
.lg-indice li::marker { color: var(--bic); font-weight: 700; }
.lg-indice .link { display: block; width: 100%; text-align: left; font-size: .86rem; line-height: 1.35; color: var(--tinta-2); text-decoration: none; }
.lg-indice .link:hover { color: var(--bic); text-decoration: underline; }
.legal .priv-g { grid-template-columns: minmax(0, 1fr) !important; gap: 12px; }
.legal .priv-sec { scroll-margin-top: 84px; }
.legal .priv-sec h2 span { min-width: 0; }
.legal .lg-n { color: var(--bic); margin-right: 2px; }
.legal .priv-sec li { font-size: .92rem; }
.legal .priv-sec li .link { font-size: inherit; }
@media (max-width: 900px) { .lg-corpo { grid-template-columns: minmax(0, 1fr); } .lg-indice { display: none; } }
@media (max-width: 700px) { .priv-resumo { grid-template-columns: minmax(0, 1fr) !important; } }

/* ---------- 123.ª parte: ferramentas dos materiais num só cartão ---------- */
.fm { display: grid; gap: 12px; padding: 16px 18px; }
.fm-cab { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.fm-cab strong { font-size: 1rem; }
.fm-cab small { color: var(--tinta-3); font-size: .82rem; }
.fm-g { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr)); gap: 10px; }
.fm-t { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 16px; border: 1.5px solid var(--linha); background: var(--sup); color: var(--tinta); font: inherit; text-align: left; text-decoration: none; cursor: pointer; transition: border-color .15s, background .15s; }
.fm-t:hover { border-color: var(--linha-2); background: var(--sup-2); }
.fm-ic { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--azul-suave); color: var(--bic); }
.fm-ic i { color: inherit !important; }
.fm-tx { display: grid; gap: 2px; min-width: 0; }
.fm-tx strong { font-size: .93rem; line-height: 1.25; }
.fm-tx small { font-size: .8rem; color: var(--tinta-3); line-height: 1.3; }
.fm-seta { color: var(--tinta-3); font-size: .8rem; transition: transform .2s; }
.fm-t.on { border-color: var(--bic); background: var(--azul-suave); }
.fm-t.on .fm-seta { transform: rotate(180deg); color: var(--bic); }
.fm-t.fm-aviso .fm-tx small { color: var(--bic); font-weight: 700; }
.fm-t.fm-perigo .fm-ic { background: #FDECEE; color: var(--vermelho); }
.fm-t.fm-perigo .fm-tx small { color: var(--vermelho); font-weight: 700; }
.fm-t.fm-ativo { border-color: var(--vermelho); background: #FFF6F7; }
.fm-painel { display: grid; gap: 12px; padding: 14px 16px; border-radius: 16px; background: var(--sup-2); }
.fm-painel > p { margin: 0; color: var(--tinta-2); font-size: .9rem; line-height: 1.5; }
.fm-painel.aj-ia { border: 0; box-shadow: none; }
:root[data-theme="dark"] .fm-t.fm-perigo .fm-ic, :root[data-theme="dark"] .fm-t.fm-ativo { background: rgba(217, 47, 67, .12); }

/* ---------- 124.ª parte: perfil em duas colunas nos ecrãs grandes ---------- */
.pf-info, .pf-col { display: contents; }
@media (min-width: 1100px) {
  .pf-cab .pf-info { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 6px 28px; align-items: start; margin-top: 6px; }
  .pf-cab .pf-col { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; min-width: 0; }
  .pf-cab .pf-col > * { margin-top: 0 !important; }
  .pf-cab .pf-col-nivel { padding-left: 24px; border-left: 1px solid var(--linha); min-height: 100%; justify-content: center; }
  .pf-cab .pf-col-nivel:empty { display: none; }
  .pf-cab .pf-onde, .pf-cab .pf-uni { overflow-wrap: anywhere; }
  .pf-cab .pf-uni { max-width: 46ch; }
}

/* ---------- 126.ª parte: ver e editar o documento (girar e tapar dados pessoais), em toda a tela ---------- */
.u-ferr-pdf { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 10px; }
.u-ferr-pdf .u-previa-btn { margin-top: 0; width: 100%; justify-content: center; }
.u-tapar-btn.feito { border-color: var(--bic); color: var(--bic); background: var(--azul-suave); }
@media (max-width: 560px) { .u-ferr-pdf { grid-template-columns: minmax(0, 1fr); } }
/* o olho da pré-visualização: no canto, sem «fugir» quando o rato passa (o transform do hover deslocava-o) */
.pr2-ver { left: auto !important; right: 8px; top: 8px; bottom: auto !important; transform: none !important; width: 40px !important; height: 40px !important; }
.pr2-ver:hover, .pr2-ver:active { transform: none !important; }
.ed-doc .eo-rolo { padding: 0 0 16px; }
.ed-barra { position: sticky; top: 0; z-index: 5; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; padding: 12px clamp(12px, 3vw, 24px); background: var(--sup); border-bottom: 1px solid var(--linha); }
.ed-ferr { display: inline-flex; gap: 4px; padding: 4px; border-radius: 14px; background: var(--sup-2); }
.ed-f { display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border: 0; border-radius: 10px; background: transparent; color: var(--tinta-2); font: inherit; font-weight: 700; font-size: .9rem; cursor: pointer; }
.ed-f.on { background: var(--sup); color: var(--bic); box-shadow: 0 2px 8px rgba(16, 22, 51, .1); }
.ed-ops { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; }
.ed-ajuda { flex: 1 1 100%; margin: 0; color: var(--tinta-3); font-size: .84rem; }
.tp-grupo { display: flex; flex-wrap: wrap; gap: 6px; }
.tp-grupo .chip { display: inline-flex; align-items: center; gap: 6px; }
.tp-tam span { display: inline-block; border-radius: 50%; background: currentColor; }
.tp-tam-p span { width: 5px; height: 5px; } .tp-tam-m span { width: 9px; height: 9px; } .tp-tam-g span { width: 13px; height: 13px; }
.ed-g { display: grid; gap: 22px; width: min(900px, 100%); margin: 18px auto 0; padding: 0 clamp(10px, 3vw, 20px); }
.tp-p { margin: 0; display: grid; gap: 8px; }
.tp-c { position: relative; border-radius: 10px; overflow: hidden; border: 1px solid var(--linha); background: #fff; line-height: 0; box-shadow: 0 6px 22px -14px rgba(16, 22, 51, .45); }
.tp-c canvas { display: block; width: 100%; height: auto; }
.tp-tinta { position: absolute; inset: 0; height: 100% !important; pointer-events: none; }
.ed-g[data-ferr="tapar"] .tp-tinta { pointer-events: auto; touch-action: none; cursor: crosshair; }
.tp-p.tapada .tp-c, .tp-p.girada .tp-c { border-color: var(--bic); box-shadow: 0 0 0 2px var(--azul-suave); }
.tp-p figcaption { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: .85rem; color: var(--tinta-3); font-weight: 700; }
.tp-pacoes { display: flex; gap: 6px; }
.ed-so-girar, .ed-so-tapar { display: none !important; }
.ed-g[data-ferr="girar"] .ed-so-girar, .ed-g[data-ferr="tapar"] .ed-so-tapar { display: inline-flex !important; }
.ed-doc .eo-pe { display: flex; align-items: center; justify-content: flex-end; gap: 10px; flex-wrap: wrap; }
.ed-estado { margin-right: auto; color: var(--tinta-3); font-size: .86rem; font-weight: 700; }

/* ---------- 127.ª parte: um só botão para o editor do documento e a barra compacta (bem no telemóvel) ---------- */
.u-doc-ed { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; gap: 12px; width: 100%; margin-top: 12px; padding: 12px 14px; border-radius: 16px; border: 1.5px solid var(--linha-2); background: var(--sup); color: var(--tinta); font: inherit; text-align: left; cursor: pointer; transition: border-color .15s, background .15s; }
.u-doc-ed:hover { border-color: var(--bic); background: var(--azul-suave); }
.ude-ic { width: 42px; height: 42px; border-radius: 13px; display: grid; place-items: center; background: var(--azul-suave); color: var(--bic); }
.ude-ic i, .ude-t small i { color: inherit !important; }
.ude-t { display: grid; gap: 2px; min-width: 0; }
.ude-t strong { font-size: .95rem; }
.ude-t small { color: var(--tinta-3); font-size: .8rem; line-height: 1.35; }
.ude-t small i { color: var(--bic) !important; }
.ude-seta { color: var(--tinta-3); font-size: .8rem; }
.ed-barra { gap: 10px 14px; }
.ed-ops { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.ed-seg { display: inline-flex; gap: 2px; padding: 3px; border-radius: 12px; background: var(--sup-2); }
.ed-o { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-width: 40px; height: 36px; padding: 0 12px; border: 0; border-radius: 9px; background: transparent; color: var(--tinta-2); font: inherit; font-size: .86rem; font-weight: 700; cursor: pointer; }
.ed-o.on { background: var(--sup); color: var(--tinta); box-shadow: 0 2px 8px rgba(16, 22, 51, .12); }
.ed-o-larga { background: var(--sup-2); border-radius: 12px; height: 42px; }
.ed-o-tam { padding: 0; width: 40px; }
.ed-sw { width: 16px; height: 16px; border-radius: 5px; flex: none; }
.ed-sw-preto { background: #111; }
.ed-sw-desfocar { background: repeating-conic-gradient(#9aa0b8 0 25%, #d9dcea 0 50%) 0 0 / 8px 8px; }
.ed-ponto { display: block; border-radius: 50%; background: currentColor; }
.ed-ponto-p { width: 5px; height: 5px; } .ed-ponto-m { width: 10px; height: 10px; } .ed-ponto-g { width: 16px; height: 16px; }
.ed-o-tam.on .ed-ponto { background: var(--bic); }
.ed-doc .eo-t { min-width: 0; }
.ed-doc .eo-t small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 60vw; }
@media (max-width: 640px) {
  .ed-barra { padding: 8px 10px; gap: 8px; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .ed-barra::-webkit-scrollbar { display: none; }
  .ed-ferr { flex: none; }
  .ed-f { padding: 8px 10px; font-size: .84rem; gap: 6px; }
  .ed-barra[data-ferr="tapar"] .ed-f:not(.on) span, .ed-barra[data-ferr="girar"] .ed-f:not(.on) span { display: none; }
  .ed-ops { flex: none; flex-wrap: nowrap; gap: 6px; }
  .ed-ot { display: none; }
  .ed-o { padding: 0 10px; height: 34px; }
  .ed-ajuda { display: none; }
  .ed-g { gap: 14px; margin-top: 10px; padding: 0 8px; }
  .ed-doc .eo-pe { gap: 8px; }
  .ed-doc .eo-pe .btn { flex: 1 1 0; justify-content: center; }
  .ed-estado { flex: 1 1 100%; text-align: center; }
}
/* ---------- 128.ª parte: a editar o material de outra pessoa ---------- */
.pr2-autor { display: grid; background: var(--azul-suave) !important; grid-template-columns: 52px minmax(0, 1fr) auto; align-items: center; gap: 12px; margin: 0 0 14px; padding: 14px 16px; border-radius: 20px; background: var(--sup); border: 1px solid var(--linha); color: var(--tinta); text-decoration: none; }
.pr2-autor:hover { border-color: var(--bic); }
.pr2-autor .pa-av .av, .pr2-autor .pa-av img, .pr2-autor .pa-av > * { width: 52px !important; height: 52px !important; }
.pa-t { display: grid; gap: 1px; min-width: 0; }
.pa-t small { color: var(--tinta-3); font-size: .74rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; }
.pa-t strong { font-size: 1rem; }
.pa-t span { color: var(--tinta-2); font-size: .84rem; line-height: 1.35; overflow-wrap: anywhere; }
.pa-t .pa-uni { color: var(--tinta-3); }
.pa-t em { justify-self: start; margin-top: 4px; padding: 2px 9px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); font-style: normal; font-size: .76rem; font-weight: 800; }
.pa-ir { color: var(--tinta-3); font-size: .8rem; }
/* ---------- 129.ª parte: Ativações no quadro dos poderes ---------- */
.ativ { display: grid; gap: 10px; }
.ativ-l { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 16px; background: var(--sup-2); }
.ativ-ic { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--azul-suave); color: var(--bic); }
.ativ-ic i { color: inherit !important; }
.ativ-t { display: grid; gap: 2px; min-width: 0; }
.ativ-t strong { font-size: .94rem; }
.ativ-t small { color: var(--tinta-3); font-size: .82rem; line-height: 1.4; }
/* ---------- 130.ª parte: histórico de alterações, lixeira e materiais escondidos ---------- */
.hist .intro { margin: 0 0 12px; }
.hist-l { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; max-height: min(64vh, 640px); overflow: auto; }
.hist-l > li { padding: 12px 14px; border-radius: 14px; border: 1px solid var(--linha); background: var(--sup); }
.hist-l > li.feito { opacity: .65; }
.hist-cab { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 10px; }
.hist-cab small { color: var(--tinta-3); }
.hist-cab .btn, .hist-cab em { margin-left: auto; }
.hist-cab em { font-style: normal; font-size: .8rem; color: var(--tinta-3); font-weight: 700; }
.hist-tipo { padding: 2px 9px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); font-size: .74rem; font-weight: 800; }
.hist-ajuste_ia { background: #F1ECFF; color: #6B3FE0; }
.hist-desfazer { background: var(--sup-2); color: var(--tinta-2); }
.hist-mud { margin: 8px 0 0; padding-left: 18px; display: grid; gap: 3px; font-size: .88rem; color: var(--tinta-2); overflow-wrap: anywhere; }
.hist-mud s { color: var(--tinta-3); }
.hist-mud i { font-size: .7rem; color: var(--tinta-3); margin: 0 3px; }
.est-lixo { background: #FDECEE !important; color: var(--vermelho) !important; }
.aviso-escondido { display: flex; gap: 10px; align-items: flex-start; margin: 0 0 12px; padding: 12px 14px; border-radius: 14px; background: var(--azul-suave); color: var(--tinta-2); font-size: .88rem; line-height: 1.45; }
.aviso-escondido i { color: var(--bic); margin-top: 3px; }
.ed-hist { margin-top: 6px; }
.hist { width: min(680px, 86vw); }
.hist-l > li { display: block !important; }
.hist-mud { list-style: disc; }
@media (max-width: 420px) {
  .ed-barra { gap: 6px; padding: 8px; }
  .ed-f { padding: 7px 9px; font-size: .8rem; }
  .ed-o { padding: 0 8px; height: 32px; min-width: 32px; }
  .ed-o-tam { width: 30px; }
  .ed-seg { padding: 2px; }
  .ed-ponto-g { width: 14px; height: 14px; }
}
/* ---------- 131.ª parte: editor do documento só com a caneta; girar no canto de cada página ---------- */
.ed-barra { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
.ed-barra .ed-dica { flex: 1 1 260px; margin: 0; display: flex; gap: 8px; align-items: flex-start; color: var(--tinta-2); font-size: .82rem; line-height: 1.4; }
.ed-barra .ed-dica i { color: var(--bic); margin-top: 2px; }
.ed-rot { position: absolute; top: 10px; right: 10px; z-index: 3; width: 40px; height: 40px; border-radius: 50%; border: 0; display: grid; place-items: center; background: rgba(16, 22, 51, .55); color: #fff; cursor: pointer; line-height: 1; box-shadow: 0 4px 14px rgba(16, 22, 51, .25); transition: transform .15s, background .15s; }
.ed-rot i { color: #fff !important; font-size: .95rem; }
.ed-rot:hover { background: rgba(16, 22, 51, .75); transform: scale(1.06); }
.ed-rot:active i { transform: rotate(90deg); transition: transform .2s; }
/* no telemóvel, deslizar para cima e para baixo continua a fazer scroll; riscar para o lado pinta */
.ed-g[data-ferr="tapar"] .tp-tinta { touch-action: pan-y; }
@media (max-width: 640px) {
  .ed-barra { flex-wrap: wrap; overflow: visible; padding: 8px 10px 10px; }
  .ed-barra .ed-dica { flex: 1 1 100%; font-size: .78rem; }
  .ed-ops { flex: 1 1 100%; justify-content: space-between; }
  .ed-ot { display: inline; }
  .ed-rot { width: 36px; height: 36px; top: 8px; right: 8px; }
}
/* ---------- 132.ª parte: Ensino superior / Concursos e bolsas e o Monitor, lado a lado, também no telemóvel ---------- */
.exp-amb .ea-c { display: none; }
@media (max-width: 600px) {
  .exp-amb-l { gap: 8px !important; }
  .exp-amb.tabs3d { flex: 1 1 auto !important; min-width: 0; }
  .exp-amb.tabs3d button { min-width: 0; padding: 0 8px !important; gap: 6px !important; font-size: .86rem !important; height: 44px !important; }
  .exp-amb button span { overflow: hidden; text-overflow: ellipsis; }
  .exp-monitor { width: 44px !important; height: 44px !important; border-radius: 12px !important; }
  .exp-monitor .logo-svg { width: 24px; height: 24px; }
}
@media (max-width: 400px) {
  .exp-amb .ea-l { display: none; }
  .exp-amb .ea-c { display: inline; }
}
/* ---------- 133.ª parte: Monitor mais claro e bem no telemóvel ---------- */
.mon-limite { display: inline-flex; align-items: flex-start; gap: 8px; max-width: 560px; margin: 0 !important; padding: 8px 12px; border-radius: 12px; background: var(--azul-suave); color: var(--tinta-2) !important; font-size: .86rem !important; line-height: 1.45; text-align: left; }
.mon-limite i { color: var(--bic); margin-top: 3px; }
.mon-ex { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; max-width: 640px; }
.mon-ex-b { padding: 8px 14px; border-radius: 999px; border: 1px solid var(--linha-2); background: var(--sup); color: var(--tinta-2); font: inherit; font-size: .86rem; cursor: pointer; }
.mon-ex-b:hover { border-color: var(--bic); color: var(--bic); }
body.rota-monitor #subir, body.rota-monitor .subir { display: none !important; }
@media (max-width: 600px) {
  .mon-msg.ia { display: block; }
  .mon-msg.ia .mon-av { width: 28px; height: 28px; border-radius: 9px; margin-bottom: 8px; }
  .mon-msg.ia .mon-av svg { width: 16px; height: 16px; }
  .mon-ia-c { gap: 10px; }
  .mon-txt { font-size: .98rem; }
  .mon-ola { padding: 2vh 4px 140px; gap: 10px; }
  .mon-ola p { font-size: .95rem; }
  .mon-limite { font-size: .8rem !important; }
  .mon-ex { justify-content: flex-start; flex-wrap: nowrap; overflow-x: auto; width: 100%; padding-bottom: 4px; scrollbar-width: none; }
  .mon-ex-b { flex: none; }
  .mon-pe small { font-size: .72rem; text-align: center; padding: 0 12px; }
}
/* ---------- 134.ª parte: separadores do painel com o mesmo tamanho em todo o lado ---------- */
.abas.abas-adm { display: flex; flex-wrap: wrap; gap: 4px; padding: 6px; border-radius: 18px; }
.abas.abas-adm .aba { display: inline-flex; align-items: center; gap: 8px; height: 42px; padding: 0 14px; border-radius: 12px; font-size: .9rem; font-weight: 700; white-space: nowrap; }
.abas.abas-adm .aba i, .adm-sub-b i { font-size: .85rem; width: 16px; text-align: center; }
.adm-sub { gap: 4px; padding: 5px; border-radius: 14px; }
.adm-sub-b { height: 38px; padding: 0 13px; font-size: .88rem; border-radius: 10px; }
@media (max-width: 760px) {
  .abas.abas-adm, .adm-sub { flex-wrap: nowrap !important; overflow-x: auto; width: 100%; max-width: 100%; scrollbar-width: none; scroll-snap-type: x proximity; -webkit-mask-image: linear-gradient(90deg, #000 88%, transparent); mask-image: linear-gradient(90deg, #000 88%, transparent); }
  .abas.abas-adm::-webkit-scrollbar, .adm-sub::-webkit-scrollbar { display: none; }
  .abas.abas-adm .aba { flex: none; height: 38px; padding: 0 12px; font-size: .84rem; gap: 6px; scroll-snap-align: start; }
  .adm-sub-b { flex: none; height: 34px; padding: 0 11px; font-size: .82rem; gap: 6px; scroll-snap-align: start; }
}
@media (max-width: 600px) {
  .fm { padding: 12px; }
  .fm-g { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .fm-t { grid-template-columns: 32px minmax(0, 1fr); gap: 8px; padding: 10px; border-radius: 14px; }
  .fm-ic { width: 32px; height: 32px; border-radius: 10px; font-size: .85rem; }
  .fm-seta { display: none; }
  .fm-tx strong { font-size: .84rem; }
  .fm-tx small { font-size: .74rem; }
  .fm-cab small { display: none; }
}

/* (279.ª parte) editor: X para tirar páginas ao lado do girar, e desfazer/refazer na barra */
.tp-c .ed-pbts { position: absolute; top: 10px; right: 10px; z-index: 3; display: flex; gap: 8px; }
.tp-c .ed-pbts .ed-rot { position: static; }
.ed-rot.ed-x { background: rgba(180, 35, 47, .62); }
.ed-rot.ed-x:hover { background: rgba(200, 30, 45, .88); }
.ed-rot.ed-x:active i { transform: none; }
.ed-tirada { display: none; position: absolute; inset: 0; z-index: 2; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding: 16px; background: rgba(243, 245, 251, .88); backdrop-filter: grayscale(1); line-height: 1.4; text-align: center; }
.ed-tirada p { margin: 0; display: flex; align-items: center; gap: 8px; font-weight: 800; color: #b4232f; font-size: .95rem; }
.tp-p.tirada .ed-tirada { display: flex; }
.tp-p.tirada .tp-c { border-color: #e6a3a9; box-shadow: none; }
.tp-p.tirada .ed-x, .tp-p.tirada [data-action="ed-girar"] { display: none; }
.tp-p.tirada .tp-pacoes { visibility: hidden; }
.ed-hist .ed-o { color: var(--tinta); }
.ed-hist .ed-o svg { flex: none; }
.ed-hist .ed-o:disabled { opacity: .38; cursor: default; }
.ed-hist .ed-o:not(:disabled):hover { background: var(--sup); }
@media (max-width: 720px) {
  .ed-hist .ed-ot { display: none; }
  .ed-hist .ed-o { padding: 0; width: 36px; }
  .tp-c .ed-pbts { top: 8px; right: 8px; gap: 6px; }
}

/* (281.ª parte) Materiais → «Corrigir por Excel» */
.cx-passos { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.cx-passos > li { display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: center; padding: 12px 14px; border-radius: 14px; background: var(--sup); border: 1px solid var(--linha); }
.cx-passos > li > div { display: grid; gap: 2px; min-width: 0; }
.cx-passos strong { font-size: .95rem; }
.cx-passos small { color: var(--tinta-2); font-size: .84rem; line-height: 1.4; }
.cx-n { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: var(--azul-suave); color: var(--bic); font-weight: 800; font-size: .9rem; }
.cx-prompt { margin-top: 6px; }
.cx-prompt summary { cursor: pointer; color: var(--bic); font-size: .84rem; font-weight: 700; }
.cx-prompt pre { margin: 8px 0 0; max-height: 280px; overflow: auto; white-space: pre-wrap; font: inherit; font-size: .82rem; line-height: 1.5; padding: 10px 12px; border-radius: 10px; background: var(--sup-2); color: var(--tinta-2); }
.cx-passos label.disabled { opacity: .6; pointer-events: none; }
.cx-ver { display: grid; gap: 10px; padding: 14px; border-radius: 14px; background: var(--sup); border: 1px solid var(--bic); }
.cx-ver-cab { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
.cx-ver-cab small { color: var(--tinta-3); }
.cx-l { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; max-height: 520px; overflow: auto; }
.cx-l > li { padding-bottom: 10px; border-bottom: 1px solid var(--linha); }
.cx-l > li > a { font-weight: 700; color: var(--tinta); }
.cx-av { display: block; margin-top: 4px; color: #a5560b; font-size: .82rem; }
.cx-avisos summary, .cx-lotes summary { cursor: pointer; font-weight: 700; font-size: .9rem; }
.cx-avisos ul { margin: 8px 0 0; padding-left: 18px; font-size: .84rem; color: var(--tinta-2); display: grid; gap: 3px; }
.cx-lotes ul { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 8px; }
.cx-lotes li { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 12px; border-radius: 12px; background: var(--sup); border: 1px solid var(--linha); }
.cx-lotes li span { display: grid; gap: 2px; }
.cx-lotes li small { color: var(--tinta-3); font-size: .8rem; }
.cx-lotes li.cx-desf { opacity: .6; }
.cx-lotes li em { font-size: .84rem; color: var(--tinta-3); }
@media (max-width: 640px) {
  .cx-passos > li { grid-template-columns: auto 1fr; }
  .cx-passos > li > .btn, .cx-passos > li > label { grid-column: 1 / -1; justify-self: start; }
}

/* (282.ª parte) Materiais: a barra de procura afastada das ferramentas e maior; ordenar e universidade à direita */
.adm-ferr.adm-ferr-mat { margin: 18px 0 14px; gap: 12px; align-items: center; flex-wrap: wrap; }
.adm-ferr-mat > .exp-busca.pequeno { flex: 1 1 420px; max-width: none; height: 50px; }
.adm-ferr-mat > .exp-busca.pequeno input { font-size: 1rem; }
.adm-ferr-mat .afm-dir { margin-left: auto; display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: flex-end; }
.cx-bts { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
@media (max-width: 760px) {
  .adm .adm-ferr.adm-ferr-mat { flex-direction: column; align-items: stretch; }
  .adm-ferr-mat .afm-dir { margin-left: 0; justify-content: stretch; }
  .adm-ferr-mat .afm-dir > * { flex: 1 1 auto; }
  .cx-passos > li > .cx-bts { grid-column: 1 / -1; justify-content: flex-start; }
}

/* (287.ª parte) Materiais: o que está por corrigir */
.tab-mat .tab-prob { display: flex; align-items: flex-start; gap: 6px; margin-top: 4px; color: #B91C1C; font-weight: 700; font-size: .8rem; line-height: 1.35; }
.tab-mat .tab-prob i { margin-top: 2px; color: #DC2626; }
.chips .chip-corrigir { border-color: #FCA5A5; background: #FEF2F2; color: #B91C1C; font-weight: 700; }
.chips .chip-corrigir i { color: #DC2626; margin-right: 6px; }
.chips .chip-corrigir .n-chip { background: #FECACA; color: #991B1B; }
.chips .chip-corrigir[aria-pressed="true"] { background: #DC2626; border-color: #DC2626; color: #fff; }
.chips .chip-corrigir[aria-pressed="true"] i { color: #fff; }
.chips .chip-corrigir[aria-pressed="true"] .n-chip { background: rgba(255, 255, 255, .25); color: #fff; }

/* (288.ª parte) Pontos: cada tipo de material com o preço e o ganho (painel e «Como funcionam os pontos») */
.vt-sec { padding: 18px; display: grid; gap: 10px; }
.vt-g-t, .tp-pts-g { margin: 10px 0 2px; font-size: .95rem; font-weight: 800; color: var(--tinta); }
.vt-g-t:first-child, .tp-pts-g:first-of-type { margin-top: 0; }
.vt-g, .tp-pts-l { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(330px, 100%), 1fr)); gap: 12px; }
.vt-c, .tp-pts { display: grid; gap: 12px; padding: 14px 16px; border-radius: 18px; background: var(--sup); border: 1px solid var(--linha); }
.vt-cab, .tp-pts-cab { display: flex; align-items: center; gap: 12px; min-width: 0; }
.vt-ic, .tp-pts-ic { flex: none; width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; background: var(--sup-2); color: var(--tinta-2); font-size: 1.05rem; }
.vt-t, .tp-pts-cab > span:last-child { display: grid; gap: 2px; min-width: 0; }
.vt-t strong, .tp-pts-cab strong { font-size: 1rem; font-weight: 800; color: var(--tinta); }
.vt-t small, .tp-pts-cab small { color: var(--tinta-2); font-size: .84rem; line-height: 1.35; }
.vt-vals { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.vt-v { display: grid; gap: 6px; }
.vt-vr { font-size: .78rem; font-weight: 700; color: var(--tinta-2); }
.vt-v .vp-in { width: 100%; }
.vt-v .vp-orig { font-size: .72rem; }
.vt-nota, .tp-pts-nota { display: flex; gap: 8px; align-items: flex-start; margin: 4px 0 0; color: var(--tinta-2); font-size: .84rem; }
.tp-pts-v { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.tp-pts-v > span { display: grid; gap: 2px; padding: 10px 12px; border-radius: 12px; }
.tp-pts-v small { font-size: .74rem; font-weight: 700; color: var(--tinta-2); }
.tp-pts-v b { font-size: 1.15rem; font-weight: 800; }
.tp-pts-v em { font-style: normal; font-size: .74rem; color: var(--tinta-2); }
.tp-paga { background: #FEF2F2; }
.tp-paga b { color: #B91C1C; }
.tp-ganha { background: #ECFDF3; }
.tp-ganha b { color: #047857; }
.rg-simples { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.rg-simples li { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; border-radius: 14px; background: var(--sup); border: 1px solid var(--linha); line-height: 1.45; }
.rg-simples li i { flex: none; width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; background: var(--azul-suave); color: var(--bic); margin-top: -4px; }
@media (max-width: 520px) {
  .vt-vals, .tp-pts-v { grid-template-columns: 1fr 1fr; gap: 8px; }
  .vt-c, .tp-pts { padding: 12px; }
}
.vt-nota svg { flex: none; width: 18px; height: 18px; }
.vt-gratis { display: flex; align-items: center; height: 44px; padding: 0 14px; border-radius: 12px; background: #ECFDF3; color: #047857; font-weight: 800; }
.vt-gr-n { font-style: normal; font-size: .72rem; color: var(--tinta-3); }
.tp-pts, .tp-pts-g, .tp-pts-nota, .rg-simples { text-align: left; }
.tp-pts-v > span { text-align: center; }
.tp-paga.tp-gr { background: #ECFDF3; }
.tp-paga.tp-gr b { color: #047857; }

/* (289.ª parte) Pontos → Valores mais curto: secções que abrem e fecham, sem notas compridas, e os tipos numa tabela */
.vp .vp-rot small, .vp .vp-linha .vp-orig, .vp .vp-sec header small { display: none; }
.vp .vp-sec > header[data-vp-abrir] { cursor: pointer; padding: 14px 18px; border-bottom: 1px solid var(--linha); position: relative; padding-right: 48px; }
.vp .vp-sec > header[data-vp-abrir]::after { content: ''; position: absolute; right: 20px; top: 50%; width: 9px; height: 9px; border-right: 2.5px solid var(--tinta-2); border-bottom: 2.5px solid var(--tinta-2); transform: translateY(-70%) rotate(45deg); transition: transform .15s; }
.vp .vp-sec.fechada > header[data-vp-abrir] { border-bottom: 0; }
.vp .vp-sec.fechada > header[data-vp-abrir]::after { transform: translateY(-30%) rotate(-135deg); }
.vp .vp-sec.fechada > :not(header) { display: none !important; }
.vp .vp-sec > header .vp-sec-ic { width: 38px; height: 38px; border-radius: 12px; font-size: .95rem; }
.vp .vp-grupo small { display: none; }
.vp .vp-grelha.vp-temas { align-items: start; }
.vt-sec { padding: 0 !important; overflow: hidden; border-radius: 22px !important; margin-bottom: 18px; }
.vt-cab { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; padding: 16px 18px 10px; }
.vt-cab h3 { margin: 0; font-size: 1.05rem; }
.vt-cab small { color: var(--tinta-2); font-size: .84rem; }
.vt-r { display: grid; grid-template-columns: minmax(0, 1fr) 140px 140px; gap: 10px; align-items: center; padding: 6px 18px; }
.vt-r + .vt-r { border-top: 1px solid var(--linha); }
.vt-h { padding-top: 8px; padding-bottom: 8px; background: var(--sup-2); font-size: .74rem; font-weight: 800; color: var(--tinta-2); text-transform: uppercase; letter-spacing: .02em; }
.vt-h span:not(:first-child) { text-align: center; }
.vt-n { display: flex; align-items: center; gap: 10px; font-weight: 700; color: var(--tinta); min-width: 0; }
.vt-n i { flex: none; width: 30px; height: 30px; border-radius: 9px; display: grid; place-items: center; background: var(--sup-2); color: var(--tinta-2); font-size: .85rem; }
.vt-gt { padding: 12px 18px 4px; font-size: .8rem; font-weight: 800; color: var(--bic); border-top: 1px solid var(--linha); }
.vt-in { width: 100%; height: 40px; }
.vt-r .vt-gratis { height: 40px; justify-content: center; }
@media (max-width: 620px) {
  .vt-r { grid-template-columns: minmax(0, 1fr) 92px 92px; gap: 6px; padding: 6px 12px; }
  .vt-h { font-size: .64rem; }
  .vt-n i { display: none; }
  .vt-n { font-size: .86rem; }
}
.vp .vp-sec > header[data-vp-abrir]::after { transform: translateY(-30%) rotate(-135deg); }
.vp .vp-sec.fechada > header[data-vp-abrir]::after { transform: translateY(-70%) rotate(45deg); }

/* (290.ª parte) filtros: um ícone em cada tipo de ficheiro */
.fac-op .fac-ic { flex: none; width: 30px; height: 30px; border-radius: 9px; display: grid; place-items: center; background: var(--sup-2); color: var(--tinta-2); font-size: .85rem; margin-right: 2px; }
.fac-op[aria-pressed="true"] .fac-ic { background: var(--azul-suave); color: var(--bic); }
.fac-op.zero .fac-ic { opacity: .55; }

/* (291.ª parte) avatar no telemóvel: os separadores fixos sem sombra (só uma linha fina) e sem barras de deslizar à vista */
@media (max-width: 899px) {
  .ed-pagina .ed-navs { box-shadow: 0 -14px 0 0 var(--mesa) !important; border-bottom: 1px solid var(--linha); }
  .ed-pagina .ed-navs .ed-cats, .ed-pagina .ed-navs .ed-subcats, .ed-pagina .ed-navs .ed-sub { scrollbar-width: none; }
  .ed-pagina .ed-navs .ed-cats::-webkit-scrollbar, .ed-pagina .ed-navs .ed-subcats::-webkit-scrollbar, .ed-pagina .ed-navs .ed-sub::-webkit-scrollbar { display: none; }
}
/* (291.ª parte) publicidade: a imagem ocupa a largura toda (sem faixas escuras dos lados) */
#pub-raiz .av-pub:not(.vertical) .av-pub-media { background: transparent; }
#pub-raiz .av-pub:not(.vertical) .av-pub-media img { max-height: min(80vh, 820px); margin: 0 auto; }

/* (292.ª parte) «Ver todos…» dos filtros: as opções em cartões (como o «Ordenar por»), com ícone ou logótipo; vários de cada vez */
.fe-cx.fe-cx-c { width: min(820px, 100%); }
.fe-varios { display: inline-flex; align-items: center; gap: 6px; margin: 4px 0 0; font-size: .78rem; font-weight: 700; color: var(--bic); }
.fe-lista.fe-cartoes { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(230px, 100%), 1fr)); gap: 10px; align-content: start; padding: 6px 18px 16px; }
.fe-cartoes .fe-sep, .fe-cartoes .fe-mais, .fe-cartoes .fac-vazio { grid-column: 1 / -1; margin: 8px 2px 0; }
.fc-op { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-rows: auto auto; gap: 4px 12px; align-items: center; text-align: left; padding: 14px 40px 14px 14px; border-radius: 18px; border: 1.5px solid var(--linha); background: var(--sup); color: var(--tinta); font: inherit; cursor: pointer; transition: border-color .15s, background .15s, box-shadow .15s; min-height: 84px; }
.fc-op:hover { border-color: var(--linha-2); box-shadow: 0 8px 22px -16px rgba(16, 22, 51, .35); }
.fc-op.on { border-color: var(--bic); background: var(--azul-suave); }
.fc-op.zero { opacity: .62; }
.fc-ic { grid-row: 1 / 3; width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; background: var(--azul-suave); color: var(--bic); font-size: 1.1rem; overflow: hidden; }
.fc-op.on .fc-ic { background: var(--bic); color: #fff; }
.fc-uni .fc-ic { background: #fff; border: 1px solid var(--linha); }
.fc-op.on.fc-uni .fc-ic { background: #fff; }
.fc-ic .fc-logo { width: 100%; height: 100%; object-fit: contain; border-radius: 0; }
.fc-ic .uni-sigla.fc-logo { display: grid; place-items: center; width: 100%; height: 100%; font-size: calc(.82rem * var(--t, 1)); font-weight: 800; color: var(--bic); background: transparent; }
.fc-t { display: grid; gap: 2px; min-width: 0; }
.fc-t strong { font-weight: 800; font-size: .95rem; line-height: 1.25; overflow-wrap: anywhere; }
.fc-t small { color: var(--tinta-2); font-size: .8rem; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.fc-n { grid-column: 2; font-size: .74rem; font-weight: 700; color: var(--tinta-3); }
.fc-op.on .fc-n { color: var(--bic); }
.fc-ok { position: absolute; top: 10px; right: 10px; width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; border: 1.5px solid var(--linha-2); background: var(--sup); color: transparent; }
.fc-ok svg { width: 13px; height: 13px; }
.fc-op.on .fc-ok { background: var(--bic); border-color: var(--bic); color: #fff; }
@media (max-width: 560px) {
  .fe-lista.fe-cartoes { grid-template-columns: 1fr 1fr; gap: 8px; padding: 6px 12px 14px; }
  .fc-op { grid-template-columns: 1fr; grid-template-rows: auto; padding: 12px 34px 12px 12px; min-height: 0; gap: 8px; }
  .fc-ic { grid-row: auto; width: 40px; height: 40px; }
  .fc-n { grid-column: 1; }
}
.fe-lista.fe-cartoes { grid-auto-rows: max-content; }
@media (max-width: 560px) {
  .fe-lista.fe-cartoes { grid-template-columns: 1fr; }
  .fc-op { grid-template-columns: auto minmax(0, 1fr); grid-template-rows: auto auto; gap: 2px 12px; padding: 12px 40px 12px 12px; }
  .fc-ic { grid-row: 1 / 3; }
  .fc-n { grid-column: 2; }
}

/* (293.ª parte) avatar no telemóvel: o boneco maior e os botões mais estreitos; os separadores fixos de ponta a ponta,
   com fundo (o texto de baixo não aparece dos lados) e as pontas a esbater em vez de cortar */
@media (max-width: 899px) {
  .ed-pagina .ed-lado { grid-template-columns: minmax(0, 1fr) minmax(0, 46%) !important; }
  .ed-pagina .ed-lado .ed-previa { width: 100% !important; height: auto !important; aspect-ratio: 1; max-width: 200px; justify-self: center; }
  .ed-pagina .ed-lado > .ed-botoes .btn { height: 36px !important; font-size: .78rem !important; }
  .ed-pagina .ed-navs { margin-left: -16px !important; margin-right: -16px !important; padding-left: 16px !important; padding-right: 16px !important; }
  .ed-pagina .ed-navs .ed-cats, .ed-pagina .ed-navs .ed-subcats { -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 26px), transparent 100%); mask-image: linear-gradient(90deg, #000 calc(100% - 26px), transparent 100%); padding-right: 16px !important; }
}
@media (max-width: 380px) {
  .ed-pagina .ed-lado { grid-template-columns: minmax(0, 1fr) minmax(0, 50%) !important; }
}
@media (max-width: 899px) { .ed-pagina .ed-lado .ed-previa > * { width: 100% !important; height: 100% !important; max-width: none !important; } }

/* ---------- 295.ª parte: o topo do perfil arrumado e «Editar avatar» escrito ---------- */
@media (max-width: 640px) {
  .pf-cab > .pf-acoes .pf-b-av span { position: static !important; width: auto !important; height: auto !important; overflow: visible !important; clip: auto !important; }
}
.pf-cab .pf-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; }
.pf-cab .pf-meta .pf-papel { margin-left: 0; white-space: nowrap; }
@media (max-width: 640px) { .pf-cab .pf-quem .pf-meta { justify-content: center; } }
@media (min-width: 1100px) {
  .pf-cab .pf-info.pf-info-1 { grid-template-columns: minmax(0, 1fr); }
  .pf-cab .pf-info-1 .pf-col-nivel { padding-left: 0; border-left: 0; }
  .pf-cab .pf-col-nivel { gap: 8px; }
}
/* os cartões de «Ver todos» (cadeiras, cursos…): o nome sem ser tudo a negrito */
.fc-op .fc-t strong { font-weight: 500 !important; }
.fc-op .fc-t small, .fc-op .fc-n { font-weight: 400 !important; }
.fc-op.on .fc-t strong { font-weight: 600 !important; }

/* ---------- 296.ª parte: tapar no telemóvel sem a página fugir ---------- */
/* a pintar, o dedo só pinta (a página não desliza); para deslizar: dois dedos ou o botão «Mover» */
.ed-g[data-ferr="tapar"] .tp-tinta { touch-action: none; }
.ed-g.ed-mover .tp-tinta { pointer-events: none !important; touch-action: auto !important; cursor: grab; }
.ed-seg-mao { display: none; }
.ed-seg-mao .ed-o { display: inline-flex; align-items: center; gap: 6px; }
@media (pointer: coarse) { .ed-seg-mao { display: inline-flex; } }
.ed-dica-toque { display: none; }
@media (pointer: coarse) { .ed-dica-toque { display: inline; } }

/* ---------- 296.ª parte: filtros no telemóvel, dois a dois, com logótipo ou ícone ---------- */
.fac-icf { display: none; }
@media (max-width: 640px) {
  .folha-filtros .fac-ops { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .folha-filtros .fac-op-l { min-width: 0; }
  .folha-filtros .fac-op { width: 100%; height: 100%; display: grid; grid-template-columns: 34px minmax(0, 1fr); grid-template-rows: auto auto; align-content: center; gap: 3px 9px; padding: 9px 10px 9px 8px; border-radius: 14px; min-height: 58px; font-weight: 600; text-align: left; }
  .folha-filtros .fac-op .fac-icf { grid-row: 1 / 3; align-self: center; }
  .folha-filtros .fac-op .fac-icf { display: grid; place-items: center; flex: none; width: 34px; height: 34px; border-radius: 10px; background: var(--azul-suave); color: var(--bic); font-size: .92rem; overflow: hidden; }
  .folha-filtros .fac-op .fac-icf-uni { background: #fff; border: 1px solid var(--linha); }
  .folha-filtros .fac-icf .fc-logo { width: 100%; height: 100%; object-fit: contain; border-radius: 0; }
  .folha-filtros .fac-icf .uni-sigla.fc-logo { display: grid; place-items: center; font-size: calc(.66rem * var(--t, 1)); font-weight: 800; color: var(--bic); background: transparent; }
  .folha-filtros .fac-op .fac-t { flex: 1 1 auto; min-width: 0; white-space: normal; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; line-height: 1.2; font-size: .9rem; }
  .folha-filtros .fac-op .fac-n { grid-column: 2; justify-self: start; margin: 0; padding: 0 7px; min-width: 0; font-size: .72rem; font-weight: 600; }
  .folha-filtros .fac-op-l { display: flex; align-items: stretch; }
  .folha-filtros .fac-op[aria-pressed="true"] .fac-icf { background: rgba(255, 255, 255, .2); color: #fff; }
  .folha-filtros .fac-op[aria-pressed="true"] .fac-icf-uni { background: #fff; }
}

/* ---------- 297.ª parte: Explorar em lista ou em grelha, títulos inteiros, desbloqueios sempre à vista ---------- */
.cab-exp { flex-wrap: nowrap; align-items: center; }
.cab-exp > div:not(.vista-exp) { min-width: 0; }
.vista-exp { order: 2; margin-left: auto; flex: none; display: inline-flex; gap: 2px; padding: 3px; border-radius: 12px; background: var(--sup); border: 1px solid var(--linha); }
.vista-b { width: 40px; height: 36px; border: 0; border-radius: 9px; background: transparent; color: var(--tinta-3); display: grid; place-items: center; cursor: pointer; font-size: 1rem; transition: background .15s, color .15s; }
.vista-b:hover { color: var(--bic); }
.vista-b[aria-pressed="true"] { background: var(--bic); color: var(--sobre-bic, #fff); }
/* os títulos e o «onde» inteiros (sem cortar) */
#exp-res .cartao h3 { display: block !important; -webkit-line-clamp: unset !important; overflow: visible !important; text-overflow: clip !important; white-space: normal !important; overflow-wrap: anywhere; }
#exp-res .cartao .onde { white-space: normal !important; overflow: visible !important; text-overflow: clip !important; display: block !important; -webkit-line-clamp: unset !important; }
.cartao-nums .stat-desb svg { opacity: .9; }
/* em grelha: título em cima, a capa e o resto ao centro */
.vista-grelha #exp-res .grelha-docs { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
.vista-grelha #exp-res .cartao { display: flex !important; flex-direction: column; align-items: center; text-align: center; padding: 16px 14px 12px; }
.vista-grelha #exp-res .cartao > * { width: 100%; }
.vista-grelha #exp-res .cartao .geral-etq { order: 0; }
.vista-grelha #exp-res .cartao h3 { order: 1; margin: 0 0 12px; font-size: 1.04rem; line-height: 1.3; text-align: center; }
.vista-grelha #exp-res .cartao-th { order: 2; width: min(230px, 66%) !important; margin: 0 auto 12px; align-self: center; }
.vista-grelha #exp-res .cartao .onde { order: 3; margin: 0 0 8px; text-align: center; }
.vista-grelha #exp-res .cartao .etiquetas { order: 4; justify-content: center; display: flex; flex-wrap: wrap; }
.vista-grelha #exp-res .cartao .cartao-desc { order: 5; text-align: center; }
.vista-grelha #exp-res .cartao .cartao-extra { order: 6; justify-content: center; }
.vista-grelha #exp-res .cartao .ce-i { justify-content: center; }
.vista-grelha #exp-res .cartao .ce-tx { white-space: normal; overflow: visible; }
.vista-grelha #exp-res .cartao-pe { order: 7; display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--linha); text-align: left; }
@media (min-width: 761px) {
  .vista-grelha #exp-res .grelha-docs { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: stretch; }
  .vista-grelha #exp-res .cartao-pe { margin-top: auto; }
  .vista-grelha #exp-res .cartao .cartao-extra { margin-bottom: 12px; }
}
/* filtros no telemóvel: as cadeiras uma por baixo da outra (os nomes são compridos) */
@media (max-width: 640px) {
  .folha-filtros .fac-ops:has(.fac-op[data-k="cad"]) { grid-template-columns: minmax(0, 1fr); }
  .folha-filtros .fac-op[data-k="cad"] .fac-t { -webkit-line-clamp: 3; }
}
/* os logótipos das instituições nos filtros: inteiros, sem moldura dupla, num quadrado branco */
.fac-icf .uni-foto.fc-logo, .fc-ic .uni-foto.fc-logo { width: 100% !important; height: 100% !important; min-width: 0; padding: 3px; box-sizing: border-box; border: 0 !important; border-radius: 0 !important; background: #fff !important; object-fit: contain !important; object-position: center; display: block; }
.folha-filtros .fac-op .fac-icf-uni, .fc-uni .fc-ic { background: #fff !important; border: 1px solid var(--linha); padding: 0; }

/* ---------- 298.ª parte: a grelha mais compacta e sem ícones nos detalhes ---------- */
.vista-grelha #exp-res .cartao { padding: 12px 12px 10px; }
.vista-grelha #exp-res .cartao h3 { font-size: .94rem; line-height: 1.28; margin: 0 0 8px; }
.vista-grelha #exp-res .cartao-th { width: min(140px, 46%) !important; margin: 0 auto 8px; }
.vista-grelha #exp-res .cartao .onde { font-size: .8rem; margin: 0 0 6px; }
.vista-grelha #exp-res .cartao .etiquetas { gap: 4px; }
.vista-grelha #exp-res .cartao .etiquetas .et { font-size: .72rem; padding: 2px 8px; }
.vista-grelha #exp-res .cartao .cartao-desc { font-size: .8rem; margin-top: 6px; -webkit-line-clamp: 2; }
.vista-grelha #exp-res .cartao .cartao-extra { font-size: .76rem; margin-top: 4px; gap: 2px 10px; }
.vista-grelha #exp-res .cartao .ce-i > i { display: none !important; }
.vista-grelha #exp-res .cartao .ce-i { gap: 4px; }
.vista-grelha #exp-res .cartao .ce-tx { -webkit-line-clamp: 2; display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; }
.vista-grelha #exp-res .cartao-pe { margin-top: 8px; padding-top: 8px; }
.vista-grelha #exp-res .cartao .quem .av { width: 32px !important; height: 32px !important; }
.vista-grelha #exp-res .cartao .quem-t { font-size: .82rem; }
.vista-grelha #exp-res .cartao-pe .marcar.btn { width: 34px !important; height: 34px !important; }
.vista-grelha #exp-res .estado-th { font-size: .62rem; height: 18px; }
.vista-grelha #exp-res .pags { font-size: .62rem; }
@media (min-width: 761px) {
  .vista-grelha #exp-res .grelha-docs { gap: 12px; }
  .vista-grelha #exp-res .cartao-th { width: min(150px, 42%) !important; }
}
.vista-grelha #exp-res .cartao-pe { flex-wrap: nowrap !important; }
.vista-grelha #exp-res .cartao-pe .quem { min-width: 0; flex: 1 1 auto; }
.vista-grelha #exp-res .cartao-pe .cartao-nums { flex: none; margin-left: auto; }

/* ---------- 299.ª parte: grelha sem os cursos, textos em 2 linhas no máximo; a publicidade a toda a largura ---------- */
.vista-grelha #exp-res .cartao .ce-cur { display: none !important; }
.vista-grelha #exp-res .cartao .cartao-desc { display: -webkit-box !important; -webkit-box-orient: vertical; -webkit-line-clamp: 2 !important; overflow: hidden !important; text-overflow: ellipsis; }
.vista-grelha #exp-res .cartao .cartao-extra { display: block !important; }
.vista-grelha #exp-res .cartao .ce-doc { display: block !important; max-width: 100%; }
.vista-grelha #exp-res .cartao .ce-doc .ce-tx { display: -webkit-box !important; -webkit-box-orient: vertical; -webkit-line-clamp: 2 !important; overflow: hidden !important; white-space: normal !important; text-overflow: ellipsis; }
.vista-grelha #exp-res .cartao .onde { display: -webkit-box !important; -webkit-box-orient: vertical; -webkit-line-clamp: 2 !important; overflow: hidden !important; }
/* a publicidade ocupa a linha toda (os materiais ficam sempre dois a dois, sem nenhum sozinho no fim da página) */
.vista-grelha #exp-res .grelha-docs > .pub-cartao2 { grid-column: 1 / -1; align-self: start; }
.vista-grelha #exp-res .pub-cartao2 .pc2-img { max-width: 520px; }

/* ---------- 300.ª parte: na grelha, as partes dos cartões lado a lado ficam à mesma altura (título, capa, cadeira…) ---------- */
@supports (grid-template-rows: subgrid) {
  .vista-grelha #exp-res .grelha-docs { row-gap: 0 !important; align-items: stretch; }
  .vista-grelha #exp-res .cartao { display: grid !important; grid-template-columns: minmax(0, 1fr); grid-template-rows: subgrid; grid-row: span 8; row-gap: 0; margin-bottom: 12px; justify-items: center; }
  .vista-grelha #exp-res .cartao > * { grid-column: 1; }
  .vista-grelha #exp-res .cartao > .geral-etq { grid-row: 1; }
  .vista-grelha #exp-res .cartao > h3 { grid-row: 2; align-self: center; }
  .vista-grelha #exp-res .cartao > .cartao-th { grid-row: 3; justify-self: center; align-self: start; }
  .vista-grelha #exp-res .cartao > .onde { grid-row: 4; align-self: start; }
  .vista-grelha #exp-res .cartao > .etiquetas { grid-row: 5; align-self: start; margin-bottom: 4px; }
  .vista-grelha #exp-res .cartao > .cartao-desc { grid-row: 6; align-self: start; }
  .vista-grelha #exp-res .cartao > .cartao-extra { grid-row: 7; align-self: start; }
  .vista-grelha #exp-res .cartao > .cartao-pe { grid-row: 8; align-self: end; margin-top: 10px !important; }
  .vista-grelha #exp-res .grelha-docs > .pub-cartao2 { grid-row: span 8; margin-bottom: 12px; }
}
/* 301.ª parte: na grelha, o título fica em 2 linhas no máximo, com reticências (o título inteiro aparece ao passar o rato) */
.vista-grelha #exp-res .cartao > h3 { display: -webkit-box !important; -webkit-box-orient: vertical; -webkit-line-clamp: 2 !important; overflow: hidden !important; text-overflow: ellipsis; }

.pc { display: grid; gap: 14px; }
.pc h2 { font-size: 1.35rem; margin-right: 40px; }
.pc-abrir { gap: 8px; }
.pc-aviso { display: flex; gap: 8px; align-items: flex-start; margin: 0; padding: 10px 12px; border-radius: 12px; background: var(--azul-suave); color: var(--tinta-2); font-size: .9rem; line-height: 1.4; }
.pc-aviso i { margin-top: 3px; color: var(--marca); }
.pc-sel { display: flex; flex-wrap: wrap; gap: 6px; }
.pc-sel:empty { display: none; }
.pc-chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 8px 4px 4px; border-radius: 999px; border: 1px solid var(--linha); background: var(--sup-2); font: inherit; font-size: .85rem; font-weight: 600; color: var(--tinta); cursor: pointer; }
.pc-chip .av { width: 24px; height: 24px; }
.pc-chip svg { width: 12px; height: 12px; opacity: .6; }
.pc-lista { display: grid; gap: 4px; max-height: min(320px, 40vh); overflow-y: auto; overscroll-behavior: contain; }
.pc-p { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; align-items: center; gap: 10px; width: 100%; padding: 8px 10px; border: 1px solid transparent; border-radius: 12px; background: none; font: inherit; color: inherit; text-align: left; cursor: pointer; }
.pc-p:hover { background: var(--sup-2); }
.pc-p.on { background: var(--azul-suave); border-color: var(--marca); }
.pc-p .av { width: 40px; height: 40px; }
.pc-p span { display: flex; flex-direction: column; min-width: 0; }
.pc-p strong, .pc-p small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pc-p small { color: var(--tinta-3); font-size: .82rem; }
.pc-p > i { font-size: 1.2rem; color: var(--tinta-3); }
.pc-p.on > i { color: var(--marca); }
.msg.com-mat { min-width: min(260px, 72vw); }
.msg-mat { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 10px; align-items: center; padding: 8px; margin-bottom: 4px; border-radius: 12px; background: var(--sup-2); color: var(--tinta); text-decoration: none; }
.msg.minha .msg-mat { background: rgba(255, 255, 255, .95); }
.msg-mat .mm-th { width: 56px; height: 72px; border-radius: 8px; overflow: hidden; background: var(--sup-3); display: block; }
.msg-mat .mm-th img, .msg-mat .mm-th > * { width: 100% !important; height: 100% !important; object-fit: cover; object-position: top; }
.msg-mat .mm-t { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.msg-mat strong { font-size: .92rem; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.msg-mat small { font-size: .78rem !important; color: var(--tinta-3); opacity: 1 !important; margin: 0 !important; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.msg-mat em { font-style: normal; font-size: .8rem; font-weight: 700; color: var(--marca); }
.msg-mat.indisp { display: flex; gap: 8px; color: var(--tinta-3); font-size: .88rem; }
.pc-modos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); width: 100%; }
.pc-modos button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 0 8px; }
.pc-modos button i { font-size: .82rem; }
#pc-corpo { display: grid; gap: 10px; }
.pc-u-sig { width: 40px; height: 40px; border-radius: 12px; display: grid !important; place-items: center; background: var(--azul-suave); color: var(--marca); font-weight: 800; font-size: .72rem; letter-spacing: .02em; overflow: hidden; }
.pc-u.on .pc-u-sig { background: var(--marca); color: #fff; }
.pc-todos { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 12px; align-items: center; padding: 14px; border-radius: 14px; background: var(--azul-suave); }
.pc-todos-ic { width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center; background: var(--marca); color: #fff; font-size: 1.1rem; }
.pc-todos div { display: grid; gap: 2px; }
.pc-todos small { color: var(--tinta-2); font-size: .86rem; line-height: 1.35; }
#pc-txt { resize: vertical; min-height: 72px; }
@media (max-width: 480px) { .pc-modos button i { display: none; } }

.atc-t.a1 .atc-ic { background: #0F2A8A; }
.atc-t.a2 .atc-ic { background: #1E40E6; }
.atc-t.a3 .atc-ic { background: #4F6BF5; }
.atc-t.a4 .atc-ic { background: #7C93FF; }
.atc-t.a5 .atc-ic { background: #A9B8FF; color: #0F2A8A; }
.atc-t.a1 { background: linear-gradient(160deg, #EEF2FF, var(--sup-2) 70%); border-color: #D6DEFF; }
.atc-barra .b7, .atc-leg .b7 { background: #1E40E6; }
.atc-barra .b30, .atc-leg .b30 { background: #7C93FF; }
.atc-barra .bpar, .atc-leg .bpar { background: #C9D3FF; }
.atc-novos i, .atc-mail i { color: #1E40E6; }
.atc-mail { display: flex; align-items: center; gap: 8px; margin: 8px 0 0; padding: 10px 12px; border-radius: 12px; background: var(--sup-2); border: 1px solid var(--linha); font-size: .86rem; color: var(--tinta-2); }

@keyframes ebFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes ebDir { from { opacity: 0; transform: translateX(18px); filter: blur(3px); } to { opacity: 1; transform: none; filter: none; } }
@keyframes ebEsq { from { opacity: 0; transform: translateX(-18px); filter: blur(3px); } to { opacity: 1; transform: none; filter: none; } }
@keyframes ebSobe { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

.eb-modos { position: relative; display: grid; grid-template-columns: 1fr 1fr; padding: 5px; background: var(--sup-2); border: 1px solid var(--linha); border-radius: 16px; isolation: isolate; }
.eb-modos::before { content: ""; position: absolute; z-index: -1; top: 5px; bottom: 5px; left: 5px; width: calc(50% - 5px); border-radius: 12px; background: var(--sup); box-shadow: 0 1px 2px rgba(16, 22, 51, .08), 0 6px 16px rgba(30, 64, 230, .14); transition: transform .38s cubic-bezier(.2, .9, .25, 1.15); }
.eb-modos[data-m="rapida"]::before { transform: translateX(100%); }
.eb-modos button { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 9px; height: 46px; padding: 0 18px; border: 0; border-radius: 12px; background: none; font: inherit; font-weight: 700; font-size: .96rem; color: var(--tinta-2); cursor: pointer; white-space: nowrap; transition: color .25s; }
.eb-modos button i { font-size: .88rem; transition: transform .3s; }
.eb-modos button:hover { color: var(--tinta); }
.eb-modos button[aria-selected="true"] { color: var(--bic); }
.eb-modos button[data-v="rapida"][aria-selected="true"] i { transform: rotate(-12deg) scale(1.15); }
.eb-modos-topo { display: none; order: 1; margin-left: auto; min-width: 380px; }
.cab-exp .vista-exp { order: 2; }
@media (min-width: 1061px) {
  .eb-modos-topo { display: grid; }
  .eb-modos-cartao { display: none; }
  .cab-exp .eb-modos-topo + .vista-exp { margin-left: 12px; }
}

.eb-cartao { position: relative; z-index: 6; display: grid; grid-template-columns: minmax(0, 1fr); min-width: 0; gap: 12px; padding: 12px; margin: 0 0 18px; background: var(--sup); border: 1px solid var(--linha); border-radius: 22px; box-shadow: 0 10px 30px rgba(16, 22, 51, .06); transition: background .25s, border-color .25s, box-shadow .25s; }
.eb-cartao[data-modo="rapida"] { background: transparent; border-color: transparent; box-shadow: none; padding-left: 0; padding-right: 0; }
.eb-cartao[data-modo="rapida"] .eb-normal, .eb-cartao[data-modo="normal"] .eb-rapida { display: none; }
.eb-normal, .eb-rapida { min-width: 0; animation: ebFade .25s ease backwards; }
.eb-cartao.vai-dir .eb-rapida { animation: ebDir .38s cubic-bezier(.2, .8, .2, 1) backwards; }
.eb-cartao.vai-esq .eb-normal { animation: ebEsq .38s cubic-bezier(.2, .8, .2, 1) backwards; }
.exp-g:not(.modo-rapida) .exp-lado, .exp-g:not(.modo-rapida) .res-cab, .exp-g:not(.modo-rapida) #exp-res { animation: ebFade .35s ease backwards; }
.eb-normal { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
.eb-cartao .exp-amb-cx { margin: 0; }
.eb-cartao .exp-amb-l { display: block; }
.eb-cartao .exp-amb.tabs3d { display: inline-flex !important; width: auto; max-width: none; padding: 0 !important; gap: 8px; border: 0 !important; background: none !important; box-shadow: none !important; }
.eb-cartao .exp-amb.tabs3d button { flex: none; height: 40px !important; padding: 0 16px 0 10px !important; gap: 8px; border-radius: 999px !important; border: 1px solid var(--linha) !important; background: var(--sup) !important; color: var(--tinta-2) !important; font-size: .9rem !important; font-weight: 700; box-shadow: none !important; transition: background .18s, color .18s, border-color .18s; }
.eb-cartao .exp-amb.tabs3d button:hover { border-color: var(--bic) !important; color: var(--tinta) !important; }
.eb-cartao .exp-amb.tabs3d button[aria-checked="true"] { background: var(--bic) !important; border-color: var(--bic) !important; color: #fff !important; box-shadow: 0 6px 16px rgba(30, 64, 230, .25) !important; }
.eb-cartao .exp-amb.tabs3d .i3d { width: 24px; height: 24px; filter: none; transform: none !important; transition: filter .18s; }
.eb-cartao .exp-amb.tabs3d button[aria-checked="true"] .i3d { filter: brightness(0) invert(1); }
.eb-cartao .bi { border-radius: 16px; min-height: 56px; background: var(--sup-2); border-color: transparent; }
.eb-cartao .bi:focus-within { background: var(--sup); border-color: var(--bic); box-shadow: 0 0 0 4px var(--azul-suave); }
.exp-g.modo-rapida { display: block; }
.exp-g.modo-rapida .exp-lado, .exp-g.modo-rapida #exp-chips, .exp-g.modo-rapida #exp-dest, .exp-g.modo-rapida .res-cab, .exp-g.modo-rapida #exp-res { display: none !important; }
.pag-rapida .vista-exp { display: none !important; }
.pr-hist-b { order: 3; display: none; align-items: center; gap: 8px; height: 46px; padding: 0 16px; margin-left: 12px; border: 1px solid var(--linha); border-radius: 14px; background: var(--sup); font: inherit; font-size: .92rem; font-weight: 700; color: var(--tinta); cursor: pointer; transition: border-color .15s, color .15s; flex: none; }
.pr-hist-b:hover { border-color: var(--bic); color: var(--bic); }
.pr-hist-b i { color: var(--bic); }
.pag-rapida .pr-hist-b { display: inline-flex; }
@media (max-width: 1060px) { .pag-rapida .pr-hist-b { margin-left: auto; height: 44px; } }
@media (max-width: 480px) { .pr-hist-b span { display: none; } .pr-hist-b { width: 44px; padding: 0; justify-content: center; } }
@media (max-width: 1060px) { .exp-g { row-gap: 0; } }

.pr { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; width: 100%; max-width: 820px; margin: 0 auto; }
.pr-ini { padding: 22px 0 8px; }
.pr-cab { text-align: center; display: grid; justify-items: center; gap: 8px; margin-bottom: 6px; }
.pr-logo { width: 56px; height: 56px; border-radius: 18px; display: grid; place-items: center; background: var(--sup); border: 1px solid var(--linha); box-shadow: 0 8px 24px rgba(30, 64, 230, .12); margin-bottom: 4px; }
.pr-logo svg { width: 30px; height: 30px; }
.pr-cab h2 { margin: 0; font-family: var(--f-tit); font-size: clamp(1.55rem, 3.2vw, 2.15rem); color: var(--tinta); letter-spacing: -.01em; }
.pr-cab p { margin: 0 auto; max-width: 520px; color: var(--tinta-2); font-size: 1rem; line-height: 1.5; }
.pr-campo { display: flex; align-items: center; gap: 10px; min-height: 60px; padding: 6px 7px 6px 20px; background: var(--sup); border: 1.5px solid var(--linha-2); border-radius: 999px; box-shadow: 0 6px 22px rgba(16, 22, 51, .06); transition: border-color .15s, box-shadow .15s; }
.pr-campo:focus-within { border-color: var(--bic); box-shadow: 0 0 0 4px var(--azul-suave), 0 6px 22px rgba(16, 22, 51, .06); }
.pr-campo .pr-lupa { color: var(--tinta-3); }
.pr-campo input { flex: 1; min-width: 0; height: 44px; border: 0 !important; background: none !important; outline: none; box-shadow: none !important; font-size: 1.05rem; padding: 0; }
.pr-campo input::-webkit-search-cancel-button { display: none; }
.pr-enviar { flex: none; width: 44px; height: 44px; border: 0; border-radius: 50%; background: var(--bic); color: #fff; display: grid; place-items: center; cursor: pointer; transition: transform .12s, opacity .15s; }
.pr-enviar:disabled { opacity: .5; cursor: default; }
.pr-enviar:not(:disabled):active { transform: scale(.94); }
.pr-ini .pr-enviar { display: none; }
.pr-campo.conv { padding-left: 7px; }
.pr-novo { flex: none; display: inline-flex; align-items: center; gap: 6px; height: 40px; padding: 0 12px; border: 0; border-radius: 999px; background: var(--sup-2); color: var(--tinta-2); font: inherit; font-size: .84rem; font-weight: 700; cursor: pointer; transition: background .15s, color .15s; }
.pr-novo:hover { background: var(--azul-suave); color: var(--bic); }
.pr-ir { height: 54px; border-radius: 999px !important; gap: 10px; font-size: 1rem; }
.pr-exw { display: grid; gap: 10px; margin-top: 8px; }
.pr-rot { margin: 0; font-size: .88rem; font-weight: 600; color: var(--tinta-3); }
.pr-ex { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; }
.pr-ex-i { display: grid; grid-template-columns: 20px minmax(0, 1fr) 16px; align-items: center; gap: 12px; padding: 15px 18px; border: 1px solid var(--linha); border-radius: 16px; background: var(--sup); font: inherit; font-size: .98rem; font-weight: 600; color: var(--tinta); text-align: left; cursor: pointer; transition: border-color .15s, background .15s; }
.pr-ex-i i { color: var(--tinta-3); }
.pr-ex-i span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pr-seta { opacity: 0; transform: translateX(-4px); transition: opacity .15s, transform .15s; color: var(--bic) !important; }
.pr-ex-i:hover, .pr-opc:hover { border-color: var(--bic); background: var(--azul-suave); }
.pr-ex-i:hover .pr-seta, .pr-opc:hover .pr-seta { opacity: 1; transform: none; }

.pr-conv { gap: 0; padding-bottom: 130px; }
.pr-topo { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 4px 0 14px; border-bottom: 1px solid var(--linha); margin-bottom: 18px; }
.pr-topo span { display: inline-flex; align-items: center; gap: 8px; min-width: 0; font-size: .86rem; font-weight: 600; color: var(--tinta-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pr-topo span i { color: var(--bic); }
.pr-nova { flex: none; white-space: nowrap; display: inline-flex; align-items: center; gap: 8px; height: 38px; padding: 0 16px; border: 1px solid var(--linha); border-radius: 999px; background: var(--sup); font: inherit; font-size: .88rem; font-weight: 700; color: var(--tinta); cursor: pointer; transition: border-color .15s, color .15s; }
.pr-nova:hover { border-color: var(--bic); color: var(--bic); }
.pr-fio { display: grid; gap: 20px; }
.pr-eu { display: flex; justify-content: flex-end; }
.pr-eu span { max-width: min(80%, 560px); padding: 11px 16px; border-radius: 20px 20px 6px 20px; background: var(--bic); color: #fff; font-weight: 500; line-height: 1.45; overflow-wrap: anywhere; }
.pr-ia { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 12px; align-items: start; }
.pr-turno { display: grid; gap: 20px; }
.pr-turno.entra { animation: ebSobe .28s ease backwards; }
.pr-av { width: 36px; height: 36px; border-radius: 12px; background: var(--sup); border: 1px solid var(--linha); display: grid; place-items: center; }
.pr-av svg { width: 20px; height: 20px; }
.pr-av.a-pensar { animation: prPulso 1.4s ease-in-out infinite; }
@keyframes prPulso { 0%, 100% { box-shadow: 0 0 0 0 rgba(30, 64, 230, .25); } 50% { box-shadow: 0 0 0 7px rgba(30, 64, 230, 0); } }
.pr-ia-c { display: grid; gap: 12px; min-width: 0; }
.pr-txt { margin: 6px 0 0; line-height: 1.6; color: var(--tinta); font-size: 1rem; }
.pr-ia.a-escrever .pr-txt::after { content: ""; display: inline-block; width: 8px; height: 1em; margin-left: 2px; vertical-align: -2px; border-radius: 2px; background: var(--bic); animation: ebFade .5s infinite alternate; }
.pr-ia.a-escrever .pr-percebi ~ *:not(.pr-txt), .pr-ia.a-escrever .pr-txt ~ * { opacity: 0; }
.pr-ia .pr-txt ~ * { transition: opacity .35s ease; }

.pr-etapas { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 10px; }
.pr-etapas li { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; font-size: .95rem; color: var(--tinta-2); }
.pr-etapas li.agora { animation: ebFade .25s ease backwards; }
.pr-etapas li.agora { color: var(--tinta); font-weight: 600; }
.pr-etapas em { font-style: normal; color: var(--tinta-3); font-weight: 500; }
.pr-et-ic { width: 20px; height: 20px; display: grid; place-items: center; flex: none; }
.pr-et-ic .fa-check { width: 20px; height: 20px; border-radius: 50%; display: grid; place-items: center; background: var(--azul-suave); color: var(--bic); font-size: .66rem; }
.pr-roda { width: 16px; height: 16px; border-radius: 50%; border: 2.5px solid var(--azul-suave); border-top-color: var(--bic); animation: prGira .8s linear infinite; }
@keyframes prGira { to { transform: rotate(360deg); } }
.pr-et-chips { display: inline-flex; flex-wrap: wrap; gap: 6px; }
.pr-et-chips b { font-size: .78rem; font-weight: 700; padding: 3px 10px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); }
.pr-esq { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 10px; }
.pr-esq i { height: 86px; border-radius: 18px; background: linear-gradient(100deg, var(--sup-2) 30%, var(--sup) 50%, var(--sup-2) 70%); background-size: 300% 100%; border: 1px solid var(--linha); animation: prBrilho 1.2s ease-in-out infinite; }
@keyframes prBrilho { from { background-position: 100% 0; } to { background-position: -100% 0; } }

.pr-percebi { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.pr-percebi-r { font-size: .74rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--tinta-3); margin-right: 2px; }
.pr-tag { display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 6px 0 11px; border: 1px solid #D6DEFF; border-radius: 999px; background: var(--azul-suave); font: inherit; font-size: .82rem; font-weight: 600; color: var(--bic); cursor: pointer; transition: background .15s, border-color .15s; }
.pr-tag i { font-size: .72rem; }
.pr-tag-x { width: 18px; height: 18px; border-radius: 50%; display: grid; place-items: center; font-size: .9rem; line-height: 1; opacity: .55; transition: opacity .15s, background .15s; }
.pr-tag:hover { border-color: var(--bic); }
.pr-tag:hover .pr-tag-x { opacity: 1; background: rgba(30, 64, 230, .12); }

.pr .mon-docs.pr-docs { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(100%, 330px), 1fr)) !important; gap: 10px !important; animation: none; }
.pr-mais { display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: 100%; height: 44px; border: 1px dashed var(--linha-2); border-radius: 14px; background: transparent; font: inherit; font-weight: 600; font-size: .9rem; color: var(--tinta-2); cursor: pointer; transition: border-color .15s, color .15s, background .15s; }
.pr-mais:hover { border-color: var(--bic); color: var(--bic); background: var(--azul-suave); }
.pr-aviso { display: flex; gap: 10px; align-items: flex-start; padding: 11px 14px; border-radius: 14px; background: #FFF7E8; border: 1px solid #FBE2B5; color: #7A4A00; font-size: .9rem; line-height: 1.45; }
.pr-aviso i { margin-top: 3px; }
.pr-afinar { display: grid; gap: 8px; padding: 12px; border-radius: 16px; background: var(--sup); border: 1px solid var(--linha); }
.pr-afinar-t { margin: 0; display: flex; align-items: center; gap: 8px; font-size: .84rem; font-weight: 700; color: var(--tinta-2); }
.pr-afinar-t i { color: var(--bic); font-size: .8rem; }
.pr-afinar-l { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; -webkit-mask-image: linear-gradient(to right, #000 92%, transparent); mask-image: linear-gradient(to right, #000 92%, transparent); }
.pr-afinar-l::-webkit-scrollbar { display: none; }
.pr-af { flex: none; display: inline-flex; align-items: center; gap: 7px; height: 34px; padding: 0 6px 0 12px; border: 1px solid var(--linha); border-radius: 10px; background: var(--sup-2); font: inherit; font-size: .84rem; font-weight: 600; color: var(--tinta); cursor: pointer; white-space: nowrap; transition: border-color .15s, background .15s, color .15s; }
.pr-af i { font-size: .74rem; color: var(--tinta-3); }
.pr-af b { min-width: 22px; height: 22px; padding: 0 6px; border-radius: 7px; display: grid; place-items: center; background: var(--sup); color: var(--tinta-2); font-size: .74rem; }
.pr-af:hover { border-color: var(--bic); background: var(--azul-suave); color: var(--bic); }
.pr-af:hover i { color: var(--bic); }
.pr-link { justify-self: start; display: inline-flex; align-items: center; gap: 8px; padding: 4px 2px; border: 0; background: none; font: inherit; font-weight: 600; font-size: .88rem; color: var(--bic); cursor: pointer; text-decoration: none; }
.pr-link:hover { text-decoration: underline; }

.pr-nada { display: grid; gap: 10px; padding: 16px; border-radius: 18px; background: var(--sup); border: 1px solid var(--linha); }
.pr-nada-t { margin: 0; display: flex; align-items: center; gap: 10px; font-weight: 700; color: var(--tinta); }
.pr-nada-t i { width: 30px; height: 30px; border-radius: 10px; display: grid; place-items: center; background: #FFF1DC; color: #8A4B00; font-size: .8rem; }
.pr-nada-s { margin: 0; font-size: .9rem; color: var(--tinta-2); }
.pr-opcoes { display: grid; gap: 8px; }
.pr-opc { display: grid; grid-template-columns: 18px minmax(0, 1fr) auto 16px; align-items: center; gap: 12px; padding: 12px 14px; border: 1px solid var(--linha); border-radius: 14px; background: var(--sup-2); font: inherit; font-size: .94rem; font-weight: 600; color: var(--tinta); text-align: left; cursor: pointer; transition: border-color .15s, background .15s; }
.pr-opc > i:first-child { color: var(--bic); font-size: .85rem; }
.pr-opc b { padding: 2px 9px; border-radius: 999px; background: var(--sup); font-size: .78rem; color: var(--tinta-2); }

.pr-q { display: grid; gap: 14px; padding: 16px; border: 1px solid var(--linha); border-radius: 20px; background: var(--sup); box-shadow: 0 6px 20px rgba(16, 22, 51, .05); }
.pr-q-g { display: grid; gap: 4px; }
.pr-q-g + .pr-q-g { padding-top: 14px; border-top: 1px solid var(--linha); }
.pr-q-cab { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 4px; }
.pr-q-t { margin: 0; font-size: .9rem; font-weight: 700; color: var(--tinta-2); }
.pr-q-busca { display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 12px; border: 1px solid var(--linha); border-radius: 999px; background: var(--sup-2); width: min(220px, 50%); transition: border-color .15s, background .15s; }
.pr-q-busca:focus-within { border-color: var(--bic); background: var(--sup); }
.pr-q-busca i { font-size: .72rem; color: var(--tinta-3); }
.pr-q-busca input { width: 100%; min-width: 0; border: 0 !important; background: none !important; box-shadow: none !important; outline: none; font-size: .84rem; padding: 0; height: 30px; }
.pr-q-ops { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 10px; }
@media (max-width: 640px) { .pr-q-ops { grid-template-columns: minmax(0, 1fr); } .pr-q-cab { flex-wrap: wrap; } .pr-q-busca { width: 100%; order: 2; } }
.pr-op { display: grid; grid-template-columns: 20px 16px minmax(0, 1fr) auto; align-items: center; gap: 10px; width: 100%; min-height: 44px; padding: 7px 10px; border: 1px solid transparent; border-radius: 12px; background: none; font: inherit; font-size: .95rem; color: var(--tinta); text-align: left; cursor: pointer; transition: background .15s, border-color .15s; }
.pr-op:hover { background: var(--sup-2); }
.pr-op > i { color: var(--tinta-3); font-size: .84rem; text-align: center; }
.pr-op-n { min-width: 0; display: grid; }
.pr-op-n > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pr-op.zero { opacity: .45; cursor: default; }
.pr-op.zero:hover { background: none; }
.pr-q-mais i.vira { transform: rotate(180deg); }
.pr-op-n, .pr-op-n small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pr-op-n small { font-size: .74rem; color: var(--tinta-3); }
.pr-op b { min-width: 28px; height: 24px; padding: 0 8px; border-radius: 999px; background: var(--sup-2); color: var(--tinta-2); font-size: .78rem; display: grid; place-items: center; }
.pr-radio { width: 20px; height: 20px; border-radius: 50%; border: 2px solid var(--linha-2); transition: border-color .15s, box-shadow .15s; }
.pr-op.on { background: var(--azul-suave); border-color: #D6DEFF; }
.pr-op.on .pr-radio { border-color: var(--bic); box-shadow: inset 0 0 0 4px var(--sup), inset 0 0 0 10px var(--bic); }
.pr-op.on > i { color: var(--bic); }
.pr-op.on b { background: var(--bic); color: #fff; }
.pr-q-mais { justify-self: start; display: inline-flex; align-items: center; gap: 6px; margin-top: 2px; padding: 4px 10px; border: 0; border-radius: 999px; background: none; font: inherit; font-size: .84rem; font-weight: 700; color: var(--bic); cursor: pointer; }
.pr-q-mais i { font-size: .7rem; }
.pr-q-mais:hover { background: var(--azul-suave); }
.pr-q-vazio { margin: 4px 2px; font-size: .86rem; color: var(--tinta-3); }
.pr-q-pe { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; padding-top: 4px; }
.pr-q-ok { height: 46px; padding: 0 22px; border-radius: 999px !important; gap: 10px; }
.pr-q-ok:disabled { opacity: .45; }

.pr-dock { position: fixed; bottom: 0; left: 0; width: 100%; z-index: 70; padding: 18px 0 calc(12px + env(safe-area-inset-bottom, 0px)); background: linear-gradient(to top, var(--mesa) 70%, transparent); pointer-events: none; }
.pr-dock-in { width: 100%; max-width: 820px; margin: 0 auto; pointer-events: auto; }
.pr-dock .pr-campo { box-shadow: 0 10px 30px rgba(16, 22, 51, .12); }
.pr-dica { margin: 8px 0 0; text-align: center; font-size: .78rem; color: var(--tinta-3); }
body.pr-chat .subir { display: none !important; }
body.pr-chat .rodape, body.pr-chat .abas-m { display: none !important; }
body.pr-chat { padding-bottom: 0 !important; }

@media (max-width: 760px) {
  .eb-cartao { padding: 8px; border-radius: 18px; }
  .eb-cartao[data-modo="rapida"] { padding: 8px 0; }
  .eb-modos button { height: 42px; font-size: .88rem; gap: 7px; padding: 0 8px; }
  .eb-cartao .exp-amb.tabs3d { display: grid !important; grid-template-columns: 1fr 1fr; width: 100%; }
  .eb-cartao .exp-amb.tabs3d button { justify-content: center; padding: 0 8px !important; }
  .eb-cartao .bi-campo textarea { font-size: .95rem; }
  .pr-ini { padding-top: 12px; }
  .pr-logo { width: 48px; height: 48px; border-radius: 16px; }
  .pr-cab h2 { font-size: 1.5rem; }
  .pr-cab p { font-size: .93rem; }
  .pr-campo { min-height: 56px; padding-left: 16px; }
  .pr-ex-i { padding: 14px; font-size: .94rem; }
  .pr-ia { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .pr-av { width: 30px; height: 30px; border-radius: 10px; }
  .pr-q { padding: 12px; }
  .pr-op { padding: 7px 8px; gap: 9px; }
  .pr-q-ok { width: 100%; justify-content: center; }
  .pr-q-pe { justify-content: center; }
  .pr-novo span { display: none; }
  .pr-topo span { font-size: .8rem; }
  .pr-nova { height: 36px; padding: 0 12px; font-size: .84rem; }
  .pr-novo { width: 40px; padding: 0; justify-content: center; }
  .pr-dica { font-size: .74rem; }
}

.obs-lig { margin-top: 10px; padding: 10px 12px; border-radius: 12px; background: var(--sup-2); border: 1px solid var(--linha); }
.obs-lig-t { margin: 0 0 6px; display: flex; align-items: center; gap: 7px; font-size: .82rem; font-weight: 700; color: var(--tinta-2); }
.obs-lig-t i { color: var(--bic); font-size: .78rem; }
.obs-lig ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.obs-lig li { display: grid; gap: 2px; padding-top: 8px; border-top: 1px dashed var(--linha); }
.obs-lig li:first-child { padding-top: 0; border-top: 0; }
.obs-lig li a { color: var(--tinta); text-decoration: underline; text-underline-offset: 2px; }
.obs-lig li small { color: var(--tinta-3); font-size: .8rem; overflow-wrap: anywhere; }
.obs-lig-p { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 2px; }
.obs-lig-p em { font-style: normal; font-size: .72rem; font-weight: 700; padding: 2px 8px; border-radius: 999px; background: #FFF1DC; color: #8A4B00; }
.av-vid-info { flex-basis: 100%; font-size: .8rem; color: var(--tinta-3); }
.av-vid-info.ok { color: #1E7F4F; }
.av-vid-info.mau { color: #B42318; font-weight: 600; }

.cmp-fundo { position: fixed; inset: 0; z-index: 400; display: grid; grid-template-columns: minmax(0, 1fr); place-items: center; padding: 16px; background: rgba(11, 16, 36, .55); backdrop-filter: blur(3px); animation: ebFade .2s ease; }
.cmp { position: relative; width: min(560px, 100%); max-height: calc(100vh - 32px); overflow-y: auto; display: grid; gap: 16px; padding: 22px; border-radius: 24px; background: var(--sup); box-shadow: 0 30px 80px rgba(11, 16, 36, .35); animation: ebSobe .25s ease; }
.cmp h2 { margin: 0 40px 0 0; font-size: 1.25rem; }
.cmp-x { position: absolute; top: 14px; right: 14px; width: 36px; height: 36px; border: 0; border-radius: 50%; background: var(--sup-2); display: grid; place-items: center; cursor: pointer; color: var(--tinta-2); }
.cmp-x svg { width: 14px; height: 14px; }
.cmp-fx { display: grid; grid-template-columns: 46px minmax(0, 1fr); gap: 12px; align-items: center; padding: 12px; border-radius: 16px; background: var(--sup-2); }
.cmp-fx strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cmp-fx small { color: var(--tinta-3); }
.cmp-ic { width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; font-size: 1.1rem; color: #fff; background: var(--bic); }
.cmp-ic.cmp-pdf { background: #D92D20; }
.cmp-ic.cmp-video { background: #7A5AF8; }
.cmp-niv { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.cmp-n { display: grid; gap: 3px; padding: 12px; border: 1.5px solid var(--linha); border-radius: 14px; background: var(--sup); text-align: left; font: inherit; cursor: pointer; transition: border-color .15s, background .15s; }
.cmp-n strong { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: .95rem; color: var(--tinta); }
.cmp-n strong em { font-style: normal; font-size: .64rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; padding: 2px 6px; border-radius: 999px; background: var(--azul-suave); color: var(--bic); }
.cmp-n small { font-size: .78rem; color: var(--tinta-3); line-height: 1.3; }
.cmp-n.on { border-color: var(--bic); background: var(--azul-suave); }
.cmp-n:disabled { opacity: .55; cursor: default; }
.cmp-zona { min-height: 70px; display: grid; align-items: center; }
.cmp-prog { display: grid; gap: 8px; }
.cmp-prog p { margin: 0; font-size: .9rem; color: var(--tinta-2); }
.cmp-barra { height: 10px; border-radius: 999px; background: var(--sup-3); overflow: hidden; }
.cmp-barra i { display: block; height: 100%; border-radius: 999px; background: var(--bic); transition: width .3s ease; }
.cmp-barra.indef i { width: 40% !important; animation: cmpVai 1.1s ease-in-out infinite; }
@keyframes cmpVai { from { transform: translateX(-100%); } to { transform: translateX(250%); } }
.cmp-res { display: grid; grid-template-columns: 1fr auto 1fr auto; align-items: center; gap: 12px; padding: 14px; border-radius: 16px; border: 1px solid var(--linha); }
.cmp-res > i { color: var(--tinta-3); }
.cmp-t { display: grid; gap: 2px; }
.cmp-t span { font-size: .76rem; color: var(--tinta-3); font-weight: 600; }
.cmp-t b { font-size: 1.1rem; color: var(--tinta); }
.cmp-t.bom b { color: #1E7F4F; }
.cmp-pct { padding: 6px 12px; border-radius: 999px; background: var(--sup-2); font-weight: 800; color: var(--tinta-2); white-space: nowrap; }
.cmp-pct.bom { background: #E7F6EE; color: #1E7F4F; }
.cmp-erro { margin: 0; display: flex; gap: 10px; padding: 12px 14px; border-radius: 14px; background: #FEF3F2; color: #B42318; font-size: .9rem; }
.cmp-nota { margin: 0; display: flex; gap: 8px; align-items: center; font-size: .8rem; color: var(--tinta-3); }
.cmp-bts { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.cmp-bts .btn { gap: 8px; }
@media (max-width: 560px) {
  .cmp { padding: 18px 16px; border-radius: 20px; }
  .cmp-niv { grid-template-columns: 1fr; }
  .cmp-res { grid-template-columns: 1fr auto 1fr; }
  .cmp-pct { grid-column: 1 / -1; justify-self: center; }
  .cmp-bts .btn { flex: 1 1 auto; justify-content: center; }
}
.sl-b-prog { margin-top: 8px; }

.def-wrap { display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 24px; align-items: start; max-width: 100%; min-width: 0; overflow-x: clip; }
.def-nav { position: sticky; top: 84px; display: grid; grid-template-columns: minmax(0, 1fr); gap: 2px; padding: 8px; border-radius: 18px; background: var(--sup); border: 1px solid var(--linha); max-height: calc(100vh - 110px); overflow-x: hidden; overflow-y: auto; scrollbar-width: thin; min-width: 0; }
.def-nav:empty { display: none; }
.def-nav a { min-width: 0; display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 11px; color: var(--tinta-2); font-weight: 600; font-size: .86rem; text-decoration: none; transition: background .15s, color .15s; }
.def-nav a i { width: 18px; text-align: center; font-size: .82rem; color: var(--tinta-3); }
.def-nav a span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.def-nav a:hover { background: var(--sup-2); color: var(--tinta); }
.def-nav a.on { background: var(--azul-suave); color: var(--bic); }
.def-nav a.on i { color: var(--bic); }
.def-corpo { min-width: 0; display: grid; gap: 16px; }
.def-corpo .adm-def { display: grid; gap: 16px; }
.def-corpo .adm-sec { margin: 0 !important; scroll-margin-top: 90px; border-radius: 20px; padding: 20px 22px; }
.def-corpo .adm-sec > header { flex-direction: column; align-items: flex-start; gap: 2px; padding-bottom: 14px; margin-bottom: 16px; border-bottom: 1px solid var(--linha); }
.def-corpo .adm-sec > header h3 { display: flex; align-items: center; gap: 10px; font-size: 1.05rem; }
.def-corpo .adm-sec > header h3 > i:first-child { width: 34px; height: 34px; flex: none; border-radius: 11px; display: grid; place-items: center; background: var(--azul-suave); color: var(--bic); font-size: .85rem; }
.def-corpo .adm-sec > header small { margin-left: 44px; font-weight: 500; }
.def-guardar { position: sticky; bottom: 14px; z-index: 30; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 10px 10px 18px; border-radius: 18px; background: var(--sup); border: 1px solid var(--linha); box-shadow: 0 14px 34px rgba(16, 22, 51, .14); }
.def-guardar span { display: flex; align-items: center; gap: 8px; font-size: .86rem; color: var(--tinta-3); }
.def-guardar span i { color: var(--bic); }
.def-guardar .btn { gap: 8px; }
@media (max-width: 1060px) {
  .def-wrap { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .def-nav { top: 60px; z-index: 25; display: flex; gap: 6px; overflow-x: auto; max-height: none; border-radius: 16px; scrollbar-width: none; }
  .def-nav::-webkit-scrollbar { display: none; }
  .def-nav a { flex: none; padding: 8px 12px; border-radius: 999px; }
  .def-corpo .adm-sec { padding: 16px; }
  .def-corpo .adm-sec > header small { margin-left: 0; }
  .def-guardar span { display: none; }
  .def-guardar .btn { width: 100%; justify-content: center; }
  .def-guardar { padding: 8px; }
}

.ia-forn { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.ia-f { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 10px; align-items: center; padding: 12px; border: 1.5px solid var(--linha); border-radius: 14px; cursor: pointer; transition: border-color .15s, background .15s; }
.ia-f input { position: absolute; opacity: 0; pointer-events: none; }
.ia-f > i { color: var(--tinta-3); text-align: center; }
.ia-f span { display: grid; gap: 2px; min-width: 0; }
.ia-f strong { font-size: .92rem; }
.ia-f small { font-size: .76rem; color: var(--tinta-3); line-height: 1.3; }
.ia-f.on { border-color: var(--bic); background: var(--azul-suave); }
.ia-f.on > i { color: var(--bic); }
.ia-cartoes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 14px; }
.ia-c { display: grid; gap: 10px; align-content: start; padding: 16px; border: 1px solid var(--linha); border-radius: 16px; background: var(--sup-2); }
.ia-c .campo { margin: 0; }
.ia-c > .btn { justify-self: start; gap: 8px; }
.ia-c-cab { display: flex; align-items: center; gap: 10px; }
.ia-c-cab strong { display: block; }
.ia-c-cab small { font-size: .78rem; color: var(--tinta-3); }
.ia-ok { color: #1E7F4F; }
.ia-logo { width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; color: #fff; font-size: .95rem; }
.ia-logo.g { background: linear-gradient(135deg, #4285F4, #9B72CB 60%, #D96570); }
.ia-logo.c { background: #D97757; }
.ia-curl summary { cursor: pointer; font-size: .86rem; font-weight: 600; color: var(--bic); }
.ia-curl textarea { margin-top: 8px; width: 100%; font-family: ui-monospace, monospace; font-size: .78rem; }
.ia-priv { display: flex; gap: 8px; align-items: flex-start; margin-top: 14px; }
.ia-priv i { margin-top: 3px; color: var(--bic); }
@media (max-width: 760px) { .ia-forn, .ia-cartoes { grid-template-columns: 1fr; } }

.prh-fundo { position: fixed; inset: 0; z-index: 420; display: grid; grid-template-columns: minmax(0, 1fr); place-items: center; padding: 16px; background: rgba(11, 16, 36, 0); transition: background .2s ease; }
.prh-fundo.aberto { background: rgba(11, 16, 36, .5); }
.prh { position: relative; width: min(720px, 100%); height: min(640px, calc(100vh - 48px)); display: flex; flex-direction: column; gap: 14px; box-sizing: border-box; padding: 22px; border-radius: 24px; background: var(--sup); box-shadow: 0 30px 80px rgba(11, 16, 36, .35); opacity: 0; transform: translateY(10px) scale(.98); transition: opacity .2s ease, transform .22s ease; }
.prh-fundo.aberto .prh { opacity: 1; transform: none; }
.prh-pega { display: none; }
.prh-cab { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.prh-cab h2 { margin: 0; font-size: 1.3rem; }
.prh-cab small { color: var(--tinta-3); font-size: .82rem; }
.prh-x { width: 38px; height: 38px; border: 0; border-radius: 50%; background: var(--sup-2); display: grid; place-items: center; cursor: pointer; color: var(--tinta-2); flex: none; }
.prh-x svg { width: 14px; height: 14px; }
.prh-ferr { display: flex; gap: 10px; }
.prh-busca { flex: 1; min-width: 0; display: flex; align-items: center; gap: 10px; height: 46px; padding: 0 16px; border: 1.5px solid var(--linha-2); border-radius: 14px; background: var(--sup); }
.prh-busca:focus-within { border-color: var(--bic); box-shadow: 0 0 0 4px var(--azul-suave); }
.prh-busca i { color: var(--tinta-3); }
.prh-busca input { flex: 1; min-width: 0; border: 0 !important; background: none !important; box-shadow: none !important; outline: none; font-size: .98rem; padding: 0; height: 44px; }
.prh-novo { height: 46px; border-radius: 14px !important; gap: 8px; flex: none; }
.prh-lista { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; margin: 0 -8px; padding: 0 8px 6px; scrollbar-width: thin; }
.prh-g + .prh-g { margin-top: 14px; }
.prh-g h3 { margin: 0 0 6px; font-size: .74rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--tinta-3); }
.prh-i { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; border-radius: 14px; transition: background .15s; }
.prh-i:hover, .prh-i.atual { background: var(--sup-2); }
.prh-i.atual { box-shadow: inset 3px 0 0 var(--bic); }
.prh-a { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 12px; align-items: center; padding: 10px; border: 0; background: none; font: inherit; text-align: left; cursor: pointer; min-width: 0; }
.prh-ic { width: 36px; height: 36px; border-radius: 11px; display: grid; place-items: center; background: var(--azul-suave); color: var(--bic); font-size: .8rem; }
.prh-t { display: grid; min-width: 0; }
.prh-t strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--tinta); font-size: .95rem; }
.prh-t small { color: var(--tinta-3); font-size: .78rem; }
.prh-apagar { width: 36px; height: 36px; margin-right: 6px; border: 0; border-radius: 10px; background: none; color: var(--tinta-3); cursor: pointer; opacity: 0; transition: opacity .15s, background .15s, color .15s; }
.prh-i:hover .prh-apagar, .prh-apagar:focus-visible { opacity: 1; }
.prh-apagar:hover { background: #FEF3F2; color: #B42318; }
.prh-vazio { display: grid; justify-items: center; gap: 6px; padding: 40px 16px; text-align: center; color: var(--tinta-3); }
.prh-vazio i { font-size: 1.6rem; color: var(--bic); opacity: .6; margin-bottom: 6px; }
.prh-vazio strong { color: var(--tinta); }
.prh-tudo { display: inline-flex; align-items: center; gap: 8px; margin: 16px auto 4px; padding: 8px 12px; border: 0; border-radius: 999px; background: none; font: inherit; font-size: .84rem; font-weight: 600; color: var(--tinta-3); cursor: pointer; }
.prh-tudo:hover { color: #B42318; background: #FEF3F2; }
@media (max-width: 760px) {
  .prh-fundo { place-items: end stretch; padding: 0; }
  .prh { width: 100%; height: min(82vh, 640px); border-radius: 24px 24px 0 0; padding: 10px 16px calc(16px + env(safe-area-inset-bottom, 0px)); transform: translateY(100%); transition: transform .3s cubic-bezier(.2, .9, .2, 1), opacity .2s; }
  .prh-fundo.aberto .prh { transform: none; }
  .prh-pega { display: block; width: 44px; height: 5px; margin: 0 auto 4px; border-radius: 999px; background: var(--linha-2); }
  .prh-novo span { display: none; }
  .prh-novo { width: 46px; padding: 0; justify-content: center; }
  .prh-apagar { opacity: 1; }
}

.pg-ir { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; border: 1px solid var(--linha); border-radius: 999px; background: var(--sup); font: inherit; cursor: pointer; color: var(--tinta-2); transition: border-color .15s, background .15s, color .15s; }
.pg-ir:hover { border-color: var(--bic); color: var(--bic); background: var(--azul-suave); }
.pg-ir i { font-size: .7rem; color: var(--bic); }
.pg-ir .lb-pag { color: inherit; }
.pg-ir-lc { margin-top: 4px; padding: 3px 10px; border-color: rgba(255, 255, 255, .25); background: rgba(255, 255, 255, .1); color: #fff; }
.pg-ir-lc small { color: inherit; opacity: .9; }
.pg-ir-lc i { color: #fff; }
.pg-ir-lc:hover { background: rgba(255, 255, 255, .2); color: #fff; border-color: rgba(255, 255, 255, .45); }
.pg-chegou { outline: 3px solid var(--bic); outline-offset: 3px; transition: outline-color .6s; }
.pgi-fundo { position: fixed; inset: 0; z-index: 450; display: grid; grid-template-columns: minmax(0, 1fr); place-items: center; padding: 16px; background: rgba(11, 16, 36, 0); transition: background .2s; }
.pgi-fundo.aberto { background: rgba(11, 16, 36, .5); }
.pgi { width: min(460px, 100%); display: flex; flex-direction: column; gap: 16px; padding: 22px; border-radius: 24px; background: var(--sup); box-shadow: 0 30px 80px rgba(11, 16, 36, .35); opacity: 0; transform: translateY(10px) scale(.98); transition: opacity .2s, transform .22s; box-sizing: border-box; }
.pgi-fundo.aberto .pgi { opacity: 1; transform: none; }
.pgi-pega { display: none; }
.pgi-cab { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.pgi-cab h2 { margin: 0; font-size: 1.25rem; }
.pgi-cab small { color: var(--tinta-3); font-size: .86rem; }
.pgi-cab small b { color: var(--bic); }
.pgi-x { width: 38px; height: 38px; flex: none; border: 0; border-radius: 50%; background: var(--sup-2); display: grid; place-items: center; cursor: pointer; color: var(--tinta-2); }
.pgi-x svg { width: 14px; height: 14px; }
.pgi-num { display: grid; grid-template-columns: 48px minmax(0, 1fr) 48px auto; gap: 8px; align-items: center; }
.pgi-passo { width: 48px; height: 52px; border: 1px solid var(--linha); border-radius: 14px; background: var(--sup-2); cursor: pointer; color: var(--tinta); }
.pgi-passo:hover { border-color: var(--bic); color: var(--bic); }
.pgi-campo { display: flex; align-items: baseline; justify-content: center; gap: 6px; height: 52px; padding: 0 12px; border: 1.5px solid var(--linha-2); border-radius: 14px; background: var(--sup); box-sizing: border-box; }
.pgi-campo:focus-within { border-color: var(--bic); box-shadow: 0 0 0 4px var(--azul-suave); }
.pgi-campo input { width: 4.5ch; min-width: 0; height: 50px; border: 0 !important; background: none !important; box-shadow: none !important; outline: none; padding: 0; text-align: right; font-family: var(--f-tit); font-size: 1.5rem; font-weight: 800; color: var(--tinta); -moz-appearance: textfield; }
.pgi-campo input::-webkit-outer-spin-button, .pgi-campo input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.pgi-campo span { color: var(--tinta-3); font-weight: 600; white-space: nowrap; }
.pgi-ok { height: 52px; padding: 0 18px; border-radius: 14px !important; gap: 8px; }
.pgi-reg input[type="range"] { --p: 0%; width: 100%; height: 28px; margin: 0; background: transparent; -webkit-appearance: none; appearance: none; cursor: pointer; }
.pgi-reg input[type="range"]::-webkit-slider-runnable-track { height: 8px; border-radius: 999px; background: linear-gradient(to right, var(--bic) var(--p), var(--sup-3) var(--p)); }
.pgi-reg input[type="range"]::-moz-range-track { height: 8px; border-radius: 999px; background: var(--sup-3); }
.pgi-reg input[type="range"]::-moz-range-progress { height: 8px; border-radius: 999px; background: var(--bic); }
.pgi-reg input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; width: 26px; height: 26px; margin-top: -9px; border-radius: 50%; background: #fff; border: 3px solid var(--bic); box-shadow: 0 4px 12px rgba(30, 64, 230, .3); }
.pgi-reg input[type="range"]::-moz-range-thumb { width: 22px; height: 22px; border-radius: 50%; background: #fff; border: 3px solid var(--bic); }
.pgi-marcas { display: flex; justify-content: space-between; margin-top: 2px; font-size: .76rem; font-weight: 600; color: var(--tinta-3); }
.pgi-rapido { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
.pgi-rapido button { height: 40px; border: 1px solid var(--linha); border-radius: 12px; background: var(--sup-2); font: inherit; font-size: .86rem; font-weight: 700; color: var(--tinta); cursor: pointer; transition: border-color .15s, color .15s, background .15s; }
.pgi-rapido button:hover { border-color: var(--bic); color: var(--bic); background: var(--azul-suave); }
.pgi-parei { display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 12px 14px; border: 1px solid #D6DEFF; border-radius: 14px; background: var(--azul-suave); font: inherit; color: var(--tinta); text-align: left; cursor: pointer; }
.pgi-parei i { color: var(--bic); }
.pgi-parei span { font-weight: 600; }
.pgi-parei b { color: var(--bic); }
@media (max-width: 760px) {
  .pgi-fundo { place-items: end stretch; padding: 0; }
  .pgi { width: 100%; border-radius: 24px 24px 0 0; padding: 10px 16px calc(18px + env(safe-area-inset-bottom, 0px)); transform: translateY(100%); transition: transform .3s cubic-bezier(.2, .9, .2, 1), opacity .2s; }
  .pgi-fundo.aberto .pgi { transform: none; }
  .pgi-pega { display: block; width: 44px; height: 5px; margin: 0 auto; border-radius: 999px; background: var(--linha-2); }
  .pgi-num { grid-template-columns: 44px minmax(0, 1fr) 44px; }
  .pgi-ok { grid-column: 1 / -1; width: 100%; justify-content: center; }
  .pg-ir { padding: 5px 10px; }
}

@media (max-width: 760px) {
  .eb-cartao .exp-amb.tabs3d button { gap: 6px; padding: 0 6px !important; font-size: .84rem !important; }
  .eb-cartao .exp-amb .ea-l { display: inline !important; white-space: nowrap; }
  .eb-cartao .exp-amb .ea-c { display: none !important; }
  .eb-cartao .exp-amb.tabs3d :is(.i2d, .i3d) { width: 18px; height: 18px; flex: none; }
  .eb-cartao .exp-amb.tabs3d button { flex: 1 1 auto !important; width: auto !important; min-width: 0; }
  .eb-cartao .exp-amb.tabs3d button[data-v="concursos"] { flex-grow: 1.3 !important; }
  .eb-cartao .exp-amb .ea-l { overflow: visible !important; text-overflow: clip !important; }
}
@media (max-width: 400px) {
  .eb-cartao .exp-amb.tabs3d :is(.i2d, .i3d) { display: none; }
  .eb-cartao .exp-amb.tabs3d button { font-size: .8rem !important; letter-spacing: -.01em; padding: 0 4px !important; }
}
@media (max-width: 350px) {
  .eb-modos { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .eb-modos button { padding: 0 4px; gap: 5px; font-size: .8rem; letter-spacing: -.01em; }
  .eb-modos button i { font-size: .76rem; }
}

/* v312: o cartão inteiro abre o material (a camada do título fica por cima da capa e do texto; botões e links do cartão por cima dela) */
.cartao { cursor: pointer; }
.cartao h3 a::after { z-index: 2; }
.cartao :is(.cartao-pe button, .cartao-pe a, .cartao-extra a, .cartao-desc a) { position: relative; z-index: 3; }
.cartao .geral-etq { z-index: 4; }

/* v313: «Girar e tapar dados» — Preto, Desfocar e Mover num só grupo (sem «Pintar»), e no telemóvel nada sai para o lado */
.ed-doc .eo-rolo { overflow-x: hidden; }
.ed-barra, .ed-g { max-width: 100%; box-sizing: border-box; }
.ed-barra .ed-dica { min-width: 0; }
.ed-seg-mao, .ed-seg-ferr .ed-o-mover { display: none; }
@media (pointer: coarse) { .ed-seg-ferr .ed-o-mover { display: inline-flex; } }
.ed-seg-ferr .ed-o-mover i { font-size: .95rem; }
.ed-seg-ferr .ed-o-mover.on { color: var(--bic); }
.ed-seg-tam.ed-inativo .ed-o-tam.on { box-shadow: none; background: transparent; }
.ed-seg-tam.ed-inativo .ed-o-tam.on .ed-ponto { background: currentColor; }
@media (max-width: 640px) {
  .ed-barra { flex-wrap: wrap !important; overflow: visible !important; padding: 8px 10px 10px; gap: 8px; }
  .ed-barra .ed-dica { flex: 1 1 100%; }
  .ed-ops { flex: 1 1 100%; min-width: 0; display: flex; flex-wrap: wrap !important; justify-content: flex-start; gap: 8px; }
  .ed-seg-ferr { flex: 1 1 100%; display: flex; }
  .ed-seg-ferr .ed-o { flex: 1 1 0; min-width: 0; padding: 0 8px; }
  .ed-seg-ferr .ed-ot { display: inline; }
  .ed-hist { margin: 0 0 0 auto; }
  .ed-g { padding: 0 10px; }
}

/* v314: o texto de ajuda num só bloco (sem a coluna à parte) */
.ed-barra .ed-dica > span { min-width: 0; }
.ed-dica-rato { display: inline; }
@media (pointer: coarse) { .ed-dica-rato { display: none; } .ed-dica-toque { display: inline; } }

/* v315: a lupa do topo esconde-se enquanto a pesquisa do início está à vista */
.topo .ib.so-tel[data-action="busca"] { transition: opacity .2s ease, transform .2s ease, visibility .2s; }
body.busca-inicio-vista .topo .ib.so-tel[data-action="busca"] { opacity: 0; visibility: hidden; transform: scale(.85); pointer-events: none; }

/* v317: janela «Ler sem internet» (baixar o material): recibo, falta de pontos, progresso sem cancelar */
.off-dlg { width: min(440px, 100%); padding: 22px; display: grid; gap: 16px; text-align: left; }
.off-pega { display: none; }
.off-dlg-cab { display: flex; align-items: center; gap: 14px; min-width: 0; }
.off-dlg-tt { min-width: 0; }
.off-dlg h2 { margin: 0; font-size: 1.18rem; }
.off-dlg .off-dlg-mat { margin: 2px 0 0; color: var(--tinta-2); font-size: .9rem; font-weight: 600; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.off-dlg-ic { position: relative; flex: none; width: 54px; height: 54px; border-radius: 18px; display: grid; place-items: center; background: var(--azul-suave); color: var(--bic); font-size: 1.3rem; transition: background .25s, color .25s; }
.off-anel { position: absolute; inset: -5px; border-radius: 22px; border: 2.5px solid transparent; pointer-events: none; }
.off-ov.a-baixar .off-anel { border-color: var(--bic) transparent transparent transparent; animation: offRoda .9s linear infinite; }
.off-ov.a-baixar .off-dlg-ic i { animation: offDesce 1.1s ease-in-out infinite; }
.off-ov.feito .off-dlg-ic { background: #e3f6ea; color: #15803d; }
.off-ov.feito .off-dlg-ic i { animation: offPop .35s cubic-bezier(.2, 1.4, .4, 1); }
.off-ov.falta .off-dlg-ic, .off-ov.erro .off-dlg-ic { background: #fff1e6; color: #c2410c; }
@keyframes offRoda { to { transform: rotate(360deg); } }
@keyframes offDesce { 0%, 100% { transform: translateY(-2px); } 50% { transform: translateY(3px); } }
@keyframes offPop { 0% { transform: scale(.4); } 100% { transform: scale(1); } }
.off-corpo { display: grid; gap: 12px; }
.off-recibo { margin: 0; padding: 4px 16px; border-radius: 16px; background: var(--sup-2); display: grid; }
.off-recibo > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 0; border-bottom: 1px dashed var(--linha-2); }
.off-recibo > div:last-child { border-bottom: 0; }
.off-recibo dt { display: flex; align-items: center; gap: 10px; color: var(--tinta-2); font-size: .9rem; }
.off-recibo dt i { width: 16px; text-align: center; color: var(--bic); }
.off-recibo dd { margin: 0; font-weight: 750; color: var(--tinta); font-size: .92rem; display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; }
.off-recibo .off-tot dt { font-weight: 700; color: var(--tinta); }
.off-recibo .off-tot dd s { color: var(--tinta-3); font-weight: 600; }
.off-recibo .off-tot dd i { color: var(--tinta-3); font-size: .8rem; }
.off-recibo .off-tot dd b { color: var(--bic); font-size: 1.05rem; }
.off-ov.a-baixar .off-recibo, .off-ov.feito .off-recibo, .off-ov.erro .off-recibo { display: none; }
.off-falta { padding: 16px; border-radius: 16px; background: #fff7ed; border: 1px solid #fed7aa; display: grid; gap: 10px; }
.off-falta-t { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.off-falta-t strong { color: #9a3412; font-size: 1rem; }
.off-falta-t span { color: #9a3412; font-size: .84rem; font-weight: 700; opacity: .8; }
.off-falta-b { height: 8px; border-radius: 999px; background: #fde4cc; overflow: hidden; }
.off-falta-b i { display: block; height: 100%; border-radius: inherit; background: #f97316; }
.off-dlg .off-falta p { margin: 0; color: #7c2d12; font-size: .86rem; line-height: 1.45; }
.off-dlg-prog { display: grid; gap: 10px; padding: 16px; border-radius: 16px; background: var(--sup-2); }
.off-dlg-prog[hidden] { display: none; }
.off-num { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.off-num b { font-size: 1.6rem; font-weight: 800; color: var(--tinta); font-variant-numeric: tabular-nums; line-height: 1; }
.off-num small { color: var(--tinta-2); font-size: .84rem; font-weight: 600; text-align: right; }
.off-barra { position: relative; height: 10px; border-radius: 999px; background: var(--linha); overflow: hidden; }
.off-barra i { position: relative; display: block; width: 0; height: 100%; border-radius: inherit; background: var(--bic); transition: width .25s ease; overflow: hidden; }
.off-barra i::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .45), transparent); transform: translateX(-100%); animation: offBrilho 1.2s ease-in-out infinite; }
.off-ov.sem-total .off-barra i { width: 35% !important; animation: offVai 1.1s ease-in-out infinite; }
.off-ov.feito .off-barra i { background: #16a34a; }
.off-ov.feito .off-barra i::after { display: none; }
@keyframes offBrilho { to { transform: translateX(100%); } }
@keyframes offVai { 0% { transform: translateX(-100%); } 100% { transform: translateX(300%); } }
.off-dlg .off-nao-feche { margin: 0; color: var(--tinta-3); font-size: .8rem; }
.off-dlg .off-dlg-erro { margin: 0; padding: 12px 14px; border-radius: 12px; background: #fdecee; color: #b4232f; font-size: .9rem; font-weight: 600; }
.off-dlg .off-dlg-erro[hidden] { display: none; }
.off-dlg .dlg-b { margin: 0; display: grid; grid-template-columns: 1fr 1.5fr; gap: 10px; }
.off-dlg .dlg-b[hidden] { display: none; }
.off-dlg .dlg-b .btn { min-width: 0; justify-content: center; gap: 8px; min-height: 48px; }
@media (max-width: 600px) {
  .off-ov { place-items: end stretch; padding: 0; }
  .off-dlg { width: 100%; border-radius: 26px 26px 0 0; padding: 10px 18px calc(18px + env(safe-area-inset-bottom, 0px)); transform: translateY(30px); }
  .off-pega { display: block; justify-self: center; width: 40px; height: 5px; border-radius: 999px; background: var(--linha-2); }
  .off-dlg-ic { width: 48px; height: 48px; border-radius: 16px; font-size: 1.15rem; }
}


/* v317: Pontos da pessoa (painel) quase em ecrã inteiro, com filtros */
.fundo.fundo-ptp-modal { padding: 16px; }
.modal.ptp-modal { width: min(1180px, 100%); height: min(94vh, 100%); max-height: none; padding: 0; border-radius: 24px; display: flex; flex-direction: column; overflow: hidden; }
.ptp-modal .ptp { flex: 1; min-height: 0; overflow: auto; overscroll-behavior: contain; gap: 18px; padding: 0 clamp(16px, 3vw, 32px) 28px; align-content: start; }
.ptp-modal .ptp-cab { position: sticky; top: 0; z-index: 2; margin: 0 calc(-1 * clamp(16px, 3vw, 32px)); padding: 20px 64px 14px clamp(16px, 3vw, 32px); background: var(--sup); border-bottom: 1px solid var(--linha); }
.ptp-modal .ptp-cab h2 { margin: 0; font-size: 1.3rem; }
.ptp-modal > .fechar { z-index: 3; top: 16px; right: 16px; }
.ptp-filtros { display: grid; gap: 12px; padding: 14px; border: 1px solid var(--linha); border-radius: 18px; background: var(--sup-2); }
.ptp-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
.ptp-sel { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.ptp-campo { display: grid; gap: 4px; min-width: 0; }
.ptp-campo span { font-size: .76rem; font-weight: 700; color: var(--tinta-3); text-transform: uppercase; letter-spacing: .03em; }
.ptp-campo select, .ptp-campo input { width: 100%; min-width: 0; height: 42px; padding: 0 12px; border: 1.5px solid var(--linha-2); border-radius: 12px; background: var(--sup); color: var(--tinta); font: inherit; font-size: .9rem; }
.ptp-campo select:focus, .ptp-campo input:focus { outline: none; border-color: var(--bic); box-shadow: 0 0 0 3px var(--azul-suave); }
.ptp-modal .ptp-kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ptp-modal .ptp-kpis .menos b { color: var(--tinta); }
.ptp-corpo { display: grid; gap: 18px; }
.ptp-cat-b { width: 100%; display: grid; grid-template-columns: minmax(0, 1fr) 90px auto; align-items: center; gap: 10px; padding: 8px 10px; border: 1px solid transparent; border-radius: 12px; background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.ptp-cat-b:hover { background: var(--sup-2); }
.ptp-cat-b[aria-pressed="true"] { border-color: var(--bic); background: var(--azul-suave); }
.ptp-modal .ptp-l li { display: block; }
.ptp-modal .ptp-g section { padding: 14px; border: 1px solid var(--linha); border-radius: 18px; min-width: 0; }
.ptp-modal .ptp-movs { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(420px, 100%), 1fr)); gap: 8px; }
.ptp-modal .ptp-movs .mov { margin: 0; }
.ptp-modal .ptp-ult .btn-full { margin-top: 10px; }
@media (max-width: 900px) {
  .ptp-sel { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ptp-modal .ptp-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .fundo.fundo-ptp-modal { padding: 0; place-items: end stretch; }
  .modal.ptp-modal { height: 100%; border-radius: 0; }
  .ptp-modal .ptp { padding: 0 14px calc(18px + env(safe-area-inset-bottom, 0px)); }
  .ptp-modal .ptp-cab { margin: 0 -14px; padding: 14px 56px 12px 14px; grid-template-columns: auto minmax(0, 1fr); }
  .ptp-modal > .fechar { top: 12px; right: 10px; }
  .ptp-modal .ptp-cab .btn { grid-column: 1 / -1; justify-self: start; }
  .ptp-modal .ptp-g { grid-template-columns: 1fr; }
  .ptp-chips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin: 0 -14px; padding: 0 14px; }
  .ptp-chips::-webkit-scrollbar { display: none; }
  .ptp-chips .chip { flex: none; }
  .ptp-filtros { padding: 12px; }
}

/* v317: o site nunca desliza para o lado (o painel ficava empurrado para a esquerda no «Sistema»);
   o que é largo rola dentro da sua própria caixa */
html { overflow-x: hidden; }
main#app { overflow-x: clip; }
.pag.adm { min-width: 0; max-width: 100%; }
.pag.adm > *, .adm .caixa, .adm .adm-sec, .adm section, .adm form, .adm .adm-ferr { min-width: 0; max-width: 100%; }
.adm .caixa, .adm .adm-sec { overflow-wrap: break-word; }
.adm .tab-w { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.adm .tab-w table { min-width: 100%; }
.adm pre, .adm code { white-space: pre-wrap; word-break: break-word; }
.adm img, .adm video, .adm canvas, .adm svg { max-width: 100%; }
.adm .linha-btn, .adm .adm-ferr { flex-wrap: wrap; }
.adm-ferr { display: flex; align-items: center; gap: 10px; }
.adm-ferr .exp-busca { flex: 1 1 260px; min-width: 0; }
/* os filtros dos Utilizadores (Todos, Pedidos para avaliar, Avaliadores, Equipa, as patentes, Associações):
   no computador quebram em várias linhas; no telemóvel deslizam numa linha com um fade no fim */
.adm-estados.chips { gap: 8px; }
@media (min-width: 761px) { .adm-estados.chips.scroll-x { flex-wrap: wrap; overflow: visible; margin-left: 0; margin-right: 0; padding: 0; } }
@media (max-width: 760px) {
  .adm-estados.chips.scroll-x { -webkit-mask-image: linear-gradient(90deg, #000 85%, transparent); mask-image: linear-gradient(90deg, #000 85%, transparent); padding-right: 40px; }
  .adm-estados .chip { height: 36px; font-size: .84rem; }
  .adm .cab-pag { flex-wrap: wrap; gap: 10px; }
  .adm .cab-pag h1 { font-size: 1.5rem; }
  .adm .caixa, .adm .adm-sec { padding-left: 14px; padding-right: 14px; }
  .adm .linha-btn .btn { flex: 1 1 auto; justify-content: center; }
  .adm .ptp-kpis, .adm .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .adm .def, .adm .def-l { max-width: 100%; }
}

/* ---------- v318: pastas dos guardados (como as playlists) ---------- */
.pst-capa { position: relative; flex: none; width: 64px; height: 64px; border-radius: 14px; overflow: hidden; display: grid; place-items: center; background: linear-gradient(135deg, var(--c1, #2346E8), var(--c2, #6C8BFF)); color: #fff; box-shadow: 0 6px 16px -10px rgba(16, 22, 51, .55); }
.pst-capa.g { width: 148px; height: 148px; border-radius: 22px; font-size: 2.6rem; }
.pst-capa i { font-size: 1.5rem; }
.pst-capa.g i { font-size: 3rem; }
.pst-capa img { width: 100%; height: 100%; object-fit: cover; object-position: top center; background: #fff; display: block; }
.pst-capa.mosaico { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 1px; background: var(--linha); }
.pst-capa.uma { padding: 8px 8px 0; align-items: end; }
.pst-capa.uma img { border-radius: 6px 6px 0 0; box-shadow: 0 -4px 10px rgba(0, 0, 0, .18); }
.pst-capa.g.uma { padding: 18px 18px 0; }
.pst-capa.principal { background: linear-gradient(135deg, #4F46E5, #8B5CF6 55%, #A5F3FC); }
.pst-capa.principal svg { width: 28px; height: 28px; fill: #fff; }
.pst-capa.g.principal svg { width: 64px; height: 64px; }
.pst-capa.nova { background: var(--sup-2); color: var(--tinta-2); box-shadow: inset 0 0 0 2px var(--linha-2); }
/* a grelha de pastas na página Guardados */
.pst-pag .cab-pag { margin-bottom: 18px; }
.pst-grelha { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(240px, 100%), 1fr)); gap: 10px; margin: 0 0 26px; }
.pst-c { display: flex; align-items: center; gap: 12px; min-width: 0; padding: 10px; border: 1.5px solid var(--linha); border-radius: 18px; background: var(--sup); color: var(--tinta); text-decoration: none; text-align: left; font: inherit; cursor: pointer; transition: border-color .15s, transform .15s, box-shadow .15s; }
.pst-c:hover { border-color: var(--linha-2); transform: translateY(-1px); box-shadow: 0 8px 22px -16px rgba(16, 22, 51, .5); }
.pst-c.on { border-color: var(--bic); background: var(--azul-suave); }
.pst-t { display: grid; gap: 2px; min-width: 0; }
.pst-t strong { font-size: .95rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pst-t small { color: var(--tinta-3); font-size: .8rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pst-nova { border-style: dashed; background: transparent; }
.pst-h2 { margin: 0 0 12px; font-size: 1.1rem; }
/* o cabeçalho de uma pasta */
.pst-cab { display: flex; align-items: flex-end; gap: 22px; margin: 0 0 22px; }
.pst-cab-t { display: grid; gap: 4px; min-width: 0; }
.pst-voltar { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 4px; color: var(--bic); font-weight: 700; font-size: .9rem; text-decoration: none; width: fit-content; }
.pst-voltar svg { width: 16px; height: 16px; }
.pst-cab-t small { color: var(--tinta-3); font-size: .78rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.pst-cab-t h1 { margin: 0; font-size: clamp(1.6rem, 4vw, 2.6rem); line-height: 1.08; overflow-wrap: anywhere; }
.pst-cab-t p { margin: 0; color: var(--tinta-2); }
.pst-acoes { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.pst-acoes .btn { gap: 8px; }
.pst-apagar { color: #b4232f; }
/* a folha «Guardar em» */
.pfo-ov { position: fixed; inset: 0; z-index: 10090; display: grid; place-items: center; padding: 16px; background: rgba(9, 13, 32, .55); backdrop-filter: blur(3px); opacity: 0; transition: opacity .2s; }
.pfo-ov.on { opacity: 1; }
.pfo { width: min(480px, 100%); max-height: min(640px, 90vh); display: flex; flex-direction: column; border-radius: 24px; background: var(--sup); box-shadow: 0 24px 60px rgba(9, 13, 32, .35); transform: translateY(10px); transition: transform .22s cubic-bezier(.2, .8, .2, 1); overflow: hidden; }
.pfo-ov.on .pfo { transform: none; }
.pfo-pega { display: none; }
.pfo-cab { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 20px 20px 12px; }
.pfo-cab h2 { margin: 0; font-size: 1.25rem; }
.pfo-cab p { margin: 2px 0 0; color: var(--tinta-2); font-size: .86rem; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
.pfo-nova { flex: none; gap: 6px; border-radius: 999px !important; color: var(--bic); }
.pfo-lista { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 0 10px 8px; }
.pfo-l { width: 100%; display: flex; align-items: center; gap: 14px; padding: 8px 10px; border: 0; border-radius: 16px; background: none; color: var(--tinta); font: inherit; text-align: left; cursor: pointer; }
.pfo-l:hover { background: var(--sup-2); }
.pfo-l .pst-capa { width: 56px; height: 56px; border-radius: 12px; }
.pfo-l .pst-capa.principal svg { width: 24px; height: 24px; }
.pfo-t { flex: 1; display: grid; gap: 2px; min-width: 0; }
.pfo-t strong { font-size: .98rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pfo-t small { color: var(--tinta-3); font-size: .82rem; }
.pfo-ck { flex: none; font-size: 1.45rem; color: var(--tinta-3); line-height: 1; }
.pfo-l.on .pfo-ck { color: #16a34a; }
.pfo-l.on .pfo-ck i { animation: offPop .3s cubic-bezier(.2, 1.4, .4, 1); }
.pfo-l.a-mudar { opacity: .6; pointer-events: none; }
.pfo-sec { margin: 10px 10px 4px; padding-top: 10px; border-top: 1px solid var(--linha); color: var(--tinta-3); font-size: .78rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.pfo-vazio { display: flex; gap: 10px; align-items: flex-start; margin: 12px 10px 4px; padding: 12px 14px; border-radius: 14px; background: var(--sup-2); color: var(--tinta-2); font-size: .86rem; line-height: 1.45; }
.pfo-vazio i { color: var(--bic); margin-top: 3px; }
.pfo-pe { padding: 10px 20px 20px; border-top: 1px solid var(--linha); }
/* criar ou mudar o nome de uma pasta: ecrã grande */
.pnm-ov { position: fixed; inset: 0; z-index: 10100; display: grid; place-items: center; padding: 16px; background: rgba(9, 13, 32, .6); backdrop-filter: blur(4px); opacity: 0; transition: opacity .2s; }
.pnm-ov.on { opacity: 1; }
.pnm { position: relative; width: min(520px, 100%); min-height: min(460px, 90vh); display: grid; place-items: center; padding: 40px 24px; border-radius: 28px; background: linear-gradient(180deg, var(--sup), var(--sup-2)); box-shadow: 0 30px 70px rgba(9, 13, 32, .4); }
.pnm-x { position: absolute; top: 14px; right: 14px; }
.pnm-meio { width: 100%; display: grid; justify-items: center; gap: 18px; text-align: center; }
.pnm-ic { width: 76px; height: 76px; border-radius: 22px; display: grid; place-items: center; background: linear-gradient(135deg, var(--c1), var(--c2)); color: #fff; font-size: 2rem; box-shadow: 0 14px 30px -14px var(--c1); transition: background .2s; }
.pnm h2 { margin: 0; font-size: 1.3rem; }
.pnm-in { width: 100%; padding: 6px 4px 10px; border: 0; border-bottom: 2px solid var(--linha-2); background: transparent; color: var(--tinta); font: inherit; font-family: var(--f-tit); font-size: clamp(1.6rem, 6vw, 2.2rem); font-weight: 800; text-align: center; outline: none; }
.pnm-in:focus { border-color: var(--bic); }
.pnm-in::selection { background: var(--azul-claro); }
.pnm-cores { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.pnm-cor { width: 30px; height: 30px; border-radius: 50%; border: 0; background: linear-gradient(135deg, var(--c1), var(--c2)); cursor: pointer; box-shadow: 0 0 0 2px var(--sup), 0 0 0 4px transparent; transition: box-shadow .15s, transform .15s; }
.pnm-cor.on { box-shadow: 0 0 0 3px var(--sup), 0 0 0 5px var(--c1); transform: scale(1.08); }
.pnm-ok { min-width: 180px; justify-content: center; border-radius: 999px !important; }
.pnm-erro { margin: 0; color: #b4232f; font-weight: 600; font-size: .9rem; }
.pnm-erro[hidden] { display: none; }
@media (max-width: 640px) {
  .pfo-ov { place-items: end stretch; padding: 0; }
  .pfo { width: 100%; max-height: 82vh; border-radius: 26px 26px 0 0; transform: translateY(40px); }
  .pfo-pega { display: block; align-self: center; width: 40px; height: 5px; margin-top: 10px; border-radius: 999px; background: var(--linha-2); }
  .pfo-cab { padding: 12px 16px 10px; }
  .pfo-pe { padding: 10px 16px calc(14px + env(safe-area-inset-bottom, 0px)); }
  .pnm-ov { padding: 0; place-items: stretch; }
  .pnm { width: 100%; min-height: 100%; border-radius: 0; align-content: start; padding-top: 18vh; }
  .pst-grelha { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .pst-c { flex-direction: column; align-items: flex-start; padding: 10px; }
  .pst-c .pst-capa { width: 100%; height: auto; aspect-ratio: 1; border-radius: 12px; }
  .pst-c .pst-capa.principal svg { width: 40px; height: 40px; }
  .pst-c .pst-capa i { font-size: 2rem; }
  .pst-t { width: 100%; }
  .pst-cab { flex-direction: column; align-items: center; text-align: center; gap: 14px; }
  .pst-cab .pst-capa.g { width: 168px; height: 168px; }
  .pst-cab-t { justify-items: center; }
  .pst-acoes { justify-content: center; }
}

/* ---------- v319: Guardados só com as pastas (cartões grandes); os materiais aparecem dentro de cada pasta ---------- */
.pst-topo { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; flex-wrap: wrap; margin-bottom: 22px; }
.pst-topo-nova { gap: 8px; border-radius: 999px !important; }
.pst-k-grelha { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(210px, 100%), 1fr)); gap: 18px; margin-bottom: 30px; }
.pst-k { position: relative; display: grid; gap: 14px; align-content: start; min-width: 0; padding: 14px 14px 16px; border: 1px solid var(--linha); border-radius: 24px; background: var(--sup); color: var(--tinta); text-decoration: none; text-align: left; font: inherit; cursor: pointer; transition: transform .2s cubic-bezier(.2, .8, .2, 1), box-shadow .2s, border-color .2s; }
.pst-k:hover { transform: translateY(-4px); border-color: var(--linha-2); box-shadow: 0 18px 40px -24px rgba(16, 22, 51, .55); }
.pst-k:focus-visible { outline: 3px solid var(--bic); outline-offset: 2px; }
.pst-k .pst-capa.g { width: 100%; height: auto; aspect-ratio: 1; border-radius: 18px; box-shadow: 0 14px 30px -18px rgba(16, 22, 51, .6); }
.pst-k .pst-capa.g.principal svg { width: 34%; height: 34%; }
.pst-k .pst-capa.g i { font-size: clamp(2.2rem, 5vw, 3.4rem); }
.pst-k .pst-capa.g.uma { padding: 14% 14% 0; }
.pst-k .pst-capa.mosaico { gap: 2px; }
.pst-k-t { display: grid; gap: 3px; min-width: 0; padding: 0 2px; }
.pst-k-t strong { font-family: var(--f-tit); font-size: 1.08rem; font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pst-k-t small { color: var(--tinta-3); font-size: .84rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pst-k-ir { position: absolute; right: 24px; bottom: 86px; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--bic); color: #fff; box-shadow: 0 10px 22px -8px rgba(35, 70, 232, .7); opacity: 0; transform: translateY(8px); transition: opacity .2s, transform .2s; }
.pst-k:hover .pst-k-ir { opacity: 1; transform: none; }
.pst-k-nova { border-style: dashed; border-width: 2px; background: transparent; }
.pst-k-nova .pst-capa.nova { background: var(--sup-2); color: var(--bic); box-shadow: none; }
.pst-k-nova:hover .pst-capa.nova { background: var(--azul-suave); }
/* dentro de uma pasta */
.pst-voltar { display: inline-flex; align-items: center; gap: 8px; height: 38px; margin: 0 0 16px; padding: 0 16px 0 12px; border: 1px solid var(--linha); border-radius: 999px; background: var(--sup); color: var(--tinta); font-weight: 700; font-size: .9rem; text-decoration: none; transition: border-color .15s, color .15s; }
.pst-voltar:hover { border-color: var(--bic); color: var(--bic); }
.pst-voltar i { font-size: .85rem; }
.pst-dentro .pst-cab { position: relative; display: flex; align-items: flex-end; gap: 24px; margin: 0 0 24px; padding: 24px; border-radius: 28px; background: linear-gradient(160deg, color-mix(in srgb, var(--c1, #6B3FE0) 22%, var(--sup)), var(--sup) 70%); border: 1px solid var(--linha); overflow: hidden; }
.pst-dentro .pst-cab .pst-capa.g { width: clamp(120px, 18vw, 190px); height: auto; aspect-ratio: 1; border-radius: 22px; box-shadow: 0 22px 44px -22px rgba(16, 22, 51, .7); }
.pst-dentro .pst-cab-t { gap: 6px; }
.pst-dentro .pst-cab-t h1 { font-size: clamp(1.8rem, 5vw, 3.2rem); }
.pst-busca { margin-bottom: 18px; }
.pst-busca .meus-busca { max-width: 520px; }
@media (max-width: 640px) {
  .pst-topo { align-items: center; }
  .pst-topo h1 { font-size: 1.9rem; }
  .pst-k-grelha { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .pst-k { padding: 10px 10px 12px; border-radius: 20px; gap: 10px; }
  .pst-k .pst-capa.g { border-radius: 14px; }
  .pst-k-t strong { font-size: .98rem; }
  .pst-k-ir { display: none; }
  .pst-dentro .pst-cab { flex-direction: column; align-items: center; text-align: center; padding: 22px 16px; }
  .pst-dentro .pst-cab .pst-capa.g { width: 58%; max-width: 220px; }
  .pst-dentro .pst-cab-t { justify-items: center; }
  .pst-acoes { justify-content: center; }
  .pst-busca .meus-busca { max-width: none; }
}

/* ---------- v320: capa das pastas em leque (5 páginas) ---------- */
.pst-capa.leque { display: block; padding: 0; background: radial-gradient(120% 90% at 20% 0%, color-mix(in srgb, var(--c2) 70%, #fff) 0%, transparent 55%), linear-gradient(145deg, var(--c1), var(--c2)); isolation: isolate; }
.pst-capa.leque .lq { position: absolute; left: 50%; top: 54%; width: 41%; aspect-ratio: 210 / 297; z-index: var(--z); border-radius: 7px; overflow: hidden; background: #fff;
  box-shadow: 0 10px 22px -10px rgba(10, 14, 40, .6), 0 0 0 1px rgba(255, 255, 255, .5);
  transform: translate(-50%, -50%) translateX(calc(var(--p) * 26%)) translateY(calc(var(--p) * var(--p) * 3%)) rotate(calc(var(--p) * 10deg));
  transition: transform .45s cubic-bezier(.2, .9, .25, 1.15); }
.pst-capa.leque .lq img { width: 100%; height: 100%; object-fit: cover; object-position: top center; display: block; }
.pst-capa.leque .lq.branca { background: rgba(255, 255, 255, .93); }
.lq-linhas { position: absolute; inset: 14% 12% auto; height: 62%; background: repeating-linear-gradient(180deg, color-mix(in srgb, var(--c1) 22%, transparent) 0 2px, transparent 2px 11px); opacity: .7; }
.lq-linhas::before { content: ""; position: absolute; left: 0; top: -9%; width: 55%; height: 5%; border-radius: 3px; background: color-mix(in srgb, var(--c1) 45%, transparent); }
.lq-brilho { position: absolute; inset: 0; z-index: 9; pointer-events: none; background: linear-gradient(115deg, transparent 35%, rgba(255, 255, 255, .28) 48%, transparent 60%); transform: translateX(-120%); }
.pst-k:hover .lq-brilho { transform: translateX(120%); transition: transform .9s ease; }
.pst-k:hover .pst-capa.leque .lq { transform: translate(-50%, -52%) translateX(calc(var(--p) * 33%)) translateY(calc(var(--p) * var(--p) * 4%)) rotate(calc(var(--p) * 14deg)); }
.pst-k:hover .pst-capa.leque .lq[style*="--p:0"] { transform: translate(-50%, -58%) scale(1.06); }
.pst-capa.leque.so-cor .lq.branca { background: rgba(255, 255, 255, .85); }
.lq-ic { position: absolute; z-index: 8; right: 10%; bottom: 9%; font-size: clamp(1.1rem, 2.4vw, 1.6rem) !important; color: #fff; filter: drop-shadow(0 4px 10px rgba(0, 0, 0, .3)); }
.pst-dentro .pst-cab .pst-capa.leque .lq { width: 40%; }
@media (prefers-reduced-motion: reduce) { .pst-capa.leque .lq, .lq-brilho { transition: none !important; } }
@media (max-width: 640px) { .pst-capa.leque .lq { border-radius: 5px; } }

/* ---------- v321: Retrospectiva do ano («Veteraano Wrapped») ---------- */
/* o cartão no perfil */
.retro-cartao { position: relative; display: flex; align-items: center; gap: 18px; margin: 0 0 18px; padding: 22px 22px; min-height: 120px; border-radius: 26px; overflow: hidden; isolation: isolate; color: #fff; text-decoration: none; background: linear-gradient(120deg, #1B2CC1, #6B3FE0 55%, #F0438B); box-shadow: 0 20px 44px -26px rgba(107, 63, 224, .9); transition: transform .2s; }
.retro-cartao:hover { transform: translateY(-2px); }
.rc-fundo i { position: absolute; z-index: -1; border-radius: 50%; filter: blur(30px); opacity: .7; animation: retroFlut 9s ease-in-out infinite alternate; }
.rc-fundo i:nth-child(1) { width: 220px; height: 220px; left: -60px; top: -90px; background: #4FD1FF; }
.rc-fundo i:nth-child(2) { width: 260px; height: 260px; right: -80px; bottom: -140px; background: #FFB547; animation-delay: -3s; }
.rc-fundo i:nth-child(3) { width: 140px; height: 140px; right: 30%; top: -60px; background: #FF6FB5; animation-delay: -6s; }
@keyframes retroFlut { to { transform: translate(30px, 20px) scale(1.15); } }
.rc-ano { flex: none; font-family: var(--f-tit); font-weight: 900; font-size: clamp(2.6rem, 7vw, 4.2rem); line-height: .9; letter-spacing: -.04em; text-shadow: 0 8px 24px rgba(0, 0, 0, .25); }
.rc-t { display: grid; gap: 3px; min-width: 0; flex: 1; }
.rc-t small { font-size: .74rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; opacity: .85; }
.rc-t strong { font-family: var(--f-tit); font-size: 1.2rem; font-weight: 800; }
.rc-t span { font-size: .88rem; opacity: .9; line-height: 1.35; }
.rc-ir { flex: none; width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; background: #fff; color: #6B3FE0; font-size: 1.1rem; box-shadow: 0 10px 24px -10px rgba(0, 0, 0, .5); }
.rc-ir i { margin-left: 3px; }
/* a página */
.retro-pag { display: grid; gap: 20px; }
.retro-hero { position: relative; display: grid; place-items: center; min-height: min(560px, 74vh); padding: 40px 22px; border-radius: 32px; overflow: hidden; isolation: isolate; color: #fff; text-align: center; background: #120C3A; }
.rh-fundo i { position: absolute; z-index: -1; border-radius: 50%; filter: blur(60px); opacity: .85; animation: retroFlut 10s ease-in-out infinite alternate; }
.rh-fundo i:nth-child(1) { width: 60%; aspect-ratio: 1; left: -15%; top: -25%; background: #3D5AFE; }
.rh-fundo i:nth-child(2) { width: 55%; aspect-ratio: 1; right: -15%; bottom: -30%; background: #F0438B; animation-delay: -4s; }
.rh-fundo i:nth-child(3) { width: 35%; aspect-ratio: 1; right: 10%; top: -10%; background: #FFB547; animation-delay: -7s; }
.rh-fundo i:nth-child(4) { width: 30%; aspect-ratio: 1; left: 15%; bottom: -15%; background: #4FD1FF; animation-delay: -2s; }
.rh-in { display: grid; justify-items: center; gap: 16px; max-width: 620px; }
.rh-selo { padding: 6px 14px; border-radius: 999px; background: rgba(255, 255, 255, .16); backdrop-filter: blur(6px); font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.retro-hero h1 { margin: 0; display: grid; font-family: var(--f-tit); line-height: .95; }
.retro-hero h1 span { font-size: clamp(1.4rem, 4vw, 2rem); font-weight: 700; }
.retro-hero h1 b { font-size: clamp(5rem, 20vw, 10rem); font-weight: 900; letter-spacing: -.05em; background: linear-gradient(180deg, #fff 30%, rgba(255, 255, 255, .55)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.retro-hero p { margin: 0; font-size: 1rem; line-height: 1.5; opacity: .9; }
.rh-bt { gap: 10px; background: #fff !important; color: #1B1446 !important; border: 0 !important; border-radius: 999px !important; padding: 0 28px !important; min-height: 56px; font-weight: 800; box-shadow: 0 16px 34px -14px rgba(0, 0, 0, .6); }
.rh-bt:hover { transform: translateY(-2px) scale(1.02); }
.retro-adm header h2 { display: flex; align-items: center; gap: 8px; margin: 0 0 4px; font-size: 1.1rem; }
.retro-adm header p { margin: 0 0 14px; color: var(--tinta-2); font-size: .9rem; }
.ra-campos { display: grid; grid-template-columns: 140px minmax(0, 1fr) auto; gap: 10px; align-items: end; }
.ra-c { display: grid; gap: 4px; min-width: 0; }
.ra-c span { font-size: .76rem; font-weight: 800; color: var(--tinta-3); text-transform: uppercase; letter-spacing: .04em; }
.ra-c select, .ra-c input { height: 44px; padding: 0 12px; border: 1.5px solid var(--linha-2); border-radius: 12px; background: var(--sup); color: var(--tinta); font: inherit; min-width: 0; }
.ra-modo { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--linha); }
.ra-modo > div:first-child { display: grid; gap: 2px; }
.ra-modo small { color: var(--tinta-2); font-size: .86rem; }
@media (max-width: 640px) {
  .ra-campos { grid-template-columns: 1fr; }
  .retro-cartao { padding: 18px; gap: 14px; }
  .rc-t span { display: none; }
}
/* as histórias, em ecrã inteiro */
body.retro-aberta { overflow: hidden; }
.retro-ov { position: fixed; inset: 0; z-index: 10200; display: grid; place-items: center; background: #07051A; opacity: 0; transition: opacity .25s; }
.retro-ov.on { opacity: 1; }
.ro-palco { position: relative; width: min(100vw, calc(100dvh * 9 / 16)); height: 100dvh; max-height: 100dvh; overflow: hidden; color: #fff; user-select: none; -webkit-user-select: none; }
@media (min-width: 700px) { .ro-palco { height: min(100dvh - 40px, 900px); width: calc(min(100dvh - 40px, 900px) * 9 / 16); border-radius: 26px; box-shadow: 0 40px 100px rgba(0, 0, 0, .6); } }
.ro-barras { position: absolute; z-index: 5; left: 12px; right: 12px; top: calc(10px + env(safe-area-inset-top, 0px)); display: flex; gap: 4px; }
.ro-barras span { flex: 1; height: 3px; border-radius: 3px; background: rgba(255, 255, 255, .3); overflow: hidden; }
.ro-barras i { display: block; height: 100%; width: 0; background: #fff; }
.ro-cab { position: absolute; z-index: 6; left: 14px; right: 8px; top: calc(22px + env(safe-area-inset-top, 0px)); display: flex; align-items: center; justify-content: space-between; }
.ro-marca, .ro-previa { font-size: .8rem; font-weight: 800; letter-spacing: .04em; opacity: .9; }
.ro-previa { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; background: rgba(255, 196, 0, .9); color: #2A1A00; }
.ro-x { width: 44px; height: 44px; border: 0; border-radius: 50%; background: transparent; color: #fff; font-size: 1.4rem; cursor: pointer; }
.ro-zona { position: absolute; z-index: 3; top: 70px; bottom: 0; border: 0; background: transparent; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.ro-ant { left: 0; width: 32%; } .ro-seg { right: 0; width: 68%; }
.retro-ov.no-fim .ro-zona.ro-seg { display: none; }
.retro-ov.no-fim .ro-zona.ro-ant { width: 18%; }
.ro-h { position: absolute; inset: 0; display: grid; align-items: center; padding: 90px 28px 60px; opacity: 0; visibility: hidden; transform: scale(1.04); transition: opacity .45s ease, transform .6s cubic-bezier(.2, .8, .2, 1), visibility 0s .45s; isolation: isolate; overflow: hidden; }
.ro-h.on { opacity: 1; visibility: visible; transform: none; transition: opacity .45s ease, transform .6s cubic-bezier(.2, .8, .2, 1); }
.ro-in { position: relative; z-index: 2; display: grid; gap: 10px; }
.ro-deco i { position: absolute; z-index: -1; border-radius: 50%; filter: blur(50px); opacity: .9; animation: retroFlut 8s ease-in-out infinite alternate; }
.ro-deco i:nth-child(1) { width: 80%; aspect-ratio: 1; left: -30%; top: -20%; }
.ro-deco i:nth-child(2) { width: 70%; aspect-ratio: 1; right: -30%; bottom: -15%; animation-delay: -3s; }
.ro-deco i:nth-child(3) { width: 40%; aspect-ratio: 1; right: 0; top: 20%; animation-delay: -5s; }
/* uma cor para cada história */
.ro-abre { background: #120C3A; } .ro-abre .ro-deco i:nth-child(1) { background: #3D5AFE; } .ro-abre .ro-deco i:nth-child(2) { background: #F0438B; } .ro-abre .ro-deco i:nth-child(3) { background: #FFB547; }
.ro-consultados { background: #0B3B2E; } .ro-consultados .ro-deco i:nth-child(1) { background: #1ED760; } .ro-consultados .ro-deco i:nth-child(2) { background: #00B3A4; } .ro-consultados .ro-deco i:nth-child(3) { background: #C6FF6B; }
.ro-cadeira { background: #3A0D2E; } .ro-cadeira .ro-deco i:nth-child(1) { background: #FF4FA3; } .ro-cadeira .ro-deco i:nth-child(2) { background: #8B5CF6; } .ro-cadeira .ro-deco i:nth-child(3) { background: #FF8A4C; }
.ro-questoes { background: #0B1D4A; } .ro-questoes .ro-deco i:nth-child(1) { background: #2D7CFF; } .ro-questoes .ro-deco i:nth-child(2) { background: #00E0FF; } .ro-questoes .ro-deco i:nth-child(3) { background: #7C4DFF; }
.ro-ritmo { background: #3B1F00; } .ro-ritmo .ro-deco i:nth-child(1) { background: #FFB547; } .ro-ritmo .ro-deco i:nth-child(2) { background: #FF5E3A; } .ro-ritmo .ro-deco i:nth-child(3) { background: #FFE14D; }
.ro-contribuiu { background: #2A0B4F; } .ro-contribuiu .ro-deco i:nth-child(1) { background: #B66DFF; } .ro-contribuiu .ro-deco i:nth-child(2) { background: #FF4FA3; } .ro-contribuiu .ro-deco i:nth-child(3) { background: #4FD1FF; }
.ro-pontos { background: #062B3B; } .ro-pontos .ro-deco i:nth-child(1) { background: #00C2FF; } .ro-pontos .ro-deco i:nth-child(2) { background: #1ED760; } .ro-pontos .ro-deco i:nth-child(3) { background: #FFE14D; }
.ro-fim { background: #120C3A; } .ro-fim .ro-deco i:nth-child(1) { background: #3D5AFE; } .ro-fim .ro-deco i:nth-child(2) { background: #F0438B; } .ro-fim .ro-deco i:nth-child(3) { background: #FFB547; }
/* o texto das histórias */
.rs-k { margin: 0; font-family: var(--f-tit); font-size: 1.35rem; font-weight: 700; opacity: .95; }
.rs-num { display: block; font-family: var(--f-tit); font-size: clamp(5rem, 26vw, 8.5rem); font-weight: 900; line-height: .9; letter-spacing: -.05em; font-variant-numeric: tabular-nums; text-shadow: 0 10px 40px rgba(0, 0, 0, .25); }
.rs-uni { margin: 0; font-family: var(--f-tit); font-size: 1.6rem; font-weight: 800; line-height: 1.1; }
.rs-sub { margin: 8px 0 0; font-size: 1.05rem; line-height: 1.45; opacity: .92; }
.rs-sub b { font-weight: 800; }
.rs-pilula { justify-self: start; display: inline-flex; align-items: center; gap: 8px; margin-top: 14px; padding: 10px 16px; border-radius: 999px; background: rgba(255, 255, 255, .95); color: #0B3B2E; font-weight: 800; font-size: .95rem; }
.rs-pilula i { color: #FF5E3A; }
.rs-cad { margin: 4px 0 0; font-family: var(--f-tit); font-size: clamp(2.1rem, 9vw, 3rem); font-weight: 900; line-height: 1.02; letter-spacing: -.03em; overflow-wrap: anywhere; }
.rs-top { list-style: none; margin: 22px 0 0; padding: 0; display: grid; gap: 10px; }
.rs-top li { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; grid-template-rows: auto 6px; column-gap: 10px; row-gap: 5px; align-items: center; opacity: 0; transform: translateX(-14px); }
.ro-h.on .rs-top li { animation: retroEntra .5s calc(.25s + var(--k) * .12s) cubic-bezier(.2, .8, .2, 1) forwards; }
@keyframes retroEntra { to { opacity: 1; transform: none; } }
.rs-pos { grid-row: 1 / 3; font-family: var(--f-tit); font-weight: 900; font-size: 1.3rem; opacity: .7; }
.rs-cn { font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rs-top b { font-weight: 800; }
.rs-bar { grid-column: 2 / 4; height: 6px; border-radius: 6px; background: rgba(255, 255, 255, .2); overflow: hidden; }
.rs-bar i { display: block; height: 100%; width: 0; border-radius: inherit; background: #fff; }
.ro-h.on .rs-bar i { animation: retroBarra .9s calc(.35s + var(--k) * .12s) cubic-bezier(.2, .8, .2, 1) forwards; }
@keyframes retroBarra { to { width: var(--w); } }
.rs-anel { position: relative; width: 150px; height: 150px; margin: 18px 0 4px; }
.rs-anel svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.rs-anel circle { fill: none; stroke: rgba(255, 255, 255, .2); stroke-width: 12; }
.rs-anel circle.v { stroke: #fff; stroke-linecap: round; stroke-dasharray: 0 100; }
.ro-h.on .rs-anel circle.v { animation: retroAnel 1.2s .3s cubic-bezier(.2, .8, .2, 1) forwards; }
@keyframes retroAnel { to { stroke-dasharray: var(--v) 100; } }
.rs-anel span { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; }
.rs-anel b { font-family: var(--f-tit); font-size: 2rem; font-weight: 900; line-height: 1; }
.rs-anel small { font-size: .8rem; opacity: .85; }
.rs-meses { display: grid; grid-template-columns: repeat(12, 1fr); gap: 6px; align-items: end; height: 150px; margin: 20px 0 6px; }
.rs-meses span { display: grid; grid-template-rows: 1fr auto; height: 100%; gap: 4px; }
.rs-meses i { align-self: end; height: 0; border-radius: 6px 6px 3px 3px; background: rgba(255, 255, 255, .45); }
.ro-h.on .rs-meses i { animation: retroAlt .8s calc(.2s + var(--k) * .05s) cubic-bezier(.2, .8, .2, 1) forwards; }
@keyframes retroAlt { to { height: var(--h); } }
.rs-meses span.top i { background: #fff; box-shadow: 0 0 20px rgba(255, 255, 255, .6); }
.rs-meses small { text-align: center; font-size: .7rem; font-weight: 700; opacity: .8; }
.rs-grelha { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 18px; }
.rs-grelha span { display: grid; gap: 2px; padding: 14px; border-radius: 18px; background: rgba(255, 255, 255, .14); backdrop-filter: blur(8px); }
.rs-grelha i { font-size: 1rem; opacity: .85; }
.rs-grelha b { font-family: var(--f-tit); font-size: 1.8rem; font-weight: 900; line-height: 1.1; }
.rs-grelha small { font-size: .82rem; opacity: .9; }
/* a abertura */
.rs-abre { display: grid; justify-items: center; text-align: center; gap: 12px; }
.rs-abre .av, .rs-av { width: 96px !important; height: 96px !important; font-size: 2rem !important; box-shadow: 0 0 0 4px rgba(255, 255, 255, .9), 0 16px 40px rgba(0, 0, 0, .35); border-radius: 50%; }
.rs-abre h2 { margin: 6px 0 0; display: grid; font-family: var(--f-tit); line-height: .95; }
.rs-abre h2 span { font-size: 1.6rem; font-weight: 700; }
.rs-abre h2 b { font-size: clamp(5.5rem, 28vw, 9rem); font-weight: 900; letter-spacing: -.05em; }
.ro-h.on .rs-abre h2 b { animation: retroPulo .8s .15s cubic-bezier(.2, 1.4, .4, 1) both; }
@keyframes retroPulo { from { transform: scale(.6); opacity: 0; } }
.rs-dica { display: inline-flex; align-items: center; gap: 8px; margin-top: 24px; padding: 8px 14px; border-radius: 999px; background: rgba(255, 255, 255, .14); font-size: .86rem; font-weight: 700; animation: retroDica 1.6s ease-in-out infinite; }
@keyframes retroDica { 50% { transform: translateY(-4px); } }
.ro-h.on .ro-in > * { animation: retroSobe .6s cubic-bezier(.2, .8, .2, 1) both; }
.ro-h.on .ro-in > *:nth-child(2) { animation-delay: .08s; } .ro-h.on .ro-in > *:nth-child(3) { animation-delay: .16s; } .ro-h.on .ro-in > *:nth-child(4) { animation-delay: .24s; } .ro-h.on .ro-in > *:nth-child(5) { animation-delay: .32s; } .ro-h.on .ro-in > *:nth-child(6) { animation-delay: .4s; }
@keyframes retroSobe { from { opacity: 0; transform: translateY(18px); } }
/* o resumo final, para partilhar */
.rs-res { display: grid; gap: 16px; }
.rs-res-c { position: relative; z-index: 4; display: grid; gap: 14px; padding: 20px; border-radius: 26px; background: linear-gradient(150deg, #1B2CC1, #6B3FE0 55%, #F0438B); box-shadow: 0 24px 50px -20px rgba(0, 0, 0, .6), inset 0 0 0 1px rgba(255, 255, 255, .2); }
.rr-cab { display: flex; align-items: center; gap: 12px; }
.rr-cab .av, .rs-av-p { width: 46px !important; height: 46px !important; box-shadow: 0 0 0 3px rgba(255, 255, 255, .85); border-radius: 50%; }
.rr-cab > span:nth-child(2) { display: grid; flex: 1; min-width: 0; }
.rr-cab small { font-size: .78rem; font-weight: 700; opacity: .85; }
.rr-cab strong { font-family: var(--f-tit); font-size: 1.15rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rr-marca { font-family: var(--f-tit); font-weight: 900; font-size: .9rem; opacity: .9; }
.rr-g { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.rr-g span { display: grid; padding: 12px; border-radius: 16px; background: rgba(255, 255, 255, .16); }
.rr-g b { font-family: var(--f-tit); font-size: 1.7rem; font-weight: 900; line-height: 1.05; }
.rr-g small { font-size: .78rem; opacity: .92; }
.rr-cad { margin: 0; display: grid; font-family: var(--f-tit); font-weight: 800; font-size: 1.15rem; line-height: 1.2; }
.rr-cad small { font-family: inherit; font-size: .74rem; font-weight: 700; opacity: .85; text-transform: uppercase; letter-spacing: .05em; }
.rr-top { margin: 0; display: inline-flex; align-items: center; gap: 8px; font-weight: 800; }
.rr-top i { color: #FFD166; }
.rs-res-bts { position: relative; z-index: 4; display: grid; grid-template-columns: 1.4fr 1fr; gap: 10px; }
.rs-res-bts .btn { justify-content: center; gap: 8px; min-height: 52px; border-radius: 999px !important; border: 0 !important; font-weight: 800; }
.rs-partilhar { background: #fff !important; color: #1B1446 !important; }
.rs-outra { background: rgba(255, 255, 255, .16) !important; color: #fff !important; }
.rs-nota { position: relative; z-index: 4; margin: 0; font-size: .78rem; opacity: .75; text-align: center; }
.retro-ov.em-pausa .ro-barras { opacity: .5; }
@media (prefers-reduced-motion: reduce) { .ro-h, .ro-h.on, .ro-deco i, .rc-fundo i, .rh-fundo i { transition: none !important; animation: none !important; } }
.ro-h .rs-cad { text-align: left !important; background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; color: #fff !important; min-height: 0 !important; }
.rs-top .rs-pos { grid-column: 1; grid-row: 1 / 3; }
.rs-top .rs-cn { grid-column: 2; grid-row: 1; }
.rs-top b { grid-column: 3; grid-row: 1; }
.rs-top .rs-bar { grid-column: 2 / 4; grid-row: 2; }

/* ---------- v322: Sistema → Áudios ---------- */
.aud { display: grid; gap: 22px; }
.aud-onda { display: flex; align-items: center; gap: 3px; height: 100%; width: 100%; }
.aud-onda i { flex: 1; min-width: 2px; height: var(--h, 40%); border-radius: 3px; background: currentColor; opacity: .35; transition: height .5s cubic-bezier(.2, .8, .2, 1), opacity .2s; }
.aud-onda.real i { opacity: .55; }
/* a música da Retrospectiva: o cartão grande */
.aud-hero { position: relative; isolation: isolate; overflow: hidden; display: grid; gap: 18px; padding: clamp(18px, 3vw, 28px); border-radius: 28px; color: #fff; background: linear-gradient(135deg, #101633 0%, #1530B8 60%, #1E40E6 100%); box-shadow: 0 26px 60px -30px rgba(21, 48, 184, .9); }
.ah-fundo i { position: absolute; z-index: -1; border-radius: 50%; filter: blur(60px); opacity: .55; }
.ah-fundo i:nth-child(1) { width: 380px; height: 380px; right: -120px; top: -160px; background: #7891FF; }
.ah-fundo i:nth-child(2) { width: 300px; height: 300px; left: -120px; bottom: -160px; background: #93A7FF; opacity: .35; }
.ah-cab { display: flex; gap: 16px; align-items: flex-start; }
.ah-ic { flex: none; width: 56px; height: 56px; border-radius: 18px; display: grid; place-items: center; background: rgba(255, 255, 255, .14); font-size: 1.4rem; }
.ah-cab small { font-size: .74rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; opacity: .8; }
.ah-cab h2 { margin: 2px 0 4px; font-size: 1.45rem; color: #fff; }
.ah-cab p { margin: 0; opacity: .85; font-size: .92rem; line-height: 1.45; max-width: 640px; }
.ah-player { display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 16px; row-gap: 6px; align-items: center; }
.ah-play { grid-row: 1 / 3; width: 68px; height: 68px; border: 0; border-radius: 50%; background: #fff; color: #1530B8; font-size: 1.5rem; cursor: pointer; box-shadow: 0 14px 30px -12px rgba(0, 0, 0, .55); transition: transform .15s; }
.ah-play i { margin-left: 4px; }
.ah-play.on i { margin-left: 0; }
.ah-play:hover { transform: scale(1.06); }
.aud-hero.a-tocar .ah-play { animation: ahPulso 1.4s ease-in-out infinite; }
@keyframes ahPulso { 50% { box-shadow: 0 0 0 10px rgba(255, 255, 255, .15), 0 14px 30px -12px rgba(0, 0, 0, .55); } }
.ah-onda-w { position: relative; height: 84px; color: #fff; }
.ah-onda-w .aud-onda i { opacity: .3; }
.ah-onda-w .aud-onda.real i { opacity: .4; }
.ah-janela { position: absolute; top: -6px; bottom: -6px; left: var(--ini, 0%); width: var(--usa, 100%); max-width: calc(100% - var(--ini, 0%)); border-radius: 12px; background: rgba(255, 255, 255, .12); box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .55); pointer-events: none; transition: left .15s; }
.ah-janela small { position: absolute; left: 8px; top: -24px; font-size: .72rem; font-weight: 800; white-space: nowrap; color: #fff; opacity: .9; }
.aud-pos { position: absolute; top: -4px; bottom: -4px; left: var(--pos, 0%); width: 2px; border-radius: 2px; background: currentColor; opacity: 0; transition: opacity .2s; }
.aud-c.a-tocar .aud-pos { opacity: 1; }
.ah-tempos { display: flex; justify-content: space-between; font-size: .8rem; font-weight: 700; opacity: .85; font-variant-numeric: tabular-nums; }
.ah-ajustes { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 24px; }
.ah-r { display: grid; gap: 8px; }
.ah-r span { display: flex; align-items: center; gap: 8px; font-size: .9rem; opacity: .95; }
.ah-r b { font-variant-numeric: tabular-nums; }
.ah-r input[type="range"] { width: 100%; accent-color: #fff; }
.ah-bts { display: flex; flex-wrap: wrap; gap: 10px; }
.ah-bts .btn { gap: 8px; border-radius: 999px !important; border: 0 !important; min-height: 44px; }
.ah-ouvir, .ah-trocar { background: rgba(255, 255, 255, .14) !important; color: #fff !important; cursor: pointer; }
.ah-ouvir:hover, .ah-trocar:hover { background: rgba(255, 255, 255, .24) !important; }
.ah-guardar { background: #fff !important; color: #1530B8 !important; font-weight: 800; }
.ah-tirar { background: transparent !important; color: #fff !important; opacity: .8; }
.ah-tirar:hover { opacity: 1; background: rgba(217, 47, 67, .3) !important; }
.ah-meta { margin: 0; font-size: .8rem; opacity: .7; }
.ah-vazio { position: relative; display: grid; place-items: center; gap: 14px; min-height: 180px; padding: 22px; border: 2px dashed rgba(255, 255, 255, .45); border-radius: 22px; cursor: pointer; transition: background .2s, border-color .2s; }
.ah-vazio:hover { background: rgba(255, 255, 255, .08); border-color: #fff; }
.ah-vazio .aud-onda { position: absolute; inset: 24px; height: auto; color: #fff; }
.ah-vazio .aud-onda i { opacity: .12; animation: ahOnda 1.6s ease-in-out infinite alternate; animation-delay: calc(var(--h) * -.02s); }
@keyframes ahOnda { to { transform: scaleY(.5); } }
.ah-vz-t { position: relative; display: grid; justify-items: center; gap: 6px; text-align: center; }
.ah-vz-t strong { display: inline-flex; align-items: center; gap: 10px; padding: 12px 22px; border-radius: 999px; background: #fff; color: #1530B8; font-size: 1rem; box-shadow: 0 12px 26px -12px rgba(0, 0, 0, .5); }
.ah-vz-t small { opacity: .85; font-size: .86rem; }
.aud-prog { display: flex; align-items: center; gap: 10px; font-weight: 700; font-size: .9rem; }
.aud-prog[hidden] { display: none; }
/* os sons do site */
.aud-h3 { margin: 6px 0 -6px; font-size: 1.1rem; display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.aud-h3 small { color: var(--tinta-3); font-size: .82rem; font-weight: 600; }
.aud-g { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(280px, 100%), 1fr)); gap: 14px; }
.aud-g .aud-c { display: grid; gap: 14px; padding: 18px; border-radius: 22px; transition: border-color .2s, box-shadow .2s; }
.aud-g .aud-c.a-tocar { border-color: var(--bic); box-shadow: 0 0 0 3px var(--azul-suave); }
.ac-top { display: flex; align-items: center; gap: 12px; }
.ac-ic { flex: none; width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; font-size: 1.15rem; background: var(--azul-suave); color: var(--bic); }
.ac-errado { background: var(--rosa-claro); color: var(--vermelho); }
.ac-t { display: grid; gap: 2px; min-width: 0; flex: 1; }
.ac-t strong { font-size: 1rem; }
.ac-t small { color: var(--tinta-3); font-size: .8rem; line-height: 1.35; }
.ac-play { flex: none; width: 46px; height: 46px; border: 0; border-radius: 50%; background: var(--bic); color: var(--sobre-bic); font-size: 1rem; cursor: pointer; box-shadow: 0 10px 22px -10px var(--bic); transition: transform .15s; }
.ac-play i { margin-left: 2px; } .ac-play.on i { margin-left: 0; }
.ac-play:hover { transform: scale(1.07); }
.ac-onda-w { position: relative; height: 52px; padding: 6px 10px; border-radius: 14px; background: var(--sup-2); color: var(--bic); }
.ac-onda-w .aud-pos { top: 4px; bottom: 4px; }
.ac-pe { display: flex; justify-content: space-between; align-items: center; font-size: .82rem; }
.ac-est { padding: 3px 10px; border-radius: 999px; background: var(--sup-2); color: var(--tinta-2); font-weight: 700; }
.ac-est.on { background: var(--azul-suave); color: var(--bic); }
.ac-dur { color: var(--tinta-3); font-weight: 700; font-variant-numeric: tabular-nums; }
.ac-bts { display: flex; flex-wrap: wrap; gap: 8px; }
.ac-bts .btn { gap: 6px; cursor: pointer; }
@media (max-width: 640px) {
  .ah-ajustes { grid-template-columns: 1fr; }
  .ah-play { width: 56px; height: 56px; font-size: 1.2rem; }
  .ah-onda-w { height: 64px; }
  .ah-bts .btn { flex: 1 1 auto; justify-content: center; }
}

/* ---------- v322: Retrospectiva nas cores do Veteraano (azul da marca, azul-noite e os azuis claros) ---------- */
.rs-logo { width: 1.1em; height: 1.1em; flex: none; }
/* o avatar a pulsar: ondas à volta e um pequeno «piscar» */
.rs-avw { position: relative; display: inline-grid; place-items: center; isolation: isolate; }
.rs-avw .av { position: relative; z-index: 2; animation: retroPisca 3.2s ease-in-out infinite; }
.rs-avw > i { position: absolute; z-index: 1; inset: 0; border-radius: 50%; border: 2px solid rgba(255, 255, 255, .75); animation: retroOnda 2.6s cubic-bezier(.2, .7, .3, 1) infinite; opacity: 0; }
.rs-avw > i:nth-of-type(2) { animation-delay: .85s; } .rs-avw > i:nth-of-type(3) { animation-delay: 1.7s; }
@keyframes retroOnda { 0% { transform: scale(1); opacity: .8; } 100% { transform: scale(1.9); opacity: 0; } }
@keyframes retroPisca { 0%, 86%, 100% { transform: scale(1); filter: none; } 90% { transform: scale(1.07); filter: brightness(1.15); } 94% { transform: scale(.97); } }
.rs-avw.mini .av { width: 34px !important; height: 34px !important; font-size: .8rem !important; box-shadow: 0 0 0 2px #fff; }
.rs-avw.mini > i { border-width: 1.5px; }
.rs-avw.mini > i:nth-of-type(n+2) { display: none; }
.rs-avw.p .av { width: 46px !important; height: 46px !important; box-shadow: 0 0 0 3px rgba(255, 255, 255, .9); }
.rs-avw.grande .av { width: 112px !important; height: 112px !important; font-size: 2.2rem !important; box-shadow: 0 0 0 5px #fff, 0 18px 40px rgba(11, 16, 36, .45); }
.rs-abre .rs-avw .av { box-shadow: 0 0 0 4px #fff, 0 16px 40px rgba(0, 0, 0, .35); }
/* o cabeçalho das histórias: quem é, o som e fechar */
.ro-quem { display: inline-flex; align-items: center; gap: 10px; min-width: 0; }
.ro-quem > span:last-child { display: grid; line-height: 1.15; }
.ro-quem strong { font-size: .92rem; }
.ro-quem small { font-size: .74rem; opacity: .85; display: inline-flex; align-items: center; gap: 4px; }
.ro-bts { display: inline-flex; gap: 2px; }
.ro-cab .ro-x { font-size: 1.15rem; }
.retro-ov.claro .ro-cab { color: #101633; }
.retro-ov.claro .ro-x { color: #101633; }
.retro-ov.claro .ro-barras span { background: rgba(16, 22, 51, .14); }
.retro-ov.claro .ro-barras i { background: #1E40E6; }
.retro-ov.claro .rs-avw.mini .av { box-shadow: 0 0 0 2px #1E40E6; }
.retro-ov.claro .rs-avw > i { border-color: rgba(30, 64, 230, .6); }
/* as cores de cada história */
.ro-h { color: #fff; }
.ro-abre { background: #0B1024; } .ro-abre .ro-deco i:nth-child(1) { background: #1E40E6; } .ro-abre .ro-deco i:nth-child(2) { background: #7891FF; } .ro-abre .ro-deco i:nth-child(3) { background: #1530B8; }
.ro-consultados { background: #1E40E6; } .ro-consultados .ro-deco i:nth-child(1) { background: #93A7FF; opacity: .6; } .ro-consultados .ro-deco i:nth-child(2) { background: #1530B8; } .ro-consultados .ro-deco i:nth-child(3) { background: #FFFFFF; opacity: .25; }
.ro-consultados .rs-pilula { color: #1530B8; } .ro-consultados .rs-pilula i { color: #1E40E6; }
.ro-cadeira { background: #EEF2FF; color: #101633; } .ro-cadeira .ro-deco i:nth-child(1) { background: #93A7FF; opacity: .55; } .ro-cadeira .ro-deco i:nth-child(2) { background: #E6ECFF; } .ro-cadeira .ro-deco i:nth-child(3) { background: #7891FF; opacity: .35; }
.ro-cadeira .rs-cad { color: #1530B8 !important; }
.ro-cadeira .rs-bar { background: rgba(30, 64, 230, .14); } .ro-cadeira .rs-bar i { background: #1E40E6; }
.ro-cadeira .rs-pos { color: #1E40E6; opacity: 1; }
.ro-questoes { background: #101633; } .ro-questoes .ro-deco i:nth-child(1) { background: #1E40E6; } .ro-questoes .ro-deco i:nth-child(2) { background: #7891FF; opacity: .6; } .ro-questoes .ro-deco i:nth-child(3) { background: #1530B8; }
.ro-questoes .rs-anel circle { stroke: rgba(147, 167, 255, .22); } .ro-questoes .rs-anel circle.v { stroke: #93A7FF; }
.ro-ritmo { background: #1530B8; } .ro-ritmo .ro-deco i:nth-child(1) { background: #1E40E6; } .ro-ritmo .ro-deco i:nth-child(2) { background: #0B1024; opacity: .7; } .ro-ritmo .ro-deco i:nth-child(3) { background: #93A7FF; opacity: .45; }
.ro-ritmo .rs-meses i { background: rgba(255, 255, 255, .35); }
.ro-contribuiu { background: #E6ECFF; color: #101633; } .ro-contribuiu .ro-deco i:nth-child(1) { background: #FFE1E5; } .ro-contribuiu .ro-deco i:nth-child(2) { background: #93A7FF; opacity: .5; } .ro-contribuiu .ro-deco i:nth-child(3) { background: #FFFFFF; }
.ro-contribuiu .rs-num { color: #1E40E6; text-shadow: none; }
.ro-contribuiu .rs-grelha span { background: #FFFFFF; box-shadow: 0 10px 24px -16px rgba(16, 22, 51, .45); }
.ro-contribuiu .rs-grelha i { color: #1E40E6; opacity: 1; }
.ro-contribuiu .rs-grelha span:nth-child(3) i { color: #D92F43; }
.ro-contribuiu .rs-grelha b { color: #101633; }
.ro-contribuiu .rs-cad { color: #1530B8 !important; }
.ro-pontos { background: #0B1024; } .ro-pontos .ro-deco i:nth-child(1) { background: #1530B8; } .ro-pontos .ro-deco i:nth-child(2) { background: #1E40E6; } .ro-pontos .ro-deco i:nth-child(3) { background: #7891FF; opacity: .5; }
.ro-fim { background: #0B1024; } .ro-fim .ro-deco i:nth-child(1) { background: #1E40E6; } .ro-fim .ro-deco i:nth-child(2) { background: #1530B8; } .ro-fim .ro-deco i:nth-child(3) { background: #7891FF; opacity: .55; }
.rs-res-c { background: linear-gradient(150deg, #1530B8, #1E40E6 60%, #4B66FF); box-shadow: 0 24px 50px -20px rgba(0, 0, 0, .65), inset 0 0 0 1px rgba(255, 255, 255, .22); }
.rr-marca { display: inline-flex; align-items: center; gap: 6px; }
.rr-top i { color: #FFFFFF; }
.rs-res-bts { grid-template-columns: 1.5fr 1fr auto; }
.rs-baixar { background: rgba(255, 255, 255, .16) !important; color: #fff !important; }
.rs-outra { width: 52px; padding: 0 !important; }
.rs-partilhar { color: #1530B8 !important; }
/* o cartão no perfil e a página */
.retro-cartao { background: linear-gradient(120deg, #0B1024, #1530B8 50%, #1E40E6); box-shadow: 0 20px 44px -26px rgba(30, 64, 230, .9); }
.rc-fundo i:nth-child(1) { background: #7891FF; } .rc-fundo i:nth-child(2) { background: #1E40E6; } .rc-fundo i:nth-child(3) { background: #93A7FF; }
.rc-ano { display: grid; justify-items: start; gap: 4px; }
.rc-ano .rs-logo { width: 26px; height: 26px; }
.rc-ir { color: #1E40E6; }
.retro-hero { background: #0B1024; }
.rh-fundo i:nth-child(1) { background: #1E40E6; } .rh-fundo i:nth-child(2) { background: #1530B8; } .rh-fundo i:nth-child(3) { background: #7891FF; opacity: .55; } .rh-fundo i:nth-child(4) { background: #93A7FF; opacity: .35; }
.rh-bt { color: #1530B8 !important; }
.ra-modo { align-items: flex-start; }
.ra-modo-t { display: grid; gap: 6px; max-width: 620px; }
.ra-modo-t small b { color: var(--tinta); }
.ra-agora { justify-self: start; display: inline-flex; align-items: center; gap: 6px; padding: 4px 12px; border-radius: 999px; background: var(--sup-2); color: var(--tinta-2); font-size: .8rem; font-weight: 800; }
.ra-agora.on { background: var(--azul-suave); color: var(--bic); }
.ra-agora.on i { font-size: .55rem; animation: retroPisca 1.6s ease-in-out infinite; }
.ra-seg button { gap: 6px; }
.ra-musica { flex: 1 1 100%; margin: 0; display: flex; align-items: center; gap: 8px; padding: 10px 14px; border-radius: 12px; background: var(--azul-suave); color: var(--tinta-2); font-size: .86rem; }
.ra-musica i { color: var(--bic); }
/* o aviso ao entrar no site (uma vez) */
.retro-aviso { position: fixed; inset: 0; z-index: 10150; display: grid; place-items: center; padding: 16px; background: rgba(11, 16, 36, .6); backdrop-filter: blur(4px); opacity: 0; transition: opacity .25s; }
.retro-aviso.on { opacity: 1; }
.ra-caixa { position: relative; isolation: isolate; overflow: hidden; width: min(440px, 100%); display: grid; justify-items: center; gap: 14px; padding: 34px 24px 22px; border-radius: 30px; text-align: center; color: #fff; background: linear-gradient(160deg, #0B1024, #1530B8 60%, #1E40E6); box-shadow: 0 40px 90px -30px rgba(11, 16, 36, .9); transform: translateY(16px) scale(.97); transition: transform .35s cubic-bezier(.2, 1.2, .3, 1); }
.retro-aviso.on .ra-caixa { transform: none; }
.ra-fundo i { position: absolute; z-index: -1; border-radius: 50%; filter: blur(50px); animation: retroFlut 9s ease-in-out infinite alternate; }
.ra-fundo i:nth-child(1) { width: 260px; height: 260px; left: -90px; top: -110px; background: #7891FF; opacity: .55; }
.ra-fundo i:nth-child(2) { width: 240px; height: 240px; right: -90px; bottom: -90px; background: #1E40E6; }
.ra-fundo i:nth-child(3) { width: 140px; height: 140px; right: 20%; top: 30%; background: #93A7FF; opacity: .3; }
.ra-caixa .rs-avw { margin: 8px 0 6px; }
.ra-selo { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; border-radius: 999px; background: rgba(255, 255, 255, .14); font-size: .78rem; font-weight: 800; letter-spacing: .04em; }
.ra-caixa h2 { margin: 0; color: #fff; font-size: clamp(1.4rem, 5vw, 1.75rem); line-height: 1.15; }
.ra-caixa p { margin: 0; opacity: .88; line-height: 1.5; font-size: .95rem; }
.ra-ver { width: 100%; justify-content: center; gap: 10px; margin-top: 6px; min-height: 54px; border: 0 !important; border-radius: 999px !important; background: #fff !important; color: #1530B8 !important; font-weight: 800; box-shadow: 0 16px 32px -14px rgba(0, 0, 0, .6); }
.ra-depois { color: #fff !important; opacity: .8; font-weight: 700; text-decoration: none; }
@media (max-width: 640px) { .retro-aviso { place-items: end stretch; padding: 0; } .ra-caixa { width: 100%; border-radius: 30px 30px 0 0; padding-bottom: calc(22px + env(safe-area-inset-bottom, 0px)); } }
@media (prefers-reduced-motion: reduce) { .rs-avw .av, .rs-avw > i, .ra-fundo i { animation: none !important; } }
.ah-player { margin-top: 16px; }
.ro-h { grid-template-columns: minmax(0, 1fr); }
.ro-in, .rs-res, .rs-res-c, .rr-g, .rr-cab { min-width: 0; }
.rr-cab > span:nth-child(2) { min-width: 0; }
.rr-marca { flex: none; }
.rr-cad { overflow-wrap: anywhere; }
.rs-res { grid-template-columns: minmax(0, 1fr); }
.rs-res-bts { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) 52px; }
.rs-res-bts .btn { min-width: 0; padding: 0 12px !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: .95rem; }
/* v323: o cartão da música (Sistema → Áudios) sempre escuro e com o texto à esquerda */
.aud-hero, .aud-hero.sem-musica { background: linear-gradient(135deg, #101633 0%, #1530B8 60%, #1E40E6 100%) !important; color: #fff !important; text-align: left !important; }
.ah-cab { align-items: center; }
.ah-cab-t { display: grid; gap: 4px; min-width: 0; }
.ah-cab-t h2 { margin: 0 !important; }
.ah-cab-t p { margin: 0; max-width: 680px; text-align: left; opacity: .88; }
.ah-fatos { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.ah-fatos li { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; border-radius: 999px; background: rgba(255, 255, 255, .12); font-size: .84rem; }
.ah-fatos i { opacity: .85; }
.ah-ic { color: #fff; }
.ah-vazio { color: #fff; }
.ah-vz-t small { color: #fff; }
@media (max-width: 640px) { .ah-cab { align-items: flex-start; } .ah-fatos li { font-size: .8rem; } }
.ra-semanas { display: grid; grid-template-columns: repeat(2, minmax(0, 290px)); gap: 10px; margin-top: 4px; }
.ra-semanas .ra-c span { display: inline-flex; align-items: center; gap: 6px; }
.ra-semanas .ra-c span i { color: var(--bic); }
@media (max-width: 640px) { .ra-semanas { grid-template-columns: 1fr; } }

/* ---------- v324: criar conta sem perder nada (continuar onde ficou) ---------- */
.reg-retoma { display: flex; align-items: center; gap: 12px; margin: 4px 0 18px; padding: 12px 14px; border-radius: 16px; background: var(--azul-suave); border: 1px solid color-mix(in srgb, var(--bic) 22%, transparent); animation: regEntra .35s cubic-bezier(.2, .8, .2, 1); }
@keyframes regEntra { from { opacity: 0; transform: translateY(-6px); } }
.rr-ic { flex: none; width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--bic); color: var(--sobre-bic); }
.rr-t { display: grid; gap: 2px; min-width: 0; flex: 1; }
.rr-t strong { font-size: .95rem; color: var(--tinta); }
.rr-t small { color: var(--tinta-2); font-size: .84rem; line-height: 1.4; overflow-wrap: anywhere; }
.rr-novo { flex: none; font-size: .84rem; font-weight: 700; }
.reg-senha { display: grid; gap: 4px; padding: 14px; border-radius: 16px; background: var(--sup-2); border: 1px dashed var(--linha-2); }
.reg-senha > .ajuda { display: flex; gap: 8px; align-items: flex-start; margin: 0 0 6px; color: var(--tinta-2); }
.reg-senha > .ajuda i { color: var(--bic); margin-top: 3px; }
/* o cartão «a tua conta está quase» noutras páginas */
.reg-lembrete { position: fixed; z-index: 9000; left: 50%; bottom: calc(18px + env(safe-area-inset-bottom, 0px)); display: flex; align-items: center; gap: 12px; width: min(520px, calc(100% - 24px)); padding: 12px 10px 12px 16px; border-radius: 20px; background: var(--sup); border: 1px solid var(--linha); box-shadow: 0 24px 50px -20px rgba(16, 22, 51, .45); transform: translate(-50%, 30px); opacity: 0; transition: transform .35s cubic-bezier(.2, 1.2, .3, 1), opacity .25s; }
.reg-lembrete.on { transform: translate(-50%, 0); opacity: 1; }
.rl-passos { flex: none; display: grid; gap: 4px; }
.rl-passos i { display: block; width: 8px; height: 8px; border-radius: 50%; background: var(--linha-2); }
.rl-passos i.feito { background: var(--bic); }
.rl-passos i.agora { background: var(--bic); box-shadow: 0 0 0 4px var(--azul-claro); animation: retroPisca 1.8s ease-in-out infinite; }
.rl-t { display: grid; gap: 2px; min-width: 0; flex: 1; }
.rl-t strong { font-size: .95rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rl-t small { color: var(--tinta-2); font-size: .8rem; }
.reg-lembrete .btn { flex: none; border-radius: 999px !important; }
.rl-x { flex: none; }
@media (max-width: 900px) { .reg-lembrete { bottom: calc(84px + env(safe-area-inset-bottom, 0px)); } }
@media (max-width: 420px) { .rl-t small { display: none; } }
/* v324: «Sou» com três opções lado a lado, sem descrição */
.sou-g { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 10px !important; }
.sou-g .sou-c { flex-direction: column !important; align-items: center !important; justify-content: center; text-align: center; gap: 10px !important; padding: 16px 8px !important; min-height: 0 !important; }
.sou-g .sou-t { justify-items: center; }
.sou-g .sou-t b { font-size: .95rem; }
.sou-g .sou-ok { position: absolute; top: 8px; right: 8px; }
.sou-g .sou-c { position: relative; }
@media (max-width: 380px) { .sou-g .sou-t b { font-size: .84rem; } }
.sou-g { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }

/* ---------- v329: o passo do avatar no registo (um ecrã só, escolher é tocar) ---------- */
.pa2 { width: min(880px, 100%); margin: 0 auto; display: grid; gap: 22px; }
.pa2-topo { position: sticky; top: 0; z-index: 3; display: flex; align-items: center; gap: 22px; padding: 18px 22px; border-radius: 26px; background: linear-gradient(135deg, var(--azul-suave), var(--sup)); border: 1px solid var(--linha); box-shadow: 0 16px 34px -26px rgba(16, 22, 51, .5); }
.pa2-avw { position: relative; flex: none; display: grid; place-items: center; width: 132px; height: 132px; isolation: isolate; }
.pa2-avw .pa-previa { position: relative; z-index: 2; width: 120px; height: 120px; border-radius: 50%; background: var(--sup); box-shadow: 0 0 0 4px var(--bic), 0 14px 30px -12px rgba(30, 64, 230, .6); display: grid; place-items: center; overflow: hidden; margin: 0; padding: 0; }
.pa2-avw .pa-previa img, .pa2-avw .pa-previa .av { width: 100% !important; height: 100% !important; }
.pa2-avw > i { position: absolute; inset: 6px; border-radius: 50%; border: 2px solid var(--bic); opacity: 0; animation: retroOnda 2.6s cubic-bezier(.2, .7, .3, 1) infinite; }
.pa2-avw > i:nth-of-type(2) { animation-delay: 1.3s; }
.pa2-t { display: grid; gap: 6px; min-width: 0; justify-items: start; }
.pa2-t h2 { margin: 0; font-size: clamp(1.25rem, 3vw, 1.6rem); line-height: 1.15; }
.pa2-t p { margin: 0; color: var(--tinta-2); font-size: .92rem; line-height: 1.45; }
.pa2-alea { gap: 8px; border-radius: 999px !important; margin-top: 4px; }
.pa2-grelha { display: grid; grid-template-columns: repeat(auto-fill, minmax(92px, 1fr)); gap: 12px; }
.pa2-c { position: relative; aspect-ratio: 1; padding: 6px; border: 0; border-radius: 50%; background: var(--sup); box-shadow: 0 0 0 1.5px var(--linha); cursor: pointer; transition: transform .15s, box-shadow .15s; }
.pa2-c .av, .pa2-c img { width: 100% !important; height: 100% !important; }
.pa2-c:hover { transform: translateY(-2px) scale(1.04); box-shadow: 0 0 0 2px var(--linha-2), 0 10px 22px -14px rgba(16, 22, 51, .5); }
.pa2-c.on { box-shadow: 0 0 0 3px var(--bic), 0 12px 26px -14px rgba(30, 64, 230, .7); background: var(--azul-suave); }
.pa2-ok { position: absolute; right: 2px; bottom: 2px; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: var(--bic); color: var(--sobre-bic); font-size: .72rem; box-shadow: 0 0 0 3px var(--sup); opacity: 0; transform: scale(.5); transition: opacity .15s, transform .2s cubic-bezier(.2, 1.4, .4, 1); }
.pa2-c.on .pa2-ok { opacity: 1; transform: none; }
.pa2-mais { justify-self: center; gap: 8px; }
.pa2-nota { margin: 0; display: flex; align-items: center; justify-content: center; gap: 8px; color: var(--tinta-3); font-size: .86rem; text-align: center; }
.pa2-nota i { color: var(--bic); }
@media (max-width: 640px) {
  .pa2-topo { flex-direction: column; text-align: center; padding: 16px; gap: 12px; top: -8px; }
  .pa2-t { justify-items: center; }
  .pa2-avw { width: 108px; height: 108px; }
  .pa2-avw .pa-previa { width: 98px; height: 98px; }
  .pa2-grelha { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
}

/* ---------- v329: Sistema → Páginas (o simulador) ---------- */
.simp { display: grid; gap: 18px; }
.simp-versoes { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 12px 16px; align-items: center; padding: 18px; border-radius: 24px; border: 1px solid var(--linha); background: var(--sup); }
.simp-versoes.muda { border-color: color-mix(in srgb, var(--bic) 35%, var(--linha)); box-shadow: 0 0 0 4px var(--azul-suave); }
.sv-c { display: flex; align-items: center; gap: 12px; min-width: 0; padding: 12px 14px; border-radius: 16px; background: var(--sup-2); }
.sv-c > div { display: grid; gap: 1px; min-width: 0; }
.sv-c small { font-size: .74rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--tinta-3); }
.sv-c strong { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 1rem; color: var(--tinta); }
.sv-c span { font-size: .8rem; color: var(--tinta-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sv-pt { flex: none; width: 12px; height: 12px; border-radius: 50%; background: #16a34a; box-shadow: 0 0 0 4px rgba(22, 163, 74, .18); }
.sv-teste .sv-pt { background: var(--bic); box-shadow: 0 0 0 4px var(--azul-claro); animation: retroPisca 1.8s ease-in-out infinite; }
.sv-seta { color: var(--tinta-3); }
.simp-versoes:not(.muda) .sv-seta { opacity: .3; }
.sv-acoes { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px 16px; }
.sv-acoes p { margin: 0; display: flex; align-items: center; gap: 8px; color: var(--tinta-2); font-size: .9rem; flex: 1 1 320px; }
.sv-acoes p i { color: var(--bic); }
.sv-acoes p.ok i { color: #16a34a; }
.sv-ar-bt { gap: 10px; border-radius: 999px !important; }
.sv-voltar { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; font-size: .86rem; }
.simp-sim { display: grid; gap: 12px; padding: 14px; border-radius: 24px; border: 1px solid var(--linha); background: var(--sup); }
.simp-barra { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.simp-dev button { gap: 6px; }
.simp-end { flex: 1 1 260px; display: flex; align-items: center; gap: 6px; height: 40px; padding: 0 4px 0 14px; border-radius: 999px; background: var(--sup-2); border: 1px solid var(--linha); min-width: 0; }
.simp-end > i { color: #16a34a; font-size: .8rem; }
.simp-end > span { color: var(--tinta-3); font-size: .86rem; }
.simp-end input { flex: 1; min-width: 0; border: 0; background: transparent; color: var(--tinta); font: inherit; font-size: .9rem; outline: none; }
.simp-bts { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.simp-bts .btn { gap: 6px; }
.simp-atalhos { display: flex; flex-wrap: wrap; gap: 6px; }
.simp-atalhos .chip { gap: 6px; }
.simp-atalhos .chip.on { background: var(--bic); color: var(--sobre-bic); border-color: var(--bic); }
.simp-corpo { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 14px; align-items: start; }
.simp-palco { position: relative; border-radius: 20px; background: repeating-linear-gradient(45deg, var(--sup-2) 0 12px, var(--sup) 12px 24px); min-height: 300px; }
.simp-host { position: absolute; top: 0; left: 0; z-index: 5; transform-origin: 0 0; pointer-events: auto; }
.simp-host[hidden] { display: none; }
.simp-aparelho { background: #0B1024; padding: 0; border-radius: 34px; overflow: hidden; box-shadow: 0 0 0 10px #101633, 0 30px 60px -20px rgba(16, 22, 51, .55); }
.simp-aparelho.d-pc { border-radius: 14px; box-shadow: 0 0 0 8px #101633, 0 30px 60px -24px rgba(16, 22, 51, .55); }
.simp-aparelho.d-tab { border-radius: 26px; }
.simp-aparelho iframe { display: block; width: 100%; height: 100%; border: 0; background: #fff; }
.simp-lado { position: sticky; top: calc(var(--topo-h) + 12px); display: grid; gap: 10px; }
.simp-exemplo { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 14px; background: var(--azul-suave); }
.simp-exemplo > i { color: var(--bic); font-size: 1.2rem; }
.simp-exemplo span { display: grid; }
.simp-exemplo small { color: var(--tinta-2); font-size: .8rem; }
.simp-tabs { width: 100%; }
.simp-tabs button { flex: 1; gap: 6px; }
.simp-n { min-width: 20px; height: 20px; padding: 0 6px; border-radius: 999px; background: var(--bic); color: var(--sobre-bic); font-size: .72rem; font-weight: 800; display: inline-grid; place-items: center; }
.simp-n[hidden] { display: none; }
.simp-painel-c { display: grid; gap: 8px; max-height: min(60vh, 560px); overflow-y: auto; padding-right: 2px; }
.simp-mail { display: grid; gap: 10px; padding: 12px; border-radius: 14px; border: 1px solid var(--linha); background: var(--sup); animation: regEntra .3s ease; }
.simp-mail header { display: flex; gap: 10px; align-items: flex-start; }
.simp-mail header > i { color: var(--bic); margin-top: 3px; }
.simp-mail header span { display: grid; gap: 1px; min-width: 0; }
.simp-mail strong { font-size: .88rem; }
.simp-mail small { color: var(--tinta-3); font-size: .76rem; overflow-wrap: anywhere; }
.simp-cod { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 12px; border-radius: 12px; background: var(--sup-2); }
.simp-cod b { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 1.5rem; letter-spacing: .18em; color: var(--bic); }
.simp-log { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.simp-log li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px; padding: 8px 10px; border-radius: 10px; background: var(--sup-2); font-size: .82rem; border-left: 3px solid var(--linha-2); }
.simp-log li.ok { border-left-color: #16a34a; } .simp-log li.aviso { border-left-color: #f59e0b; } .simp-log li.email { border-left-color: var(--bic); }
.simp-log time { color: var(--tinta-3); font-variant-numeric: tabular-nums; }
.simp-vazio { margin: 0; display: grid; justify-items: center; gap: 8px; padding: 22px 12px; text-align: center; color: var(--tinta-3); font-size: .86rem; border: 1.5px dashed var(--linha-2); border-radius: 14px; }
.simp-vazio i { font-size: 1.4rem; color: var(--bic); }
.simp-nota { margin: 0; display: flex; gap: 8px; color: var(--tinta-3); font-size: .78rem; line-height: 1.4; }
.simp-nota i { color: #16a34a; margin-top: 2px; }
@media (max-width: 1100px) { .simp-corpo { grid-template-columns: minmax(0, 1fr); } .simp-lado { position: static; } }
@media (max-width: 760px) { .simp-versoes { grid-template-columns: minmax(0, 1fr); } .sv-seta { transform: rotate(90deg); justify-self: center; } .simp-dev span { display: none; } }
/* dentro da simulação: a faixa no topo */
.sim-faixa { position: fixed; z-index: 99999; left: 50%; top: 6px; transform: translateX(-50%); display: inline-flex; align-items: center; gap: 8px; padding: 5px 12px; border-radius: 999px; background: #FFC400; color: #2A1A00; font: 800 11px/1 system-ui, sans-serif; letter-spacing: .02em; box-shadow: 0 6px 16px -6px rgba(0, 0, 0, .4); pointer-events: none; opacity: .92; }
