/* Theme tokens */
:root {
  --bg: #f8f9fb;
  --text: #0f1115;
  --muted: #6c757d;
  --card-bg: #ffffff;
  --border: #e9ecef;
  --select-bg: #ffffff;
  --select-border: #cfd3da;
  --table-head-bg: #ffffff;
}
[data-theme="dark"] {
  --bg: #0f1115;
  --text: #e6e6e6;
  --muted: #9aa4b2;
  --card-bg: #151922;
  --border: #232a3b;
  --select-bg: #0f131b;
  --select-border: #2a3142;
  --table-head-bg: #0f131b;
}

/* Ajustes de UI premium */
body { background: var(--bg); color: var(--text); }
.card { border-radius: 0.75rem; }
.table thead th { font-weight: 700; }
.badge { font-weight: 600; }
.navbar-brand img { box-shadow: none; }

/* Login: fundo igual à tarja do menu (bg-primary do Lux) */
.login-hero {
  background: #f8f9fb;
  min-height: 100vh;
  display: flex;
  align-items: center;
}

/* Espaço para inputs de cor mais agradáveis em settings */
.color-input {
  padding-left: 12px;
  font-family: monospace;
}

/* Premium look & feel */
.btn { border-radius: .65rem; font-weight: 600; letter-spacing: .2px; }
.btn-primary { box-shadow: none; }
.btn:focus, .btn-primary:focus, .btn:active:focus { box-shadow: none !important; outline: none !important; }
.btn-outline-secondary { border-width: 2px; }
.btn:hover { transform: translateY(-1px); transition: all .2s ease; }
.btn:active { transform: translateY(0); }

