/* ============================================================
   VERTENXIS CONCURSOS — layout base (tema escuro/claro automático)
   ============================================================ */
:root{
  --bg:#070b16; --bg-2:#0b1120; --panel:rgba(20,28,46,.72); --panel-solid:#131c2e; --panel-2:rgba(13,19,33,.6);
  --line:rgba(148,163,184,.14); --line-strong:rgba(148,163,184,.26);
  --text:#eef2fb; --muted:#aab6cf; --faint:#6f7d99;
  --accent:#4f7cff; --accent-2:#6f9bff; --accent-ink:#060a16; --accent-soft:rgba(79,124,255,.14); --accent-glow:rgba(79,124,255,.42);
  --ok:#2dd4a7; --erro:#f7556b; --aviso:#fbbf24; --info:#38bdf8;
  --r-lg:18px; --r-md:13px; --r-sm:9px;
  --sombra:0 24px 60px -28px rgba(0,0,0,.85);
  --f-ui:"Manrope",system-ui,sans-serif; --f-display:"Space Grotesk",var(--f-ui); --f-mono:"JetBrains Mono",ui-monospace,monospace;
  color-scheme:dark;
}
@media (prefers-color-scheme: light){:root{
  --bg:#eef1f7; --bg-2:#f6f8fc; --panel:rgba(255,255,255,.88); --panel-solid:#fff; --panel-2:rgba(241,244,250,.85);
  --line:rgba(15,23,42,.09); --line-strong:rgba(15,23,42,.16);
  --text:#131a2b; --muted:#56627d; --faint:#93a0b8; --accent-ink:#fff;
  --ok:#0f9d76; --erro:#e23b54; --sombra:0 22px 50px -30px rgba(20,33,71,.45);
  color-scheme:light;
}}

*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0;min-height:100%}
body{
  font-family:var(--f-ui);font-size:15px;line-height:1.5;color:var(--text);letter-spacing:-.01em;-webkit-font-smoothing:antialiased;
  background:radial-gradient(1100px 620px at 88% -8%,var(--accent-soft),transparent 60%),var(--bg-2);background-attachment:fixed;
  display:flex;flex-direction:column;
}
h1,h2,h3{font-family:var(--f-display);font-weight:600;letter-spacing:-.02em;margin:0}
a{color:var(--accent)}
.mono{font-family:var(--f-mono);font-feature-settings:"tnum" 1}
.muted{color:var(--muted)}
.ico{width:20px;height:20px;flex-shrink:0}
.eyebrow{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}

/* ── TOPO ── */
.topo{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:20px;padding:12px clamp(16px,3vw,36px);
  background:color-mix(in oklab,var(--panel-solid),transparent 12%);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.marca{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--text)}
.marca-ico{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;color:#fff;
  background:linear-gradient(140deg,var(--accent),var(--accent-2));box-shadow:0 8px 22px -8px var(--accent-glow)}
.marca-txt{font-family:var(--f-display);font-weight:600;font-size:15px;line-height:1.1}
.marca-txt small{display:block;font-family:var(--f-mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);font-weight:500;margin-top:3px}
.topo-nav{display:flex;gap:4px}
.topo-nav a{color:var(--muted);text-decoration:none;font-weight:600;font-size:13.5px;padding:8px 12px;border-radius:var(--r-sm)}
.topo-nav a:hover{background:var(--panel-2);color:var(--text)}
.topo-user{margin-left:auto;display:flex;align-items:center;gap:10px}
.topo-user form{margin:0}
.avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-family:var(--f-display);font-weight:600;font-size:14px;
  color:var(--accent-ink);background:linear-gradient(140deg,var(--accent),var(--accent-2))}
.topo-nome{font-weight:700;font-size:13.5px;line-height:1.1}
.topo-nome small{display:block;font-family:var(--f-mono);font-size:10px;color:var(--faint);font-weight:500}

