/**
 * CONFMONIT — FUTURE OPS
 * Overrides das classes legadas (.fmt-*) e Bootstrap
 */

/* ── Legacy fmt-* classes ── */
.fmt-campo {
  background-color: var(--bg-secondary) !important;
  border: 1px solid var(--border) !important;
  color: var(--text-primary) !important;
  border-radius: var(--radius-sm);
}

.fmt-campo:focus {
  border-color: var(--color-primary) !important;
  box-shadow: 0 0 0 2px rgba(0, 217, 255, 0.12) !important;
}

.fmt-color {
  background-color: var(--bg-primary) !important;
  color: var(--text-primary) !important;
}

.fmt-painel {
  background-color: var(--bg-card) !important;
  border: 1px solid var(--border) !important;
  color: var(--text-primary) !important;
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-card);
}

.fmt-titulo {
  background-color: var(--bg-card-elevated) !important;
  color: var(--color-primary) !important;
  font-weight: 600 !important;
  font-size: 0.8125rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--border);
}

.fmt-table {
  background-color: var(--bg-card) !important;
  color: var(--text-primary) !important;
}

.fmt-thead {
  background-color: var(--bg-card-elevated) !important;
  color: var(--text-secondary) !important;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  border-color: var(--border) !important;
}

.txt-tbody {
  color: var(--text-primary) !important;
  font-weight: 500 !important;
}

.fmt-tbody {
  background-color: var(--bg-card) !important;
  color: var(--text-primary) !important;
  font-weight: 500 !important;
}

.fmt-botao {
  background-color: var(--bg-secondary) !important;
  border: 1px solid var(--border) !important;
  color: var(--text-secondary) !important;
  transition: border-color var(--transition-fast), color var(--transition-fast),
    background var(--transition-fast), box-shadow var(--transition-fast);
}

.fmt-botao:hover,
.click:hover .fmt-botao {
  border-color: var(--color-primary) !important;
  color: var(--color-primary) !important;
  background-color: rgba(0, 217, 255, 0.06) !important;
  box-shadow: var(--glow-primary);
}

.txt-color {
  color: var(--text-primary) !important;
}

.txt-botao {
  color: inherit !important;
}

/* Placeholders — legíveis em fundo escuro */
.ops-app ::-webkit-input-placeholder { color: var(--text-secondary) !important; opacity: 0.85; }
.ops-app :-moz-placeholder { color: var(--text-secondary) !important; opacity: 0.85; }
.ops-app ::-moz-placeholder { color: var(--text-secondary) !important; opacity: 0.85; }
.ops-app :-ms-input-placeholder { color: var(--text-secondary) !important; }
.ops-app textarea::placeholder { color: var(--text-secondary) !important; opacity: 0.85; }

/* Labels de input-group (Cliente, Alarme, etc.) */
.ops-app .input-group-text.bg-success,
.ops-app .input-group-text.text-bg-success,
.ops-app .input-group-text.fmt-painel.text-bg-success {
  background-color: rgba(0, 255, 156, 0.12) !important;
  border: 1px solid rgba(0, 255, 156, 0.35) !important;
  color: var(--color-success) !important;
  font-weight: 600;
  font-size: 0.75rem;
  letter-spacing: 0.03em;
}

.ops-app .input-group-text.fmt-painel {
  background-color: var(--bg-card-elevated) !important;
  border: 1px solid var(--border) !important;
  color: var(--text-secondary) !important;
}

/* Botões text-bg-* legíveis */
.ops-app .text-bg-success {
  background-color: rgba(0, 255, 156, 0.18) !important;
  color: var(--text-primary) !important;
}

.ops-app .text-bg-warning {
  background-color: rgba(255, 184, 0, 0.22) !important;
  color: var(--text-primary) !important;
}

.ops-app .text-bg-danger {
  background-color: rgba(255, 59, 92, 0.2) !important;
  color: var(--text-primary) !important;
}

.ops-app .btn-warning.text-bg-warning {
  background-color: rgba(255, 184, 0, 0.25) !important;
  border-color: rgba(255, 184, 0, 0.5) !important;
  color: var(--text-primary) !important;
}

