/* ============================================================================
   login-v2.css: redesenho das telas públicas/sistema do sys.precocerto.co.
   Usado por login, forgot, reset_password, contact, complete_request e pelas
   telas de erro (400/403/404/500) + manutencao. Tudo escopado sob #pcauth para
   nao vazar no Bootstrap global (base_home.html) e vice-versa.
   ========================================================================== */

@font-face{font-family:'Montserrat';font-style:normal;font-weight:100 900;font-display:swap;
  src:url(../fonts/montserrat.woff2) format('woff2')}
@font-face{font-family:'Montserrat Fallback';
  src:local('Arial'),local('Helvetica Neue'),local('Liberation Sans'),local('Roboto'),local('Noto Sans');
  size-adjust:112.84%;ascent-override:91.68%;descent-override:23.77%;line-gap-override:0%}

/* CSS vars escopadas no #pcauth (não vazam pro resto da página). */
#pcauth{
  --pc-azul:#0047BB; --pc-azul-profundo:#021640; --pc-azul-medio:#002A6E;
  --pc-amarelo:#FFB500; --pc-tinta:#0A1F45; --pc-tinta-suave:#3D5175;
  --pc-fundo:#F4F7FE; --pc-verde:#0E9F6E; --pc-borda:rgba(10,31,69,.16);
  --pc-txt-p:#C8D6F0; --pc-txt-leg:#8FA6D4; --pc-txt-rod:#7083AA;
  --pc-font:'Montserrat','Montserrat Fallback',sans-serif;
}

/* Reset local (afeta so as paginas que carregam este css) */
body{margin:0;background:#021640}
#pcauth,#pcauth *{box-sizing:border-box}
#pcauth{position:relative;min-height:100vh;display:flex;flex-direction:column;
  font-family:var(--pc-font);color:var(--pc-tinta);line-height:1.5;-webkit-font-smoothing:antialiased}
#pcauth :focus-visible{outline:3px solid var(--pc-amarelo);outline-offset:3px;border-radius:4px}

#pcauth .ceu{position:fixed;inset:0;z-index:0;pointer-events:none;background-color:var(--pc-azul-profundo);
  background-image:
    radial-gradient(circle at 74% 28%,rgba(0,71,187,.82),transparent 64%),
    linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);
  background-size:auto,68px 68px,68px 68px}

/* Nav */
#pcauth .pc-nav{position:relative;z-index:2;height:60px;display:flex;align-items:center;justify-content:space-between;
  padding:0 clamp(16px,2.4vw,38px);background:rgba(2,22,64,.92);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.08)}
#pcauth .pc-nav-logo{display:flex;align-items:center;text-decoration:none}
#pcauth .pc-nav-logo svg{height:29px;width:auto;display:block}
#pcauth .pc-btn-nav{font:700 14px var(--pc-font);color:var(--pc-amarelo);text-decoration:none;
  border:1.5px solid var(--pc-amarelo);border-radius:6px;padding:8px 17px;transition:background .18s,color .18s;white-space:nowrap}
#pcauth .pc-btn-nav:hover{background:var(--pc-amarelo);color:var(--pc-azul-profundo)}

/* Palco + card */
#pcauth .pc-palco{position:relative;z-index:1;flex:1;display:flex;align-items:center;justify-content:center;
  padding:clamp(24px,5vw,64px) clamp(16px,4vw,28px)}
#pcauth .pc-card{width:100%;max-width:960px;display:grid;grid-template-columns:1.02fr 1fr;background:#fff;
  border:2px solid rgba(255,255,255,.14);border-radius:12px;overflow:hidden;
  box-shadow:14px 14px 0 rgba(255,181,0,.16);animation:pcSobe .6s ease both}
@keyframes pcSobe{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}

