:root{
    --ink:#0B1F35;
    --ink-soft:#3B5068;
    --navy:#10365C;
    --navy-deep:#081F3A;
    --sky:#EAF1F8;
    --paper:#F7F9FB;
    --white:#FFFFFF;
    --gold:#E8A400;
    --gold-soft:#FFF4DA;
    --red:#C8102E;
    --line:#D6DFE8;
    --line-navy:#27476E;
    --radius:14px;
    --shadow:0 10px 30px rgba(11,31,53,.10);
    --font-display:"Archivo",system-ui,sans-serif;
    --font-body:"Public Sans",system-ui,sans-serif;
  }


  
  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth;scroll-padding-top:84px}
  @media (prefers-reduced-motion:reduce){
    html{scroll-behavior:auto}
    *,*::before,*::after{animation:none!important;transition:none!important}
  }
  body{
    font-family:var(--font-body);
    color:var(--ink);
    background:var(--paper);
    line-height:1.6;
    font-size:16px;
    -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%;display:block}
  a{color:inherit}
  :focus-visible{outline:3px solid var(--gold);outline-offset:2px;border-radius:4px}
  .container{width:min(1120px,92%);margin-inline:auto}
  
  /* ---------- utilities ---------- */
  .eyebrow{
    font-family:var(--font-display);
    font-size:.72rem;
    font-weight:700;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--ink-soft);
    display:inline-flex;
    align-items:center;
    gap:.55rem;
  }
  .eyebrow::before{
    content:"";
    width:26px;height:3px;
    background:linear-gradient(90deg,var(--red) 0 33%,var(--ink) 33% 66%,var(--gold) 66% 100%);
    border-radius:2px;
  }
  h2{
    font-family:var(--font-display);
    font-size:clamp(1.6rem,3.2vw,2.2rem);
    font-weight:800;
    letter-spacing:-.01em;
    line-height:1.15;
    margin:.55rem 0 1rem;
  }
  .section{padding:clamp(3rem,7vw,5.25rem) 0}
  .section-head{max-width:720px;margin-bottom:clamp(1.5rem,3vw,2.5rem)}
  .section-head p{color:var(--ink-soft)}
  .flag-rule{
    height:5px;
    background:linear-gradient(90deg,var(--red) 0 33.4%,#111 33.4% 66.7%,var(--gold) 66.7% 100%);
  }
  .btn{
    display:inline-flex;align-items:center;gap:.6rem;
    font-family:var(--font-display);font-weight:700;font-size:.95rem;
    padding:.85rem 1.5rem;border-radius:999px;
    text-decoration:none;border:none;cursor:pointer;
    transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
  }
  .btn-gold{background:var(--gold);color:var(--navy-deep);box-shadow:0 6px 18px rgba(232,164,0,.35)}
  .btn-gold:hover{transform:translateY(-2px);background:#F5B517}
  .btn-ghost{background:transparent;color:var(--white);border:1.5px solid var(--line-navy)}
  .btn-ghost:hover{border-color:var(--gold);color:var(--gold)}
  
  /* ---------- header ---------- */
  .site-header{
    position:sticky;top:0;z-index:50;
    background:rgba(8,31,58,.94);
    backdrop-filter:blur(10px);
    color:var(--white);
    border-bottom:1px solid var(--line-navy);
  }
  .header-inner{
    display:flex;align-items:center;gap:1rem;
    min-height:68px;
  }
  .brand{display:flex;align-items:center;gap:.75rem;text-decoration:none}
  .crest{
    width:42px;height:42px;flex:none;
    display:grid;place-items:center;
    border-radius:10px;
  }
  .crest svg{width:24px;height:24px}
  .brand-text{line-height:1.15}
  .brand-text .rep{font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:#9FB4CC;font-weight:600}
  .brand-text .min{font-family:var(--font-display);font-weight:700;font-size:.95rem}
  .main-nav{margin-left:auto;display:flex;align-items:center;gap:1.4rem}
  .main-nav a{
    text-decoration:none;font-size:.9rem;font-weight:500;color:#C9D7E8;
    transition:color .15s ease;
  }
  .main-nav .header-cta {
    color:var(--navy-deep);
  }
  .main-nav .header-cta:hover {
    color:var(--gold-soft);
  }
  .main-nav a:hover{color:var(--gold)}
  .header-cta{margin-left:1rem;font-size:.82rem;padding:.6rem 1.1rem}
  .nav-toggle{
    display:none;margin-left:auto;
    background:none;border:1.5px solid var(--line-navy);border-radius:8px;
    color:var(--white);padding:.45rem .6rem;cursor:pointer;font-size:1.05rem;line-height:1;
  }
  @media (max-width:860px){
    .main-nav{
      display:none;
      position:absolute;top:100%;left:0;right:0;
      flex-direction:column;align-items:stretch;gap:0;
      background:var(--navy-deep);
      border-bottom:1px solid var(--line-navy);
      padding:.5rem 4%;
    }
    .main-nav.open{display:flex}
    .main-nav a{padding:.85rem .25rem;border-bottom:1px solid rgba(255,255,255,.06)}
    .header-cta{margin:.8rem 0;justify-content:center}
    .nav-toggle{display:block}
  }
  
  /* ---------- hero ---------- */
  .hero{
    background:
      radial-gradient(1200px 500px at 75% -10%, rgba(46,110,177,.35), transparent 60%),
      linear-gradient(180deg,#0A2645 0%, var(--navy-deep) 70%);
    color:var(--white);
    overflow:hidden;
    position:relative;
  }
  .hero-grid-lines{
    position:absolute;inset:0;pointer-events:none;opacity:.06;
    background-image:linear-gradient(#fff 1px,transparent 1px),linear-gradient(90deg,#fff 1px,transparent 1px);
    background-size:64px 64px;
  }
  .hero-inner{
    position:relative;
    padding:clamp(3rem,6vw,4.5rem) 0 0;
    text-align:center;
  }
  .hero-tag{
    display:inline-flex;align-items:center;gap:.6rem;
    font-family:var(--font-display);font-size:.72rem;font-weight:700;
    letter-spacing:.16em;text-transform:uppercase;
    color:var(--gold);
    border:1px solid rgba(232,164,0,.4);
    padding:.45rem 1rem;border-radius:999px;
    background:rgba(232,164,0,.08);
  }
  .hero h1{
    font-family:var(--font-display);
    font-weight:800;
    font-size:clamp(2.4rem,6.4vw,4.4rem);
    letter-spacing:-.02em;
    line-height:1.04;
    margin:1.1rem auto .9rem;
    max-width:16ch;
  }
  .hero h1 .year{color:var(--gold)}
  .hero-sub{
    max-width:60ch;margin:0 auto;
    font-size:clamp(1rem,1.6vw,1.15rem);
    color:#C9D7E8;
  }
  .hero-sub strong{color:var(--white)}
  .hero-frame{
    max-width:56ch;margin:1rem auto 0;
    font-size:.92rem;color:#9FB4CC;
  }
  .hero-frame code{
    font-family:var(--font-display);font-weight:700;color:var(--gold);
    background:rgba(232,164,0,.1);padding:.1rem .45rem;border-radius:6px;font-size:.88em;
  }
  .hero-actions{
    display:flex;flex-wrap:wrap;gap:.9rem;justify-content:center;
    margin-top:1.7rem;
  }
  .hero-highlights{
    display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem .6rem;
    margin-top:1.8rem;
  }
  .hh{
    font-size:.8rem;font-weight:600;color:#DCE7F3;
    border:1px solid var(--line-navy);
    background:rgba(255,255,255,.04);
    border-radius:999px;padding:.42rem .95rem;
    display:inline-flex;gap:.45rem;align-items:center;
  }
  .hh b{color:var(--gold);font-family:var(--font-display)}
  .hero-figure{position:relative;margin-top:clamp(1.5rem,4vw,2.5rem)}
  .hero-figure img{
    width:min(1000px,94%);
    margin-inline:auto;
    filter:drop-shadow(0 18px 40px rgba(0,0,0,.45));
  }
  .hero-figure figcaption{
    position:absolute;left:50%;bottom:14px;transform:translateX(-50%);
    font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;
    color:#9FB4CC;white-space:nowrap;
  }
  @media (max-width:640px){.hero-figure figcaption{display:none}}
  .hero-notice{
    background:#0A2645;
    border-top:1px solid var(--line-navy);
    color:#C9D7E8;
    font-size:.9rem;
  }
  .hero-notice .container{
    display:flex;gap:.8rem;align-items:flex-start;
    padding:.95rem 0;
  }
  .hero-notice svg{flex:none;margin-top:.2rem}
  
  /* ---------- números ---------- */
  .stats{background:var(--white);border-bottom:1px solid var(--line)}
  .stats-grid{
    display:grid;grid-template-columns:repeat(4,1fr);
    padding:clamp(1.8rem,4vw,2.6rem) 0;
  }
  .stat{
    padding:.4rem 1.6rem;
    border-left:1px solid var(--line);
  }
  .stat:first-child{border-left:none;padding-left:0}
  .stat .num{
    font-family:var(--font-display);font-weight:800;
    font-size:clamp(1.7rem,3.4vw,2.5rem);letter-spacing:-.02em;
    color:var(--navy);line-height:1.05;
  }
  .stat .lbl{font-size:.85rem;color:var(--ink-soft);margin-top:.25rem}
  @media (max-width:760px){
    .stats-grid{grid-template-columns:1fr 1fr;gap:1.4rem 0}
    .stat{padding:.2rem 1.2rem}
    .stat:nth-child(odd){border-left:none;padding-left:0}
  }
  
  /* ---------- aviso ---------- */
  .aviso-card{
    background:var(--gold-soft);
    border:1px solid #F0D089;
    border-left:6px solid var(--gold);
    border-radius:var(--radius);
    padding:clamp(1.3rem,3vw,1.9rem) clamp(1.3rem,3.4vw,2.2rem);
    display:flex;gap:1.1rem;align-items:flex-start;
  }
  .aviso-card svg{flex:none;margin-top:.25rem}
  .aviso-card h2{font-size:1.25rem;margin:0 0 .55rem}
  .aviso-card p{margin-bottom:.7rem;color:#4A3A10}
  .aviso-card p:last-child{margin-bottom:0}
  .aviso-card code{font-family:var(--font-display);font-weight:700;color:var(--navy)}
  @media (max-width:560px){.aviso-card{flex-direction:column;gap:.7rem}}
  
  /* ---------- como funciona ---------- */
  .steps{
    display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;
    counter-reset:step;
  }
  .step{
    background:var(--white);
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:1.5rem 1.4rem 1.4rem;
    position:relative;
    counter-increment:step;
  }
  .step::before{
    content:counter(step,decimal-leading-zero);
    font-family:var(--font-display);font-weight:800;font-size:.8rem;
    color:var(--navy);
    background:var(--sky);
    border:1px solid #C9DAEC;
    padding:.3rem .65rem;border-radius:999px;
    display:inline-block;margin-bottom:.9rem;letter-spacing:.06em;
  }
  .step h3{font-family:var(--font-display);font-size:1.05rem;font-weight:700;margin-bottom:.45rem}
  .step p{font-size:.92rem;color:var(--ink-soft)}
  .rule-card{
    margin-top:1.1rem;
    background:var(--sky);
    border:1px solid #C9DAEC;
    border-radius:var(--radius);
    padding:1.1rem 1.4rem;
    display:flex;gap:.8rem;align-items:flex-start;
    font-size:.95rem;
  }
  .rule-card svg{flex:none;margin-top:.15rem}
  .rule-card strong{color:var(--navy)}
  @media (max-width:860px){.steps{grid-template-columns:1fr}}
  
  /* ---------- vagas ---------- */
  .vagas{background:var(--white);border-block:1px solid var(--line)}
  .table-wrap{
    border:1px solid var(--line);
    border-radius:var(--radius);
    overflow:hidden;
    box-shadow:var(--shadow);
    background:var(--white);
  }
  .table-scroll{overflow-x:auto}
  table{width:100%;border-collapse:collapse;min-width:640px}
  thead th{
    font-family:var(--font-display);font-size:.72rem;font-weight:700;
    letter-spacing:.12em;text-transform:uppercase;
    background:var(--navy-deep);color:#C9D7E8;
    text-align:left;padding:.9rem 1.3rem;
  }
  tbody td{
    padding:1rem 1.3rem;border-top:1px solid var(--line);
    font-size:.95rem;vertical-align:top;
  }
  tbody tr:nth-child(even){background:#FAFCFE}
  td.orgao{font-weight:600;color:var(--navy)}
  td.carreira{color:var(--ink-soft)}
  td.vagas-n,th.vagas-n{text-align:right;font-variant-numeric:tabular-nums}
  td.vagas-n{font-family:var(--font-display);font-weight:700}
  tfoot td{
    padding:1rem 1.3rem;border-top:2px solid var(--navy);
    font-family:var(--font-display);font-weight:800;background:var(--sky);
  }
  tfoot .vagas-n{font-size:1.15rem;color:var(--navy)}
  
  /* ---------- requisitos ---------- */
  .tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.2rem}
  .tab{
    font-family:var(--font-display);font-weight:600;font-size:.85rem;
    padding:.6rem 1.1rem;border-radius:999px;
    border:1.5px solid var(--line);background:var(--white);color:var(--ink-soft);
    cursor:pointer;transition:all .15s ease;
  }
  .tab:hover{border-color:var(--navy)}
  .tab[aria-selected="true"]{
    background:var(--navy);border-color:var(--navy);color:var(--white);
  }
  .panel{
    background:var(--white);
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:clamp(1.4rem,3vw,2rem);
    box-shadow:var(--shadow);
  }
  .panel[hidden]{display:none}
  .panel h3{
    font-family:var(--font-display);font-size:1.2rem;font-weight:700;
    color:var(--navy);margin-bottom:.3rem;
  }
  .panel .panel-sub{font-size:.9rem;color:var(--ink-soft);margin-bottom:1.1rem}
  .req-list{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:.6rem 1.6rem}
  .req-list li{
    position:relative;padding-left:1.7rem;font-size:.95rem;
  }
  .req-list li::before{
    content:"";position:absolute;left:0;top:.42em;
    width:.95rem;height:.95rem;border-radius:50%;
    background:var(--sky) url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path fill="none" stroke="%2310365C" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round" d="M3.5 8.5l3 3 6-7"/></svg>') center/70% no-repeat;
    border:1px solid #C9DAEC;
  }
  @media (max-width:720px){.req-list{grid-template-columns:1fr}}
  
  /* ---------- provas ---------- */
  .provas{background:var(--navy-deep);color:var(--white)}
  .provas .eyebrow{color:#9FB4CC}
  .provas .section-head p{color:#C9D7E8}
  .provas-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
  .pcard{
    background:rgba(255,255,255,.045);
    border:1px solid var(--line-navy);
    border-radius:var(--radius);
    padding:1.5rem 1.5rem 1.4rem;
  }
  .pcard h3{
    font-family:var(--font-display);font-size:1.05rem;font-weight:700;
    margin-bottom:.8rem;display:flex;align-items:center;gap:.6rem;color:var(--white);
  }
  .pcard h3 svg{flex:none}
  .pcard ul{list-style:none}
  .pcard li{
    padding:.5rem 0 .5rem 1.4rem;position:relative;
    font-size:.93rem;color:#C9D7E8;
    border-bottom:1px solid rgba(255,255,255,.07);
  }
  .pcard li:last-child{border-bottom:none}
  .pcard li::before{
    content:"";position:absolute;left:0;top:1.05em;
    width:.5rem;height:.5rem;border-radius:2px;background:var(--gold);
  }
  .cotacao{
    grid-column:1/-1;
    background:rgba(255,255,255,.045);
    border:1px solid var(--line-navy);
    border-radius:var(--radius);
    padding:1.5rem;
  }
  .cotacao h3{font-family:var(--font-display);font-size:1.05rem;font-weight:700;margin-bottom:1rem}
  .cotacao-bar{
    display:flex;height:52px;border-radius:10px;overflow:hidden;
    border:1px solid var(--line-navy);
  }
  .cot-seg{
    display:flex;flex-direction:column;justify-content:center;
    padding:0 1.1rem;line-height:1.25;
  }
  .cot-seg .pct{font-family:var(--font-display);font-weight:800;font-size:1.05rem}
  .cot-seg .what{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;opacity:.85}
  .cot-escrita{width:45%;background:#2E6EB1;color:var(--white)}
  .cot-fisica{width:55%;background:var(--gold);color:var(--navy-deep)}
  .cotacao .escala{margin-top:.8rem;font-size:.85rem;color:#9FB4CC}
  @media (max-width:820px){.provas-grid{grid-template-columns:1fr}}
  @media (max-width:520px){
    .cotacao-bar{flex-direction:column;height:auto}
    .cot-seg{width:100%!important;padding:.75rem 1.1rem}
  }
  
  /* ---------- faq ---------- */
  .faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;align-items:start}
  details{
    background:var(--white);
    border:1px solid var(--line);
    border-radius:12px;
    overflow:hidden;
    transition:box-shadow .15s ease;
  }
  details[open]{box-shadow:var(--shadow);border-color:#B9CBDE}
  summary{
    list-style:none;cursor:pointer;
    display:flex;justify-content:space-between;align-items:center;gap:1rem;
    padding:1rem 1.2rem;
    font-family:var(--font-display);font-weight:600;font-size:.95rem;
  }
  summary::-webkit-details-marker{display:none}
  summary::after{
    content:"+";
    font-family:var(--font-display);font-weight:600;font-size:1.3rem;
    color:var(--navy);flex:none;line-height:1;
    transition:transform .2s ease;
  }
  details[open] summary::after{transform:rotate(45deg)}
  .faq-a{padding:0 1.2rem 1.1rem;font-size:.93rem;color:var(--ink-soft)}
  .faq-a ul{margin:.4rem 0 0 1.2rem}
  @media (max-width:820px){.faq-grid{grid-template-columns:1fr}}
  
  /* ---------- cta final ---------- */
  .cta-final{
    background:
      radial-gradient(900px 400px at 20% 120%, rgba(232,164,0,.18), transparent 60%),
      linear-gradient(180deg,var(--navy-deep),#0A2645);
    color:var(--white);
    text-align:center;
  }
  .cta-final h2{max-width:20ch;margin-inline:auto}
  .cta-final p{max-width:62ch;margin:0 auto 1rem;color:#C9D7E8}
  .cta-final .btn{margin-top:1rem}
  
  /* ---------- footer ---------- */
  .site-footer{
      background:#061529;
    color:#9FB4CC;
    padding:2.4rem 0 2.2rem;
    font-size:.85rem;
  }
  .footer-inner{
    display:flex;flex-wrap:wrap;gap:1.6rem;justify-content:space-between;align-items:flex-start;
  }
  .footer-brand{display:flex;gap:.75rem;align-items:center;color:var(--white)}
  .footer-note{max-width:46ch}
  .footer-inner code{font-family:var(--font-display);font-weight:700;color:var(--gold)}
  
  /* ---------- reveal ---------- */
  .reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
  .reveal.in{opacity:1;transform:none}
  @media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}}



  
  
/* ===== Frame central ===== */
.auth-main{
  flex:1;display:grid;place-items:center;
  padding:clamp(2.2rem,6vw,4.5rem) 0;
  background: transparent;
}
.auth-card{
  width:min(480px,92vw);
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  overflow:hidden;
}
.auth-card .flag-rule{height:4px}
.auth-body{padding:clamp(1.6rem,4vw,2.2rem)}

/* Indicador de passos (sequência real: dados → verificação) */
.stepper{
  display:flex;align-items:center;gap:.6rem;
  font-family:var(--font-display);font-size:.7rem;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:#8FA3B9;
  margin-bottom:1.4rem;
}
.stepper .st{display:inline-flex;align-items:center;gap:.45rem}
.stepper .dot{
  width:1.5rem;height:1.5rem;border-radius:50%;
  display:grid;place-items:center;
  border:1.5px solid var(--line);font-size:.68rem;color:#8FA3B9;background:var(--white);
}
.stepper .st.active{color:var(--navy)}
.stepper .st.active .dot{background:var(--navy);border-color:var(--navy);color:var(--white)}
.stepper .st.done .dot{background:var(--green);border-color:var(--green);color:var(--white)}
.stepper .bar{flex:1;height:1.5px;background:var(--line)}

h1{
  font-family:var(--font-display);font-weight:800;
  font-size:clamp(1.35rem,3.4vw,1.65rem);letter-spacing:-.01em;line-height:1.15;
  margin-bottom:.4rem;
}
.lead{font-size:.92rem;color:var(--ink-soft);margin-bottom:1.4rem}
.lead code{font-family:var(--font-display);font-weight:700;color:var(--navy);font-size:.9em}

/* Alternador criar conta / entrar */
.mode-switch{
  display:grid;grid-template-columns:1fr 1fr;
  background:var(--sky);border:1px solid #C9DAEC;border-radius:999px;
  padding:.28rem;margin-bottom:1.5rem;
}
.mode-switch button{
  font-family:var(--font-display);font-weight:700;font-size:.88rem;
  padding:.6rem .5rem;border:none;border-radius:999px;cursor:pointer;
  background:transparent;color:var(--ink-soft);transition:all .18s ease;
  width:100%;
}
.mode-switch button[aria-pressed="true"]{background:var(--navy);color:var(--white);box-shadow:0 3px 10px rgba(16,54,92,.3)}

/* Campos */
.field{margin-bottom:1.15rem}
label{
  display:block;font-family:var(--font-display);font-weight:600;font-size:.85rem;
  margin-bottom:.35rem;
}
label .req{color:var(--red)}
.hint{font-size:.78rem;color:#8FA3B9;margin-top:.3rem}
input[type="text"],input[type="email"]{
  width:100%;font-family:var(--font-body);font-size:1rem;color:var(--ink);
  padding:.8rem .95rem;border:1.5px solid var(--line);border-radius:10px;
  background:var(--white);transition:border-color .15s ease, box-shadow .15s ease;
}
input[type="text"]{font-family:var(--font-display);letter-spacing:.06em}
input:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(16,54,92,.14)}
.field.invalid input{border-color:var(--red);box-shadow:0 0 0 3px rgba(200,16,46,.1)}
.error-msg{
  display:none;font-size:.8rem;color:var(--red);margin-top:.35rem;font-weight:500;
}
.field.invalid .error-msg{display:block}

.eligibility{
  display:flex;gap:.65rem;align-items:flex-start;
  background:var(--sky);border:1px solid #C9DAEC;border-radius:10px;
  padding:.8rem .95rem;font-size:.82rem;color:var(--ink-soft);
  margin-bottom:1.3rem;
}
.eligibility svg{flex:none;margin-top:.15rem}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  font-family:var(--font-display);font-weight:700;font-size:.95rem;
  padding:.9rem 1.5rem;border-radius:999px;border:none;cursor:pointer;
  transition:transform .15s ease, background .15s ease, box-shadow .15s ease;
  text-decoration:none;
}
.btn-primary{background:var(--gold);color:var(--navy-deep);width:100%;box-shadow:0 6px 18px rgba(232,164,0,.3)}
.btn-primary:hover{background:#F5B517;transform:translateY(-1px)}
.btn-primary:disabled{opacity:.6;cursor:wait;transform:none}
.btn-link{
  background:none;border:none;cursor:pointer;
  font-family:var(--font-body);font-size:.85rem;font-weight:600;color:var(--navy);
  text-decoration:underline;text-underline-offset:3px;padding:.2rem;
}
.btn-link:disabled{color:#8FA3B9;cursor:default;text-decoration:none}
.spinner{
  width:1rem;height:1rem;border-radius:50%;flex:none;
  border:2.5px solid rgba(8,31,58,.25);border-top-color:var(--navy-deep);
  animation:spin .7s linear infinite;display:none;
}
.btn.loading .spinner{display:inline-block}
@keyframes spin{to{transform:rotate(360deg)}}

/* ===== Ecrã OTP ===== */
.otp-dest{
  background:var(--sky);border:1px solid #C9DAEC;border-radius:10px;
  padding:.75rem .95rem;font-size:.85rem;color:var(--ink-soft);margin-bottom:1.5rem;
  display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;
}
.otp-dest b{color:var(--navy);font-family:var(--font-display);word-break:break-all}
.otp-boxes{
  display:flex;gap:.8rem;justify-content:center;margin:1.4rem 0 .6rem;
}
.otp-box{
  width:64px;height:76px;text-align:center;
  font-family:var(--font-display);font-weight:800;font-size:2.1rem;color:var(--navy);
  border:2px solid var(--line);border-radius:12px;background:var(--white);
  transition:border-color .15s ease, box-shadow .15s ease, transform .15s ease;
  caret-color:var(--gold);
}
.otp-box:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 4px rgba(16,54,92,.14)}
.otp-box.filled{border-color:var(--navy);background:#FAFCFE}
@media (max-width:400px){.otp-box{width:56px;height:68px;font-size:1.8rem}.otp-boxes{gap:.55rem}}
.otp-error{
  display:none;text-align:center;font-size:.85rem;font-weight:600;color:var(--red);
  margin-bottom:.4rem;
}
.otp-error.show{display:block}
.otp-boxes.shake{animation:shake .4s ease}
@keyframes shake{
  0%,100%{transform:translateX(0)}
  20%{transform:translateX(-8px)}40%{transform:translateX(8px)}
  60%{transform:translateX(-5px)}80%{transform:translateX(5px)}
}
.otp-actions{display:flex;justify-content:space-between;align-items:center;margin-top:1.2rem;flex-wrap:wrap;gap:.6rem}

/* ===== Ecrã de sucesso ===== */
.success-wrap{text-align:center;padding:.6rem 0}
.success-icon{
  width:74px;height:74px;border-radius:50%;
  background:var(--green-soft);border:1.5px solid #BFE3CD;
  display:grid;place-items:center;margin:0 auto 1.1rem;
}
.success-wrap h1{margin-bottom:.5rem}
.success-wrap p{font-size:.92rem;color:var(--ink-soft);max-width:38ch;margin:0 auto 1.5rem}

/* ===== Notificação simulada de email ===== */
.mock-email{
  position:fixed;right:18px;bottom:18px;z-index:60;
  width:min(340px,calc(100vw - 36px));
  background:var(--navy-deep);color:var(--white);
  border:1px solid var(--line-navy);border-radius:14px;
  box-shadow:0 18px 44px rgba(0,0,0,.35);
  padding:1rem 1.1rem;
  transform:translateY(20px);opacity:0;pointer-events:none;
  transition:transform .35s ease, opacity .35s ease;
}
.mock-email.show{transform:none;opacity:1;pointer-events:auto}
.mock-email .sim-tag{
  font-family:var(--font-display);font-size:.62rem;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;color:var(--navy-deep);
  background:var(--gold);padding:.18rem .55rem;border-radius:5px;display:inline-block;
  margin-bottom:.55rem;
}
.mock-email .from{font-size:.75rem;color:#9FB4CC;margin-bottom:.15rem}
.mock-email .subj{font-family:var(--font-display);font-weight:700;font-size:.9rem;margin-bottom:.45rem}
.mock-email .code{
  font-family:var(--font-display);font-weight:800;font-size:1.7rem;letter-spacing:.35em;
  color:var(--gold);
}
.mock-email .close{
  position:absolute;top:.55rem;right:.7rem;background:none;border:none;color:#9FB4CC;
  font-size:1.05rem;cursor:pointer;line-height:1;
}

/* ===== Rodapé (frame institucional) ===== */
.site-footer{background:#061529;color:#9FB4CC;padding:2.2rem 0;font-size:.85rem}
.footer-inner{display:flex;flex-wrap:wrap;gap:1.6rem;justify-content:space-between;align-items:flex-start}
.footer-brand{display:flex;gap:.75rem;align-items:center;color:var(--white)}
.footer-note{max-width:46ch}
.footer-inner code{font-family:var(--font-display);font-weight:700;color:var(--gold)}

.screen[hidden]{display:none}
.fade-in{animation:fadeIn .35s ease}
@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.visually-hidden{
  position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;
}

.auth-card--wide{width:min(560px,92vw)}
.form-alert{
  font-size:.85rem;font-weight:600;color:var(--red);
  background:#FCEBEE;border:1px solid #EFB4BE;border-radius:9px;
  padding:.65rem .85rem;margin-bottom:1.1rem;
}
.recaptcha-sec{
  display:flex;flex-direction:column;justify-content:center;align-items:center;
  margin:1.25rem auto;max-width:100%;
}
.recaptcha-sec .recaptcha-step,
.recaptcha-sec .g-recaptcha{display:inline-block}
.recaptcha-sec .error-msg{display:none;margin-top:.65rem;text-align:center}
.recaptcha-sec .error-msg.show{display:block}

/* ===== Formulário de candidatura (dados do BI + upload) ===== */
.bi-source{
  display:flex;gap:.6rem;align-items:flex-start;
  background:var(--sky);border:1px solid #C9DAEC;border-radius:10px;
  padding:.7rem .85rem;font-size:.78rem;color:var(--ink-soft);margin-bottom:1.1rem;
}
.bi-source svg{flex:none;margin-top:.1rem}
.bi-grid{display:grid;grid-template-columns:1fr;gap:.55rem}
@media (min-width:440px){.bi-grid{grid-template-columns:1fr 1fr}}
.bi-item{border:1px solid var(--line);border-radius:10px;padding:.6rem .75rem;background:#FAFCFE}
.bi-item.full{grid-column:1/-1}
.bi-item .k{font-size:.62rem;color:#8FA3B9;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.bi-item .v{font-family:var(--font-display);font-weight:700;font-size:.92rem;color:var(--navy);margin-top:.1rem}
.bi-item .age-tag{
  display:inline-block;font-size:.72rem;font-weight:800;
  border-radius:7px;padding:.12rem .5rem;margin-left:.35rem;vertical-align:1px;
}
.bi-item .age-tag.ok{background:var(--green-soft);color:var(--green);border:1px solid #BFE3CD}
.bi-item .tag-valid{color:var(--green);font-size:.78rem}
.upload-sec{margin-top:1.3rem}
.upload-sec h2{font-family:var(--font-display);font-weight:800;font-size:1rem;margin-bottom:.25rem}
.upload-sec .up-hint{font-size:.78rem;color:var(--ink-soft);margin-bottom:.7rem}
.dropzone{
  border:2px dashed var(--line);border-radius:12px;background:var(--white);
  padding:1.3rem 1rem;text-align:center;cursor:pointer;
  transition:border-color .15s ease, background .15s ease;
}
.dropzone:hover,.dropzone.drag{border-color:var(--navy);background:var(--sky)}
.dropzone .dz-icon{margin-bottom:.4rem}
.dropzone .dz-main{font-family:var(--font-display);font-weight:700;font-size:.88rem;color:var(--navy)}
.dropzone .dz-sub{font-size:.72rem;color:#8FA3B9;margin-top:.2rem}
.file-card{
  display:flex;align-items:center;gap:.7rem;
  background:var(--white);border:1px solid #BFE3CD;border-left:4px solid var(--green);
  border-radius:10px;padding:.65rem .8rem;
}
.file-card .f-icon{flex:none}
.file-card .f-name{font-family:var(--font-display);font-weight:700;font-size:.82rem;color:var(--navy);word-break:break-all}
.file-card .f-meta{font-size:.7rem;color:var(--green);font-weight:600}
.file-card .f-remove{
  margin-left:auto;flex:none;background:none;border:1.5px solid var(--line);border-radius:8px;
  color:var(--ink-soft);font-size:.9rem;line-height:1;padding:.3rem .5rem;cursor:pointer;
}
.file-card .f-remove:hover{border-color:var(--red);color:var(--red)}
.upload-error{
  display:none;font-size:.78rem;font-weight:600;color:var(--red);
  background:#FCEBEE;border:1px solid #EFB4BE;border-radius:9px;
  padding:.55rem .75rem;margin-top:.55rem;
}
.upload-error.show{display:block}

/* ===== diálogo de confirmação ===== */
.confirm-overlay{
  position:fixed;inset:0;z-index:120;display:grid;place-items:center;
  background:rgba(6,21,41,.62);backdrop-filter:blur(3px);padding:1rem;
  opacity:0;pointer-events:none;transition:opacity .22s ease;
}
.confirm-overlay.show{opacity:1;pointer-events:auto}
.confirm-box{
  width:min(430px,100%);background:var(--white);border-radius:var(--radius);
  box-shadow:0 24px 60px rgba(0,0,0,.4);overflow:hidden;
  transform:translateY(12px);transition:transform .22s ease;
}
.confirm-overlay.show .confirm-box{transform:none}
.confirm-body{padding:1.4rem 1.4rem 1.5rem;text-align:center}
.confirm-icon{
  width:56px;height:56px;border-radius:50%;background:var(--gold-soft);
  border:1.5px solid #F0D089;display:grid;place-items:center;margin:0 auto .8rem;
}
.confirm-body h2{font-family:var(--font-display);font-weight:800;font-size:1.1rem;margin-bottom:.45rem}
.confirm-body p{font-size:.85rem;color:var(--ink-soft);max-width:34ch;margin:0 auto}
.confirm-file{
  font-family:var(--font-display);font-weight:700;font-size:.8rem;color:var(--navy);
  background:var(--sky);border:1px solid #C9DAEC;border-radius:9px;
  padding:.45rem .8rem;display:inline-block;margin-top:.7rem;word-break:break-all;
}
.confirm-actions{display:flex;gap:.6rem;margin-top:1.2rem}
.confirm-actions .btn{flex:1;padding:.75rem 1rem;font-size:.88rem;width:auto}
.btn-secondary{background:var(--white);color:var(--navy);border:1.5px solid var(--line)}
.btn-secondary:hover{border-color:var(--navy)}

/* ===== ecrã final ===== */
.final-steps{margin-top:1.2rem;display:flex;flex-direction:column;gap:.55rem;text-align:left}
.final-step{
  display:flex;gap:.65rem;align-items:flex-start;
  background:#FAFCFE;border:1px solid var(--line);border-radius:10px;
  padding:.7rem .85rem;font-size:.82rem;color:var(--ink-soft);
}
.final-step svg{flex:none;margin-top:.15rem}
.final-step b{color:var(--navy)}
.final-ref{
  margin-top:1rem;font-size:.78rem;color:#8FA3B9;
}
.final-ref code{font-family:var(--font-display);font-weight:700;color:var(--navy)}
#main-candidatura{-webkit-user-select:none;user-select:none}
#main-candidatura #final-ref,
#main-candidatura #final-ref *{-webkit-user-select:text;user-select:text}

/* ===== selecção de órgão ===== */
.orgao-sec{margin-bottom:1.3rem}
.orgao-sec h2{font-family:var(--font-display);font-weight:800;font-size:1rem;margin-bottom:.25rem}
select#orgao{
  width:100%;font-family:var(--font-body);font-size:.92rem;color:var(--ink);
  padding:.8rem 2.4rem .8rem .95rem;border:1.5px solid var(--line);border-radius:10px;background:var(--white);
  appearance:none;-webkit-appearance:none;
  background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" stroke="%2310365C" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round" d="M6 9l6 6 6-6"/></svg>');
  background-repeat:no-repeat;background-position:right .9rem center;background-size:1rem;
}
select#orgao:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(16,54,92,.14)}
select#orgao:invalid{color:#8FA3B9}
.orgao-sec.invalid select{border-color:var(--red);box-shadow:0 0 0 3px rgba(200,16,46,.1)}
.orgao-sec .error-msg{display:none;font-size:.8rem;color:var(--red);margin-top:.35rem;font-weight:500}
.orgao-sec.invalid .error-msg{display:block}

body.modal-open{overflow:hidden}

/* ===== modo manual (falha da API do BI) ===== */
.api-banner{
  display:none;gap:.6rem;align-items:flex-start;
  background:#FDF3F2;border:1px solid #F0C4C0;border-left:4px solid var(--gov-red,#D93025);
  border-radius:6px;padding:.75rem .9rem;font-size:.82rem;color:#7A2E28;margin-bottom:1rem;
}
.api-banner.show{display:flex}
.api-banner svg{flex:none;margin-top:.1rem}
.api-banner b{color:#B3261E}
.manual-grid{display:none;grid-template-columns:1fr;gap:.7rem;margin-bottom:1.1rem}
@media (min-width:440px){.manual-grid{grid-template-columns:1fr 1fr}}
.manual-grid.show{display:grid}
.bi-grid.hide{display:none}
.m-item{display:flex;flex-direction:column}
.m-item.full{grid-column:1/-1}
.m-item label{font-size:.82rem;margin-bottom:.3rem}
.m-item input,.m-item select{
  width:100%;border:1px solid var(--gov-border,#D6DBE1);border-radius:4px;
  padding:.62rem .75rem;font-size:.92rem;color:var(--gov-text,#333B45);background:#fff;
  font-family:var(--gov-font,inherit);
}
.m-item input:focus,.m-item select:focus{outline:none;border-color:var(--gov-link,#2E5AAC);box-shadow:0 0 0 3px rgba(46,90,172,.15)}
.m-item.invalid input,.m-item.invalid select{border-color:var(--gov-red,#D93025);box-shadow:0 0 0 3px rgba(217,48,37,.12)}
.m-item select{
  appearance:none;-webkit-appearance:none;
  background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" stroke="%2317325B" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round" d="M6 9l6 6 6-6"/></svg>');
  background-repeat:no-repeat;background-position:right .8rem center;background-size:.9rem;
}
.m-tags{margin-top:.35rem;font-size:.78rem;min-height:1.2rem}
.manual-error{display:none;font-size:.82rem;font-weight:600;color:var(--gov-red,#D93025);margin-top:.6rem}
.manual-error.show{display:block}
.valid-seal{font-weight:700}
.valid-seal.ok{color:var(--green)}
.valid-seal.bad{color:#B3261E}
.api-test{
  margin:0 0 1.1rem;border:1.5px dashed var(--gov-border,#D6DBE1);border-radius:6px;
  background:var(--gov-panel,#F5F7FA);padding:.65rem .85rem;
  display:flex;gap:.7rem;align-items:center;flex-wrap:wrap;
}
.api-test .tag{
  font-family:var(--gov-font,inherit);font-size:.6rem;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:#fff;background:var(--gov-title,#17325B);
  padding:.18rem .5rem;border-radius:4px;
}
.api-test button{
  font-family:var(--gov-font,inherit);font-weight:600;font-size:.78rem;
  border:1px solid var(--gov-border,#D6DBE1);background:#fff;color:var(--gov-title,#17325B);
  border-radius:5px;padding:.42rem .8rem;cursor:pointer;
}
.api-test button:hover{border-color:var(--gov-link,#2E5AAC);color:var(--gov-link,#2E5AAC)}

/* ================================================================
   GOV SKIN — design footprint estilo portal governamental clássico
   ================================================================ */
:root{
  --gov-font:"Segoe UI",-apple-system,BlinkMacSystemFont,Roboto,"Helvetica Neue",Arial,sans-serif;
  --gov-title:#17325B;
  --gov-link:#2E5AAC;
  --gov-border:#D6DBE1;
  --gov-border-soft:#E7EAEE;
  --gov-text:#333B45;
  --gov-muted:#6B7280;
  --gov-red:#D93025;
  --gov-panel:#F5F7FA;
}
.auth-main:focus-visible{outline:none}
.auth-main :focus-visible{outline:3px solid rgba(46,90,172,.55);outline-offset:2px}

.auth-main{
  display:block;background: transparent;
  padding:1.6rem 0 3.2rem;
}
.gov-head{width:min(1080px,94%);margin:0 auto 1.4rem}
.breadcrumb{font-family:var(--gov-font);font-size:.86rem;color:var(--gov-muted)}
.breadcrumb a{color:var(--gov-link);text-decoration:none}
.breadcrumb a:hover{text-decoration:underline}
.breadcrumb .sep{margin:0 .45rem;color:#9AA3AE}
.breadcrumb .current{color:#4B5563}
.page-title{
  font-family:var(--gov-font);font-weight:700;color:var(--gov-title);
  font-size:clamp(1.7rem,3.6vw,2.15rem);letter-spacing:0;margin-top:.5rem;
}

.auth-main .auth-card{
  width:min(640px,94vw);margin:0 auto;
  border:1px solid var(--gov-border-soft);border-radius:6px;
  box-shadow:none;background:#fff;
}
.auth-main .auth-card > .flag-rule{display:none}
.auth-main .auth-body{padding:1.8rem clamp(1.3rem,4vw,2.1rem) 2rem}

.auth-main, .auth-main input, .auth-main select, .auth-main textarea, .auth-main button{
  font-family:var(--gov-font);
}
.auth-main .screen h1{
  font-family:var(--gov-font);font-weight:600;color:var(--gov-title);
  font-size:1.3rem;letter-spacing:0;
}
.auth-main .lead{color:var(--gov-text);font-size:.92rem}
.auth-main .lead code{font-family:var(--gov-font);font-weight:700;color:var(--gov-title)}

.auth-main .stepper{color:#9AA3AE;font-family:var(--gov-font);letter-spacing:.06em}
.auth-main .stepper .dot{border-color:var(--gov-border);color:#9AA3AE;border-radius:50%}
.auth-main .stepper .st.active{color:var(--gov-title)}
.auth-main .stepper .st.active .dot{background:var(--gov-title);border-color:var(--gov-title)}
.auth-main .stepper .st.done .dot{background:#1D7A46;border-color:#1D7A46}
.auth-main .stepper .bar{background:var(--gov-border-soft)}

.auth-main label{
  font-family:var(--gov-font);font-weight:500;color:var(--gov-title);
  font-size:.95rem;margin-bottom:.4rem;
}
.auth-main label .req, .auth-main .req{color:var(--gov-red)}
.auth-main input[type="text"], .auth-main input[type="email"], .auth-main input[type="date"], .auth-main select#orgao, .auth-main textarea{
  border:1px solid var(--gov-border);border-radius:4px;
  font-size:.95rem;color:var(--gov-text);letter-spacing:0;
  padding:.72rem .85rem;
}
.auth-main input:focus, .auth-main select#orgao:focus, .auth-main textarea:focus{
  border-color:var(--gov-link);box-shadow:0 0 0 3px rgba(46,90,172,.15);
}
.auth-main .field.invalid input{border-color:var(--gov-red);box-shadow:0 0 0 3px rgba(217,48,37,.12)}
.auth-main .orgao-sec.invalid select{border-color:var(--gov-red);box-shadow:0 0 0 3px rgba(217,48,37,.12)}
.auth-main .hint{font-style:italic;color:var(--gov-muted);font-size:.8rem}
.auth-main .error-msg{color:var(--gov-red)}
.auth-main .orgao-sec h2, .auth-main .upload-sec h2{
  font-family:var(--gov-font);font-weight:500;color:var(--gov-title);font-size:.95rem;
}
.auth-main .up-hint{font-style:italic;color:var(--gov-muted);font-size:.8rem}

.auth-main .eligibility, .auth-main .otp-dest, .auth-main .bi-source{
  background:var(--gov-panel);border:1px solid var(--gov-border-soft);border-radius:6px;
  color:var(--gov-text);
}

.auth-main .btn, .confirm-overlay .btn{
  border-radius:5px;box-shadow:none;
  font-family:var(--gov-font);font-weight:600;letter-spacing:0;
}
.auth-main .btn-primary, .confirm-overlay .btn-primary{
  background:var(--gov-title);color:#fff;
}
.auth-main .btn-primary:hover, .confirm-overlay .btn-primary:hover{
  background:#1E4173;transform:none;
}
.auth-main .btn-primary:disabled{background:#8E9AAB;opacity:1}
.auth-main .btn-link{color:var(--gov-link);font-family:var(--gov-font)}
.confirm-overlay .btn-secondary, .auth-main .btn-secondary{
  border-radius:5px;border:1px solid var(--gov-border);color:var(--gov-title);
  font-family:var(--gov-font);font-weight:600;
}
.auth-main .spinner, .confirm-overlay .spinner{border-color:rgba(255,255,255,.35);border-top-color:#fff}

.auth-main .otp-box{
  border:1px solid var(--gov-border);border-radius:5px;color:var(--gov-title);
  font-family:var(--gov-font);caret-color:var(--gov-link);
}
.auth-main .otp-box:focus{border-color:var(--gov-link);box-shadow:0 0 0 3px rgba(46,90,172,.18)}
.auth-main .otp-box.filled{border-color:var(--gov-title);background:#F8FAFC}
.auth-main .otp-error{color:var(--gov-red)}

.auth-main .bi-item{border:1px solid var(--gov-border-soft);border-radius:4px;background:#fff}
.auth-main .bi-item .k{color:var(--gov-muted);letter-spacing:.05em}
.auth-main .bi-item .v{font-family:var(--gov-font);font-weight:600;color:var(--gov-title)}

.auth-main .dropzone{border:2px dashed var(--gov-border);border-radius:6px}
.auth-main .dropzone:hover,.auth-main .dropzone.drag{border-color:var(--gov-link);background:var(--gov-panel)}
.auth-main .dropzone .dz-main{font-family:var(--gov-font);color:var(--gov-title)}
.auth-main .file-card{border-radius:5px}
.auth-main .file-card .f-name{font-family:var(--gov-font)}
.auth-main .upload-error{border-radius:5px}

.auth-main .success-wrap h1{font-family:var(--gov-font);color:var(--gov-title)}
.auth-main .final-step{border:1px solid var(--gov-border-soft);border-radius:5px;color:var(--gov-text)}
.auth-main .final-step b, .auth-main .final-step code{color:var(--gov-title);font-family:var(--gov-font);font-weight:700}
.auth-main .final-ref code{font-family:var(--gov-font);color:var(--gov-title)}

.confirm-box{border-radius:6px;border:1px solid var(--gov-border-soft)}
.confirm-box .flag-rule{display:none}
.confirm-body h2{font-family:var(--gov-font);color:var(--gov-title);font-weight:600}
.confirm-summary, .confirm-file{font-family:var(--gov-font)}

.auth-main .auth-card--wide{width:min(640px,94vw)}





















:root{
    --ink:#0B1F35;
    --ink-soft:#3B5068;
    --navy:#10365C;
    --navy-deep:#081F3A;
    --sky:#EAF1F8;
    --paper:#F7F9FB;
    --white:#FFFFFF;
    --gold:#E8A400;
    --gold-soft:#FFF4DA;
    --red:#C8102E;
    --green:#1D7A46;
    --green-soft:#E8F5EE;
    --line:#D6DFE8;
    --line-navy:#27476E;
    --radius:14px;
    --shadow:0 10px 30px rgba(11,31,53,.10);
    --font-display:"Archivo",system-ui,sans-serif;
    --font-body:"Public Sans",system-ui,sans-serif;
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth}
  @media (prefers-reduced-motion:reduce){
    *,*::before,*::after{animation:none!important;transition:none!important}
  }
  body{
    font-family:var(--font-body);
    color:var(--ink);
    background:var(--paper);
    line-height:1.6;font-size:16px;
    -webkit-font-smoothing:antialiased;
    min-height:100vh;display:flex;flex-direction:column;
  }
  .container{width:min(1120px,92%);margin-inline:auto}
  :focus-visible{outline:3px solid var(--gold);outline-offset:2px;border-radius:4px}
  .flag-rule{height:5px;background:linear-gradient(90deg,var(--red) 0 33.4%,#111 33.4% 66.7%,var(--gold) 66.7% 100%)}
  
  /* ===== Cabeçalho (frame do logótipo) ===== */
  .site-header{
    background:rgba(8,31,58,.97);
    color:var(--white);
    border-bottom:1px solid var(--line-navy);
  }
  .header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:68px}
  .brand{display:flex;align-items:center;gap:.75rem;text-decoration:none;color:var(--white)}
  .crest{
    width:42px;height:42px;flex:none;display:grid;place-items:center;
    background:linear-gradient(160deg,#14406C,#0A2645);
    border:1px solid var(--line-navy);border-radius:10px;
  }
  .crest svg{width:24px;height:24px}
  .brand-text{line-height:1.15}
  .brand-text .rep{font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:#9FB4CC;font-weight:600}
  .brand-text .min{font-family:var(--font-display);font-weight:700;font-size:.95rem}
  .header-portal{
    font-family:var(--font-display);font-weight:700;font-size:.82rem;color:var(--gold);
    border:1px solid rgba(232,164,0,.4);background:rgba(232,164,0,.08);
    padding:.42rem .9rem;border-radius:999px;white-space:nowrap;
  }
  @media (max-width:520px){.header-portal{display:none}}
  
  /* ===== Frame central ===== */
  .auth-main{
    flex:1;display:grid;place-items:center;
    padding:clamp(2.2rem,6vw,4.5rem) 0;
    background: transparent;
  }
  .auth-card{
    width:min(480px,92vw);
    background:var(--white);
    border:1px solid var(--line);
    border-radius:var(--radius);
    box-shadow:var(--shadow);
    overflow:hidden;
  }
  .auth-card .flag-rule{height:4px}
  .auth-body{padding:clamp(1.6rem,4vw,2.2rem)}
  
  /* Indicador de passos (sequência real: dados → verificação) */
  .stepper{
    display:flex;align-items:center;gap:.6rem;
    font-family:var(--font-display);font-size:.7rem;font-weight:700;
    letter-spacing:.1em;text-transform:uppercase;color:#8FA3B9;
    margin-bottom:1.4rem;
  }
  .stepper .st{display:inline-flex;align-items:center;gap:.45rem}
  .stepper .dot{
    width:1.5rem;height:1.5rem;border-radius:50%;
    display:grid;place-items:center;
    border:1.5px solid var(--line);font-size:.68rem;color:#8FA3B9;background:var(--white);
  }
  .stepper .st.active{color:var(--navy)}
  .stepper .st.active .dot{background:var(--navy);border-color:var(--navy);color:var(--white)}
  .stepper .st.done .dot{background:var(--green);border-color:var(--green);color:var(--white)}
  .stepper .bar{flex:1;height:1.5px;background:var(--line)}
  
  h1{
    font-family:var(--font-display);font-weight:800;
    font-size:clamp(1.35rem,3.4vw,1.65rem);letter-spacing:-.01em;line-height:1.15;
    margin-bottom:.4rem;
  }
  .lead{font-size:.92rem;color:var(--ink-soft);margin-bottom:1.4rem}
  .lead code{font-family:var(--font-display);font-weight:700;color:var(--navy);font-size:.9em}
  
  /* Alternador criar conta / entrar */
  .mode-switch{
    display:grid;grid-template-columns:1fr 1fr;
    background:var(--sky);border:1px solid #C9DAEC;border-radius:999px;
    padding:.28rem;margin-bottom:1.5rem;
  }
  .mode-switch button{
    font-family:var(--font-display);font-weight:700;font-size:.88rem;
    padding:.6rem .5rem;border:none;border-radius:999px;cursor:pointer;
    background:transparent;color:var(--ink-soft);transition:all .18s ease;
  }
  .mode-switch button[aria-pressed="true"]{background:var(--navy);color:var(--white);box-shadow:0 3px 10px rgba(16,54,92,.3)}
  
  /* Campos */
  .field{margin-bottom:1.15rem}
  label{
    display:block;font-family:var(--font-display);font-weight:600;font-size:.85rem;
    margin-bottom:.35rem;
  }
  label .req{color:var(--red)}
  .hint{font-size:.78rem;color:#8FA3B9;margin-top:.3rem}
  input[type="text"],input[type="email"]{
    width:100%;font-family:var(--font-body);font-size:1rem;color:var(--ink);
    padding:.8rem .95rem;border:1.5px solid var(--line);border-radius:10px;
    background:var(--white);transition:border-color .15s ease, box-shadow .15s ease;
  }
  input[type="text"]{font-family:var(--font-display);letter-spacing:.06em}
  input:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(16,54,92,.14)}
  .field.invalid input{border-color:var(--red);box-shadow:0 0 0 3px rgba(200,16,46,.1)}
  .error-msg{
    display:none;font-size:.8rem;color:var(--red);margin-top:.35rem;font-weight:500;
  }
  .field.invalid .error-msg{display:block}
  
  .eligibility{
    display:flex;gap:.65rem;align-items:flex-start;
    background:var(--sky);border:1px solid #C9DAEC;border-radius:10px;
    padding:.8rem .95rem;font-size:.82rem;color:var(--ink-soft);
    margin-bottom:1.3rem;
  }
  .eligibility svg{flex:none;margin-top:.15rem}
  
  .btn{
    display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
    font-family:var(--font-display);font-weight:700;font-size:.95rem;
    padding:.9rem 1.5rem;border-radius:999px;border:none;cursor:pointer;
    transition:transform .15s ease, background .15s ease, box-shadow .15s ease;
    text-decoration:none;
  }
  .btn-primary{background:var(--gold);color:var(--navy-deep);width:100%;box-shadow:0 6px 18px rgba(232,164,0,.3)}
  .btn-primary:hover{background:#F5B517;transform:translateY(-1px)}
  .btn-primary:disabled{opacity:.6;cursor:wait;transform:none}
  .btn-link{
    background:none;border:none;cursor:pointer;
    font-family:var(--font-body);font-size:.85rem;font-weight:600;color:var(--navy);
    text-decoration:underline;text-underline-offset:3px;padding:.2rem;
  }
  .btn-link:disabled{color:#8FA3B9;cursor:default;text-decoration:none}
  .spinner{
    width:1rem;height:1rem;border-radius:50%;flex:none;
    border:2.5px solid rgba(8,31,58,.25);border-top-color:var(--navy-deep);
    animation:spin .7s linear infinite;display:none;
  }
  .btn.loading .spinner{display:inline-block}
  @keyframes spin{to{transform:rotate(360deg)}}
  
  /* ===== Ecrã OTP ===== */
  .otp-dest{
    background:var(--sky);border:1px solid #C9DAEC;border-radius:10px;
    padding:.75rem .95rem;font-size:.85rem;color:var(--ink-soft);margin-bottom:1.5rem;
    display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;
  }
  .otp-dest b{color:var(--navy);font-family:var(--font-display);word-break:break-all}
  .otp-boxes{
    display:flex;gap:.8rem;justify-content:center;margin:1.4rem 0 .6rem;
  }
  .otp-box{
    width:64px;height:76px;text-align:center;
    font-family:var(--font-display);font-weight:800;font-size:2.1rem;color:var(--navy);
    border:2px solid var(--line);border-radius:12px;background:var(--white);
    transition:border-color .15s ease, box-shadow .15s ease, transform .15s ease;
    caret-color:var(--gold);
  }
  .otp-box:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 4px rgba(16,54,92,.14)}
  .otp-box.filled{border-color:var(--navy);background:#FAFCFE}
  @media (max-width:400px){.otp-box{width:56px;height:68px;font-size:1.8rem}.otp-boxes{gap:.55rem}}
  .otp-error{
    display:none;text-align:center;font-size:.85rem;font-weight:600;color:var(--red);
    margin-bottom:.4rem;
  }
  .otp-error.show{display:block}
  .otp-boxes.shake{animation:shake .4s ease}
  @keyframes shake{
    0%,100%{transform:translateX(0)}
    20%{transform:translateX(-8px)}40%{transform:translateX(8px)}
    60%{transform:translateX(-5px)}80%{transform:translateX(5px)}
  }
  .otp-actions{display:flex;justify-content:space-between;align-items:center;margin-top:1.2rem;flex-wrap:wrap;gap:.6rem}
  
  /* ===== Ecrã de sucesso ===== */
  .success-wrap{text-align:center;padding:.6rem 0}
  .success-icon{
    width:74px;height:74px;border-radius:50%;
    background:var(--green-soft);border:1.5px solid #BFE3CD;
    display:grid;place-items:center;margin:0 auto 1.1rem;
  }
  .success-wrap h1{margin-bottom:.5rem}
  .success-wrap p{font-size:.92rem;color:var(--ink-soft);max-width:38ch;margin:0 auto 1.5rem}
  
  /* ===== Notificação simulada de email ===== */
  .mock-email{
    position:fixed;right:18px;bottom:18px;z-index:60;
    width:min(340px,calc(100vw - 36px));
    background:var(--navy-deep);color:var(--white);
    border:1px solid var(--line-navy);border-radius:14px;
    box-shadow:0 18px 44px rgba(0,0,0,.35);
    padding:1rem 1.1rem;
    transform:translateY(20px);opacity:0;pointer-events:none;
    transition:transform .35s ease, opacity .35s ease;
  }
  .mock-email.show{transform:none;opacity:1;pointer-events:auto}
  .mock-email .sim-tag{
    font-family:var(--font-display);font-size:.62rem;font-weight:700;
    letter-spacing:.14em;text-transform:uppercase;color:var(--navy-deep);
    background:var(--gold);padding:.18rem .55rem;border-radius:5px;display:inline-block;
    margin-bottom:.55rem;
  }
  .mock-email .from{font-size:.75rem;color:#9FB4CC;margin-bottom:.15rem}
  .mock-email .subj{font-family:var(--font-display);font-weight:700;font-size:.9rem;margin-bottom:.45rem}
  .mock-email .code{
    font-family:var(--font-display);font-weight:800;font-size:1.7rem;letter-spacing:.35em;
    color:var(--gold);
  }
  .mock-email .close{
    position:absolute;top:.55rem;right:.7rem;background:none;border:none;color:#9FB4CC;
    font-size:1.05rem;cursor:pointer;line-height:1;
  }
  
  /* ===== Rodapé (frame institucional) ===== */
  .site-footer{background:#061529;color:#9FB4CC;padding:2.2rem 0;font-size:.85rem}
  .footer-inner{display:flex;flex-wrap:wrap;gap:1.6rem;justify-content:space-between;align-items:flex-start}
  .footer-brand{display:flex;gap:.75rem;align-items:center;color:var(--white)}
  .footer-note{max-width:46ch}
  .footer-inner code{font-family:var(--font-display);font-weight:700;color:var(--gold)}
  
  .screen[hidden]{display:none}
  .fade-in{animation:fadeIn .35s ease}
  @keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
  .visually-hidden{
    position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;
  }

body .main {
  margin-top: 25px;
  min-height: calc(60vh - 25px);
}

.bg-primary {
  background-color: #002E64 !important;
}

.text-primary {
  color: #002E64 !important;
}


.separador label {
  display: inline-block;
}

.qrcode-detalhe-pedido, .qrcode-detalhe-pedido img {
  text-align: center;
  margin: 0 auto;
}

/* Protecção de conteúdo — seleção/cópia (campos de formulário mantêm-se editáveis) */
body {
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}
input, textarea, select, [contenteditable="true"] {
  -webkit-user-select: text;
  user-select: text;
  -webkit-touch-callout: default;
}
