/* ============================================================
   Agenda - custom.css
   - Suporte a tema claro/escuro via [data-theme]
   - Visual premium para cards/tabelas/forms
   - Badges "soft" com contraste garantido
   - Avatares com alto contraste
   ============================================================ */

/* -----------------------------
   Variáveis base (tema claro)
   ----------------------------- */
:root{
  --bg:#f7f8fa;
  --text:#111827;
  --muted:#6b7280;

  --card-bg:#ffffff;
  --border:rgba(0,0,0,.08);
  --shadow:0 6px 20px rgba(0,0,0,.06);

  --table-stripe:rgba(0,0,0,.015);
  --table-hover:rgba(0,0,0,.02);

  /* badges (light) */
  --soft-primary-bg: rgba(13,110,253,.12);
  --soft-primary-fg: #0d6efd;
  --soft-primary-bd: rgba(13,110,253,.18);

  --soft-success-bg: rgba(25,135,84,.12);
  --soft-success-fg: #198754;
  --soft-success-bd: rgba(25,135,84,.18);

  --soft-secondary-bg: rgba(108,117,125,.12);
  --soft-secondary-fg: #6c757d;
  --soft-secondary-bd: rgba(108,117,125,.18);

  --soft-danger-bg: rgba(220,53,69,.12);
  --soft-danger-fg: #dc3545;
  --soft-danger-bd: rgba(220,53,69,.18);

  /* avatar */
  --avatar-bg:#0d6efd;
  --avatar-fg:#fff;

  /* inputs focus */
  --focus-ring: rgba(13,110,253,.15);
  --focus-border:#86b7fe;
}

/* ======================= */
/*        DARK THEME       */
/* ======================= */
[data-theme="dark"]{
  --bg:#0f1115;
  --text:#e5e7eb;
  --muted:#9ca3af;

  --card-bg:#171a21;
  --border:rgba(255,255,255,.09);
  --shadow:0 8px 26px rgba(0,0,0,.55);

  --table-stripe:rgba(255,255,255,.03);
  --table-hover:rgba(255,255,255,.04);

  --soft-primary-bg: rgba(13,110,253,.18);
  --soft-primary-fg: #93c5fd;
  --soft-primary-bd: rgba(13,110,253,.28);

  --soft-success-bg: rgba(25,135,84,.18);
  --soft-success-fg: #86efac;
  --soft-success-bd: rgba(25,135,84,.28);

  --soft-secondary-bg: rgba(148,163,184,.18);
  --soft-secondary-fg: #cbd5e1;
  --soft-secondary-bd: rgba(148,163,184,.28);

  --soft-danger-bg: rgba(220,53,69,.20);
  --soft-danger-fg: #fca5a5;
  --soft-danger-bd: rgba(220,53,69,.30);

  --avatar-bg:#2563eb;
  --avatar-fg:#e5e7eb;

  --focus-ring: rgba(37,99,235,.35);
  --focus-border:#60a5fa;
}

/* ======================= */
/*    Tema & elementos     */
/* ======================= */
body { background:var(--bg); color:var(--text); }
.navbar { box-shadow:0 2px 10px rgba(0,0,0,.06); }
[data-theme="dark"] .navbar { box-shadow:0 2px 10px rgba(0,0,0,.30); }

/* ===== Cards com contraste ===== */
.card-contrast{
  background:var(--card-bg);
  border:1px solid var(--border);
  box-shadow:var(--shadow);
  border-radius:14px;
}
.card-contrast .card-header{
  background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.02));
  border-bottom:1px solid var(--border);
  font-weight:600;
}

/* ===== Tabelas ===== */
.table-sm td, .table-sm th { padding-top:.5rem; padding-bottom:.5rem; }
.table thead th { font-weight:600; }
.table thead.sticky-top{ position:sticky; top:0; z-index:5; }
.table-striped tbody tr:nth-of-type(odd) > * { background-color:var(--table-stripe); }
.table-hover tbody tr:hover { background-color:var(--table-hover); }

/* Larguras (lista de usuários) */
.col-user { min-width:180px; }
.col-email { min-width:220px; }
.col-role { width:160px; }
.col-status { width:110px; }
.col-actions { width:180px; }

/* Responsivo: esconde e-mail no mobile */
@media (max-width:767.98px){
  .col-email, td.col-email { display:none; }
}

/* ===== Avatares ===== */
.avatar-xl{
  width:56px; height:56px; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
  font-size:18px; font-weight:700;
  background:var(--avatar-bg);
  color:var(--avatar-fg);
  border:0;
  box-shadow:0 4px 12px rgba(13,110,253,.20);
}
.avatar-xxs{
  width:36px; height:36px; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
  font-size:12px; font-weight:600;
  background:var(--avatar-bg);
  color:var(--avatar-fg);
  border:0;
  box-shadow:0 2px 8px rgba(13,110,253,.18);
}
/* (opcional) variações por nível */
/* .avatar-sa{ background:#dc3545; } .avatar-adm{ background:#0d6efd; }
   .avatar-prof{ background:#198754; } .avatar-rx{ background:#6c757d; } */

/* ===== Badges com contraste garantido ===== */
.badge {
  font-weight:600;
  letter-spacing:.2px;
  border-radius:.45rem;
  line-height:1;
  padding:.4em .6em;
}
.badge-status{ padding:.35em .55em; }

.badge-soft{
  background: var(--soft-primary-bg) !important;
  color: var(--soft-primary-fg) !important;
  border: 1px solid var(--soft-primary-bd);
}
.badge-soft-success{
  background: var(--soft-success-bg) !important;
  color: var(--soft-success-fg) !important;
  border: 1px solid var(--soft-success-bd);
}
.badge-soft-secondary{
  background: var(--soft-secondary-bg) !important;
  color: var(--soft-secondary-fg) !important;
  border: 1px solid var(--soft-secondary-bd);
}
.badge-soft-danger{
  background: var(--soft-danger-bg) !important;
  color: var(--soft-danger-fg) !important;
  border: 1px solid var(--soft-danger-bd);
}