.card { box-shadow: 0 6px 18px rgba(0,0,0,.06); transition: transform .25s ease, box-shadow .25s ease, background-color .2s ease; }
.card:hover { transform: translateY(-3px); box-shadow: 0 10px 26px rgba(0,0,0,.10); }
.reveal { opacity: 0; transform: translateY(8px); }
.reveal.reveal--visible { opacity: 1; transform: none; transition: opacity .5s ease, transform .5s ease; }
.card-header { border: 0; font-weight: 700; }
.form-control, .form-select { border-radius: .75rem; padding: .65rem .95rem; border: 2px solid var(--select-border); background-color: var(--select-bg); color: var(--text); }
.form-select:focus { border-color: #adb5bd; box-shadow: none; }
.form-control:focus { border-color: #adb5bd; box-shadow: none; }
.table { border-radius: .6rem; overflow: hidden; }
/* Card, table & text colors respect theme */
.card { background: var(--card-bg); color: var(--text); }
.table thead th { background: var(--table-head-bg); }
.text-muted { color: var(--muted) !important; }

/* Busca: fundo mais sutil e legível */
.form-control[name="q"] { background: linear-gradient(180deg, rgba(255,255,255,.85), rgba(255,255,255,.75)); }
.form-control::placeholder { color: var(--muted); opacity: .9; }
[data-theme="dark"] .form-control[name="q"] { background: linear-gradient(180deg, rgba(17,20,27,.96), rgba(17,20,27,.9)); border-color: var(--select-border); }

/* Input group refinado (ícone de busca) */
.input-group .input-group-text {
  background: var(--select-bg);
  color: var(--muted);
  border: 2px solid var(--select-border);
  border-right: 0;
  border-radius: .75rem 0 0 .75rem;
}
.input-group .form-control {
  border-left: 0;
  border-radius: 0 .75rem .75rem 0;
}
.search-group { min-width: 260px; }

/* Input-group inline para busca: garante ficar na mesma linha no mobile */
.search-inline .form-control { border-right: 0; }
.search-inline .btn { border-left: 0; border-radius: 0 .75rem .75rem 0; }

/* Dark mode */
[data-theme="dark"] .navbar { background-color: #0b0d12 !important; }
[data-theme="dark"] .card { background: var(--card-bg); color: var(--text); box-shadow: 0 6px 18px rgba(0,0,0,.35); }
[data-theme="dark"] .table { color: var(--text); }
[data-theme="dark"] .table-striped>tbody>tr:nth-of-type(odd) { --bs-table-accent-bg: rgba(255,255,255,.02); color: inherit; }
[data-theme="dark"] .form-control, [data-theme="dark"] .form-select { background: var(--select-bg); border-color: var(--select-border); color: var(--text); }
[data-theme="dark"] .form-select:focus, [data-theme="dark"] .form-control:focus { border-color: #2f374a; box-shadow: none; }
[data-theme="dark"] .btn-outline-secondary { color: #cfd3da; border-color: #2a3142; }
[data-theme="dark"] .btn-outline-secondary:hover { background: #2a3142; color: #ffffff; border-color: #3a4154; }
[data-theme="dark"] .btn-outline-secondary:active, [data-theme="dark"] .btn-outline-secondary:focus { background: #3a4154; color: #ffffff; border-color: #4a5470; }
[data-theme="dark"] .btn-secondary { background-color: #303645; color: #e6e6e6; border-color: #3a4154; }
[data-theme="dark"] .btn-secondary:hover { background-color: #3a4154; color: #ffffff; border-color: #4a5470; }
[data-theme="dark"] .btn-secondary:active, [data-theme="dark"] .btn-secondary:focus { background-color: #49526a; color: #ffffff; border-color: #5a6584; }
[data-theme="dark"] .btn-outline-primary { color: #9ec5fe; border-color: #3a71d8; }
[data-theme="dark"] .btn-outline-primary:hover { background: rgba(13,110,253,.15); color: #d7e6ff; border-color: #3a71d8; }
/* Botões primários no dark: evitar cinza sobre cinza */
[data-theme="dark"] .btn-primary { background-color: #3a71d8; border-color: #3a71d8; color: #ffffff; }
[data-theme="dark"] .btn-primary:hover { background-color: #2f63c3; border-color: #2f63c3; color: #ffffff; }
[data-theme="dark"] .btn-primary:active, [data-theme="dark"] .btn-primary:focus { background-color: #2857ad; border-color: #2857ad; color: #ffffff; }

/* Botões outline no dark: contraste de hover melhorado */
[data-theme="dark"] .btn-outline-danger:hover { background: #6b1f27; color: #fff; border-color: #8a2c36; }
[data-theme="dark"] .btn-outline-primary:hover { background: #1f3f7a; color: #d7e6ff; border-color: #315aa6; }

/* Botão de editar (outline-secondary) em hover: fundo mais claro e texto escuro para leitura */
[data-theme="dark"] .btn-outline-secondary { background: transparent; color: #e0e3ea; border-color: #3a4154; }
[data-theme="dark"] .btn-outline-secondary:hover { background: #e0e3ea !important; color: #0f1115 !important; border-color: #e0e3ea !important; }
[data-theme="dark"] .btn-outline-secondary:active, [data-theme="dark"] .btn-outline-secondary:focus { background: #cfd3da !important; color: #0f1115 !important; border-color: #cfd3da !important; }

/* Garantir que botões nunca recebam sublinhado ao passar o mouse */
.btn:hover { text-decoration: none !important; }

/* Alerts no modo noturno (para blocos de aviso e senha revelada) */
[data-theme="dark"] .alert { background-color: #151922; color: var(--text); border-color: #2a3142; }
[data-theme="dark"] .alert-warning { background-color: #2a2f1a; border-color: #3b4330; color: #e6e6e6; }
[data-theme="dark"] .alert-success { background-color: #153024; border-color: #204636; color: #e6f4ea; }
[data-theme="dark"] .alert-danger { background-color: #3a1e22; border-color: #542a2f; color: #ffd6d6; }
[data-theme="dark"] .alert .btn-outline-secondary { color: #cfd3da; border-color: #2a3142; }

/* Papel (select) – legibilidade no modo noturno */
[data-theme="dark"] .form-label { color: var(--text) !important; }
[data-theme="dark"] .form-select { background-color: var(--select-bg) !important; color: var(--text) !important; border-color: var(--select-border) !important; background-image: none !important; }
[data-theme="dark"] select.form-select option { background: var(--card-bg); color: var(--text); }
[data-theme="dark"] .form-select:disabled { background-color: #1b2130; color: #8b95a7; }

/* Badges no modo noturno: evitar fundo branco */
[data-theme="dark"] .badge { background-color: rgba(255,255,255,.06); color: var(--text); border: 1px solid rgba(255,255,255,.12); }
[data-theme="dark"] .text-bg-secondary, [data-theme="dark"] .bg-secondary { background-color: #1b2230 !important; color: #e6e6e6 !important; border-color: #2a3142 !important; }
[data-theme="dark"] .text-bg-light, [data-theme="dark"] .bg-light { background-color: #1b2230 !important; color: #e6e6e6 !important; }

/* Utility spacings */
.section-title { margin-bottom: .5rem; font-weight: 800; letter-spacing: .3px; }
.kpi { display:flex; align-items:center; justify-content:space-between; }
.kpi .value {font-size: 2rem;font-weight: 800;text-align: center;}


/* Choices.js dropdown refinement */
.choices.premium-select .choices__list--dropdown, .choices.premium-select .choices__list[aria-expanded] { background: var(--card-bg); color: var(--text); border: 1px solid var(--border); }
.choices.premium-select .choices__item--selectable.is-highlighted { background-color: rgba(13,110,253,.08); color: var(--text); }

/* Theme toggle modern */
.theme-toggle { border: none; background: rgba(0,0,0,.06); color: var(--text); height: 36px; width: 36px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; transition: background .2s ease, transform .2s ease; }
.theme-toggle:hover { background: rgba(0,0,0,.1); transform: translateY(-1px); }
[data-theme="dark"] .theme-toggle { background: rgba(255,255,255,.08); }
[data-theme="dark"] .theme-toggle:hover { background: rgba(255,255,255,.12); }


/* --- Dark mode overhaul: grids, tables, breadcrumbs, pagination --- */
/* Surfaces & borders already tokenized via :root / [data-theme="dark"] */

/* Tables */
.table { background: var(--card-bg); border-color: var(--border); color: var(--text); }
.table tr, .table td, .table th { background: var(--card-bg); border-color: var(--border); }
.table thead th { background: var(--table-head-bg); color: var(--text); }
.table tbody td { vertical-align: middle; }
.table-striped > tbody > tr:nth-of-type(odd) { background-color: rgba(0,0,0,.02); }
[data-theme="dark"] .table-striped > tbody > tr:nth-of-type(odd) { background-color: rgba(255,255,255,.03); }
.table-hover > tbody > tr:hover { background-color: rgba(0,0,0,.03); }
[data-theme="dark"] .table-hover > tbody > tr:hover { background-color: rgba(255,255,255,.05); }

/* Breadcrumbs */
.breadcrumb { background: transparent; }
.breadcrumb .breadcrumb-item a { color: var(--muted); }
.breadcrumb .breadcrumb-item + .breadcrumb-item::before { color: var(--muted); }
.breadcrumb .breadcrumb-item.active { color: var(--text); font-weight: 700; }

/* Pagination */
.pagination .page-link { border-radius: .6rem; border-color: var(--select-border); color: var(--text); background: var(--select-bg); }
.pagination .page-link:hover { background: rgba(13,110,253,.08); }
.pagination .page-item.active .page-link { background: var(--text); color: var(--bg); border-color: var(--text); }
[data-theme="dark"] .pagination .page-link:hover { background: rgba(255,255,255,.08); }

/* Cards & sections */
.section-title { color: var(--text); }
.card-header { background: var(--table-head-bg); color: var(--text); }

/* Navbar */
.navbar { border-bottom: 1px solid var(--border); }

/* Inputs */
.form-control, .form-select { border-color: var(--select-border); background: var(--select-bg); color: var(--text); }


/* Dark mode text overrides to avoid black text */
[data-theme="dark"] h1,[data-theme="dark"] h2,[data-theme="dark"] h3,[data-theme="dark"] h4,[data-theme="dark"] h5,[data-theme="dark"] h6,
[data-theme="dark"] p,[data-theme="dark"] span,[data-theme="dark"] small,[data-theme="dark"] label,[data-theme="dark"] li,
[data-theme="dark"] dt,[data-theme="dark"] dd,[data-theme="dark"] th,[data-theme="dark"] td,[data-theme="dark"] .navbar-text {
  color: var(--text) !important;
}
/* Override Bootstrap utilities that forçam preto */
[data-theme="dark"] .text-dark,
[data-theme="dark"] .text-black,
[data-theme="dark"] .text-body { color: var(--text) !important; }

/* Buttons in dark */
[data-theme="dark"] .btn-light { background-color: #2b2f3a; color: var(--text); border-color: #3a4154; }
[data-theme="dark"] .btn-outline-light { color: var(--text); border-color: #3a4154; }

/* Separadores e bordas no dark */
[data-theme="dark"] hr, [data-theme="dark"] .border-top, [data-theme="dark"] .border-bottom { border-color: rgba(255,255,255,.08) !important; }
[data-theme="dark"] .table, [data-theme="dark"] .table tr, [data-theme="dark"] .table td, [data-theme="dark"] .table th { border-color: rgba(255,255,255,.08); }

/* List groups (Dashboard: Segredos Recentes) */
.list-group-item { background: var(--card-bg); color: var(--text); border-color: var(--border); }
.list-group-flush > .list-group-item { background: var(--card-bg); }
[data-theme="dark"] .list-group-item { background: var(--card-bg); color: var(--text); border-color: var(--border); }
[data-theme="dark"] .list-group-item .text-muted { color: var(--muted) !important; }
[data-theme="dark"] .list-group-item a { color: var(--text) !important; }
[data-theme="dark"] a.text-decoration-none { color: var(--text) !important; }

/* Links em tabelas no dark (sem afetar botões) */
[data-theme="dark"] table a:not(.btn) { color: var(--text) !important; text-decoration: none; }
[data-theme="dark"] table a:not(.btn):hover { text-decoration: underline; }


/* Tabelas responsivas bonitas (modo card no mobile) */
@media (max-width: 576px) {
  .table-responsive { width: 100%; overflow-x: hidden; }
  .table { width: 100%; }
  .table.table-card thead { display: none; }
  .table.table-card tbody tr { display: block; background: var(--card-bg); border: 1px solid var(--border); border-radius: .6rem; padding: .5rem .75rem; margin-bottom: .75rem; }
  .table.table-card tbody td { display: flex; justify-content: space-between; align-items: center; gap: .75rem; border: 0 !important; padding: .35rem 0; word-break: break-word; overflow-wrap: anywhere; }
  .table.table-card tbody td::before { content: attr(data-label); font-weight: 700; color: var(--muted); margin-right: .75rem; }
  .table.table-card tbody td:last-child { justify-content: flex-end; }
}

