:root{
  --bg:#0b0b0d;
  --surface:#151517;
  --ink:#f5f3ef;
  --muted:#928f8a;
  --accent:#ff6900;
  --accent-ink:#1a0900;
  --line: rgba(245,243,239,0.12);
  --line-strong: rgba(245,243,239,0.22);
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:"Hanken Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;
  min-height:100vh;
  padding-inline:20px;
}
h1,h2,h3{margin:0;}
a{color:inherit;}

.app{
  max-width:680px;
  margin:0 auto;
  min-height:100vh;
  display:flex;
  flex-direction:column;
  padding-block:28px 40px;
}

.topbar{display:flex; align-items:center; justify-content:space-between; gap:16px;}
.wordmark{font-weight:800; font-size:1.175rem; letter-spacing:-0.01em;}
.wordmark span{color:var(--accent);}
.back-link{
  display:flex; align-items:center; gap:6px;
  background:none; border:none; color:var(--muted);
  font-family:inherit; font-size:0.975rem; font-weight:600;
  cursor:pointer; padding:0; text-decoration:none;
}
.back-link:hover{color:var(--ink);}

/* ---------- home ---------- */
.home-hero{position:relative; margin-top:44px; padding-top:8px;}
.home-hero .hero-image{
  position:absolute; top:-40px; right:-70px; width:340px; max-width:48vw;
  pointer-events:none; z-index:0;
}
.home-hero .hero-image img{width:100%; display:block;}
.home-hero .eyebrow{
  position:relative; z-index:1;
  font-size:0.875rem; font-weight:700; letter-spacing:0.09em;
  text-transform:uppercase; color:var(--accent); margin-bottom:14px;
}
.home-hero h1{position:relative; z-index:1; max-width:64%; font-size:clamp(1.925rem, 3vw + 1.125rem, 2.725rem); font-weight:800; line-height:1.15; letter-spacing:-0.01em;}
.home-hero p{position:relative; z-index:1; margin-top:14px; color:var(--muted); font-size:1.145rem; max-width:52ch; line-height:1.6;}
@media (max-width:480px){
  .home-hero .hero-image{width:120px; max-width:34vw; top:-14px; right:-20px; opacity:0.6;}
  .home-hero h1{max-width:66%;}
}

.vaga-list{margin-top:36px; display:flex; flex-direction:column; gap:12px;}
.vaga-card{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  background:var(--surface); border:1px solid var(--line); border-radius:16px;
  padding:22px 24px; cursor:pointer; text-decoration:none;
  transition:border-color .15s ease, background .15s ease, transform .15s ease;
  width:100%; font-family:inherit; color:inherit;
}
.vaga-card:hover{border-color:var(--accent); background:rgba(255,105,0,0.06); transform:translateY(-1px);}
.vaga-card .vc-main{display:flex; flex-direction:column; align-items:flex-start; gap:6px;}
.vaga-card .vc-tag{
  display:inline-block; align-self:flex-start;
  font-size:0.645rem; font-weight:700; letter-spacing:0.06em; text-transform:uppercase;
  color:var(--accent); background:rgba(255,105,0,0.12);
  padding:2px 7px; border-radius:999px; margin-bottom:4px; white-space:nowrap;
}
.vaga-card h3{font-size:1.275rem; font-weight:700;}
.vaga-card .vc-meta{font-size:0.985rem; color:var(--ink); opacity:0.85;}
.vaga-card .vc-meta-row{display:flex; gap:8px; font-size:0.905rem; color:var(--muted); margin-top:2px;}
.vaga-card .vc-arrow{
  flex:0 0 auto; width:34px; height:34px; border-radius:50%;
  border:1px solid var(--line-strong); display:grid; place-items:center; color:var(--muted);
  transition:border-color .15s ease, color .15s ease;
}
.vaga-card:hover .vc-arrow{border-color:var(--accent); color:var(--accent);}

/* ---------- detail ---------- */
.detail{margin-top:30px;}
.detail .d-tag{
  display:inline-block; font-size:0.675rem; font-weight:700; letter-spacing:0.06em;
  text-transform:uppercase; color:var(--accent); background:rgba(255,105,0,0.12);
  padding:3px 8px; border-radius:999px; margin-bottom:12px; white-space:nowrap;
}
.detail h1{font-size:clamp(1.725rem,2.6vw + 1.125rem,2.325rem); font-weight:800; line-height:1.2;}
.detail .d-desc{margin-top:16px; color:var(--ink); opacity:0.92; font-size:1.125rem; line-height:1.65; max-width:60ch;}
.meta-row{display:flex; flex-wrap:wrap; gap:10px; margin-top:20px;}
.meta-pill{
  border:1px solid var(--line); border-radius:999px; padding:7px 14px;
  font-size:0.945rem; color:var(--muted); display:flex; align-items:center; gap:6px;
}
.meta-pill b{color:var(--ink); font-weight:600;}
.detail h4{margin-top:30px; font-size:0.905rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:var(--muted);}
.detail ul{margin:12px 0 0; padding-left:20px; color:var(--ink); opacity:0.92; line-height:1.75; font-size:1.085rem;}
.cta-row{margin-top:34px; display:flex; align-items:center; gap:16px;}

