/* candidaturas.vrrp.pt — mesmo aspeto do www.vrrp.pt (10/11/2026) */
:root{
  --bg:#09090b;
  --ink:#e8e9ed; --ink-2:#c3c4cb; --ink-dim:#8e909a;
  --line:rgba(232,233,237,.12);
  --acc:#1e8046; --acc-2:#2ba15a;
  --panel:rgba(19,19,24,.92); --campo:#131318; --pline:#31313a;
  --perigo:#d9534f; --aviso:#e0a53a; --ok:#7bd88f;
  --discord:#5865f2;
  --f-disp:'IBM Plex Sans Condensed',Arial Narrow,sans-serif;
  --f-text:'IBM Plex Sans',system-ui,sans-serif;
  --f-mono:'IBM Plex Mono',ui-monospace,monospace;
  --gut:clamp(16px,4vw,64px);
  color-scheme:dark;
}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;background:var(--bg);color:var(--ink);font-family:var(--f-text);font-weight:300;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
a:focus-visible,button:focus-visible{outline:1px solid var(--ink);outline-offset:4px}
img{display:block;max-width:100%}
.cap{font-family:var(--f-disp);font-weight:500;font-size:12px;letter-spacing:.34em;text-transform:uppercase;color:var(--ink-dim)}
.wrap{width:100%;max-width:1320px;margin:0 auto;padding-inline:var(--gut)}

body::after{content:"";position:fixed;inset:-50%;pointer-events:none;z-index:100;opacity:.06;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

.nav{position:fixed;top:0;left:0;right:0;z-index:50;padding-top:env(safe-area-inset-top,0px);transition:background 400ms ease-out,border-color 400ms ease-out;border-bottom:1px solid transparent}
.nav.solid{background:rgba(9,9,11,.9);border-bottom-color:var(--line)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;height:88px}
.nav-mark{width:32px}
.nav-links{display:flex;gap:44px}
.nav-links a{font-family:var(--f-disp);font-weight:500;font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--ink-2);transition:color 160ms ease-out}
.nav-links a:hover,.nav-links a[aria-current]{color:var(--ink)}
.nav-links a[aria-current]{box-shadow:inset 0 -1px 0 var(--acc-2);padding-bottom:6px}

main{flex:1;padding-block:clamp(128px,20vh,176px) clamp(56px,9vh,96px)}
h1{margin:0;font-family:var(--f-disp);font-weight:700;font-size:clamp(46px,7vw,116px);line-height:.9;text-transform:uppercase;letter-spacing:-.01em}
h1.menor{font-size:clamp(38px,5vw,72px);margin-top:12px}
h2.titulo{margin:12px 0 0;font-family:var(--f-disp);font-weight:600;font-size:clamp(24px,2.4vw,34px);text-transform:uppercase}
.lead{margin:22px 0 0;max-width:640px;font-size:clamp(17px,1.4vw,20px);line-height:1.65;color:var(--ink-2)}
.bloco{margin-top:clamp(40px,6vh,64px);padding-top:clamp(28px,4vh,40px);border-top:1px solid var(--line)}
.nota{margin:16px 0 0;font-size:14px;color:var(--ink-dim);line-height:1.6;max-width:560px}
.a-carregar{min-height:40vh}

.aviso-topo{margin:0 0 28px;padding:12px 16px;max-width:640px;background:var(--panel);border:1px solid var(--line);border-left:2px solid var(--aviso);border-radius:3px;font-size:15px;line-height:1.55;color:var(--ink-2)}
.aviso-topo.erro{border-left-color:var(--perigo)}

.passos{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px clamp(24px,4vw,64px);counter-reset:p}
.passos li{counter-increment:p}
.passos li::before{content:"0" counter(p);display:block;font-family:var(--f-mono);font-size:13px;color:var(--acc-2);margin-bottom:10px}
.passos b{display:block;font-family:var(--f-disp);font-weight:600;font-size:clamp(20px,1.8vw,26px);text-transform:uppercase;letter-spacing:.02em}
.passos p{margin:10px 0 0;font-size:16px;line-height:1.6;color:var(--ink-2);max-width:360px}