/* Painel de marca (esquerda) */
#pcauth .pc-marca{position:relative;padding:40px 38px;color:#fff;background-color:var(--pc-azul-medio);
  background-image:
    radial-gradient(circle at 52% 40%,rgba(0,71,187,.72),transparent 64%),
    linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:auto,60px 60px,60px 60px;display:flex;flex-direction:column}
#pcauth .pc-eyebrow{align-self:flex-start;font:700 12px var(--pc-font);letter-spacing:.1em;text-transform:uppercase;
  background:var(--pc-amarelo);color:var(--pc-azul-profundo);border-radius:5px;padding:5px 12px;margin:0}
#pcauth .pc-marca h1{font-size:clamp(25px,2.4vw,32px);font-weight:800;line-height:1.18;letter-spacing:-.01em;
  margin:20px 0 0;max-width:19ch;color:#fff;text-wrap:balance}
#pcauth .pc-grifo{background:linear-gradient(0deg,var(--pc-amarelo) 0 88%,transparent 88%);color:var(--pc-azul-profundo);
  padding:0 .12em;box-decoration-break:clone;-webkit-box-decoration-break:clone;white-space:nowrap}

/* Painel vivo: KPI que acende + porco apresentando */
#pcauth .pc-palco-vivo{position:relative;width:284px;max-width:100%;margin:30px auto 48px}
#pcauth .pc-kpi{position:relative;background:#fff;border:2px solid var(--pc-borda);border-radius:12px;
  padding:19px 22px 16px;box-shadow:7px 7px 0 rgba(255,181,0,.22);color:var(--pc-tinta);
  display:flex;flex-direction:column;gap:9px;animation:pcCardIn .55s ease both}
#pcauth .pc-kpi.trancado{filter:saturate(.7)}
#pcauth .pc-kpi-exemplo{position:absolute;top:12px;right:12px;font:600 9.5px var(--pc-font);letter-spacing:.08em;
  text-transform:uppercase;color:var(--pc-tinta-suave);background:rgba(10,31,69,.06);border-radius:4px;padding:3px 7px}
#pcauth .pc-kpi-label{font:700 11px var(--pc-font);letter-spacing:.12em;text-transform:uppercase;color:var(--pc-tinta-suave)}
#pcauth .pc-kpi-num{font-size:34px;font-weight:800;line-height:1;letter-spacing:-.01em;font-variant-numeric:tabular-nums;color:var(--pc-tinta)}
#pcauth .pc-kpi-num .rs{font-size:16px;font-weight:700;color:var(--pc-tinta-suave);margin-right:3px}
#pcauth .pc-kpi-delta{display:inline-flex;align-items:center;gap:5px;align-self:flex-start;font:700 12px var(--pc-font);
  color:var(--pc-verde);background:rgba(14,159,110,.1);border-radius:20px;padding:4px 11px;animation:pcFadeUp .5s .55s ease both}
#pcauth .pc-kpi-delta svg{width:12px;height:12px;fill:currentColor}
#pcauth .pc-spark{width:100%;height:56px;display:block;margin-top:2px}
#pcauth .pc-spark-line{stroke-dasharray:300;stroke-dashoffset:300;animation:pcDraw 1.1s .35s ease forwards}
#pcauth .pc-spark-area{opacity:0;animation:pcFadeIn .9s .55s ease forwards}
#pcauth .pc-spark-dot{opacity:0;transform-box:fill-box;transform-origin:center;
  animation:pcDotPop .4s 1.25s ease forwards,pcDotPulse 2.6s 1.75s ease-in-out infinite}
#pcauth .pc-cadeado{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:rgba(2,22,64,.5);border-radius:11px}
#pcauth .pc-cadeado svg{width:38px;height:38px;fill:#fff;opacity:.92}
#pcauth .pc-pig{position:absolute;z-index:2;right:-30px;bottom:-34px;width:134px;height:auto;
  transform-origin:bottom center;filter:drop-shadow(0 9px 12px rgba(2,22,64,.42));
  opacity:0;animation:pcFadeIn .6s .35s ease forwards,pcSway 6s 1s ease-in-out infinite}
