/*!
 * HITMO Soluções Digitais — Tema Bootstrap 5.3+ (CSS puro, sem build)
 * Uso: <html lang="pt-BR" data-bs-theme="dark">
 *   1. Google Fonts (Geist + Geist Mono)
 *   2. bootstrap.min.css 5.3.x
 *   3. este arquivo (sempre DEPOIS do Bootstrap)
 * Tema claro: data-bs-theme="light" no <html> ou em qualquer bloco.
 */

/* ===== 1. Tokens globais (independentes de tema) ===== */
:root {
  --hm-font-sans: "Geist", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --hm-font-mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --hm-space-0: 0;
  --hm-space-1: 4px;
  --hm-space-2: 8px;
  --hm-space-3: 16px;
  --hm-space-4: 24px;
  --hm-space-5: 48px;
  --hm-space-6: 64px;
  --hm-space-7: 96px;
  --hm-space-8: 128px;
  --hm-radius-0: 0;
  --hm-radius-xs: 2px;
  --hm-radius-sm: 4px;
  --hm-radius-md: 6px;
  --hm-radius-lg: 8px;
  --hm-radius-pill: 999px;
  --hm-border-hairline: 1px;
  --hm-border-focus: 2px;
  --hm-grid-gutter: 24px;
  --hm-grid-cell: 64px;
  --hm-container-max: 1280px;
  --bs-font-sans-serif: var(--hm-font-sans);
  --bs-font-monospace: var(--hm-font-mono);
  --bs-body-font-family: var(--hm-font-sans);
  --bs-body-font-size: 1rem;
  --bs-body-font-weight: 400;
  --bs-body-line-height: 1.625;
  --bs-border-width: 1px;
  --bs-border-radius: 4px;
  --bs-border-radius-sm: 2px;
  --bs-border-radius-lg: 6px;
  --bs-border-radius-xl: 8px;
  --bs-border-radius-xxl: 8px;
  --bs-border-radius-pill: 999px;
  --bs-focus-ring-width: 2px;
  --bs-focus-ring-opacity: 1;
  --bs-box-shadow: var(--hm-shadow-overlay);
  --bs-box-shadow-sm: none;
  --bs-box-shadow-lg: var(--hm-shadow-overlay);
}

/* ===== 2. Tema escuro (padrão) ===== */
:root,
[data-bs-theme="dark"] {
  --hm-brand-neon: #aeff40;
  --hm-brand-white: #ffffff;
  --hm-brand-black: #000000;
  --hm-brand-gray: #555555;
  --hm-bg: #000000;
  --hm-surface-1: rgba(85, 85, 85, 0.12);
  --hm-surface-2: rgba(85, 85, 85, 0.2);
  --hm-surface-3: rgba(85, 85, 85, 0.28);
  --hm-line-subtle: rgba(85, 85, 85, 0.4);
  --hm-line: #555555;
  --hm-line-strong: #7a7a7a;
  --hm-text: #ffffff;
  --hm-text-secondary: #a1a1a1;
  --hm-text-tertiary: #8a8a8a;
  --hm-text-disabled: #555555;
  --hm-primary: #aeff40;
  --hm-primary-hover: #c6ff73;
  --hm-primary-active: #94e02a;
  --hm-primary-ink: #aeff40;
  --hm-primary-subtle: rgba(174, 255, 64, 0.1);
  --hm-on-primary: #000000;
  --hm-inverse: #ffffff;
  --hm-inverse-hover: #d4d4d4;
  --hm-glass: rgba(255, 255, 255, 0.06);
  --hm-glass-hover: rgba(255, 255, 255, 0.1);
  --hm-glass-line: rgba(255, 255, 255, 0.12);
  --hm-focus-ring: #aeff40;
  --hm-success: #aeff40;
  --hm-warning: #ffb224;
  --hm-danger: #ff6b6b;
  --hm-info: #5eb1ff;
  --hm-shadow-glow: 0 0 0 1px rgba(174, 255, 64, 0.35), 0 8px 32px -8px rgba(174, 255, 64, 0.45);
  --hm-shadow-overlay: 0 24px 64px -16px rgba(0, 0, 0, 0.8);
  color-scheme: dark;
  --bs-body-bg: var(--hm-bg);
  --bs-body-bg-rgb: 0, 0, 0;
  --bs-body-color: var(--hm-text);
  --bs-body-color-rgb: 255, 255, 255;
  --bs-emphasis-color: var(--hm-text);
  --bs-emphasis-color-rgb: 255, 255, 255;
  --bs-heading-color: var(--hm-text);
  --bs-secondary-color: var(--hm-text-secondary);
  --bs-secondary-color-rgb: 161, 161, 161;
  --bs-tertiary-color: var(--hm-text-tertiary);
  --bs-tertiary-color-rgb: 138, 138, 138;
  --bs-secondary-bg: var(--hm-surface-2);
  --bs-tertiary-bg: var(--hm-surface-1);
  --bs-secondary-bg-rgb: 17, 17, 17;
  --bs-tertiary-bg-rgb: 10, 10, 10;
  --bs-border-color: var(--hm-line);
  --bs-border-color-translucent: var(--hm-line-subtle);
  --bs-primary: #aeff40;
  --bs-primary-rgb: 174, 255, 64;
  --bs-primary-text-emphasis: var(--hm-primary-ink);
  --bs-primary-bg-subtle: var(--hm-primary-subtle);
  --bs-primary-border-subtle: rgba(174, 255, 64, 0.35);
  --bs-secondary: #555555;
  --bs-secondary-rgb: 85, 85, 85;
  --bs-success: #aeff40;
  --bs-success-rgb: 174, 255, 64;
  --bs-warning: #ffb224;
  --bs-warning-rgb: 255, 178, 36;
  --bs-danger: #ff6b6b;
  --bs-danger-rgb: 255, 107, 107;
  --bs-info: #5eb1ff;
  --bs-info-rgb: 94, 177, 255;
  --bs-dark: #000000;
  --bs-dark-rgb: 0, 0, 0;
  --bs-light: #ffffff;
  --bs-light-rgb: 255, 255, 255;
  --bs-link-color: var(--hm-primary-ink);
  --bs-link-color-rgb: 174, 255, 64;
  --bs-link-hover-color: var(--hm-text);
  --bs-link-hover-color-rgb: 255, 255, 255;
  --bs-code-color: var(--hm-primary-ink);
  --bs-highlight-bg: var(--hm-primary-subtle);
  --bs-highlight-color: var(--hm-text);
  --bs-focus-ring-color: var(--hm-focus-ring);
  --bs-form-valid-color: var(--hm-success);
  --bs-form-valid-border-color: var(--hm-success);
  --bs-form-invalid-color: var(--hm-danger);
  --bs-form-invalid-border-color: var(--hm-danger);
}