.btn{display:inline-flex;align-items:center;gap:12px;cursor:pointer;border:1px solid var(--acc-2);background:transparent;color:var(--ink);border-radius:3px;padding:14px 22px;font-family:var(--f-disp);font-weight:600;font-size:13px;letter-spacing:.2em;text-transform:uppercase;transition:background 140ms ease-out,border-color 140ms ease-out,opacity 140ms ease-out}
.btn:hover{background:rgba(43,161,90,.18)}
.btn.cheio{background:var(--acc);border-color:var(--acc)}
.btn.cheio:hover{background:var(--acc-2);border-color:var(--acc-2)}
.btn.discord{border-color:var(--discord);background:var(--discord)}
.btn.discord:hover{background:#4752c4;border-color:#4752c4}
.btn[disabled]{opacity:.5;cursor:default}
.btn svg{width:20px;height:20px;fill:currentColor}
.ligacao{background:none;border:0;padding:0;cursor:pointer;color:var(--ink-dim);font:inherit;font-size:12px;text-decoration:underline;text-underline-offset:3px}
.ligacao:hover{color:var(--ink)}

/* ficha */
.ficha{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:clamp(32px,5vw,80px)}
.lado{position:sticky;top:112px;align-self:start}
.quem{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--panel);border:1px solid var(--line);border-left:2px solid var(--acc);border-radius:3px}
.quem .av{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#5865f2,#2ba15a);flex:none;object-fit:cover}
.quem b{display:block;font-weight:500;font-size:15px;overflow-wrap:anywhere}
.quem small{font-size:13px;color:var(--ink-dim)}
.quem .ligacao{margin-left:auto}
.progresso{margin-top:20px;padding:18px 18px 14px;background:var(--panel);border:1px solid var(--line);border-left:2px solid var(--acc);border-radius:3px}
.progresso .num{display:block;margin-top:8px;font-family:var(--f-mono);font-weight:500;font-size:15px;color:var(--ink)}
.barra{margin-top:14px;height:4px;background:var(--pline);border-radius:3px;overflow:hidden}
.barra span{display:block;height:100%;width:0;background:var(--acc-2);transition:width 160ms ease-out}
.contagem{margin:8px 0 0;font-family:var(--f-mono);font-size:12px;color:var(--ink-dim)}
.secoes{list-style:none;margin:14px 0 0;padding:0;border-top:1px solid var(--line)}
.secoes button{all:unset;box-sizing:border-box;display:flex;width:100%;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);cursor:pointer;font-size:14px;color:var(--ink-2);transition:color 140ms ease-out}
.secoes button:hover{color:var(--ink)}
.secoes button:focus-visible{outline:1px solid var(--ink);outline-offset:2px}
.secoes .est{font-family:var(--f-mono);font-size:12px;color:var(--ink-dim)}
.secoes li.feito button{color:var(--ink)}
.secoes li.feito .est{color:var(--acc-2)}
.guardado{margin-top:14px;font-family:var(--f-mono);font-size:12px;color:var(--ink-dim)}
.guardado.mal{color:var(--perigo)}