/* ===== Botões/Icones ===== */
.btn-icon{
  --btn-size:34px;
  width:var(--btn-size); height:var(--btn-size); padding:0;
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:.65rem;
}
.btn-icon .bi{ font-size:1.05rem; line-height:1; }
.btn-icon-sm{ --btn-size:34px; }
.btn-icon-lg{ --btn-size:46px; }
.icon-actions .btn-icon + .btn-icon{ margin-left:.35rem; }
.btn-pill{ border-radius:999px; }

/* ===== Tipografia (show & forms) ===== */
.section-label{ color:var(--muted); font-size:.825rem; margin-bottom:.25rem; }
.section-value{ font-weight:600; }

/* ===== Formulários premium ===== */
.form-header-actions{ display:flex; gap:.5rem; flex-wrap:wrap; }
.form-section-title{ font-weight:600; margin:0; }
.form-section-sub{ color:var(--muted); font-size:.9rem; }

.form-actions{
  position:sticky; bottom:0; z-index:10;
  background:var(--card-bg);
  border-top:1px solid var(--border);
  padding:.75rem;
  display:flex; gap:.5rem; justify-content:flex-end;
  border-bottom-left-radius:14px; border-bottom-right-radius:14px;
}
@media (max-width:575.98px){
  .form-actions{ justify-content:stretch; }
  .form-actions > *{ flex:1; }
}

/* ===== Foco em inputs ===== */
.form-control:focus, .form-select:focus{
  box-shadow:0 0 0 .2rem var(--focus-ring);
  border-color:var(--focus-border);
}

/* ===== Tooltip ===== */
.tooltip-inner{ font-size:.8rem; }

/* ===== Utilidades ===== */
.hr-soft{ border:0; border-top:1px solid var(--border); margin:1.25rem 0; }

/* ======================= */
/*  Bootstrap 5.3 Dark     */
/*  (usa data-bs-theme)    */
/* ======================= */
[data-bs-theme="dark"]{
  /* Cores base do Bootstrap */
  --bs-body-bg: #0f1115;
  --bs-body-color: #e5e7eb;
  --bs-border-color: rgba(255,255,255,.12);

  /* superfícies */
  --bs-card-bg: #171a21;
  --bs-tertiary-bg: #141720;  /* usado por .bg-body-tertiary (navbar) */
  --bs-secondary-bg: #11131a;

  /* tipografia e links */
  --bs-heading-color: #e5e7eb;
  --bs-link-color: #93c5fd;
  --bs-link-hover-color: #bfdbfe;
  --bs-emphasis-color: #ffffff;

  /* tabelas */
  --bs-table-striped-bg: rgba(255,255,255,.04);
  --bs-table-hover-bg: rgba(255,255,255,.06);
  --bs-table-color: #e5e7eb;

  /* dropdowns / menus */
  --bs-dropdown-bg: #171a21;
  --bs-dropdown-link-color: #e5e7eb;
  --bs-dropdown-link-hover-bg: rgba(255,255,255,.06);
  --bs-dropdown-link-hover-color: #ffffff;
  --bs-dropdown-divider-bg: rgba(255,255,255,.08);

  /* inputs */
  --bs-input-bg: #11131a;
  --bs-input-color: #e5e7eb;
  --bs-input-border-color: rgba(255,255,255,.14);
  --bs-input-focus-border-color: #60a5fa;

  /* tooltips / popovers */
  --bs-tooltip-bg: #11131a;
  --bs-tooltip-color: #e5e7eb;
  --bs-popover-bg: #171a21;
  --bs-popover-border-color: rgba(255,255,255,.12);
}

/* Ajustes pontuais (melhor contraste de navbar padrão BS) */
[data-bs-theme="dark"] .navbar.bg-body-tertiary{
  background-color: var(--bs-tertiary-bg) !important;
  border-bottom: 1px solid var(--bs-border-color);
}
/* Corrige .table-light no tema escuro */
[data-bs-theme="dark"] .table-light{
  --bs-table-bg: var(--bs-secondary-bg);
  --bs-table-color: var(--bs-body-color);
  --bs-table-border-color: var(--bs-border-color);
  --bs-table-striped-bg: rgba(255,255,255,.04);
  --bs-table-hover-bg: rgba(255,255,255,.06);
  background-color: var(--bs-secondary-bg) !important;
  color: var(--bs-body-color) !important;
}
[data-bs-theme="dark"] .table-light > :not(caption) > * > *{
  background-color: transparent !important; /* usa var acima */
  color: inherit !important;
  border-color: var(--bs-table-border-color) !important;
}
/* Corrige bg-light no tema escuro (ex.: bloco do Dashboard) */
[data-bs-theme="dark"] .bg-light{
  background-color: var(--bs-secondary-bg) !important;
  color: var(--bs-body-color) !important;
  border-color: var(--bs-border-color) !important;
}
/* Força o Quill a ficar sempre claro */
.ql-container.ql-snow,
.ql-toolbar.ql-snow {
  background-color: #fff !important;
  color: #000 !important;
  border: 1px solid #ccc !important;
}

/* Corrige cor dos botões da toolbar */
.ql-snow .ql-stroke {
  stroke: #000 !important;
}
.ql-snow .ql-fill {
  fill: #000 !important;
}
.ql-snow .ql-picker {
  color: #000 !important;
}

/* Corrige área de escrita */
.ql-editor {
  background-color: #fff !important;
  color: #000 !important;
}

