/* ================================================================
   PDFGuard — Design System Completo
   Paleta: Azul marino profundo · Texto blanco suave · Alto contraste
   ================================================================ */

/* ----------------------------------------------------------------
   1. TOKENS DE COLOR (fuente única de verdad)
   ---------------------------------------------------------------- */
:root {
  /* Fondos — de más oscuro a más claro */
  --pg-base:        #0e1625;   /* Fondo de la página */
  --pg-surface:     #111d30;   /* Sidebar */
  --pg-card:        #192438;   /* Cards, paneles */
  --pg-input:       #0c1420;   /* Inputs, código, áreas recesadas */
  --pg-raised:      #1d2d48;   /* Hover, elementos elevados */
  --pg-active:      #1a3566;   /* Estado activo / seleccionado */
  --pg-highlight:   #1e3a5a;   /* Fondos de sección resaltada */

  /* Bordes */
  --pg-border:      #243650;   /* Borde normal */
  --pg-border-md:   #3a5278;   /* Borde medio */
  --pg-border-focus:#4f8ef7;   /* Foco */

  /* Texto — siempre legible */
  --pg-text:        #e8f0ff;   /* Texto principal */
  --pg-text-2:      #9ab0d0;   /* Secundario */
  --pg-text-3:      #5e7898;   /* Muted / placeholder */
  --pg-text-off:    #334560;   /* Deshabilitado */

  /* Acentos */
  --pg-blue:        #4f8ef7;
  --pg-blue-h:      #3a78e0;   /* hover del blue */
  --pg-green:       #22c55e;
  --pg-red:         #f87171;
  --pg-yellow:      #fbbf24;
  --pg-teal:        #22d3ee;
  --pg-purple:      #a78bfa;
  --pg-orange:      #fb923c;
}

/* ----------------------------------------------------------------
   2. SOBREESCRIBIR VARIABLES DE BOOTSTRAP 5.3 DARK MODE
   ---------------------------------------------------------------- */
[data-bs-theme="dark"] {
  color-scheme: dark;

  --bs-body-bg:               var(--pg-base);
  --bs-body-color:            var(--pg-text);
  --bs-secondary-color:       var(--pg-text-2);
  --bs-tertiary-color:        var(--pg-text-3);
  --bs-emphasis-color:        #ffffff;

  --bs-border-color:          var(--pg-border);
  --bs-border-color-translucent: rgba(36,54,80,.6);

  /* Superficies Bootstrap */
  --bs-secondary-bg:          var(--pg-card);
  --bs-tertiary-bg:           var(--pg-raised);
  --bs-body-secondary-bg:     var(--pg-surface);

  /* Links */
  --bs-link-color:            var(--pg-blue);
  --bs-link-color-rgb:        79,142,247;
  --bs-link-hover-color:      #7aaeff;

  /* Alerts — textos claros sobre fondos oscuros */
  --bs-info-bg-subtle:        rgba(34,211,238,.1);
  --bs-info-border-subtle:    rgba(34,211,238,.3);
  --bs-info-text-emphasis:    #67e8f9;

  --bs-warning-bg-subtle:     rgba(251,191,36,.1);
  --bs-warning-border-subtle: rgba(251,191,36,.3);
  --bs-warning-text-emphasis: #fde68a;

  --bs-success-bg-subtle:     rgba(34,197,94,.1);
  --bs-success-border-subtle: rgba(34,197,94,.3);
  --bs-success-text-emphasis: #86efac;

  --bs-danger-bg-subtle:      rgba(248,113,113,.1);
  --bs-danger-border-subtle:  rgba(248,113,113,.3);
  --bs-danger-text-emphasis:  #fca5a5;

  --bs-primary-bg-subtle:     rgba(79,142,247,.1);
  --bs-primary-border-subtle: rgba(79,142,247,.3);
  --bs-primary-text-emphasis: #93c5fd;

  /* Tablas */
  --bs-table-bg:              transparent;
  --bs-table-hover-bg:        var(--pg-raised);
  --bs-table-striped-bg:      rgba(255,255,255,.03);
  --bs-table-color:           var(--pg-text);
  --bs-table-hover-color:     var(--pg-text);

  /* Modal */
  --bs-modal-bg:              var(--pg-card);
  --bs-modal-border-color:    var(--pg-border);
  --bs-modal-header-border-color: var(--pg-border);
  --bs-modal-footer-border-color: var(--pg-border);
  --bs-modal-color:           var(--pg-text);

  /* Dropdown */
  --bs-dropdown-bg:           var(--pg-card);
  --bs-dropdown-border-color: var(--pg-border);
  --bs-dropdown-color:        var(--pg-text);
  --bs-dropdown-link-color:   var(--pg-text);
  --bs-dropdown-link-hover-color: #fff;
  --bs-dropdown-link-hover-bg:    var(--pg-raised);

  /* Card */
  --bs-card-bg:               var(--pg-card);
  --bs-card-border-color:     var(--pg-border);
  --bs-card-color:            var(--pg-text);

  /* Nav */
  --bs-nav-tabs-border-color:             var(--pg-border);
  --bs-nav-tabs-link-active-bg:           var(--pg-card);
  --bs-nav-tabs-link-active-border-color: var(--pg-border);
  --bs-nav-tabs-link-active-color:        #fff;
  --bs-nav-tabs-link-hover-border-color:  transparent;

  /* Input group */
  --bs-input-group-addon-bg:    var(--pg-raised);
  --bs-input-group-addon-color: var(--pg-text-2);

  /* Progress */
  --bs-progress-bg:           var(--pg-input);

  /* Scrollbar (CSS custom) */
  scrollbar-color: var(--pg-border-md) var(--pg-surface);
}