form{display:grid;gap:40px}
fieldset{margin:0;padding:0;border:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
legend{padding:0;margin-bottom:18px;font-family:var(--f-disp);font-weight:600;font-size:clamp(20px,1.8vw,26px);text-transform:uppercase;letter-spacing:.02em}
legend small{display:block;margin-top:6px;font-family:var(--f-text);font-weight:300;font-size:14px;text-transform:none;letter-spacing:0;color:var(--ink-dim)}
.campo{display:grid;gap:8px;grid-column:1 / -1;align-content:start}
.campo.meia{grid-column:auto}
.campo>label,.campo>.lbl{font-size:15px;font-weight:400;color:var(--ink);line-height:1.45}
.campo .opc{color:var(--ink-dim);font-weight:300}
.campo .dica{font-size:13px;color:var(--ink-dim);line-height:1.5}
.campo .falta{font-size:13px;color:var(--perigo)}
.campo.mal input,.campo.mal textarea,.campo.mal .op label{border-color:var(--perigo)}
input[type=text],input[type=number],textarea{width:100%;background:var(--campo);border:1px solid var(--pline);border-radius:3px;color:var(--ink);font:inherit;font-size:16px;font-weight:300;padding:12px 14px;transition:border-color 140ms ease-out}
textarea{min-height:130px;resize:vertical;line-height:1.6}
textarea.grande{min-height:220px}
input:focus,textarea:focus{outline:none;border-color:var(--acc-2)}
input::placeholder,textarea::placeholder{color:#5d5f68}
.tres{display:grid;gap:8px}
.tres .linha3{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:8px}
.tres .n{font-family:var(--f-mono);font-size:13px;color:var(--acc-2)}
.contador{justify-self:end;font-family:var(--f-mono);font-size:12px;color:var(--ink-dim)}
.contador.cheio{color:var(--aviso)}
.op{display:flex;flex-wrap:wrap;gap:8px}
.op label{position:relative;cursor:pointer;padding:9px 14px;border:1px solid var(--pline);border-radius:3px;font-size:14px;color:var(--ink-2);transition:border-color 140ms ease-out,background 140ms ease-out}
.op input{position:absolute;opacity:0;pointer-events:none}
.op label:has(input:checked){border-color:var(--acc-2);background:rgba(43,161,90,.14);color:var(--ink)}
.op label:has(input:focus-visible){outline:1px solid var(--ink);outline-offset:3px}
.check{display:flex;gap:12px;align-items:flex-start;font-size:15px;line-height:1.55;color:var(--ink-2);cursor:pointer}
.check input{margin-top:4px;accent-color:var(--acc-2);width:16px;height:16px;flex:none}
.enviar{display:flex;flex-wrap:wrap;align-items:center;gap:18px;padding-top:28px;border-top:1px solid var(--line)}
.enviar .nota{margin:0}
.erro-envio{flex-basis:100%;margin:0;color:var(--perigo);font-size:14px}

/* estados */
.estado{max-width:760px}
.selo-grande{display:inline-flex;align-items:center;gap:10px;padding:6px 12px;border-radius:3px;font-family:var(--f-disp);font-weight:600;font-size:12px;letter-spacing:.24em;text-transform:uppercase}
.selo-grande.analise{border:1px solid var(--aviso);color:var(--aviso)}
.selo-grande.aceite{border:1px solid var(--ok);color:var(--ok)}
.selo-grande.recusa{border:1px solid var(--perigo);color:var(--perigo)}
.estado h1{margin-top:22px}
.tl{list-style:none;margin:34px 0 34px;padding:0;border-left:1px solid var(--line)}
.tl li{position:relative;padding:0 0 22px 24px;font-size:15px;line-height:1.55;color:var(--ink-2)}
.tl li::before{content:"";position:absolute;left:-5px;top:6px;width:9px;height:9px;border-radius:50%;background:var(--pline)}
.tl li.feito::before{background:var(--acc-2)}
.tl li.agora::before{background:var(--aviso)}
.tl time{display:block;font-family:var(--f-mono);font-size:12px;color:var(--ink-dim)}
.recado{margin:28px 0 0;padding:16px 18px;max-width:640px;background:var(--panel);border:1px solid var(--line);border-left:2px solid var(--acc);border-radius:3px;font-size:16px;line-height:1.65;color:var(--ink-2);white-space:pre-line}
.recado.recusa{border-left-color:var(--perigo)}
.recado .cap{display:block;margin-bottom:8px}

footer{border-top:1px solid var(--line);padding-block:32px calc(32px + env(safe-area-inset-bottom,0px))}
footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;color:var(--ink-dim);font-size:13px}
.f-logo{width:140px;opacity:.92}

[hidden]{display:none!important}
@media (max-width:860px){
  .passos{grid-template-columns:minmax(0,1fr)}
  .ficha{grid-template-columns:minmax(0,1fr)}
  .lado{position:static}
  fieldset{grid-template-columns:minmax(0,1fr)}
  .campo.meia{grid-column:1 / -1}
  .nav-links{gap:22px}
  .nav-links a{font-size:11px;letter-spacing:.2em}
}
@media (max-width:520px){ .nav-links a:not([aria-current]){display:none} }
@media (prefers-reduced-motion:reduce){ .nav,.btn,input,textarea{transition:none} }