/* ===== 3. Tema claro ===== */
[data-bs-theme="light"] {
  --hm-brand-neon: #aeff40;
  --hm-brand-white: #ffffff;
  --hm-brand-black: #000000;
  --hm-brand-gray: #555555;
  --hm-bg: #ffffff;
  --hm-surface-1: rgba(85, 85, 85, 0.04);
  --hm-surface-2: rgba(85, 85, 85, 0.08);
  --hm-surface-3: rgba(85, 85, 85, 0.12);
  --hm-line-subtle: rgba(85, 85, 85, 0.16);
  --hm-line: rgba(85, 85, 85, 0.28);
  --hm-line-strong: #858585;
  --hm-text: #000000;
  --hm-text-secondary: #555555;
  --hm-text-tertiary: #666666;
  --hm-text-disabled: #a3a3a3;
  --hm-primary: #aeff40;
  --hm-primary-hover: #9cf024;
  --hm-primary-active: #94e02a;
  --hm-primary-ink: #467000;
  --hm-primary-subtle: rgba(174, 255, 64, 0.22);
  --hm-on-primary: #000000;
  --hm-inverse: #000000;
  --hm-inverse-hover: #262626;
  --hm-glass: rgba(0, 0, 0, 0.04);
  --hm-glass-hover: rgba(0, 0, 0, 0.07);
  --hm-glass-line: rgba(0, 0, 0, 0.1);
  --hm-focus-ring: #467000;
  --hm-success: #467000;
  --hm-warning: #8a5300;
  --hm-danger: #c81e1e;
  --hm-info: #0a5bc4;
  --hm-shadow-glow: 0 6px 20px -8px rgba(70, 112, 0, 0.45);
  --hm-shadow-overlay: 0 16px 40px -12px rgba(0, 0, 0, 0.18);
  color-scheme: light;
  --bs-body-bg: var(--hm-bg);
  --bs-body-bg-rgb: 255, 255, 255;
  --bs-body-color: var(--hm-text);
  --bs-body-color-rgb: 0, 0, 0;
  --bs-emphasis-color: var(--hm-text);
  --bs-emphasis-color-rgb: 0, 0, 0;
  --bs-heading-color: var(--hm-text);
  --bs-secondary-color: var(--hm-text-secondary);
  --bs-secondary-color-rgb: 85, 85, 85;
  --bs-tertiary-color: var(--hm-text-tertiary);
  --bs-tertiary-color-rgb: 102, 102, 102;
  --bs-secondary-bg: var(--hm-surface-2);
  --bs-tertiary-bg: var(--hm-surface-1);
  --bs-secondary-bg-rgb: 241, 241, 241;
  --bs-tertiary-bg-rgb: 248, 248, 248;
  --bs-border-color: var(--hm-line);
  --bs-border-color-translucent: var(--hm-line-subtle);
  --bs-primary: #aeff40;
  --bs-primary-rgb: 174, 255, 64;
  --bs-primary-text-emphasis: var(--hm-primary-ink);
  --bs-primary-bg-subtle: var(--hm-primary-subtle);
  --bs-primary-border-subtle: rgba(70, 112, 0, 0.35);
  --bs-secondary: #555555;
  --bs-secondary-rgb: 85, 85, 85;
  --bs-success: #467000;
  --bs-success-rgb: 70, 112, 0;
  --bs-warning: #8a5300;
  --bs-warning-rgb: 138, 83, 0;
  --bs-danger: #c81e1e;
  --bs-danger-rgb: 200, 30, 30;
  --bs-info: #0a5bc4;
  --bs-info-rgb: 10, 91, 196;
  --bs-dark: #000000;
  --bs-dark-rgb: 0, 0, 0;
  --bs-light: #ffffff;
  --bs-light-rgb: 255, 255, 255;
  --bs-link-color: var(--hm-primary-ink);
  --bs-link-color-rgb: 70, 112, 0;
  --bs-link-hover-color: var(--hm-text);
  --bs-link-hover-color-rgb: 0, 0, 0;
  --bs-code-color: var(--hm-primary-ink);
  --bs-highlight-bg: var(--hm-primary-subtle);
  --bs-highlight-color: var(--hm-text);
  --bs-focus-ring-color: var(--hm-focus-ring);
  --bs-form-valid-color: var(--hm-success);
  --bs-form-valid-border-color: var(--hm-success);
  --bs-form-invalid-color: var(--hm-danger);
  --bs-form-invalid-border-color: var(--hm-danger);
}