.ops-app .btn-success.text-bg-success {
  background-color: rgba(0, 255, 156, 0.22) !important;
  border-color: rgba(0, 255, 156, 0.45) !important;
  color: var(--text-primary) !important;
}

.ops-app .btn-info {
  background: rgba(139, 92, 246, 0.15) !important;
  border-color: rgba(139, 92, 246, 0.45) !important;
  color: var(--color-ai) !important;
}

/* Selects e textareas */
.ops-app select.form-control,
.ops-app select.fmt-campo,
.ops-app textarea.fmt-campo {
  color: var(--text-primary) !important;
}

.ops-app select.form-control option,
.ops-app select.fmt-campo option {
  background: var(--bg-card);
  color: var(--text-primary);
}

/* ── Bootstrap table overrides ── */
.ops-app .table {
  --bs-table-bg: var(--bg-card);
  --bs-table-color: var(--text-primary);
  --bs-table-striped-color: var(--text-primary);
  --bs-table-border-color: var(--border);
  margin-bottom: 0;
}

.ops-app .table-bordered {
  border-color: var(--border);
}

.ops-app .table-bordered > :not(caption) > * > * {
  border-color: var(--border-subtle);
}

.ops-app .table-striped > tbody > tr:nth-of-type(odd) > * {
  --bs-table-bg-type: rgba(0, 217, 255, 0.02);
  --bs-table-color-type: var(--text-primary);
}

.ops-app .table-striped > tbody > tr > * {
  color: var(--text-primary);
}

.ops-app .table-dark {
  --bs-table-bg: var(--bg-card);
  --bs-table-color: var(--text-primary);
  --bs-table-border-color: var(--border);
}

/* ── Bootstrap buttons ── */
.ops-app .btn-primary {
  background: rgba(0, 217, 255, 0.15);
  border-color: rgba(0, 217, 255, 0.5);
  color: var(--color-primary);
}

.ops-app .btn-primary:hover,
.ops-app .btn-primary:focus {
  background: rgba(0, 217, 255, 0.28);
  border-color: var(--color-primary);
  color: var(--text-primary);
  box-shadow: var(--glow-primary);
}

.ops-app .btn-success {
  background: rgba(0, 255, 156, 0.12);
  border-color: rgba(0, 255, 156, 0.45);
  color: var(--color-success);
}

.ops-app .btn-success:hover {
  background: rgba(0, 255, 156, 0.22);
  border-color: var(--color-success);
  color: var(--text-primary);
}

.ops-app .btn-danger {
  background: rgba(255, 59, 92, 0.12);
  border-color: rgba(255, 59, 92, 0.45);
  color: var(--color-danger);
}

.ops-app .btn-danger:hover {
  background: rgba(255, 59, 92, 0.22);
}

.ops-app .btn-secondary {
  background: var(--bg-secondary);
  border-color: var(--border);
  color: var(--text-secondary);
}

.ops-app .btn-secondary:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
}

.ops-app .text-bg-primary {
  background-color: rgba(0, 217, 255, 0.15) !important;
  color: var(--color-primary) !important;
}

/* Action cell buttons in event tables */
.ops-app td.bg-success,
.ops-app td.bg-primary,
.ops-app td.bg-danger,
.ops-app td.bg-warning {
  transition: filter var(--transition-fast);
}

.ops-app td.bg-success {
  background-color: rgba(0, 255, 156, 0.18) !important;
  color: var(--color-success) !important;
}

.ops-app td.bg-primary {
  background-color: rgba(0, 217, 255, 0.15) !important;
  color: var(--color-primary) !important;
}

.ops-app td.bg-danger {
  background-color: rgba(255, 59, 92, 0.18) !important;
  color: var(--color-danger) !important;
}

.ops-app td.bg-warning {
  background-color: rgba(255, 184, 0, 0.15) !important;
  color: var(--color-warning) !important;
}

.ops-app td.bg-success:hover,
.ops-app td.bg-primary:hover,
.ops-app td.bg-danger:hover,
.ops-app td.bg-warning:hover {
  filter: brightness(1.15);
}

/* ── SweetAlert2 dark theme hint ── */
.swal2-popup {
  background: var(--bg-card) !important;
  color: var(--text-primary) !important;
  border: 1px solid var(--border) !important;
}