/* ----------------------------------------------------------------
   3. BASE
   ---------------------------------------------------------------- */
body {
  background-color: var(--pg-base);
  color: var(--pg-text);
  font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
  font-size: 0.9375rem;
  line-height: 1.6;
}

/* Cualquier texto que Bootstrap intente poner en negro */
* { color: inherit; }

h1,h2,h3,h4,h5,h6 { color: var(--pg-text); }
small              { color: var(--pg-text-2); }
p                  { color: var(--pg-text); }

/* ----------------------------------------------------------------
   4. SIDEBAR
   ---------------------------------------------------------------- */
.sidebar {
  background-color: var(--pg-surface) !important;
  border-right: 1px solid var(--pg-border);
  min-height: 100vh;
}

.sidebar .nav-link {
  border-radius: 8px;
  padding: 10px 14px;
  font-size: 0.875rem;
  transition: all 0.15s ease;
  color: var(--pg-text-2) !important;
}
.sidebar .nav-link:hover  { background-color: var(--pg-raised);  color: var(--pg-text) !important; }
.sidebar .nav-link.active { background-color: var(--pg-active);  color: #fff !important; }

/* ----------------------------------------------------------------
   5. CARDS
   ---------------------------------------------------------------- */
.card {
  background-color: var(--pg-card);
  border: 1px solid var(--pg-border);
  border-radius: 12px;
  color: var(--pg-text);
}
.card-dark {
  background-color: var(--pg-card);
  border: 1px solid var(--pg-border);
}
.card-dark .card-title { color: var(--pg-text); font-weight: 600; font-size: .95rem; }
.card-body  { color: var(--pg-text); }
.card-footer{ background-color: var(--pg-raised); border-top-color: var(--pg-border); }

/* ----------------------------------------------------------------
   6. FORMULARIOS — el problema más común de "letras negras"
   ---------------------------------------------------------------- */
.form-control,
.form-select,
textarea.form-control {
  background-color: var(--pg-input) !important;
  border-color:     var(--pg-border) !important;
  color:            var(--pg-text)   !important;
  border-radius: 8px;
}
.form-control:focus,
.form-select:focus {
  background-color: var(--pg-input)       !important;
  border-color:     var(--pg-border-focus)!important;
  color:            var(--pg-text)        !important;
  box-shadow: 0 0 0 3px rgba(79,142,247,.22) !important;
}
.form-control::placeholder { color: var(--pg-text-3) !important; }
.form-control:disabled,
.form-select:disabled {
  background-color: var(--pg-surface) !important;
  color: var(--pg-text-off) !important;
  opacity: 1;
}

/* Labels */
label,
.form-label,
.col-form-label { color: var(--pg-text-2) !important; font-size: .875rem; }
.form-text       { color: var(--pg-text-3) !important; }

/* Checkboxes y radios */
.form-check-input {
  background-color: var(--pg-input)     !important;
  border-color:     var(--pg-border-md) !important;
}
.form-check-input:checked {
  background-color: var(--pg-blue) !important;
  border-color:     var(--pg-blue) !important;
}
.form-check-input:focus {
  border-color: var(--pg-border-focus) !important;
  box-shadow: 0 0 0 3px rgba(79,142,247,.22) !important;
}
.form-check-label,
.form-check-label small { color: var(--pg-text-2) !important; }

/* Switch */
.form-switch .form-check-input              { background-color: var(--pg-raised) !important; }
.form-switch .form-check-input:checked      { background-color: var(--pg-blue)   !important; }

/* Input group */
.input-group-text {
  background-color: var(--pg-raised)  !important;
  border-color:     var(--pg-border)  !important;
  color:            var(--pg-text-2)  !important;
}

/* Range */
.form-range::-webkit-slider-thumb  { background: var(--pg-blue); }
.form-range::-webkit-slider-runnable-track { background: var(--pg-border); }

/* Color picker */
.form-control-color {
  background-color: var(--pg-input) !important;
  border-color:     var(--pg-border)!important;
  padding: 2px;
  height: 36px;
  width: 44px;
}

/* ----------------------------------------------------------------
   7. BOTONES
   ---------------------------------------------------------------- */
.btn {
  border-radius: 8px;
  font-size: .875rem;
  font-weight: 500;
  transition: all .15s ease;
}
.btn-lg { border-radius: 10px; font-size: 1rem; }
.btn-sm { border-radius: 6px;  font-size: .8rem; }

/* Primary */
.btn-primary {
  background-color: var(--pg-blue)  !important;
  border-color:     var(--pg-blue)  !important;
  color: #fff !important;
}
.btn-primary:hover   { background-color: var(--pg-blue-h) !important; border-color: var(--pg-blue-h) !important; }

/* Secondary */
.btn-secondary {
  background-color: var(--pg-raised)  !important;
  border-color:     var(--pg-border-md)!important;
  color: var(--pg-text) !important;
}
.btn-secondary:hover { background-color: var(--pg-active) !important; color: #fff !important; }

/* Success */
.btn-success {
  background-color: #16a34a !important;
  border-color:     #16a34a !important;
  color: #fff !important;
}
.btn-success:hover { background-color: #15803d !important; border-color: #15803d !important; }

/* Danger */
.btn-danger {
  background-color: #dc2626 !important;
  border-color:     #dc2626 !important;
  color: #fff !important;
}
.btn-danger:hover { background-color: #b91c1c !important; }

/* Warning */
.btn-warning {
  background-color: var(--pg-yellow) !important;
  border-color:     var(--pg-yellow) !important;
  color: #000 !important;
}
.btn-warning:hover { background-color: #d97706 !important; border-color: #d97706 !important; color: #fff !important; }

/* Info */
.btn-info {
  background-color: var(--pg-teal) !important;
  border-color:     var(--pg-teal) !important;
  color: #000 !important;
}
.btn-info:hover { background-color: #0891b2 !important; color: #fff !important; }

/* Outline — siempre texto claro, nunca negro */
.btn-outline-primary {
  color: var(--pg-blue) !important;
  border-color: var(--pg-blue) !important;
  background: transparent !important;
}
.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary.active { background-color: var(--pg-blue)  !important; color: #fff !important; }

.btn-outline-secondary {
  color: var(--pg-text-2)   !important;
  border-color: var(--pg-border-md) !important;
  background: transparent !important;
}
.btn-outline-secondary:hover,
.btn-outline-secondary:focus { background-color: var(--pg-raised) !important; color: var(--pg-text) !important; border-color: var(--pg-border-focus) !important; }

.btn-outline-success {
  color: var(--pg-green) !important;
  border-color: var(--pg-green) !important;
  background: transparent !important;
}
.btn-outline-success:hover,
.btn-outline-success:focus { background-color: #16a34a !important; color: #fff !important; }

.btn-outline-danger {
  color: var(--pg-red) !important;
  border-color: var(--pg-red) !important;
  background: transparent !important;
}
.btn-outline-danger:hover,
.btn-outline-danger:focus { background-color: #dc2626 !important; color: #fff !important; }

.btn-outline-warning {
  color: var(--pg-yellow) !important;
  border-color: var(--pg-yellow) !important;
  background: transparent !important;
}
.btn-outline-warning:hover,
.btn-outline-warning:focus { background-color: var(--pg-yellow) !important; color: #000 !important; }

.btn-outline-info {
  color: var(--pg-teal) !important;
  border-color: var(--pg-teal) !important;
  background: transparent !important;
}
.btn-outline-info:hover,
.btn-outline-info:focus { background-color: var(--pg-teal) !important; color: #000 !important; }

.btn-outline-light {
  color: var(--pg-text-2) !important;
  border-color: var(--pg-border-md) !important;
  background: transparent !important;
}
.btn-outline-light:hover { background-color: var(--pg-raised) !important; color: var(--pg-text) !important; }

/* btn-check (botones radio/checkbox) — EL principal causante de texto negro */
.btn-check + .btn-outline-secondary,
.btn-check + .btn-outline-primary,
.btn-check + .btn-outline-success,
.btn-check + .btn-outline-warning,
.btn-check + .btn-outline-info {
  color: var(--pg-text-3)   !important;
  background: transparent   !important;
  border-color: var(--pg-border) !important;
}
.btn-check:checked + .btn-outline-secondary,
.btn-check:checked + .btn-outline-primary {
  color:            var(--pg-text)  !important;
  background-color: var(--pg-active)!important;
  border-color:     var(--pg-blue)  !important;
}
.btn-check:checked + .btn-outline-success {
  color: #fff !important;
  background-color: #16a34a !important;
  border-color:     #16a34a !important;
}
.btn-check:checked + .btn-outline-warning {
  color: #000 !important;
  background-color: var(--pg-yellow) !important;
  border-color:     var(--pg-yellow) !important;
}
.btn-check:checked + .btn-outline-danger {
  color: #fff !important;
  background-color: #dc2626 !important;
  border-color:     #dc2626 !important;
}
.btn-check:checked + .btn-outline-info {
  color: #000 !important;
  background-color: var(--pg-teal) !important;
  border-color:     var(--pg-teal) !important;
}

/* Grupos de botones */
.btn-group .btn { border-radius: 0; }
.btn-group .btn:first-child { border-radius: 8px 0 0 8px; }
.btn-group .btn:last-child  { border-radius: 0 8px 8px 0; }
.btn-group-sm .btn:first-child { border-radius: 6px 0 0 6px; }
.btn-group-sm .btn:last-child  { border-radius: 0 6px 6px 0; }

/* Close button */
.btn-close-white { filter: invert(1) grayscale(1) brightness(2); }
.btn-close { filter: invert(1) brightness(1.8); }

/* ----------------------------------------------------------------
   8. TABLES
   ---------------------------------------------------------------- */
.table {
  color: var(--pg-text) !important;
  --bs-table-bg: transparent;
  --bs-table-color: var(--pg-text);
  --bs-table-hover-bg: var(--pg-raised);
  --bs-table-hover-color: var(--pg-text);
  --bs-table-border-color: var(--pg-border);
}
.table th {
  color: var(--pg-text-3) !important;
  border-bottom-color: var(--pg-border) !important;
  font-weight: 500;
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .05em;
  background-color: transparent !important;
}
.table td {
  color: var(--pg-text)   !important;
  border-bottom-color: var(--pg-border) !important;
  vertical-align: middle;
}
.table-sm td, .table-sm th { padding: .4rem .6rem; }

/* ----------------------------------------------------------------
   9. MODALES
   ---------------------------------------------------------------- */
.modal-content {
  background-color: var(--pg-card)   !important;
  border-color:     var(--pg-border) !important;
  color:            var(--pg-text)   !important;
}
.modal-header {
  background-color: var(--pg-surface) !important;
  border-bottom-color: var(--pg-border) !important;
}
.modal-footer {
  background-color: var(--pg-surface) !important;
  border-top-color: var(--pg-border) !important;
}
.modal-title { color: var(--pg-text) !important; }
.modal-body  { color: var(--pg-text) !important; }

/* ----------------------------------------------------------------
   10. ALERTAS — nunca texto negro sobre fondo oscuro
   ---------------------------------------------------------------- */
.alert { border-radius: 10px; }

.alert-info {
  background-color: rgba(34,211,238,.1)  !important;
  border-color:     rgba(34,211,238,.3)  !important;
  color:            #67e8f9              !important;
}
.alert-warning {
  background-color: rgba(251,191,36,.1)  !important;
  border-color:     rgba(251,191,36,.3)  !important;
  color:            #fde68a              !important;
}
.alert-success {
  background-color: rgba(34,197,94,.1)   !important;
  border-color:     rgba(34,197,94,.3)   !important;
  color:            #86efac              !important;
}
.alert-danger {
  background-color: rgba(248,113,113,.1) !important;
  border-color:     rgba(248,113,113,.3) !important;
  color:            #fca5a5              !important;
}
.alert-primary {
  background-color: rgba(79,142,247,.1)  !important;
  border-color:     rgba(79,142,247,.3)  !important;
  color:            #93c5fd              !important;
}
.alert strong { color: inherit; }
.alert a      { color: inherit; text-decoration: underline; }

/* ----------------------------------------------------------------
   11. BADGES
   ---------------------------------------------------------------- */
.badge {
  font-weight: 500;
  font-size: .73rem;
  border-radius: 5px;
}
/* bg-secondary badge — never dark text on dark bg */
.badge.bg-secondary {
  background-color: var(--pg-raised)  !important;
  color:            var(--pg-text-2)  !important;
}
/* warning con texto negro es correcto (contraste AAA) */
.badge.bg-warning        { color: #000 !important; }
.badge.bg-warning.text-dark { color: #000 !important; }
/* info y success — texto oscuro está bien en colores vivos */
.badge.bg-info    { color: #000 !important; background-color: var(--pg-teal)  !important; }
.badge.bg-success { color: #fff !important; }
.badge.bg-danger  { color: #fff !important; }
.badge.bg-primary { color: #fff !important; }

/* ----------------------------------------------------------------
   12. NAV TABS
   ---------------------------------------------------------------- */
.nav-tabs { border-bottom-color: var(--pg-border); }
.nav-tabs .nav-link {
  color: var(--pg-text-3)  !important;
  border-color: transparent !important;
  border-bottom-color: var(--pg-border) !important;
  background: transparent !important;
  border-radius: 8px 8px 0 0;
  transition: color .15s;
}
.nav-tabs .nav-link:hover  { color: var(--pg-text)  !important; }
.nav-tabs .nav-link.active {
  color:            #fff              !important;
  background-color: var(--pg-card)   !important;
  border-color:     var(--pg-border) var(--pg-border) var(--pg-card) !important;
}
.tab-content { color: var(--pg-text); }

/* ----------------------------------------------------------------
   13. CODE / PRE
   ---------------------------------------------------------------- */
pre {
  background-color: var(--pg-input);
  border: 1px solid var(--pg-border);
  border-radius: 8px;
  padding: 14px 16px;
  font-size: .8rem;
  color: #a8c4e0;
  overflow-x: auto;
}
code {
  color: #7ec8f7;
  font-size: .85em;
  background: rgba(79,142,247,.12);
  padding: 1px 5px;
  border-radius: 4px;
}
pre code {
  background: none;
  padding: 0;
  color: #a8c4e0;
}

/* ----------------------------------------------------------------
   14. COMPONENTES PROPIOS
   ---------------------------------------------------------------- */

/* Drop zone */
.drop-zone {
  border: 2px dashed var(--pg-border);
  border-radius: 12px;
  background: var(--pg-input);
  cursor: pointer;
  transition: all .2s ease;
  color: var(--pg-text-2);
}
.drop-zone:hover   { border-color: var(--pg-blue);         background: var(--pg-highlight); }
.drop-zone.drag-over {
  border-color: var(--pg-blue);
  background:   var(--pg-highlight);
  box-shadow: 0 0 0 4px rgba(79,142,247,.15);
}

/* PDF cards en dashboard */
.pdf-card {
  background-color: var(--pg-raised);
  border: 1px solid var(--pg-border);
  border-radius: 10px;
  transition: all .15s ease;
  color: var(--pg-text);
}
.pdf-card:hover { border-color: var(--pg-border-md); background-color: var(--pg-highlight); }

/* Protection cards */
.prot-card { transition: border-color .2s; }
.prot-card.enabled { border-color: #1a5a3a !important; background-color: rgba(26,90,58,.05) !important; }

/* Mode cards */
.mode-card {
  cursor: pointer;
  transition: all .2s;
  background-color: var(--pg-card) !important;
  border-color: var(--pg-border)   !important;
  color: var(--pg-text);
}
.mode-card:hover {
  border-color: var(--pg-blue)     !important;
  background-color: var(--pg-highlight) !important;
  transform: translateY(-3px);
  box-shadow: 0 6px 20px rgba(79,142,247,.15);
}
.mode-card.active {
  border-color: var(--pg-blue)     !important;
  background-color: var(--pg-active)!important;
}
.mode-card small, .mode-card .text-muted { color: var(--pg-text-2) !important; }

/* Preview items en protect */
.preview-item {
  font-size: .82rem;
  padding: 4px 0;
  border-bottom: 1px solid var(--pg-border);
  color: var(--pg-text-2);
}

/* Watermark image drop zones */
.wm-image-drop {
  border: 2px dashed var(--pg-border);
  border-radius: 8px;
  padding: 14px;
  text-align: center;
  cursor: pointer;
  transition: all .2s;
  background: var(--pg-input);
  color: var(--pg-text-3);
}
.wm-image-drop:hover  { border-color: var(--pg-blue);  background: var(--pg-highlight); color: var(--pg-text-2); }
.wm-image-drop.dragging { border-color: var(--pg-green); background: rgba(34,197,94,.08); }

.wm-image-drop-sm {
  border: 1px dashed var(--pg-border);
  border-radius: 6px;
  padding: 8px 12px;
  cursor: pointer;
  transition: all .2s;
  text-align: center;
  background: var(--pg-input);
  color: var(--pg-text-3);
}
.wm-image-drop-sm:hover { border-color: var(--pg-blue); color: var(--pg-text-2); }

/* ----------------------------------------------------------------
   15. SCROLLBAR
   ---------------------------------------------------------------- */
::-webkit-scrollbar        { width: 6px; height: 6px; }
::-webkit-scrollbar-track  { background: var(--pg-surface); }
::-webkit-scrollbar-thumb  { background: var(--pg-border-md); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #5a7aaa; }

/* ----------------------------------------------------------------
   16. TOASTS
   ---------------------------------------------------------------- */
#toastContainer {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-width: 380px;
}
.pdfguard-toast {
  background-color: var(--pg-card);
  border: 1px solid var(--pg-border);
  border-radius: 10px;
  padding: 14px 18px;
  color: var(--pg-text);
  box-shadow: 0 8px 32px rgba(0,0,0,.5);
  animation: slideInRight .25s ease;
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: .875rem;
}
.pdfguard-toast.success { border-left: 3px solid var(--pg-green);  }
.pdfguard-toast.danger  { border-left: 3px solid var(--pg-red);    }
.pdfguard-toast.warning { border-left: 3px solid var(--pg-yellow); }
.pdfguard-toast.info    { border-left: 3px solid var(--pg-teal);   }

@keyframes slideInRight {
  from { transform: translateX(110%); opacity: 0; }
  to   { transform: translateX(0);    opacity: 1; }
}

/* ----------------------------------------------------------------
   17. PROGRESS
   ---------------------------------------------------------------- */
.progress {
  background-color: var(--pg-input);
  border-radius: 6px;
}
.progress-bar { border-radius: 6px; }

/* ----------------------------------------------------------------
   18. UTILIDADES DE COLOR PROPIAS
   ---------------------------------------------------------------- */
.bg-pg-card   { background-color: var(--pg-card)   !important; }
.bg-pg-raised { background-color: var(--pg-raised) !important; }
.bg-pg-input  { background-color: var(--pg-input)  !important; }
.text-pg      { color: var(--pg-text)   !important; }
.text-pg-2    { color: var(--pg-text-2) !important; }
.text-pg-3    { color: var(--pg-text-3) !important; }

/* Text utilities override — Bootstrap puede poner negro */
.text-dark   { color: var(--pg-text-3)  !important; }  /* nunca negro en dark mode */
.text-muted  { color: var(--pg-text-3)  !important; }
.text-body   { color: var(--pg-text)    !important; }
.text-light  { color: var(--pg-text-2)  !important; }
.text-white  { color: #ffffff           !important; }
.text-black  { color: var(--pg-text)    !important; }  /* redirigir a texto claro */

/* Compatibilidad con clases de Bootstrap bg-dark */
.bg-dark  { background-color: var(--pg-card)    !important; color: var(--pg-text) !important; }
.bg-darker { background-color: var(--pg-surface) !important; }
.bg-very-dark { background-color: var(--pg-input) !important; }

/* Border utilities */
.border-secondary { border-color: var(--pg-border)    !important; }
.border-dark      { border-color: var(--pg-border)    !important; }

/* Font monospace */
.font-monospace { font-family: 'Courier New', monospace; font-size: .85rem; }

/* ----------------------------------------------------------------
   19. RESPONSIVE
   ---------------------------------------------------------------- */
@media (max-width: 768px) {
  .sidebar {
    width: 64px !important;
    min-width: 64px !important;
  }
  .sidebar .nav-link span,
  .sidebar .fw-bold,
  .sidebar small,
  .sidebar [data-label] {
    display: none;
  }
  .sidebar .nav-link {
    padding: 10px;
    text-align: center;
    justify-content: center;
  }
}

/* ----------------------------------------------------------------
   20. RISK BADGE (analyze page)
   ---------------------------------------------------------------- */
.risk-badge { font-size: 2.5rem; line-height: 1; }