/* ===== 4. Utilitários de espaçamento estendidos (6 = 64px, 7 = 96px, 8 = 128px) ===== */
.m-6 { margin: 4rem !important; }
.m-7 { margin: 6rem !important; }
.m-8 { margin: 8rem !important; }
.mt-6 { margin-top: 4rem !important; }
.mt-7 { margin-top: 6rem !important; }
.mt-8 { margin-top: 8rem !important; }
.mb-6 { margin-bottom: 4rem !important; }
.mb-7 { margin-bottom: 6rem !important; }
.mb-8 { margin-bottom: 8rem !important; }
.my-6 { margin-top: 4rem !important; margin-bottom: 4rem !important; }
.my-7 { margin-top: 6rem !important; margin-bottom: 6rem !important; }
.my-8 { margin-top: 8rem !important; margin-bottom: 8rem !important; }
.mx-6 { margin-left: 4rem !important; margin-right: 4rem !important; }
.mx-7 { margin-left: 6rem !important; margin-right: 6rem !important; }
.mx-8 { margin-left: 8rem !important; margin-right: 8rem !important; }
.p-6 { padding: 4rem !important; }
.p-7 { padding: 6rem !important; }
.p-8 { padding: 8rem !important; }
.pt-6 { padding-top: 4rem !important; }
.pt-7 { padding-top: 6rem !important; }
.pt-8 { padding-top: 8rem !important; }
.pb-6 { padding-bottom: 4rem !important; }
.pb-7 { padding-bottom: 6rem !important; }
.pb-8 { padding-bottom: 8rem !important; }
.py-6 { padding-top: 4rem !important; padding-bottom: 4rem !important; }
.py-7 { padding-top: 6rem !important; padding-bottom: 6rem !important; }
.py-8 { padding-top: 8rem !important; padding-bottom: 8rem !important; }
.px-6 { padding-left: 4rem !important; padding-right: 4rem !important; }
.px-7 { padding-left: 6rem !important; padding-right: 6rem !important; }
.px-8 { padding-left: 8rem !important; padding-right: 8rem !important; }
.gap-6 { gap: 4rem !important; }
.gap-7 { gap: 6rem !important; }
.gap-8 { gap: 8rem !important; }
.row-gap-6 { row-gap: 4rem !important; }
.row-gap-7 { row-gap: 6rem !important; }
.row-gap-8 { row-gap: 8rem !important; }
.g-6, .gx-6 { --bs-gutter-x: 4rem; }
.g-6, .gy-6 { --bs-gutter-y: 4rem; }
.g-7, .gx-7 { --bs-gutter-x: 6rem; }
.g-7, .gy-7 { --bs-gutter-y: 6rem; }
.g-8, .gx-8 { --bs-gutter-x: 8rem; }
.g-8, .gy-8 { --bs-gutter-y: 8rem; }
@media (min-width: 768px) {
  .m-md-6 { margin: 4rem !important; }
  .m-md-7 { margin: 6rem !important; }
  .m-md-8 { margin: 8rem !important; }
  .mt-md-6 { margin-top: 4rem !important; }
  .mt-md-7 { margin-top: 6rem !important; }
  .mt-md-8 { margin-top: 8rem !important; }
  .mb-md-6 { margin-bottom: 4rem !important; }
  .mb-md-7 { margin-bottom: 6rem !important; }
  .mb-md-8 { margin-bottom: 8rem !important; }
  .my-md-6 { margin-top: 4rem !important; margin-bottom: 4rem !important; }
  .my-md-7 { margin-top: 6rem !important; margin-bottom: 6rem !important; }
  .my-md-8 { margin-top: 8rem !important; margin-bottom: 8rem !important; }
  .mx-md-6 { margin-left: 4rem !important; margin-right: 4rem !important; }
  .mx-md-7 { margin-left: 6rem !important; margin-right: 6rem !important; }
  .mx-md-8 { margin-left: 8rem !important; margin-right: 8rem !important; }
  .p-md-6 { padding: 4rem !important; }
  .p-md-7 { padding: 6rem !important; }
  .p-md-8 { padding: 8rem !important; }
  .pt-md-6 { padding-top: 4rem !important; }
  .pt-md-7 { padding-top: 6rem !important; }
  .pt-md-8 { padding-top: 8rem !important; }
  .pb-md-6 { padding-bottom: 4rem !important; }
  .pb-md-7 { padding-bottom: 6rem !important; }
  .pb-md-8 { padding-bottom: 8rem !important; }
  .py-md-6 { padding-top: 4rem !important; padding-bottom: 4rem !important; }
  .py-md-7 { padding-top: 6rem !important; padding-bottom: 6rem !important; }
  .py-md-8 { padding-top: 8rem !important; padding-bottom: 8rem !important; }
  .px-md-6 { padding-left: 4rem !important; padding-right: 4rem !important; }
  .px-md-7 { padding-left: 6rem !important; padding-right: 6rem !important; }
  .px-md-8 { padding-left: 8rem !important; padding-right: 8rem !important; }
  .gap-md-6 { gap: 4rem !important; }
  .gap-md-7 { gap: 6rem !important; }
  .gap-md-8 { gap: 8rem !important; }
  .row-gap-md-6 { row-gap: 4rem !important; }
  .row-gap-md-7 { row-gap: 6rem !important; }
  .row-gap-md-8 { row-gap: 8rem !important; }
  .g-md-6, .gx-md-6 { --bs-gutter-x: 4rem; }
  .g-md-6, .gy-md-6 { --bs-gutter-y: 4rem; }
  .g-md-7, .gx-md-7 { --bs-gutter-x: 6rem; }
  .g-md-7, .gy-md-7 { --bs-gutter-y: 6rem; }
  .g-md-8, .gx-md-8 { --bs-gutter-x: 8rem; }
  .g-md-8, .gy-md-8 { --bs-gutter-y: 8rem; }
}
@media (min-width: 992px) {
  .m-lg-6 { margin: 4rem !important; }
  .m-lg-7 { margin: 6rem !important; }
  .m-lg-8 { margin: 8rem !important; }
  .mt-lg-6 { margin-top: 4rem !important; }
  .mt-lg-7 { margin-top: 6rem !important; }
  .mt-lg-8 { margin-top: 8rem !important; }
  .mb-lg-6 { margin-bottom: 4rem !important; }
  .mb-lg-7 { margin-bottom: 6rem !important; }
  .mb-lg-8 { margin-bottom: 8rem !important; }
  .my-lg-6 { margin-top: 4rem !important; margin-bottom: 4rem !important; }
  .my-lg-7 { margin-top: 6rem !important; margin-bottom: 6rem !important; }
  .my-lg-8 { margin-top: 8rem !important; margin-bottom: 8rem !important; }
  .mx-lg-6 { margin-left: 4rem !important; margin-right: 4rem !important; }
  .mx-lg-7 { margin-left: 6rem !important; margin-right: 6rem !important; }
  .mx-lg-8 { margin-left: 8rem !important; margin-right: 8rem !important; }
  .p-lg-6 { padding: 4rem !important; }
  .p-lg-7 { padding: 6rem !important; }
  .p-lg-8 { padding: 8rem !important; }
  .pt-lg-6 { padding-top: 4rem !important; }
  .pt-lg-7 { padding-top: 6rem !important; }
  .pt-lg-8 { padding-top: 8rem !important; }
  .pb-lg-6 { padding-bottom: 4rem !important; }
  .pb-lg-7 { padding-bottom: 6rem !important; }
  .pb-lg-8 { padding-bottom: 8rem !important; }
  .py-lg-6 { padding-top: 4rem !important; padding-bottom: 4rem !important; }
  .py-lg-7 { padding-top: 6rem !important; padding-bottom: 6rem !important; }
  .py-lg-8 { padding-top: 8rem !important; padding-bottom: 8rem !important; }
  .px-lg-6 { padding-left: 4rem !important; padding-right: 4rem !important; }
  .px-lg-7 { padding-left: 6rem !important; padding-right: 6rem !important; }
  .px-lg-8 { padding-left: 8rem !important; padding-right: 8rem !important; }
  .gap-lg-6 { gap: 4rem !important; }
  .gap-lg-7 { gap: 6rem !important; }
  .gap-lg-8 { gap: 8rem !important; }
  .row-gap-lg-6 { row-gap: 4rem !important; }
  .row-gap-lg-7 { row-gap: 6rem !important; }
  .row-gap-lg-8 { row-gap: 8rem !important; }
  .g-lg-6, .gx-lg-6 { --bs-gutter-x: 4rem; }
  .g-lg-6, .gy-lg-6 { --bs-gutter-y: 4rem; }
  .g-lg-7, .gx-lg-7 { --bs-gutter-x: 6rem; }
  .g-lg-7, .gy-lg-7 { --bs-gutter-y: 6rem; }
  .g-lg-8, .gx-lg-8 { --bs-gutter-x: 8rem; }
  .g-lg-8, .gy-lg-8 { --bs-gutter-y: 8rem; }
}

