/* Component styles — ported from the Transfórmate.Ai design system */

/* Badge */
.badge{
  display:inline-flex;align-items:center;
  font-family:var(--font-body);font-weight:var(--fw-semibold);font-size:12px;
  padding:4px 10px;border-radius:var(--radius-pill);
  letter-spacing:var(--ls-wide);text-transform:uppercase;
}
.badge--navy{background:var(--navy-100);color:var(--navy-900)}
.badge--orange{background:var(--orange-100);color:var(--orange-600)}
.badge--teal{background:var(--teal-100);color:var(--teal-700)}
.badge--neutral{background:var(--neutral-100);color:var(--neutral-700)}

/* Button */
.btn{
  font-family:var(--font-display);font-weight:var(--fw-bold);
  border-radius:var(--radius-pill);cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  transition:filter var(--dur-base) var(--ease-standard), transform var(--dur-fast) var(--ease-standard);
  border:1px solid transparent;text-decoration:none;
}
.btn:active{transform:scale(0.97)}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn--accent{background:var(--brand-accent);color:var(--text-on-accent);border-color:var(--brand-accent)}
.btn--accent:hover{filter:brightness(0.94)}
.btn--outline{background:transparent;color:var(--brand-primary);border-color:var(--surface-card-border)}
.btn--outline:hover{background:var(--neutral-100)}
.btn--primary{background:var(--brand-primary);color:var(--text-inverse);border-color:var(--brand-primary)}
.btn--tech{background:var(--brand-tech-strong);color:var(--text-inverse);border-color:var(--brand-tech-strong)}
.btn--sm{padding:8px 14px;font-size:14px}
.btn--md{padding:12px 20px;font-size:16px}
.btn--lg{padding:16px 28px;font-size:18px}
.btn--full{width:100%}

/* Card */
.card{
  background:var(--surface-card);
  border:1px solid var(--surface-card-border);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm);
  transition:box-shadow var(--dur-base) var(--ease-standard), transform var(--dur-base) var(--ease-standard);
}
.card--hoverable:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}

/* Tag */
.tag{
  display:inline-flex;align-items:center;gap:6px;
  background:var(--surface-muted);color:var(--text-primary);
  font-size:13px;font-family:var(--font-body);font-weight:var(--fw-semibold);
  padding:6px 10px;border-radius:var(--radius-md);
}

/* Dialog */
.dialog-overlay{
  position:fixed;inset:0;z-index:100;
  background:rgba(21,17,69,0.45);backdrop-filter:blur(3px);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-body);padding:20px;
}
.dialog-overlay[hidden]{display:none}
.dialog{
  background:var(--surface-card);border-radius:var(--radius-lg);
  padding:28px;width:360px;max-width:100%;box-shadow:var(--shadow-lg);
  max-height:calc(100vh - 40px);overflow-y:auto;
}
.dialog__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.dialog__title{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:20px;color:var(--text-primary)}
.dialog__close{cursor:pointer;color:var(--text-secondary);background:none;border:none;font-size:22px;line-height:1;padding:4px}
.dialog__body{color:var(--text-secondary);font-size:15px;line-height:var(--lh-body)}

/* Form fields */
.field{display:flex;flex-direction:column;gap:6px;font-family:var(--font-body);width:100%}
.field[hidden]{display:none}
.field__label{font-size:13px;font-weight:var(--fw-semibold);color:var(--text-primary)}
.field__input,.field__select{
  font-family:var(--font-body);font-size:15px;padding:12px 14px;
  border-radius:var(--radius-md);border:1px solid var(--surface-card-border);
  outline:none;background:var(--bg-page);width:100%;
  transition:border-color var(--dur-base) var(--ease-standard), box-shadow var(--dur-base) var(--ease-standard);
}
.field__input:focus,.field__select:focus{box-shadow:var(--shadow-focus)}
.field__error{font-size:12px;color:var(--danger)}
.hp-field{position:absolute;left:-9999px;top:-9999px;width:1px;height:1px;overflow:hidden}
.field--error .field__input{border-color:var(--danger)}

/* Checkbox */
.checkbox{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--font-body);font-size:15px;color:var(--text-primary);cursor:pointer;
}
.checkbox input{width:20px;height:20px;accent-color:var(--brand-tech-strong);border-radius:6px;flex-shrink:0}

/* WhatsApp float */
.whatsapp-float{
  position:fixed;right:24px;bottom:24px;z-index:200;
  width:56px;height:56px;border-radius:var(--radius-pill);
  background:#25D366;color:#fff;
  display:flex;align-items:center;justify-content:center;
  box-shadow:var(--shadow-lg);
  transition:transform var(--dur-base) var(--ease-standard), box-shadow var(--dur-base) var(--ease-standard);
}
.whatsapp-float:hover{transform:translateY(-2px);box-shadow:0 20px 44px rgba(21,17,69,0.18),0 6px 14px rgba(21,17,69,0.08)}
.whatsapp-float:active{transform:scale(.97)}
@media (max-width:480px){.whatsapp-float{right:16px;bottom:16px;width:52px;height:52px}}
