/* ===============================
   PDF Fácil — Acento por ferramenta (carregar por último)
   =============================== */
.pf-card{
  --pf-accent: var(--bs-primary);
  --pf-accent-contrast: #fff;
}

/* Mapa por cor — isto "passa" a cor */
.pf-card.pf-primary   { --pf-accent: var(--bs-primary);   --pf-accent-contrast:#111; }
.pf-card.pf-success   { --pf-accent: var(--bs-success);   --pf-accent-contrast:#fff; }
.pf-card.pf-warning   { --pf-accent: var(--bs-warning);   --pf-accent-contrast:#111; } /* texto preto */
.pf-card.pf-danger    { --pf-accent: var(--bs-danger);    --pf-accent-contrast:#fff; }
.pf-card.pf-info      { --pf-accent: var(--bs-info);      --pf-accent-contrast:#fff; }
.pf-card.pf-secondary { --pf-accent: var(--bs-secondary); --pf-accent-contrast:#fff; }
.pf-card.pf-indigo    { --pf-accent: var(--bs-indigo);    --pf-accent-contrast:#fff; } /* padrão para primary faltante */
.pf-card.pf-purple    { --pf-accent: var(--bs-purple);    --pf-accent-contrast:#fff; } /* corrigido: usar variável Bootstrap */
.pf-card.pf-pink      { --pf-accent: var(--bs-pink);      --pf-accent-contrast:#fff; } /* adicionado */
.pf-card.pf-orange    { --pf-accent: var(--bs-orange);    --pf-accent-contrast:#fff; } /* adicionado */
.pf-card.pf-teal      { --pf-accent: var(--bs-teal);      --pf-accent-contrast:#fff; } /* adicionado */

/* Papéis consomem os tokens */
[data-pf-role="accent"]        { color: var(--pf-accent); border-color: var(--pf-accent); }
[data-pf-role="accent-bg"]     { background: var(--pf-accent); color: var(--pf-accent-contrast); }
[data-pf-role="accent-chip"]   { background: var(--pf-accent); color: var(--pf-accent-contrast); border-radius:999px; }
[data-pf-role="accent-chip"] > i { color: var(--pf-accent-contrast); }
[data-pf-role="accent-icon"]   { color: var(--pf-accent); }
[data-pf-role="accent-border"] { border-color: var(--pf-accent); }

/* ===============================
   ELEMENTOS QUE HERDAM O ACENTO
   =============================== */
/* Botões sólidos ou elementos marcados.
   NÃO preenche outline. */
.pf-card [data-pf-role="accent"].btn:not([class*="btn-outline"]),
.pf-card [data-pf-role="accent"].btn.btn-warning,
.pf-card [data-pf-role="accent-bg"],
.pf-card [data-pf-role="accent-chip"]{
  background-color: var(--pf-accent) !important;
  border-color: var(--pf-accent) !important;
  color: var(--pf-accent-contrast) !important;
}

/* ===============================
   VARIANTES OUTLINE (fix)
   =============================== */
.pf-card .btn[class*="btn-outline"]{
  background-color: transparent !important;        /* fundo sempre transparente */
  color: var(--pf-accent) !important;
  border-color: var(--pf-accent) !important;
}
.pf-card .btn[class*="btn-outline"] i{
  color: inherit !important;                       /* ícone acompanha a cor */
}
.pf-card .btn[class*="btn-outline"]:hover,
.pf-card .btn[class*="btn-outline"]:focus{
  background-color: var(--pf-accent) !important;   /* preenche no hover/focus */
  color: var(--pf-accent-contrast) !important;
  border-color: var(--pf-accent) !important;
}
.pf-card .btn[class*="btn-outline"]:disabled{
  background-color: transparent !important;
  color: var(--pf-accent) !important;
  border-color: var(--pf-accent) !important;
  opacity: .65;
}

/* ===============================
   UPLOAD CARD: PADRÃO DE BORDAS
   =============================== */
/* INICIAL: borda sólida */
#pf-upload-card.upload-card.pf-card{
  border: 2px solid var(--pf-accent) !important;
  border-radius: .75rem !important;
  position: relative;
}

/* HOVER: some a sólida e vira tracejada piscando */
#pf-upload-card.upload-card.pf-card:hover{
  border-color: transparent !important;
}
#pf-upload-card.upload-card.pf-card:hover::before{
  content:''; position:absolute; inset:0;
  border: 2px dashed var(--pf-accent);
  border-radius: inherit; pointer-events:none;
  animation: flash 1.6s ease-in-out infinite;
}

/* DRAG OVER: mesmo visual do hover */
#pf-upload-card.upload-card.pf-card.upload-border-active{
  border-color: transparent !important;
}
#pf-upload-card.upload-card.pf-card.upload-border-active::before{
  content:''; position:absolute; inset:0;
  border: 2px dashed var(--pf-accent);
  border-radius: inherit; pointer-events:none;
  animation: flash 1.2s ease-in-out infinite;
}

/* Animação flash se o preset não fornecer */
@keyframes flash{ 0%,100%{opacity:.10} 50%{opacity:1} }

/* ===============================
   INPUTS EM FOCO
   =============================== */
.pf-card .form-control:focus,
.pf-card .form-select:focus,
.pf-card .form-check-input:focus{
  border-color: var(--pf-accent) !important;
  box-shadow: 0 0 0 .2rem color-mix(in oklab, var(--pf-accent) 25%, transparent) !important;
  outline: 0;
}

/* ===============================
   TRANSIÇÕES
   =============================== */
.pf-card, .pf-card .btn, .pf-card .form-control, .pf-card .form-select{
  transition:
    border-color .15s linear,
    box-shadow .15s linear,
    background-color .15s linear,
    color .15s linear;
}

/* ===============================
   MEIAS LUAS DO CARD
   =============================== */
.pf-card .round.small,
.pf-card .round.big {
  background-color: color-mix(in oklab, var(--pf-accent) 100%, transparent);
}

/* ===============================
   Animação do ícone ao passar o mouse do upload
   =============================== */
.icon-hover-bounce { display: inline-block; animation: none; }
#pf-upload-card:hover .icon-hover-bounce { animation: bounce 1s infinite; }

/* ===============================
   Botão de download (exceção, local)
   =============================== */
#primaryDownloadBtn{
  background-color:#8345e7 !important;
  border-color:#8345e7 !important;
  color:#fff !important;
}
#primaryDownloadBtn:hover{
  background-color:#6e37d0 !important;
  border-color:#6e37d0 !important;
}

/* ===============================
   Cards de método (hover + focus + press Berry)
   =============================== */
.method-card{
  position: relative;
  border: 2px solid transparent;
  transition: border-color .16s, box-shadow .16s, transform .08s;
  cursor: pointer;
  overflow: hidden;
}

.method-card:hover,
.method-card:focus-within{
  border-color: var(--pf-accent);
  box-shadow: 0 0 0 .15rem rgba(0,0,0,.04);
}

.method-card:focus-visible{
  outline: 0;
  box-shadow: 0 0 0 .25rem color-mix(in oklab, var(--pf-accent) 35%, transparent);
  border-color: var(--pf-accent);
}

/* press */
.method-card:active{
  transform: scale(.98);
  transition-duration: 80ms;
}
.method-card:active::after{
  content: "";
  position: absolute;
  inset: -25%;
  border-radius: inherit;
  background: color-mix(in oklab, var(--pf-accent) 18%, transparent);
  animation: pf-press .32s ease;
}

@keyframes pf-press { from{opacity:1} to{opacity:0} }

.method-card.selected{
  border-color: var(--pf-accent);
  box-shadow: 0 0 0 .15rem rgba(0,0,0,.04);
}
.method-card.selected::before{ display:none; }

@media (prefers-reduced-motion: reduce){
  .method-card{ transition:none; }
  .method-card:active{ transform:none; }
  .method-card:active::after{ display:none; }
}