/* ==========================================================================
   HITMO · Camada de componentes para Bootstrap 5.3+
   Carregar DEPOIS do bootstrap.css. Usa apenas variáveis --hm-* e --bs-*.
   ========================================================================== */

/* ---------- Base ---------- */
body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
::selection { background: var(--hm-primary); color: var(--hm-on-primary); }

h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6,
.display-1, .display-2 { font-weight: 600; color: var(--hm-text); text-wrap: balance; }
.display-1 { font-size: clamp(2.75rem, 1.6rem + 4.2vw, 4.5rem); line-height: 1.05; letter-spacing: -0.04em; }
.display-2 { font-size: clamp(2.5rem, 1.8rem + 2.6vw, 3.5rem); line-height: 1.07; letter-spacing: -0.035em; }
h1, .h1 { font-size: clamp(2.25rem, 1.8rem + 1.6vw, 3rem); line-height: 1.08; letter-spacing: -0.03em; }
h2, .h2 { font-size: clamp(1.875rem, 1.65rem + .8vw, 2.25rem); line-height: 1.17; letter-spacing: -0.025em; }
h3, .h3 { font-size: clamp(1.5rem, 1.35rem + .5vw, 1.75rem); line-height: 1.21; letter-spacing: -0.02em; }
h4, .h4 { font-size: clamp(1.25rem, 1.2rem + .2vw, 1.375rem); line-height: 1.27; letter-spacing: -0.015em; }
h5, .h5 { font-size: 1.125rem; line-height: 1.44; letter-spacing: -0.01em; }
h6, .h6 { font-size: 1rem; line-height: 1.5; letter-spacing: -0.005em; }
.lead { font-size: 1.25rem; line-height: 1.5; font-weight: 400; letter-spacing: -0.01em; color: var(--hm-text-secondary); }
small, .small { font-size: .875rem; }
code, kbd, pre, samp { font-family: var(--hm-font-mono); font-size: .8125rem; }
code { color: var(--hm-primary-ink); }
kbd { background: var(--hm-surface-3); color: var(--hm-text); border: 1px solid var(--hm-line); border-radius: var(--hm-radius-xs); padding: .125rem .375rem; }