#pcauth .pc-pig.ajuda{right:-34px;bottom:-30px;width:140px}
#pcauth .pc-palco-vivo::before{content:"";position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);
  width:340px;height:280px;background:radial-gradient(ellipse,rgba(0,71,187,.6),transparent 68%);
  filter:blur(22px);z-index:-1;animation:pcBreathe 5s ease-in-out infinite}

/* Painel de formulario (direita) */
#pcauth .pc-form-panel{padding:42px;display:flex;flex-direction:column;justify-content:center;background:#fff}
#pcauth .pc-form-eyebrow{font:700 12.5px var(--pc-font);letter-spacing:.14em;text-transform:uppercase;color:var(--pc-azul);margin:0 0 12px}
#pcauth .pc-form-panel h2{font-size:26px;font-weight:800;color:var(--pc-tinta);line-height:1.2;letter-spacing:-.01em;margin:0}
#pcauth .pc-sub{margin:8px 0 0;color:var(--pc-tinta-suave);font-size:15px;line-height:1.55;max-width:42ch;text-wrap:balance}
#pcauth form{margin-top:24px;display:flex;flex-direction:column;gap:16px}
#pcauth .pc-field{display:flex;flex-direction:column;gap:7px}
#pcauth .pc-field>label{font-size:13.5px;font-weight:600;color:var(--pc-tinta)}
#pcauth .pc-input-wrap{position:relative;display:flex}
#pcauth input[type=text],#pcauth input[type=email],#pcauth input[type=password]{width:100%;font:400 16px var(--pc-font);
  color:var(--pc-tinta);background:#fff;border:2px solid var(--pc-borda);border-radius:6px;padding:13px 14px;
  transition:border-color .16s,box-shadow .16s;height:auto}
#pcauth input::placeholder{color:#9aa8c4}
#pcauth input:focus{outline:none;border-color:var(--pc-azul);box-shadow:0 0 0 3px rgba(0,71,187,.14)}
#pcauth input:focus-visible{outline:3px solid var(--pc-amarelo);outline-offset:2px}
#pcauth input.formError{border-color:#C0392B;box-shadow:0 0 0 3px rgba(192,57,43,.12)}
#pcauth .pc-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;
  padding:8px;border-radius:6px;color:var(--pc-tinta-suave);font:600 12.5px var(--pc-font)}
#pcauth .pc-toggle:hover{color:var(--pc-azul)}
#pcauth textarea{width:100%;font:400 16px var(--pc-font);color:var(--pc-tinta);background:#fff;border:2px solid var(--pc-borda);
  border-radius:6px;padding:13px 14px;min-height:104px;resize:vertical;transition:border-color .16s,box-shadow .16s}
#pcauth textarea::placeholder{color:#9aa8c4}
#pcauth textarea:focus{outline:none;border-color:var(--pc-azul);box-shadow:0 0 0 3px rgba(0,71,187,.14)}
#pcauth textarea:focus-visible{outline:3px solid var(--pc-amarelo);outline-offset:2px}
#pcauth .g-recaptcha{margin:2px 0}
#pcauth .pc-msg{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:600;border-radius:8px;padding:11px 14px;line-height:1.4}
#pcauth .pc-msg svg{width:18px;height:18px;flex:none}
#pcauth .pc-msg.ok{color:#0b7a54;background:rgba(14,159,110,.12)}
#pcauth .pc-msg.err{color:#b0301f;background:rgba(192,57,43,.1)}
/* Painel de atendimento (contact): mesmo card, conteudo de contato */
#pcauth .pc-marca.center{justify-content:center;align-items:center;text-align:center}
#pcauth .pc-marca.center .pc-eyebrow{align-self:center}
#pcauth .pc-marca.center h1{max-width:none}
#pcauth .pc-contato-hero{position:relative;margin:28px 0 24px;isolation:isolate}
#pcauth .pc-contato-hero::before{content:"";position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);
  width:320px;height:260px;background:radial-gradient(ellipse,rgba(255,255,255,.17) 0%,rgba(255,181,0,.15) 34%,transparent 68%);
  filter:blur(18px);z-index:-1;animation:pcBreathe 5s ease-in-out infinite}
