/* Captador de Licitações - sistema visual compartilhado (login, páginas públicas e painel).
   Tema escuro tecnológico por padrão; tema claro automático (prefers-color-scheme) ou escolhido no painel (data-tema). */
:root{
  --bg:#070b14; --bg2:#0b1220; --card:rgba(20,29,48,.62); --card-solid:#111a2d; --card2:rgba(255,255,255,.04);
  --tx:#e8eefc; --mut:#8fa0bf; --bd:rgba(130,160,220,.16); --bd2:rgba(130,160,220,.30);
  --a1:#22d3ee; --a2:#7c5cff; --a3:#34d399; --ok:#34d399; --warn:#fbbf24; --err:#fb7185;
  --grad:linear-gradient(135deg,#22d3ee 0%,#7c5cff 100%); --glow:0 0 0 1px rgba(34,211,238,.35),0 8px 30px rgba(34,211,238,.18);
  --sombra:0 10px 40px rgba(0,0,0,.45); --raio:14px; --fonte:"Segoe UI Variable","Segoe UI",system-ui,-apple-system,Roboto,sans-serif;
  --mono:ui-monospace,"Cascadia Code","SFMono-Regular",Consolas,monospace;
}
@media (prefers-color-scheme:light){
  :root:not([data-tema="escuro"]){
    --bg:#eef3fb; --bg2:#e4ecf8; --card:rgba(255,255,255,.78); --card-solid:#ffffff; --card2:rgba(20,40,90,.04);
    --tx:#0f1b33; --mut:#566884; --bd:rgba(40,70,130,.16); --bd2:rgba(40,70,130,.32);
    --a1:#0891b2; --a2:#5b3fe0; --a3:#059669; --ok:#059669; --warn:#b45309; --err:#e11d48;
    --grad:linear-gradient(135deg,#0891b2 0%,#5b3fe0 100%); --glow:0 0 0 1px rgba(8,145,178,.35),0 8px 28px rgba(8,145,178,.16);
    --sombra:0 10px 34px rgba(30,60,120,.14);
  }
}
:root[data-tema="claro"]{
  --bg:#eef3fb; --bg2:#e4ecf8; --card:rgba(255,255,255,.78); --card-solid:#ffffff; --card2:rgba(20,40,90,.04);
  --tx:#0f1b33; --mut:#566884; --bd:rgba(40,70,130,.16); --bd2:rgba(40,70,130,.32);
  --a1:#0891b2; --a2:#5b3fe0; --a3:#059669; --ok:#059669; --warn:#b45309; --err:#e11d48;
  --grad:linear-gradient(135deg,#0891b2 0%,#5b3fe0 100%); --glow:0 0 0 1px rgba(8,145,178,.35),0 8px 28px rgba(8,145,178,.16);
  --sombra:0 10px 34px rgba(30,60,120,.14);
}
*{box-sizing:border-box}
html{color-scheme:dark light}
body{margin:0;min-height:100vh;font:15px/1.5 var(--fonte);color:var(--tx);background:var(--bg);
  background-image:
    radial-gradient(900px 500px at 12% -10%,rgba(124,92,255,.22),transparent 60%),
    radial-gradient(800px 480px at 100% 0%,rgba(34,211,238,.16),transparent 55%),
    linear-gradient(var(--bg),var(--bg2));
  background-attachment:fixed;-webkit-font-smoothing:antialiased}
/* grade tecnológica bem discreta */
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.5;
  background-image:linear-gradient(var(--bd) 1px,transparent 1px),linear-gradient(90deg,var(--bd) 1px,transparent 1px);
  background-size:44px 44px;mask-image:radial-gradient(ellipse at 50% 0%,#000 0%,transparent 70%);-webkit-mask-image:radial-gradient(ellipse at 50% 0%,#000 0%,transparent 70%)}
a{color:var(--a1);text-decoration:none} a:hover{text-decoration:underline}
h1,h2,h3{margin:0;letter-spacing:-.01em}
::selection{background:rgba(124,92,255,.45)}
:focus-visible{outline:2px solid var(--a1);outline-offset:2px;border-radius:6px}

/* ---------- formulários ---------- */
label{display:block;font-weight:600;margin:14px 0 6px;font-size:13px;color:var(--mut);letter-spacing:.02em;text-transform:uppercase}
input,select,textarea{width:100%;font:inherit;color:var(--tx);background:rgba(127,150,200,.07);border:1px solid var(--bd);
  border-radius:10px;padding:10px 12px;transition:border-color .15s,box-shadow .15s,background .15s}
input::placeholder,textarea::placeholder{color:var(--mut);opacity:.7}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--a1);box-shadow:0 0 0 3px rgba(34,211,238,.18);background:rgba(127,150,200,.11)}
select option{background:var(--card-solid);color:var(--tx)}
input[type=checkbox]{width:auto;accent-color:var(--a2)}
button,.btn{font:inherit;font-weight:600;cursor:pointer;border:1px solid var(--bd2);color:var(--tx);background:var(--card2);
  border-radius:10px;padding:9px 16px;transition:transform .12s,box-shadow .15s,border-color .15s,background .15s}
button:hover,.btn:hover{border-color:var(--a1);box-shadow:0 0 0 3px rgba(34,211,238,.10)}
button:active{transform:translateY(1px)}
button:disabled{opacity:.55;cursor:not-allowed}
.primario,button.primario{background:var(--grad);color:#fff;border:0;box-shadow:0 6px 22px rgba(124,92,255,.35)}
.primario:hover{box-shadow:0 8px 28px rgba(124,92,255,.5);border:0}
.perigo{color:var(--err);border-color:rgba(251,113,133,.45)}

/* ---------- páginas de entrada (login, cadastro, recuperar...) ---------- */
.auth{position:relative;z-index:1;min-height:100vh;display:grid;place-items:center;padding:20px}
.auth-card{width:100%;max-width:420px;background:var(--card);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  border:1px solid var(--bd);border-radius:20px;padding:30px 28px;box-shadow:var(--sombra);position:relative;overflow:hidden}
.auth-card::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--grad)}
.auth-card.largo{max-width:760px}
.marca{display:flex;align-items:center;gap:12px;margin-bottom:6px}
.marca .logo{width:42px;height:42px;border-radius:12px;background:var(--grad);display:grid;place-items:center;box-shadow:0 8px 26px rgba(124,92,255,.45)}
.marca .logo svg{width:24px;height:24px;stroke:#fff;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.marca b{font-size:19px;letter-spacing:-.02em} .marca small{display:block;color:var(--mut);font-size:12px;margin-top:-2px}
.sub{color:var(--mut);font-size:14px;margin:6px 0 4px}
.auth-card button.primario{width:100%;margin-top:20px;padding:12px}
.msg{font-size:14px;margin-top:14px;min-height:1.3em} .msg.erro{color:var(--err)} .msg.ok{color:var(--ok)}
.links{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:16px;font-size:13.5px}
.rodape-aviso{margin-top:18px;font-size:12px;color:var(--mut);text-align:center}
.aviso-minuta{background:rgba(251,191,36,.12);border:1px solid rgba(251,191,36,.45);color:var(--warn);border-radius:10px;padding:10px 12px;font-size:13px;margin:12px 0}
.texto-longo h2{font-size:16px;margin:22px 0 6px;color:var(--a1)} .texto-longo p,.texto-longo li{color:var(--tx);opacity:.92;font-size:14.5px}
.texto-longo ul{padding-left:20px;margin:6px 0}
.check{display:flex;gap:10px;align-items:flex-start;margin-top:16px;font-size:13.5px;color:var(--mut)}
.check input{margin-top:3px}
.isca{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}

@media (prefers-reduced-motion:no-preference){
  .auth-card{animation:entrar .5s cubic-bezier(.2,.8,.2,1) both}
  @keyframes entrar{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
}