/* ---------- Tipografia utilitária ---------- */
.hm-mono, .font-monospace { font-family: var(--hm-font-mono) !important; font-variant-numeric: tabular-nums; }
.hm-eyebrow {
  display: inline-flex; align-items: center; gap: .5rem;
  font-family: var(--hm-font-mono); font-size: .75rem; line-height: 1rem; font-weight: 500;
  letter-spacing: .08em; text-transform: uppercase; color: var(--hm-text-secondary);
}
.hm-eyebrow::before { content: ""; width: 6px; height: 6px; border-radius: 1px; background: var(--hm-primary-ink); }
.hm-metric { font-family: var(--hm-font-mono); font-size: 2.5rem; line-height: 1.1; font-weight: 500; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.text-hitmo   { color: var(--hm-primary-ink) !important; }
.bg-hitmo     { background-color: var(--hm-primary) !important; color: var(--hm-on-primary) !important; }
.border-hitmo { border-color: var(--hm-primary-ink) !important; }
.text-body-secondary { color: var(--hm-text-secondary) !important; }
.text-body-tertiary  { color: var(--hm-text-tertiary) !important; }

/* ---------- Linhas & grid de engenharia ---------- */
.border-subtle { border-color: var(--hm-line-subtle) !important; }
.border-strong { border-color: var(--hm-line-strong) !important; }
.hm-grid-lines {
  background-image:
    linear-gradient(var(--hm-line-subtle) 1px, transparent 1px),
    linear-gradient(90deg, var(--hm-line-subtle) 1px, transparent 1px);
  background-size: var(--hm-grid-cell) var(--hm-grid-cell);
  background-position: -1px -1px;
}
.hm-frame { border-block: 1px solid var(--hm-line); }
.hm-divide-y > * + * { border-top: 1px solid var(--hm-line); }
@media (min-width: 992px) {
  .hm-divide-lg-x > * + * { border-left: 1px solid var(--hm-line); }
}
.hm-section { padding-block: var(--hm-space-6); }
@media (min-width: 768px) { .hm-section { padding-block: var(--hm-space-7); } }
@media (min-width: 992px) { .hm-section { padding-block: var(--hm-space-8); } }

/* ---------- Botões ---------- */
.btn {
  --bs-btn-padding-x: 1.125rem;
  --bs-btn-padding-y: .625rem;
  --bs-btn-font-family: var(--hm-font-sans);
  --bs-btn-font-size: .9375rem;
  --bs-btn-font-weight: 500;
  --bs-btn-line-height: 1.25;
  --bs-btn-border-width: var(--hm-border-hairline);
  --bs-btn-border-radius: var(--hm-radius-sm);
  --bs-btn-box-shadow: none;
  --bs-btn-disabled-opacity: 1;
  --bs-btn-focus-box-shadow: 0 0 0 2px var(--hm-bg), 0 0 0 4px var(--hm-focus-ring);
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  letter-spacing: -0.005em; white-space: nowrap;
  transition: background-color .15s cubic-bezier(.2,.8,.2,1), border-color .15s cubic-bezier(.2,.8,.2,1),
              color .15s cubic-bezier(.2,.8,.2,1), box-shadow .2s cubic-bezier(.2,.8,.2,1);
}
.btn-sm { --bs-btn-padding-x: .75rem; --bs-btn-padding-y: .375rem; --bs-btn-font-size: .8125rem; --bs-btn-border-radius: var(--hm-radius-sm); }
.btn-lg { --bs-btn-padding-x: 1.5rem; --bs-btn-padding-y: .875rem; --bs-btn-font-size: 1rem; --bs-btn-border-radius: var(--hm-radius-sm); }
.btn .hm-arrow { display: inline-block; transition: transform .2s cubic-bezier(.2,.8,.2,1); }
.btn:hover .hm-arrow { transform: translateX(3px); }

.btn-primary,
.btn-hitmo-primary {
  --bs-btn-color: var(--hm-on-primary);
  --bs-btn-bg: var(--hm-primary);
  --bs-btn-border-color: var(--hm-primary);
  --bs-btn-hover-color: var(--hm-on-primary);
  --bs-btn-hover-bg: var(--hm-primary-hover);
  --bs-btn-hover-border-color: var(--hm-primary-hover);
  --bs-btn-active-color: var(--hm-on-primary);
  --bs-btn-active-bg: var(--hm-primary-active);
  --bs-btn-active-border-color: var(--hm-primary-active);
  --bs-btn-disabled-color: var(--hm-text-disabled);
  --bs-btn-disabled-bg: var(--hm-surface-3);
  --bs-btn-disabled-border-color: var(--hm-surface-3);
}
.btn-primary:hover, .btn-hitmo-primary:hover { box-shadow: var(--hm-shadow-glow); }
.btn-primary:focus-visible, .btn-hitmo-primary:focus-visible { box-shadow: var(--bs-btn-focus-box-shadow); }

.btn-hitmo-secondary {
  --bs-btn-color: var(--hm-bg);
  --bs-btn-bg: var(--hm-inverse);
  --bs-btn-border-color: var(--hm-inverse);
  --bs-btn-hover-color: var(--hm-bg);
  --bs-btn-hover-bg: var(--hm-inverse-hover);
  --bs-btn-hover-border-color: var(--hm-inverse-hover);
  --bs-btn-active-color: var(--hm-bg);
  --bs-btn-active-bg: var(--hm-inverse-hover);
  --bs-btn-active-border-color: var(--hm-inverse-hover);
  --bs-btn-disabled-color: var(--hm-text-disabled);
  --bs-btn-disabled-bg: var(--hm-surface-3);
  --bs-btn-disabled-border-color: var(--hm-surface-3);
}

.btn-hitmo-outline {
  --bs-btn-color: var(--hm-text);
  --bs-btn-bg: transparent;
  --bs-btn-border-color: var(--hm-line-strong);
  --bs-btn-hover-color: var(--hm-text);
  --bs-btn-hover-bg: var(--hm-surface-2);
  --bs-btn-hover-border-color: var(--hm-text);
  --bs-btn-active-color: var(--hm-text);
  --bs-btn-active-bg: var(--hm-surface-3);
  --bs-btn-active-border-color: var(--hm-text);
  --bs-btn-disabled-color: var(--hm-text-disabled);
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: var(--hm-line);
}

.btn-outline-primary,
.btn-hitmo-outline-primary {
  --bs-btn-color: var(--hm-primary-ink);
  --bs-btn-bg: transparent;
  --bs-btn-border-color: var(--hm-primary-ink);
  --bs-btn-hover-color: var(--hm-primary-ink);
  --bs-btn-hover-bg: var(--hm-primary-subtle);
  --bs-btn-hover-border-color: var(--hm-primary-ink);
  --bs-btn-active-color: var(--hm-on-primary);
  --bs-btn-active-bg: var(--hm-primary);
  --bs-btn-active-border-color: var(--hm-primary);
  --bs-btn-disabled-color: var(--hm-text-disabled);
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: var(--hm-line);
}

.btn-hitmo-ghost {
  --bs-btn-color: var(--hm-text);
  --bs-btn-bg: var(--hm-glass);
  --bs-btn-border-color: var(--hm-glass-line);
  --bs-btn-hover-color: var(--hm-text);
  --bs-btn-hover-bg: var(--hm-glass-hover);
  --bs-btn-hover-border-color: var(--hm-glass-line);
  --bs-btn-active-color: var(--hm-text);
  --bs-btn-active-bg: var(--hm-surface-3);
  --bs-btn-active-border-color: var(--hm-line-strong);
  --bs-btn-disabled-color: var(--hm-text-disabled);
  --bs-btn-disabled-bg: var(--hm-glass);
  --bs-btn-disabled-border-color: var(--hm-glass-line);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}

/* ---------- Cards ---------- */
.card {
  --bs-card-spacer-y: 1.5rem;
  --bs-card-spacer-x: 1.5rem;
  --bs-card-title-spacer-y: .5rem;
  --bs-card-title-color: var(--hm-text);
  --bs-card-subtitle-color: var(--hm-text-secondary);
  --bs-card-border-width: var(--hm-border-hairline);
  --bs-card-border-color: var(--hm-line);
  --bs-card-border-radius: var(--hm-radius-md);
  --bs-card-inner-border-radius: calc(var(--hm-radius-md) - 1px);
  --bs-card-box-shadow: none;
  --bs-card-cap-padding-y: 1rem;
  --bs-card-cap-padding-x: 1.5rem;
  --bs-card-cap-bg: transparent;
  --bs-card-cap-color: var(--hm-text-secondary);
  --bs-card-color: var(--hm-text);
  --bs-card-bg: var(--hm-surface-1);
}
.card .card-text { color: var(--hm-text-secondary); }
.card .card-header, .card .card-footer { border-color: var(--hm-line); font-family: var(--hm-font-mono); font-size: .75rem; letter-spacing: .04em; }

.card-hitmo {
  transition: background-color .2s cubic-bezier(.2,.8,.2,1), border-color .2s cubic-bezier(.2,.8,.2,1);
}
.card-hitmo::before,
.card-hitmo::after {
  content: ""; position: absolute; width: 10px; height: 10px; pointer-events: none;
  border: 0 solid var(--hm-primary-ink); opacity: 0;
  transition: opacity .2s cubic-bezier(.2,.8,.2,1);
}
.card-hitmo::before { top: -1px; left: -1px; border-top-width: 2px; border-left-width: 2px; border-top-left-radius: var(--hm-radius-md); }
.card-hitmo::after { right: -1px; bottom: -1px; border-right-width: 2px; border-bottom-width: 2px; border-bottom-right-radius: var(--hm-radius-md); }
.card-hitmo:hover, .card-hitmo:focus-within {
  --bs-card-bg: var(--hm-surface-2);
  --bs-card-border-color: var(--hm-line-strong);
}
.card-hitmo:hover::before, .card-hitmo:hover::after,
.card-hitmo:focus-within::before, .card-hitmo:focus-within::after { opacity: 1; }
.card-hitmo.is-active { --bs-card-border-color: var(--hm-primary-ink); }
.card-hitmo.is-active::before, .card-hitmo.is-active::after { opacity: 1; }
.card-hitmo .hm-card-index { font-family: var(--hm-font-mono); font-size: .75rem; line-height: 1rem; letter-spacing: .06em; color: var(--hm-text-tertiary); }
.card-hitmo .stretched-link { color: var(--hm-text); text-decoration: none; }
.card-hitmo .hm-card-link { font-size: .875rem; font-weight: 500; color: var(--hm-primary-ink); text-decoration: none; }
.card-glass {
  --bs-card-bg: var(--hm-glass);
  --bs-card-border-color: var(--hm-glass-line);
  -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px);
}