/* ---------- progress (form) ---------- */
.progress{display:grid; grid-auto-flow:column; gap:6px; margin-top:22px;}
.progress i{display:block; height:3px; border-radius:2px; background:var(--line-strong); overflow:hidden; position:relative;}
.progress i b{position:absolute; inset:0; width:0%; background:var(--accent); border-radius:2px; transition:width .35s ease;}
.eyebrow-row{
  margin-top:14px; display:flex; align-items:baseline; gap:8px;
  font-size:0.845rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:var(--muted);
}
.eyebrow-row .dot{color:var(--line-strong);}
.eyebrow-row .accent{color:var(--accent);}

.stage{flex:1; display:flex; align-items:center; padding-block:28px;}
.step{width:100%; animation:rise .38s cubic-bezier(.2,.8,.2,1);}
@keyframes rise{ from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:translateY(0);} }
@media (prefers-reduced-motion: reduce){ .step{animation:none;} }

.step h2{font-size:clamp(1.425rem, 2.4vw + 1.125rem, 2.025rem); font-weight:700; line-height:1.28;}
.step .help{margin-top:10px; color:var(--muted); font-size:1.075rem; max-width:52ch;}
.field{margin-top:28px;}

input[type=text], input[type=email], input[type=tel]{
  width:100%; background:transparent; border:none; border-bottom:1.5px solid var(--line-strong);
  color:var(--ink); font-family:inherit; font-size:1.375rem; padding-block:10px;
  outline:none; transition:border-color .18s ease;
}
input::placeholder{color:#5c5a56;}
input:focus{border-color:var(--accent);}

textarea{
  width:100%; min-height:120px; background:var(--surface); border:1px solid var(--line); border-radius:12px;
  color:var(--ink); font-family:inherit; font-size:1.125rem; line-height:1.55;
  padding:14px 16px; outline:none; resize:vertical; transition:border-color .18s ease;
}
textarea::placeholder{color:#5c5a56;}
textarea:focus{border-color:var(--accent);}

.options{display:flex; flex-direction:column; gap:8px;}
.opt{
  display:flex; align-items:center; gap:12px; width:100%; text-align:left;
  background:var(--surface); border:1px solid var(--line); border-radius:12px;
  color:var(--ink); font-family:inherit; font-size:1.085rem; line-height:1.4;
  padding:14px 16px; cursor:pointer; transition:border-color .15s ease, background .15s ease;
}
.opt:hover{border-color:var(--line-strong);}
.opt .mark{flex:0 0 auto; width:18px; height:18px; border-radius:50%; border:1.5px solid var(--line-strong); display:grid; place-items:center;}
.opt.multi .mark{border-radius:5px;}
.opt.selected{border-color:var(--accent); background:rgba(255,105,0,0.08);}
.opt.selected .mark{border-color:var(--accent); background:var(--accent);}
.opt .mark svg{width:10px; height:10px; display:none;}
.opt.selected .mark svg{display:block;}

.dropzone{
  border:1.5px dashed var(--line-strong); border-radius:14px; padding:26px 20px;
  text-align:center; cursor:pointer; transition:border-color .15s ease, background .15s ease;
}
.dropzone:hover{border-color:var(--accent);}
.dropzone.filled{border-style:solid; border-color:var(--accent); background:rgba(255,105,0,0.08);}
.dropzone p{margin:0; color:var(--muted); font-size:1.045rem;}
.dropzone strong{display:block; margin-bottom:4px; color:var(--ink); font-size:1.125rem;}

.consent{
  display:flex; gap:12px; align-items:flex-start; background:var(--surface);
  border:1px solid var(--line); border-radius:12px; padding:16px; cursor:pointer;
}
.consent input{accent-color:var(--accent); width:18px; height:18px; margin-top:1px;}
.consent span{font-size:1.025rem; color:var(--muted); line-height:1.5;}

.actions{display:flex; align-items:center; gap:18px; margin-top:26px; flex-wrap:wrap;}
.btn-primary{
  appearance:none; border:none; background:var(--accent); color:var(--accent-ink);
  font-family:inherit; font-weight:700; font-size:1.075rem; padding:12px 22px;
  border-radius:9px; cursor:pointer; transition:transform .12s ease, filter .12s ease; text-decoration:none; display:inline-block;
}
.btn-primary:hover{filter:brightness(1.08);}
.btn-primary:active{transform:translateY(1px);}
.btn-primary:disabled{opacity:0.35; cursor:not-allowed;}
.btn-ghost{
  appearance:none; border:none; background:transparent; color:var(--muted);
  font-family:inherit; font-size:1.025rem; cursor:pointer;
}
.btn-ghost:hover{color:var(--ink);}
.kbd-hint{margin-left:auto; display:flex; align-items:center; gap:8px; font-size:0.905rem; color:var(--muted);}
.kbd-hint kbd{border:1px solid var(--line-strong); border-radius:6px; padding:3px 7px; font-family:inherit; font-size:0.875rem; color:var(--ink);}

.done .mark-big{width:48px; height:48px; border-radius:50%; background:var(--accent); display:grid; place-items:center; margin-bottom:20px;}
.done .mark-big svg{width:22px; height:22px;}

.erro-box{
  background:rgba(255,105,0,0.08); border:1px solid var(--accent); border-radius:12px;
  padding:14px 16px; color:var(--ink); font-size:1.025rem; margin-top:20px;
}

footer.note{margin-top:auto; padding-top:26px; font-size:0.885rem; color:#c9c6c0; border-top:1px solid var(--line); margin-top:26px;}

@media (max-width:480px){
  .vaga-card{flex-direction:column; align-items:flex-start;}
  .vaga-card .vc-arrow{align-self:flex-end; margin-top:-30px;}
}

/* ---------- admin ---------- */
.admin-body{background:#f5f4f0; color:#141413;}
.admin-wrap{max-width:960px; margin:0 auto; padding-block:32px 60px;}
.admin-bar{display:flex; align-items:center; justify-content:space-between; margin-bottom:28px;}
.admin-bar .wordmark{color:#141413;}
.admin-bar .wordmark span{color:var(--accent);}
.admin-nav{display:flex; gap:18px; font-size:0.9rem;}
.admin-nav a{color:#68655f; text-decoration:none; font-weight:600;}
.admin-nav a.active, .admin-nav a:hover{color:#141413;}
.admin-card{background:#fff; border:1px solid #e5e2da; border-radius:14px; padding:24px; margin-bottom:18px;}
.admin-table{width:100%; border-collapse:collapse; font-size:0.92rem;}
.admin-table th{text-align:left; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.06em; color:#928f8a; padding:8px 10px; border-bottom:1px solid #e5e2da;}
.admin-table td{padding:10px; border-bottom:1px solid #efece5; vertical-align:top;}
.admin-form label{display:block; font-size:0.82rem; font-weight:600; margin:16px 0 6px;}
.admin-form input[type=text], .admin-form input[type=email], .admin-form input[type=password], .admin-form textarea, .admin-form select{
  width:100%; border:1px solid #d8d5cc; border-radius:8px; padding:9px 12px; font-family:inherit; font-size:0.94rem; background:#fff; color:#141413;
}
.admin-form textarea{min-height:90px;}
.admin-form .hint{font-size:0.78rem; color:#928f8a; margin-top:4px;}
.btn-dark{
  appearance:none; border:none; background:#141413; color:#fff; font-family:inherit; font-weight:700;
  font-size:0.9rem; padding:10px 18px; border-radius:8px; cursor:pointer; text-decoration:none; display:inline-block;
}
.btn-dark:hover{filter:brightness(1.2);}
.btn-outline{
  appearance:none; border:1px solid #d8d5cc; background:#fff; color:#141413; font-family:inherit; font-weight:600;
  font-size:0.88rem; padding:9px 16px; border-radius:8px; cursor:pointer; text-decoration:none; display:inline-block;
}
.flash-ok{background:#e9f7ef; border:1px solid #34a853; color:#1e7a3c; padding:12px 16px; border-radius:10px; margin-bottom:18px; font-size:0.9rem;}
.flash-erro{background:#fdecea; border:1px solid #d93025; color:#a3271b; padding:12px 16px; border-radius:10px; margin-bottom:18px; font-size:0.9rem;}
.pergunta-row{border:1px solid #e5e2da; border-radius:10px; padding:14px; margin-bottom:10px; background:#faf9f5;}
.pergunta-row .linha1{display:flex; gap:10px; flex-wrap:wrap;}
.pergunta-row .linha1 > *{flex:1; min-width:140px;}