/* ── CONTEÚDO ── */
.conteudo{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:26px clamp(16px,3vw,36px) 48px}
.rodape{text-align:center;font-family:var(--f-mono);font-size:11px;color:var(--faint);padding:18px}
.trilha{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--faint);margin-bottom:18px;flex-wrap:wrap}
.trilha a{color:var(--muted);text-decoration:none}.trilha a:hover{color:var(--text)}
.trilha b{color:var(--text);font-weight:600}

.painel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px;backdrop-filter:blur(14px);box-shadow:0 8px 24px -16px rgba(0,0,0,.6)}
.hero{margin-bottom:24px}
.hero h1{font-size:clamp(24px,3vw,34px);margin-top:6px}
.hero p{margin:8px 0 0;max-width:62ch}
.vazio{text-align:center;padding:48px 22px;max-width:560px;margin:30px auto}
.vazio-ico{width:56px;height:56px;margin:0 auto 14px;border-radius:16px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent)}
.vazio h2{margin-bottom:8px}.vazio .btn{margin-top:18px}

/* ── BOTÕES ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 18px;border-radius:var(--r-md);font:700 14px var(--f-ui);
  border:1px solid transparent;cursor:pointer;text-decoration:none;white-space:nowrap;transition:transform .14s,box-shadow .16s,border-color .16s}
.btn:active{transform:translateY(1px)}
.btn-primario{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:var(--accent-ink);box-shadow:0 12px 28px -14px var(--accent-glow)}
.btn-primario:hover{transform:translateY(-1px)}
.btn-ghost{background:var(--panel-2);color:var(--text);border-color:var(--line)}
.btn-ghost:hover{border-color:var(--line-strong)}
.btn-sm{padding:7px 12px;font-size:12.5px;border-radius:var(--r-sm)}
.btn-bloco{width:100%}

/* ── FORMULÁRIOS ── */
.campo{margin-bottom:16px}
.campo label{display:block;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;font-weight:600}
.campo input,.campo select,.campo textarea{width:100%;background:var(--panel-2);border:1px solid var(--line-strong);padding:12px 14px;border-radius:11px;
  color:var(--text);font:14.5px var(--f-ui);outline:none;transition:border-color .16s,box-shadow .16s}
.campo input:focus,.campo select:focus,.campo textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.campo .dica{font-size:12px;color:var(--faint);margin-top:5px}

.alerta{padding:12px 15px;border-radius:11px;font-size:13.5px;margin-bottom:16px;border:1px solid}
.alerta-erro{background:color-mix(in oklab,var(--erro),transparent 88%);border-color:color-mix(in oklab,var(--erro),transparent 55%)}
.alerta-ok{background:color-mix(in oklab,var(--ok),transparent 88%);border-color:color-mix(in oklab,var(--ok),transparent 55%)}
.alerta-aviso{background:color-mix(in oklab,var(--aviso),transparent 88%);border-color:color-mix(in oklab,var(--aviso),transparent 55%)}

/* ── TAGS ── */
.tag{display:inline-flex;align-items:center;font-family:var(--f-mono);font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  padding:4px 9px;border-radius:7px;background:var(--panel-2);border:1px solid var(--line);color:var(--muted)}
.tag-cor{background:color-mix(in oklab,var(--cor,var(--accent)),transparent 82%);border-color:color-mix(in oklab,var(--cor,var(--accent)),transparent 55%);color:var(--text)}
.tag-aviso{color:var(--aviso)}

/* ── CARDS DE CONCURSO ── */
.grade-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}
.card-concurso{position:relative;display:flex;flex-direction:column;gap:10px;padding:22px;border-radius:var(--r-lg);text-decoration:none;color:var(--text);
  background:var(--panel);border:1px solid var(--line);overflow:hidden;transition:transform .16s,border-color .16s,box-shadow .16s}
