* { margin:0; padding:0; box-sizing:border-box; }
body { font-family:Segoe UI,sans-serif; background:#f5f5f5; color:#333; font-size:13px; }
a { color:#1a237e; }
h3 { color:#1a237e; font-size:14px; margin:15px 0 8px; padding-bottom:5px; border-bottom:2px solid #1a237e; }
h4 { color:#333; font-size:13px; margin:10px 0; }

.form-inline { background:#fff; padding:0.75rem; border-radius:0.375rem; margin:0.75rem 0; display:flex; gap:0.5rem; flex-wrap:wrap; align-items:center; border:1px solid #dee2e6; }
.form-inline input, .form-inline select { padding:0.375rem 0.75rem; border:1px solid #dee2e6; border-radius:0.375rem; font-size:0.75rem; line-height:1.5; color:#333; background:#fff; }
.form-box { background:#fff; padding:1rem; border-radius:0.375rem; margin:0.75rem 0; box-shadow:0 1px 3px rgba(0,0,0,.1); border:1px solid rgba(0,0,0,.125); }
.grid-form { display:grid; grid-template-columns:140px 1fr; gap:0.5rem 0.75rem; margin-bottom:0.75rem; }
.grid-form label { font-size:0.75rem; color:#555; align-self:center; padding-top:0.375rem; }
.grid-form input, .grid-form select, .grid-form textarea { padding:0.375rem 0.75rem; border:1px solid #dee2e6; border-radius:0.375rem; font-size:0.75rem; line-height:1.5; color:#333; }

.tbl { width:100%; border-collapse:collapse; background:#fff; margin:10px 0; box-shadow:0 1px 3px rgba(0,0,0,.1); vertical-align:top; border-color:#dee2e6; }
.tbl th { background:#0b1f3a; color:#fff; padding:0.5rem; text-align:left; font-size:0.6875rem; font-weight:700; border-bottom:2px solid #1a237e; }
.tbl td { padding:0.5rem; border-bottom:1px solid #dee2e6; font-size:0.75rem; }
.tbl > tbody > tr:nth-of-type(odd) > td { --bs-table-accent-bg: rgba(0,0,0,.03); background-color:var(--bs-table-accent-bg); }
.tbl > tbody > tr:hover > td { --bs-table-accent-bg: rgba(0,0,0,.05); background-color:var(--bs-table-accent-bg); }
.num { text-align:right; font-family:Consolas,monospace; }
.total td { font-weight:bold; background:#e8eaf6; }
.danger td { background:#ffcdd2; font-weight:bold; }

.alert { padding:0.75rem 1rem; border-radius:0.375rem; margin:0.75rem 0; font-size:0.75rem; border:1px solid transparent; }
.alert-ok { color:#0f5132; background-color:#d1e7dd; border-color:#badbcc; }
.alert-error { color:#842029; background-color:#f8d7da; border-color:#f5c2c7; }

.btn-primary, button[type=submit] { display:inline-block; font-weight:400; line-height:1.5; color:#fff; text-align:center; vertical-align:middle; cursor:pointer; user-select:none; background-color:#1a237e; border:1px solid #1a237e; padding:0.375rem 0.75rem; font-size:0.75rem; border-radius:0.375rem; text-decoration:none; transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out; }
.btn-primary:hover, button[type=submit]:hover { background-color:#283593; border-color:#283593; }
.btn-sm { display:inline-block; font-weight:400; line-height:1.5; color:#fff; text-align:center; vertical-align:middle; cursor:pointer; user-select:none; padding:0.25rem 0.5rem; font-size:0.6875rem; border-radius:0.25rem; text-decoration:none; border:1px solid #6c757d; background-color:#6c757d; transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out; }
.btn-sm:hover { background-color:#5c636a; border-color:#565e64; }
.btn-danger { display:inline-block; font-weight:400; line-height:1.5; color:#fff; text-align:center; vertical-align:middle; cursor:pointer; user-select:none; padding:0.25rem 0.5rem; font-size:0.6875rem; border-radius:0.25rem; text-decoration:none; border:1px solid #dc3545; background-color:#dc3545; transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out; }
.btn-danger:hover { background-color:#bb2d3b; border-color:#b02a37; }
.btn-cancel { display:inline-block; font-weight:400; line-height:1.5; color:#fff; text-align:center; vertical-align:middle; cursor:pointer; user-select:none; padding:0.375rem 0.75rem; font-size:0.75rem; border-radius:0.375rem; text-decoration:none; border:1px solid #6c757d; background-color:#6c757d; margin-left:5px; transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out; }
.btn-cancel:hover { background-color:#5c636a; border-color:#565e64; }
.btn-active { background:#1a237e !important; color:#fff !important; }
hr { border:none; border-top:1px solid #eee; margin:10px 0; }

.tox .tox-tbtn { height:30px; }
.tox .tox-toolbar__group { padding:0; }
.tox:not(.tox-tinymce-inline) .tox-editor-header { padding:0; box-shadow:none; }
.tox .tox-editor-container { border:1px solid #ccc; border-radius:4px; }
.tox .tox-statusbar { display:none; }

/* ============================================================
   BOOTSTRAP 5.3 OVERRIDES
   ============================================================ */

:root {
  --bs-primary: #1a237e;
  --bs-primary-rgb: 26, 35, 126;
  --bs-link-color: #1a237e;
  --bs-body-font-family: "Segoe UI", system-ui, sans-serif;
  --bs-body-font-size: 0.8125rem;
  --bs-body-bg: #f5f5f5;
  --sadm-navbar-h: 72px;
  --sadm-sidebar-w: 230px;
  --sadm-accent: #ffab00;
}

/* ── Navbar ─────────────────────────────────────────── */

.navbar.bg-primary {
  --bs-bg-opacity: 1;
  background-color: #1a237e !important;
  box-shadow: 0 2px 16px rgba(0,0,0,.25);
  border-bottom: 1px solid rgba(255,255,255,.08);
  height: var(--sadm-navbar-h);
  padding-top: 0;
  padding-bottom: 0;
  align-items: center;
}

.navbar-brand {
  font-size: 0.875rem !important;
  font-weight: 600;
  letter-spacing: 0.02em;
}

.navbar .btn-outline-warning {
  --bs-btn-color: #1a1a1a;
  --bs-btn-bg: var(--sadm-accent);
  --bs-btn-border-color: var(--sadm-accent);
  --bs-btn-hover-color: #000;
  --bs-btn-hover-bg: #ffb833;
  --bs-btn-hover-border-color: #ffb833;
  --bs-btn-active-color: #000;
  --bs-btn-active-bg: #e69900;
  --bs-btn-active-border-color: #e69900;
  --bs-btn-font-size: 0.75rem;
  --bs-btn-font-weight: 500;
  --bs-btn-padding-x: 0.85rem;
  --bs-btn-padding-y: 0.35rem;
}

.navbar .btn-outline-light {
  --bs-btn-color: #fff;
  --bs-btn-border-color: rgba(255,255,255,.35);
  --bs-btn-hover-color: #1a237e;
  --bs-btn-hover-bg: #fff;
  --bs-btn-hover-border-color: #fff;
  --bs-btn-font-size: 0.75rem;
  --bs-btn-font-weight: 500;
  --bs-btn-padding-x: 0.85rem;
  --bs-btn-padding-y: 0.35rem;
}

.navbar .form-select-sm {
  background-color: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.15);
  color: rgba(255,255,255,.90);
  font-size: 0.75rem;
  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='rgba(255,255,255,.6)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
}

.navbar .form-select-sm option {
  color: #333;
  background: #fff;
}

/* ── Navbar variant classes ─────────────────────────── */

.navbar.bg-gray {
  background-color: #616161 !important;
  box-shadow: 0 2px 16px rgba(0,0,0,.25);
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.navbar.bg-gray .btn-outline-light {
  --bs-btn-hover-color: #616161;
}

.navbar.bg-dark-custom {
  background-color: #263238 !important;
  box-shadow: 0 2px 16px rgba(0,0,0,.25);
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.navbar.bg-dark-custom .btn-outline-light {
  --bs-btn-hover-color: #263238;
}

/* ── Sidebar ────────────────────────────────────────── */

.sidebar {
  position: fixed;
  top: var(--sadm-navbar-h);
  left: 0;
  width: var(--sadm-sidebar-w);
  bottom: 0;
  background: #1a237e;
  overflow-y: auto;
  z-index: 1020;
  box-shadow: 3px 0 16px rgba(0,0,0,.12);
  padding-top: 0.5rem;
}

.sidebar .nav-link {
  color: rgba(255,255,255,.65);
  font-size: 0.75rem;
  padding: 0.625rem 1rem;
  margin: 4px 8px;
  border-radius: 0 6px 6px 0;
  border-left: 3px solid transparent;
  transition: all .15s ease;
}

.sidebar .nav-link:hover {
  background: rgba(255,255,255,.08);
  color: #fff;
}

.sidebar .nav-link.active {
  background: rgba(255,255,255,.14);
  color: #fff;
  font-weight: 600;
  border-left-color: var(--sadm-accent);
}

.sidebar .sidebar-toggle {
  cursor: pointer;
}

/* Sidebar scrollbar */
.sidebar::-webkit-scrollbar { width: 4px; }
.sidebar::-webkit-scrollbar-track { background: transparent; }
.sidebar::-webkit-scrollbar-thumb { background: rgba(255,255,255,.12); border-radius: 2px; }
.sidebar::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,.22); }

/* ── Sidebar submenu ────────────────────────────────── */

.submenu .nav-link {
  font-size: 0.6875rem;
  padding: 0.375rem 1rem 0.375rem 1.25rem;
  color: rgba(255,255,255,.48);
  margin: 1px 8px 1px 12px;
  border-radius: 0 6px 6px 0;
  border-left: 3px solid transparent;
  transition: all .15s ease;
}

.submenu .nav-link:hover {
  background: rgba(255,255,255,.07);
  color: rgba(255,255,255,.85);
}

.submenu .nav-link.active {
  background: rgba(255,255,255,.12);
  color: #fff;
  font-weight: 500;
  border-left-color: var(--sadm-accent);
}

/* ── Sidebar footer ─────────────────────────────────── */

.sidebar-footer {
  border-top: 1px solid rgba(255,255,255,.08);
  margin: 0.5rem 12px;
  padding-top: 0.5rem;
}

.sidebar-footer .nav-link {
  color: rgba(255,255,255,.60);
  font-size: 0.75rem;
  padding: 0.625rem 1rem;
  margin: 2px 8px;
  border-radius: 0 6px 6px 0;
  border-left: 3px solid transparent;
  transition: all .15s ease;
}

.sidebar-footer .nav-link:hover {
  background: rgba(255,255,255,.08);
  color: #fff;
}

/* ── Content area ───────────────────────────────────── */

.content {
  margin-left: var(--sadm-sidebar-w);
  padding: 2rem;
  min-height: calc(100vh - var(--sadm-navbar-h));
}

/* ── Sidebar variant: gray (7000-admin) ─────────────── */

.sidebar-gray {
  background: #616161;
  box-shadow: 3px 0 16px rgba(0,0,0,.12);
}
.sidebar-gray .nav-link { color: rgba(255,255,255,.65); }
.sidebar-gray .nav-link:hover { background: rgba(255,255,255,.08); color: #fff; }
.sidebar-gray .nav-link.active { background: rgba(255,255,255,.18); color: #fff; border-left-color: var(--sadm-accent); }
.sidebar-gray .submenu .nav-link { color: rgba(255,255,255,.48); }
.sidebar-gray .submenu .nav-link:hover { background: rgba(255,255,255,.08); color: rgba(255,255,255,.85); }
.sidebar-gray .submenu .nav-link.active { background: rgba(255,255,255,.14); color: #fff; border-left-color: var(--sadm-accent); }
.sidebar-gray .sidebar-footer { border-color: rgba(255,255,255,.08); }
.sidebar-gray .sidebar-footer .nav-link { color: rgba(255,255,255,.60); }
.sidebar-gray .sidebar-footer .nav-link:hover { background: rgba(255,255,255,.08); color: #fff; }

/* ── Sidebar variant: dark (9000-seguridad) ─────────── */

.sidebar-dark {
  background: #263238;
  box-shadow: 3px 0 16px rgba(0,0,0,.12);
}
.sidebar-dark .nav-link { color: rgba(255,255,255,.60); }
.sidebar-dark .nav-link:hover { background: rgba(255,255,255,.07); color: #fff; }
.sidebar-dark .nav-link.active { background: rgba(255,255,255,.14); color: #fff; border-left-color: var(--sadm-accent); }
.sidebar-dark .submenu .nav-link { color: rgba(255,255,255,.45); }
.sidebar-dark .submenu .nav-link:hover { background: rgba(255,255,255,.06); color: rgba(255,255,255,.80); }
.sidebar-dark .submenu .nav-link.active { background: rgba(255,255,255,.12); color: #fff; border-left-color: var(--sadm-accent); }
.sidebar-dark .sidebar-footer { border-color: rgba(255,255,255,.08); }
.sidebar-dark .sidebar-footer .nav-link { color: rgba(255,255,255,.55); }
.sidebar-dark .sidebar-footer .nav-link:hover { background: rgba(255,255,255,.07); color: #fff; }

/* ── Misc utilities ─────────────────────────────────── */

.text-bg-primary { background-color: #1a237e !important; }

.aviso-catalogos {
  background: #fff3e0; border: 1px solid #ffb74d;
  border-radius: 6px; padding: 12px 16px; margin-bottom: 12px; font-size: 12px;
}
.aviso-catalogos a { color: #e65100; font-weight: bold; }

.est-pendiente { color: #842029; font-weight: bold; }
.est-certificado { color: #0f5132; font-weight: bold; }

.matrix { width: 100%; border-collapse: collapse; }
.matrix th { background: #0b1f3a; color: #fff; font-size: 0.6875rem; padding: 0.375rem; }
.matrix td { padding: 0.25rem 0.375rem; font-size: 0.75rem; }