/* ---------- Formulários ---------- */
.form-label { font-size: .875rem; line-height: 1.25rem; font-weight: 500; color: var(--hm-text); margin-bottom: .5rem; }
.form-text { font-size: .8125rem; line-height: 1.25rem; color: var(--hm-text-tertiary); margin-top: .375rem; }
.form-control,
.form-select {
  font-family: var(--hm-font-sans);
  font-size: .9375rem;
  line-height: 1.5;
  padding: .625rem .875rem;
  color: var(--hm-text);
  background-color: var(--hm-surface-1);
  border: var(--hm-border-hairline) solid var(--hm-line-strong);
  border-radius: var(--hm-radius-sm);
  box-shadow: none;
  transition: border-color .15s cubic-bezier(.2,.8,.2,1), box-shadow .15s cubic-bezier(.2,.8,.2,1), background-color .15s;
}
.form-select {
  padding-right: 2.5rem;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%238a8a8a' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m4 6 4 4 4-4'/%3e%3c/svg%3e");
  background-repeat: no-repeat; background-position: right .875rem center; background-size: 16px 12px;
}
.form-control:hover, .form-select:hover { border-color: var(--hm-text-tertiary); }
.form-control::placeholder { color: var(--hm-text-tertiary); opacity: 1; }
.form-control:focus,
.form-select:focus {
  color: var(--hm-text);
  background-color: var(--hm-surface-1);
  border-color: var(--hm-focus-ring);
  outline: 0;
  box-shadow: 0 0 0 1px var(--hm-focus-ring), 0 0 0 4px var(--hm-primary-subtle);
}
.form-control:disabled, .form-select:disabled,
.form-control[readonly].is-locked {
  color: var(--hm-text-disabled);
  background-color: var(--hm-surface-2);
  border-color: var(--hm-line);
  cursor: not-allowed;
  opacity: 1;
}
.form-control.is-invalid, .form-select.is-invalid { border-color: var(--hm-danger); background-image: none; padding-right: .875rem; }
.form-control.is-invalid:focus, .form-select.is-invalid:focus { border-color: var(--hm-danger); box-shadow: 0 0 0 1px var(--hm-danger), 0 0 0 4px color-mix(in srgb, var(--hm-danger) 18%, transparent); }
.form-control.is-valid { border-color: var(--hm-success); background-image: none; padding-right: .875rem; }
.invalid-feedback { font-size: .8125rem; line-height: 1.25rem; color: var(--hm-danger); margin-top: .375rem; }
.valid-feedback { font-size: .8125rem; line-height: 1.25rem; color: var(--hm-success); margin-top: .375rem; }
.form-control-mono { font-family: var(--hm-font-mono); font-size: .875rem; }
.form-control-lg { padding: .875rem 1rem; font-size: 1rem; border-radius: var(--hm-radius-sm); }
.form-control-sm { padding: .375rem .625rem; font-size: .8125rem; border-radius: var(--hm-radius-sm); }
.input-group-text {
  font-family: var(--hm-font-mono); font-size: .8125rem;
  color: var(--hm-text-secondary); background-color: var(--hm-surface-2);
  border: var(--hm-border-hairline) solid var(--hm-line-strong); border-radius: var(--hm-radius-sm);
  padding: .625rem .875rem;
}

@media (prefers-reduced-motion: reduce) {
  .btn, .btn .hm-arrow, .card-hitmo, .card-hitmo::before, .card-hitmo::after, .form-control, .form-select { transition: none; }
}