.card-concurso::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--cor,var(--accent))}
.card-concurso:hover{transform:translateY(-3px);border-color:color-mix(in oklab,var(--cor,var(--accent)),transparent 50%);box-shadow:var(--sombra)}
.card-concurso h3{font-size:18px;line-height:1.2}
.cc-topo{display:flex;gap:6px;flex-wrap:wrap}
.cc-rodape{margin-top:auto;padding-top:12px;border-top:1px dashed var(--line-strong);display:flex;justify-content:space-between;gap:10px;font-size:12px;flex-wrap:wrap}
.contagem{font-family:var(--f-mono);font-weight:600;color:var(--cor,var(--accent))}

/* ── HUB DO CONCURSO ── */
.concurso-topo{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;margin-bottom:24px;position:relative;overflow:hidden}
.concurso-topo::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--cor,var(--accent))}
.concurso-topo h1{font-size:clamp(22px,2.8vw,30px);margin:8px 0 6px}
.dias{text-align:right}
.dias b{display:block;font-family:var(--f-display);font-size:clamp(38px,5vw,56px);line-height:1;color:var(--cor,var(--accent))}
.dias span{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint)}
.grade-modulos{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.modulo{--mc:var(--accent);position:relative;display:flex;flex-direction:column;gap:10px;padding:22px;border-radius:var(--r-lg);overflow:hidden;
  background:linear-gradient(160deg,color-mix(in oklab,var(--mc),transparent 86%),var(--panel) 55%);
  border:1px solid color-mix(in oklab,var(--mc),transparent 62%);text-decoration:none;color:var(--text);
  box-shadow:0 10px 30px -22px color-mix(in oklab,var(--mc),transparent 30%);transition:transform .16s,border-color .16s,box-shadow .16s}
.modulo::after{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--mc)}
a.modulo:hover{transform:translateY(-4px);border-color:var(--mc);box-shadow:0 18px 40px -20px color-mix(in oklab,var(--mc),transparent 20%)}
.modulo-cab{display:flex;align-items:center;justify-content:space-between;gap:10px}
.modulo-ico{flex-shrink:0;width:46px;height:46px;border-radius:13px;display:grid;place-items:center;background:var(--mc);color:#fff;box-shadow:0 8px 20px -8px var(--mc)}
.modulo-ico .ico{width:23px;height:23px}
.modulo-info{min-width:0;overflow:hidden;text-overflow:ellipsis;font-family:var(--f-mono);font-size:11px;font-weight:600;padding:4px 9px;border-radius:99px;background:color-mix(in oklab,var(--mc),transparent 82%);color:var(--text);white-space:nowrap}
.modulo h3{font-size:17px}
.modulo p{margin:0;font-size:13.5px;color:var(--text);opacity:.82;line-height:1.5}
.modulo-acao{margin-top:auto;padding-top:6px;display:flex;align-items:center;gap:6px;font-size:13.5px;font-weight:800;color:var(--mc)}
.modulo-acao .ico{width:16px;height:16px;transition:transform .16s}
a.modulo:hover .modulo-acao .ico{transform:translateX(4px)}
.modulo.breve{filter:grayscale(.85);opacity:.6;cursor:default}
.modulo.breve .modulo-acao{color:var(--muted)}

/* ── LOGIN ── */
.tela-login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
.login-caixa{width:100%;max-width:410px}
.login-caixa .marca{justify-content:center;margin-bottom:26px}
.login-caixa .painel{padding:30px}
.login-caixa h2{font-size:22px;margin:8px 0 6px}
.login-caixa .sub{color:var(--muted);font-size:13.5px;margin:0 0 22px}

@media (max-width:760px){
  .topo{flex-wrap:wrap;gap:10px}
  .topo-nav{order:3;width:100%;overflow-x:auto}
  .topo-nome,.topo-user .btn-ghost[href]{display:none}
  .concurso-topo{grid-template-columns:1fr}
  .dias{text-align:left}
}
