:root{
    /* Cores oficiais do Guia de Uso da Marca Fiduc (Brand Guide Fiduc / v1) */
    --teal-dark:#056571;    /* [1] Verde-Azulado Fiduc */
    --teal:#38879d;         /* [3] Azul-Esverdeado Fiduc */
    --teal-light:#9cbeb6;   /* Digital-Verde-Claro */
    --teal-lighter:#cbd9e0; /* Digital-Azul-Claro */
    --accent-green:#34fd71;       /* [2] Verde Fluo Fiduc / Cor-Botões */
    --accent-green-hover:#1fd85c; /* mesma cor, levemente mais escura (feedback de hover) */
    --text:#101011;         /* Digital-Black */
    /* #6b7280 original só dava 4.20:1 em cima do fundo --bg (abaixo do
       mínimo de 4.5:1 do WCAG 2.1 AA para texto normal) — escurecido pra
       5.20:1, mantendo a mesma família de cinza. */
    --muted:#5c6470;
    --bg:#f1efe9;           /* Digital-Bege-Background */
    --border:#d8dee0;
  }
  *{box-sizing:border-box;}
  html,body{margin:0;padding:0;}
  /* Esconde visualmente mas mantém acessível a leitores de tela (WCAG 3.3.2:
     campo de busca precisa de um label, não só placeholder). */
  .visually-hidden{
    position:absolute;width:1px;height:1px;padding:0;margin:-1px;
    overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
  }
  body{
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
    color:var(--text);
    background:var(--bg);
    min-height:100vh;
    display:flex;
    flex-direction:column;
  }
  .progress-track{
    position:fixed;top:0;left:0;right:0;height:4px;
    background:var(--teal-lighter);
    z-index:20;
  }
  .progress-fill{
    height:100%;background:var(--teal-dark);
    width:0%;transition:width .3s ease;
  }
  .wrap{
    flex:1;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:60px 24px 40px;
  }
  .card{
    width:100%;
    max-width:640px;
  }
  /* Logo oficial (guia de marca): imagem, não texto — mantém o "F" com a
     inclinação de 4° e o kerning definidos no Brand Guide Fiduc. */
  .logo-block{text-align:left;margin-bottom:48px;}
  .logo-block img{display:inline-block;height:auto;width:180px;}
  /* Também usada como <h1> em admin.html — reset explícito pra não herdar
     negrito/margem padrão do navegador ao trocar de <div> pra <h1>. */
  .logo-sub{color:var(--muted);font-size:15px;font-weight:400;margin:8px 0 0;}
  /* Reset pra usar heading semântico (<h1>) sem herdar negrito/margem
     padrão do navegador — cada tela do wizard tem exatamente um <h1>,
     pra leitor de tela conseguir navegar por título (WCAG 2.4.6) e pro
     foco poder ser movido até ele a cada mudança de tela (ver
     focusHeading() em js/index.js). As regras específicas de cada classe,
     abaixo, sobrescrevem o que for diferente do padrão aqui. */
  .intro-title, .q-text, .statement-text, .result-title, .thanks-title{
    margin:0; font-weight:400;
  }
  .intro-title{
    font-size:26px;font-weight:600;line-height:1.4;margin:32px 0 32px;
  }
  .qnum{
    display:inline-flex;align-items:center;justify-content:center;
    width:24px;height:24px;background:var(--teal-dark);color:#fff;
    font-size:13px;font-weight:700;border-radius:5px;margin-right:10px;
  }
  .q-text{
    font-size:22px;line-height:1.4;margin-bottom:8px;font-weight:400;
  }
  .q-help{color:var(--muted);font-size:14px;margin-bottom:20px;}
  .statement-text{
    font-size:24px;line-height:1.5;font-weight:400;margin-bottom:32px;
  }
  .options{display:flex;flex-direction:column;gap:10px;margin:20px 0;}
  /* .option agora é um <button> (era <div> com onclick — inacessível por
     teclado/leitor de tela, ver js/index.js). Reset dos padrões de botão
     do navegador pra manter a mesma aparência de antes. */
  .option{
    display:flex;align-items:center;gap:12px;width:100%;
    border:1.5px solid var(--border);
    border-radius:8px;padding:14px 16px;
    cursor:pointer;font-size:16px;font-family:inherit;text-align:left;
    transition:border-color .15s,background .15s;
    background:#fff;color:var(--text);
  }
  .option:hover{border-color:var(--teal);background:#f4f9fa;}
  .option:focus-visible{outline:2px solid var(--teal-dark);outline-offset:2px;}
  .option.selected{border-color:var(--teal-dark);background:#e8f2f3;}
  .option .letter{
    width:22px;height:22px;border:1.5px solid var(--border);border-radius:5px;
    display:flex;align-items:center;justify-content:center;
    font-size:12px;font-weight:700;color:var(--muted);flex-shrink:0;
  }
  .option.selected .letter{border-color:var(--teal-dark);color:var(--teal-dark);}
  input[type=text], input[type=email], input[type=tel], input[type=number]{
    width:100%;font-size:20px;padding:10px 2px;border:none;
    border-bottom:2px solid var(--border);margin:20px 0;
    background:transparent;color:var(--text);
  }
  input:focus{border-bottom-color:var(--teal-dark);}
  /* Indicador de foco visível (WCAG 2.4.7) — antes era outline:none sem
     substituto equivalente, só a mudança sutil de cor da borda inferior. */
  input:focus-visible{outline:2px solid var(--teal-dark);outline-offset:4px;}
  .btn{
    /* "Cor-Botões" do Brand Guide Fiduc: verde fluo, texto escuro (contraste). */
    background:var(--accent-green);color:var(--text);border:none;border-radius:6px;
    padding:12px 26px;font-size:16px;font-weight:600;cursor:pointer;
    transition:background .15s;
  }
  .btn:hover{background:var(--accent-green-hover);}
  .btn:disabled{background:#c9d3d4;color:var(--muted);cursor:not-allowed;}
  .btn-row{margin-top:24px;display:flex;align-items:center;gap:16px;}
  .error-msg{color:#b3261e;font-size:14px;margin-top:8px;min-height:18px;}
  .step{display:none;animation:fade .25s ease;}
  .step.active{display:block;}
  @keyframes fade{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}

  /* Result screen */
  .result-wrap{text-align:center;}
  .gauge{display:flex;align-items:center;gap:0;margin:0 auto 32px;max-width:520px;}
  .gauge-ball{
    width:130px;height:130px;border-radius:50%;flex-shrink:0;
    background:var(--teal-dark);box-shadow:0 2px 6px rgba(0,0,0,.15);
    margin-right:-14px;z-index:2;
  }
  .gauge-bar{
    flex:1;display:flex;border:1px solid var(--border);border-radius:0 6px 6px 0;
    overflow:hidden;position:relative;
  }
  .gauge-seg{
    flex:1;background:var(--teal-lighter);height:70px;
    border-right:1px solid #fff;position:relative;
  }
  .gauge-seg:last-child{border-right:none;}
  .gauge-seg.active{background:var(--teal);}
  .gauge-seg .num{
    position:absolute;top:-22px;right:-8px;font-size:12px;color:var(--muted);
  }
  .gauge-brand{
    position:absolute;bottom:6px;right:8px;
  }
  .gauge-brand img{display:block;height:22px;width:auto;}
  .result-title{font-size:20px;color:var(--muted);margin-bottom:4px;}
  .result-score{font-size:22px;font-weight:700;color:var(--teal-dark);margin-bottom:24px;}
  .result-text{font-size:17px;line-height:1.6;max-width:540px;margin:0 auto 24px;}
  .send-status{font-size:14px;color:var(--muted);margin-top:12px;}

  .thanks-wrap{text-align:center;}
  .thanks-title{font-size:22px;margin-top:24px;}

/* Página de cadastro de parceiro */
.partner-intro{font-size:16px;color:var(--muted);line-height:1.6;margin-bottom:28px;}
/* Agora é <label for="..."> (era <div>, sem associação com o campo —
   WCAG 3.3.2/1.3.1). display:block porque label é inline por padrão. */
.field-label{display:block;font-size:14px;color:var(--muted);margin-top:12px;}
.link-row{display:flex;gap:8px;align-items:center;margin-top:10px;}
.link-row input{
  flex:1;font-size:15px;padding:10px 12px;border:1.5px solid var(--border);
  border-radius:6px;background:#f4f9fa;color:var(--text);margin:0;
}
.btn-secondary{
  background:#fff;color:var(--teal-dark);border:1.5px solid var(--teal-dark);
  border-radius:6px;padding:10px 18px;font-size:14px;font-weight:600;cursor:pointer;
}
.btn-secondary:hover{background:#e8f2f3;}
.success-box{
  margin-top:28px;padding:20px;border:1.5px solid var(--teal-light);
  border-radius:8px;background:#f4f9fa;
}

/* ============================================================
   Painel administrativo (admin.html)
   ============================================================ */
.admin-body{background:var(--bg);}
.admin-wrap{max-width:1080px;margin:0 auto;padding:32px 20px 60px;}
.admin-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px;}
.admin-login-card{
  max-width:380px;margin:80px auto;background:#fff;border:1px solid var(--border);
  border-radius:10px;padding:32px;
}
.summary-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-bottom:28px;}
.summary-card{
  background:#fff;border:1px solid var(--border);border-radius:8px;padding:16px 18px;
}
.summary-card .num{font-size:26px;font-weight:700;color:var(--teal-dark);}
.summary-card .label{font-size:13px;color:var(--muted);margin-top:4px;}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:20px;}
.tab-btn{
  background:none;border:none;padding:10px 18px;font-size:15px;font-weight:600;
  color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;
}
.tab-btn.active{color:var(--teal-dark);border-bottom-color:var(--teal-dark);}
.tab-panel{display:none;}
.tab-panel.active{display:block;}
.admin-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;gap:12px;flex-wrap:wrap;}
.search-input{
  flex:1;min-width:220px;padding:9px 12px;border:1.5px solid var(--border);
  border-radius:6px;font-size:14px;
}
.admin-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--border);border-radius:8px;overflow:hidden;}
.admin-table th{
  text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.03em;
  color:var(--muted);background:#f2f5f6;padding:10px 12px;border-bottom:1px solid var(--border);
}
.admin-table td{padding:10px 12px;border-bottom:1px solid #eef1f2;font-size:14px;vertical-align:top;}
.admin-table tr:last-child td{border-bottom:none;}
.badge{
  display:inline-block;padding:2px 9px;border-radius:20px;font-size:12px;font-weight:600;
  background:var(--teal-lighter);color:var(--teal-dark);
}
.badge-pending{background:#f6e2b8;color:#8a5a00;}
.icon-btn{
  background:none;border:1px solid var(--border);border-radius:6px;padding:5px 10px;
  font-size:12px;cursor:pointer;color:var(--text);margin-right:4px;
}
.icon-btn:hover{border-color:var(--teal-dark);color:var(--teal-dark);}
.icon-btn.danger:hover{border-color:#b3261e;color:#b3261e;}
.inline-edit{display:flex;gap:6px;align-items:center;}
.inline-edit input{
  font-size:13px;padding:5px 8px;border:1px solid var(--border);border-radius:5px;margin:0;
}
.modal-backdrop{
  position:fixed;inset:0;background:rgba(0,0,0,.4);display:flex;
  align-items:center;justify-content:center;z-index:50;padding:20px;
}
.modal-box{
  background:#fff;border-radius:10px;max-width:560px;width:100%;max-height:80vh;
  overflow-y:auto;padding:24px;
}
.modal-box h3{margin-top:0;color:var(--teal-dark);}
.modal-close{float:right;background:none;border:none;font-size:20px;cursor:pointer;color:var(--muted);}