#pcauth .pc-contato-hero img{display:block;width:216px;height:auto;margin:0 auto;transform-origin:bottom center;
  filter:drop-shadow(0 12px 15px rgba(2,22,64,.42));opacity:0;
  animation:pcFadeIn .6s .3s ease forwards,pcSway 6s 1s ease-in-out infinite}
#pcauth .pc-contato-sub{font-size:14px;color:var(--pc-txt-p);line-height:1.6;margin-top:15px;max-width:none}
#pcauth .pc-wa-btn{display:inline-flex;align-items:center;gap:9px;align-self:center;background:var(--pc-verde);color:#fff;
  font:700 15px var(--pc-font);padding:11px 16px;border-radius:8px;text-decoration:none;box-shadow:4px 4px 0 rgba(2,22,64,.9);
  transition:transform .18s,box-shadow .18s}
#pcauth .pc-wa-btn:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 rgba(2,22,64,.9)}
#pcauth .pc-wa-btn svg{width:20px;height:20px;fill:currentColor}
#pcauth .pc-erro{display:block;color:#C0392B;font-size:13px;font-weight:600;min-height:0}
#pcauth .pc-erro:empty{display:none}
#pcauth .pc-wait{display:none;color:var(--pc-tinta-suave);font-size:13px;margin-top:6px}
#pcauth .pc-row-opcoes{display:flex;align-items:center;justify-content:flex-end;margin-top:-4px}
#pcauth .pc-link{font-size:14px;font-weight:600;color:var(--pc-azul);text-decoration:none;background:none;border:none;cursor:pointer;padding:0;font-family:var(--pc-font)}
#pcauth .pc-link:hover{text-decoration:underline;text-decoration-color:var(--pc-amarelo);text-decoration-thickness:2px;text-underline-offset:3px}
#pcauth .pc-btn{width:100%;font:700 16px var(--pc-font);padding:15px 24px;border-radius:6px;border:2px solid transparent;
  background:var(--pc-amarelo);color:var(--pc-azul-profundo);cursor:pointer;box-shadow:4px 4px 0 rgba(2,22,64,.9);
  transition:transform .18s,box-shadow .18s;display:inline-flex;align-items:center;justify-content:center;gap:8px}
#pcauth .pc-btn:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 rgba(2,22,64,.9)}
#pcauth .pc-btn:active{transform:translate(0,0);box-shadow:2px 2px 0 rgba(2,22,64,.9)}
#pcauth .pc-rodape-form{margin-top:24px;border-top:1px solid var(--pc-borda);padding-top:18px;display:flex;flex-direction:column;gap:12px}
#pcauth .pc-rodape-form .aviso{font-size:14px;color:var(--pc-tinta-suave);margin:0}
#pcauth .pc-ajuda{font-size:13px;color:var(--pc-tinta-suave);margin:0}
#pcauth .pc-whats{color:var(--pc-verde);font-weight:600;text-decoration:none}
#pcauth .pc-whats:hover{text-decoration:underline;text-underline-offset:3px}

/* Footer */
#pcauth .pc-foot{position:relative;z-index:1;width:100%;padding:0 clamp(16px,4vw,28px)}
#pcauth .pc-foot-in{max-width:1180px;margin:0 auto;padding:22px 0;border-top:1px solid rgba(255,255,255,.12);
  display:flex;justify-content:space-between;align-items:center;gap:6px 24px;flex-wrap:wrap;
  font-size:13px;color:var(--pc-txt-rod);line-height:1.5}
#pcauth .pc-foot-in a{color:var(--pc-txt-rod);text-decoration:none}
#pcauth .pc-foot-in a:hover{color:var(--pc-txt-p)}

/* ===== Telas de erro / sistema (centralizado no ceu, sem card branco) ===== */
#pcauth .pc-erro-palco{text-align:center}
#pcauth .pc-erro-card{max-width:600px;display:flex;flex-direction:column;align-items:center;padding:16px}
#pcauth .pc-erro-hero{position:relative;isolation:isolate;margin-bottom:4px}
#pcauth .pc-erro-hero::before{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:320px;height:270px;background:radial-gradient(ellipse,rgba(255,255,255,.16) 0%,rgba(255,181,0,.14) 34%,transparent 68%);
  filter:blur(18px);z-index:-1;animation:pcBreathe 5s ease-in-out infinite}
#pcauth .pc-erro-hero img{display:block;width:194px;height:auto;transform-origin:bottom center;
  filter:drop-shadow(0 12px 15px rgba(2,22,64,.42));opacity:0;
  animation:pcFadeIn .6s .3s ease forwards,pcSway 6s 1s ease-in-out infinite}
#pcauth .pc-erro-code{font:700 13px var(--pc-font);letter-spacing:.16em;text-transform:uppercase;color:var(--pc-amarelo);margin-top:10px}
#pcauth .pc-erro-titulo{color:#fff;font-size:clamp(26px,3.6vw,38px);font-weight:800;line-height:1.16;letter-spacing:-.01em;
  margin:10px 0 0;text-wrap:balance;max-width:18ch}
#pcauth .pc-erro-sub{color:var(--pc-txt-p);font-size:16px;line-height:1.65;margin:14px 0 0;max-width:52ch;text-wrap:balance}
#pcauth .pc-erro-acoes{margin-top:26px;display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
#pcauth .pc-erro-acoes .pc-btn{width:auto;padding:14px 26px}
#pcauth .pc-btn-ghost{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.3);box-shadow:none}
#pcauth .pc-btn-ghost:hover{border-color:var(--pc-amarelo);color:var(--pc-amarelo);transform:translate(-2px,-2px);box-shadow:none}

/* Responsivo */
@media (max-width:820px){
  #pcauth .pc-card{grid-template-columns:1fr;max-width:440px}
  #pcauth .pc-marca{padding:30px 28px}
  #pcauth .pc-marca h1{max-width:none}
  #pcauth .pc-pig{width:118px;right:-18px;bottom:-26px}
  #pcauth .pc-pig.ajuda{width:124px}
  #pcauth .pc-form-panel{padding:32px 28px}
}
@media (max-width:440px){#pcauth .pc-nav-logo svg{height:25px}#pcauth .pc-foot-in{justify-content:center;text-align:center}}

/* Animacoes */
@keyframes pcCardIn{from{opacity:0;transform:translateY(16px) scale(.985)}to{opacity:1;transform:none}}
@keyframes pcFadeIn{from{opacity:0}to{opacity:1}}
@keyframes pcFadeUp{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
@keyframes pcDraw{to{stroke-dashoffset:0}}
@keyframes pcDotPop{from{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}
@keyframes pcDotPulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.4);opacity:.6}}
@keyframes pcSway{0%,100%{transform:rotate(-1.7deg)}50%{transform:rotate(1.7deg)}}
@keyframes pcBreathe{0%,100%{opacity:.6;transform:translate(-50%,-50%) scale(1)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.06)}}

@media (prefers-reduced-motion:reduce){
  #pcauth *{animation:none !important;transition:none !important}
  #pcauth .pc-spark-line{stroke-dashoffset:0}
  #pcauth .pc-spark-area,#pcauth .pc-spark-dot,#pcauth .pc-pig,#pcauth .pc-kpi,#pcauth .pc-card{opacity:1}
}
