/* ============================================================
   AMS UI v2 — dark glass command-deck system.

   A genuine visual rebuild, not a palette swap: translucent glass
   surfaces, gradient-glow accents, and from-scratch form controls
   (checkbox / radio / switch / select / search) in the style of
   uiverse.io's component patterns. Bootstrap 5's color-mode engine
   (data-bs-theme="dark", set globally in _head.astro) handles base
   component theming for anything not yet on AMS's own classes;
   everything below is this app's own design, not AdminLTE's.
   ============================================================ */

:root {
  --ams-bg: #090a10;
  --ams-bg-grad: radial-gradient(1100px 650px at 85% -10%, rgba(79,107,255,.16), transparent 60%),
                 radial-gradient(900px 500px at -10% 20%, rgba(139,92,246,.12), transparent 55%),
                 #090a10;
  --ams-surface: rgba(255,255,255,0.035);
  --ams-surface-solid: #11131d;
  --ams-surface-hover: rgba(255,255,255,0.055);
  --ams-border: rgba(255,255,255,0.09);
  --ams-border-soft: rgba(255,255,255,0.06);
  --ams-ink: #f1f2f8;
  --ams-ink-soft: #a7acc2;
  --ams-ink-mute: #70748c;
  --ams-sidebar-bg: #0a0b12;
  --ams-sidebar-line: rgba(255,255,255,0.07);
  --ams-accent-a: #5b7cff;
  --ams-accent-b: #9b6bff;
  --ams-accent-c: #2fd9e8;
  --ams-link: var(--ams-accent-c);
  --ams-accent-grad: linear-gradient(120deg, var(--ams-accent-a), var(--ams-accent-b) 60%, var(--ams-accent-c));
  --ams-ok: #30e3a8;
  --ams-ok-bg: rgba(48, 227, 168, 0.12);
  --ams-warn: #ffb648;
  --ams-warn-bg: rgba(255, 182, 72, 0.12);
  --ams-crit: #ff5d7a;
  --ams-crit-bg: rgba(255, 93, 122, 0.13);
  --ams-info: var(--ams-accent-c);
  --ams-info-bg: rgba(47,217,232,.14);
  --ams-radius: 16px;
  --ams-radius-sm: 10px;
  --ams-blur: 18px;
  --ams-shadow: 0 1px 1px rgba(0,0,0,.2), 0 20px 40px -20px rgba(0,0,0,.6);
  --ams-glow-a: 0 0 0 1px rgba(91,124,255,.35), 0 0 24px -4px rgba(91,124,255,.55);
  /* Neutral tint ramp — used for input fills, dropdown/modal/toast
     surfaces, hover washes and icon-badge backgrounds. These are the
     values that differ most between themes, so every rule that wants
     "a faint neutral wash" should reach for one of these instead of a
     literal rgba(255,255,255,x), so it flips correctly in light mode. */
  --ams-tint-1: rgba(255,255,255,.035);
  --ams-tint-2: rgba(255,255,255,.055);
  --ams-tint-3: rgba(255,255,255,.08);
  --ams-icon-bg: rgba(255,255,255,.06);
  --ams-scrollbar-track: transparent;
}

/* Light theme — the app's default. Sidebar stays on the dark tokens
   above regardless of theme (a persistent dark rail is deliberate,
   not a leftover); everything else below flips to a proper light
   glass surface, not just a palette swap on the dark rules. */
:root[data-bs-theme="light"] {
  --ams-bg: #f4f5fa;
  --ams-bg-grad: radial-gradient(1100px 650px at 85% -10%, rgba(79,107,255,.07), transparent 60%),
                 radial-gradient(900px 500px at -10% 20%, rgba(139,92,246,.05), transparent 55%),
                 #f4f5fa;
  --ams-surface: #ffffff;
  --ams-surface-solid: #ffffff;
  --ams-surface-hover: #f7f8fd;
  --ams-border: rgba(15,18,30,0.09);
  --ams-border-soft: rgba(15,18,30,0.06);
  --ams-ink: #12141f;
  --ams-ink-soft: #5b6478;
  --ams-ink-mute: #8b91a3;
  --ams-link: #3657e0;
  --ams-info: #0e8fa8;
  --ams-info-bg: rgba(14,143,168,.1);
  --ams-shadow: 0 1px 2px rgba(15,18,30,.04), 0 16px 32px -20px rgba(15,18,30,.16);
  --ams-glow-a: 0 0 0 1px rgba(54,87,224,.3), 0 0 20px -6px rgba(54,87,224,.35);
  --ams-tint-1: rgba(15,18,30,.03);
  --ams-tint-2: rgba(15,18,30,.045);
  --ams-tint-3: rgba(15,18,30,.06);
  --ams-icon-bg: rgba(15,18,30,.05);
  --ams-scrollbar-track: transparent;
}

html, body { background: var(--ams-bg); }

body.ams-body {
  background: var(--ams-bg-grad);
  background-attachment: fixed;
  color: var(--ams-ink);
  font-family: var(--ams-body, 'Plus Jakarta Sans', system-ui, sans-serif);
  font-variant-numeric: tabular-nums;
  min-height: 100vh;
}

::selection { background: rgba(91,124,255,.35); color: #fff; }

/* ── Shell layout ── */
.ams-shell {
  display: grid;
  grid-template-columns: 240px 1fr;
  min-height: 100vh;
}
@media (max-width: 992px) {
  .ams-shell { grid-template-columns: 1fr; }
  .ams-sidebar { display: none; }
  .ams-shell.ams-sidebar-open .ams-sidebar {
    display: flex;
    position: fixed; inset: 0 auto 0 0; z-index: 1050; width: 240px;
  }
  .ams-shell.ams-sidebar-open::after {
    content: ""; position: fixed; inset: 0; background: rgba(0,0,0,.55); z-index: 1040;
    backdrop-filter: blur(2px);
  }
}

/* ── Sidebar ── */
.ams-sidebar {
  background: var(--ams-sidebar-bg);
  border-right: 1px solid var(--ams-sidebar-line);
  display: flex;
  flex-direction: column;
  padding: 18px 12px;
  gap: 2px;
  overflow-y: auto;
  position: relative;
}
.ams-sidebar::before {
  content: "";
  position: absolute; inset: 0 0 auto 0; height: 160px;
  background: radial-gradient(240px 160px at 20% 0%, rgba(91,124,255,.14), transparent 70%);
  pointer-events: none;
}
.ams-sidebar-brand {
  display: flex; align-items: center; gap: 10px;
  padding: 6px 10px 20px;
  position: relative; z-index: 1;
}
.ams-sidebar-brand img {
  height: 30px; width: 30px; border-radius: 8px; object-fit: contain;
  background: rgba(255,255,255,.06); padding: 3px;
  box-shadow: 0 0 0 1px rgba(255,255,255,.08);
}
.ams-sidebar-brand span {
  font-family: var(--ams-display, 'Outfit', sans-serif);
  font-weight: 700; font-size: 15.5px; letter-spacing: -0.01em;
  background: var(--ams-accent-grad);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.ams-nav-label {
  font-size: 10.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  color: rgba(255,255,255,.28); padding: 16px 12px 6px; position: relative; z-index: 1;
}
.ams-nav-item {
  display: flex; align-items: center; gap: 11px;
  padding: 9px 10px; border-radius: 10px;
  font-size: 13.5px; font-weight: 600; color: rgba(255,255,255,.58);
  text-decoration: none; transition: background .15s, color .15s, box-shadow .15s;
  position: relative; z-index: 1;
}
.ams-nav-item:hover { background: rgba(255,255,255,.045); color: #fff; }
.ams-nav-item.active {
  background: linear-gradient(90deg, rgba(91,124,255,.22), rgba(155,107,255,.10));
  color: #fff;
  box-shadow: inset 1px 0 0 var(--ams-accent-a);
}
.ams-nav-item.active .ams-nav-ico { color: #b7c4ff; }
.ams-nav-ico {
  width: 26px; height: 26px; border-radius: 8px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center; font-size: 13px;
  color: rgba(255,255,255,.45);
}
.ams-nav-ico img { width: 16px; height: 16px; object-fit: contain; border-radius: 3px; }
.ams-sidebar-footer {
  margin-top: auto; padding-top: 14px; border-top: 1px solid var(--ams-sidebar-line);
  position: relative; z-index: 1;
}
.ams-logout-btn {
  display: flex; align-items: center; gap: 10px; width: 100%;
  background: none; border: none; color: rgba(255,255,255,.45);
  font-size: 13px; font-weight: 600; padding: 9px 10px; border-radius: 10px; cursor: pointer;
  transition: background .15s, color .15s;
}
.ams-logout-btn:hover { background: rgba(255,93,122,.12); color: var(--ams-crit); }

/* ── Topbar ── */
.ams-topbar {
  height: 58px; display: flex; align-items: center; justify-content: space-between;
  padding: 0 22px; background: rgba(10,11,18,.72); backdrop-filter: blur(var(--ams-blur));
  -webkit-backdrop-filter: blur(var(--ams-blur));
  border-bottom: 1px solid var(--ams-border-soft);
  position: sticky; top: 0; z-index: 20;
}
.ams-topbar-left { display: flex; align-items: center; gap: 14px; }
.ams-menu-btn {
  display: none; background: none; border: none; font-size: 18px; color: var(--ams-ink-soft); cursor: pointer;
}
@media (max-width: 992px) { .ams-menu-btn { display: block; } }
.ams-crumb { font-size: 12.5px; color: var(--ams-ink-mute); }
.ams-topbar-right { display: flex; align-items: center; gap: 10px; }
.ams-avatar {
  width: 32px; height: 32px; border-radius: 50%;
  background: var(--ams-accent-grad);
  display: flex; align-items: center; justify-content: center; color: #fff;
  font-weight: 700; font-size: 12.5px; flex-shrink: 0;
  box-shadow: 0 0 0 2px rgba(255,255,255,.08);
}

/* ── Page header ── */
.ams-page-header { padding: 24px 28px 6px; }
.ams-page-title { display: flex; align-items: center; gap: 11px; }
.ams-page-title-ico {
  width: 36px; height: 36px; border-radius: 11px; display: flex; align-items: center; justify-content: center;
  font-size: 16px; flex-shrink: 0; box-shadow: inset 0 0 0 1px rgba(255,255,255,.08);
}
.ams-page-title h1 {
  font-family: var(--ams-display, 'Outfit', sans-serif); font-size: 21px; font-weight: 700; margin: 0;
  color: var(--ams-ink); letter-spacing: -0.01em;
}
.ams-page-sub { font-size: 12.5px; color: var(--ams-ink-mute); margin-top: 3px; }

.ams-body-main { padding: 18px 28px 44px; }

/* ── Stat tile ── */
.ams-stat-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; }
.ams-stat {
  background: var(--ams-surface); border: 1px solid var(--ams-border); border-radius: var(--ams-radius);
  backdrop-filter: blur(var(--ams-blur)); -webkit-backdrop-filter: blur(var(--ams-blur));
  padding: 16px 17px; box-shadow: var(--ams-shadow);
  display: flex; flex-direction: column; gap: 8px;
  position: relative; overflow: hidden;
  transition: transform .15s, border-color .15s, box-shadow .15s;
}
.ams-stat::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 2px;
  background: var(--ams-accent-grad); opacity: 0; transition: opacity .2s;
}
.ams-stat:hover { transform: translateY(-2px); border-color: rgba(91,124,255,.35); }
.ams-stat:hover::before { opacity: 1; }
.ams-stat-top { display: flex; align-items: center; justify-content: space-between; }
.ams-stat-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--ams-ink-mute); }
.ams-stat-ico { width: 27px; height: 27px; border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 12px; flex-shrink: 0; }
.ams-stat-val { font-family: var(--ams-display, 'Outfit', sans-serif); font-size: 26px; font-weight: 700; color: var(--ams-ink); line-height: 1.1; }
.ams-stat-delta { font-size: 11.5px; font-weight: 600; }
.ams-stat-delta.up { color: var(--ams-ok); }
.ams-stat-delta.warn { color: var(--ams-warn); }
.ams-stat-delta.down { color: var(--ams-crit); }
.ams-stat-delta.mute { color: var(--ams-ink-mute); }
.ams-stat-link {
  font-size: 11.5px; font-weight: 600; color: var(--ams-link); text-decoration: none;
  margin-top: 2px; display: inline-flex; align-items: center; gap: 4px;
}
.ams-stat-link:hover { text-decoration: underline; filter: brightness(1.15); }

/* ── Panel (glass card) ── */
.ams-panel {
  background: var(--ams-surface); border: 1px solid var(--ams-border); border-radius: var(--ams-radius);
  backdrop-filter: blur(var(--ams-blur)); -webkit-backdrop-filter: blur(var(--ams-blur));
  box-shadow: var(--ams-shadow); overflow: hidden;
}
.ams-panel-head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 18px; border-bottom: 1px solid var(--ams-border-soft);
}
.ams-panel-head h3 {
  font-family: var(--ams-display, 'Outfit', sans-serif); font-size: 14px; font-weight: 700; margin: 0;
  display: flex; align-items: center; gap: 8px; color: var(--ams-ink);
}
.ams-panel-body { padding: 16px 18px; }
.ams-panel-body.p-0 { padding: 0; }
.ams-panel-tag {
  font-size: 11px; color: var(--ams-ink-mute); background: rgba(255,255,255,.04);
  border: 1px solid var(--ams-border); padding: 3px 10px; border-radius: 999px;
}
.ams-grid { display: grid; gap: 14px; }
.ams-grid-2 { grid-template-columns: 1fr 1fr; }
.ams-grid-3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 992px) { .ams-grid-2, .ams-grid-3 { grid-template-columns: 1fr; } }

/* ── Table ── */
.ams-table-wrap { overflow-x: auto; }
.ams-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.ams-table thead th {
  text-align: left; font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em;
  color: var(--ams-ink-mute); padding: 11px 16px; border-bottom: 1px solid var(--ams-border);
  background: rgba(255,255,255,.02);
  position: sticky; top: 0;
}
.ams-table tbody td { padding: 11px 16px; border-bottom: 1px solid var(--ams-border-soft); vertical-align: middle; color: var(--ams-ink); }
.ams-table tbody tr { transition: background .12s; }
.ams-table tbody tr:last-child td { border-bottom: none; }
.ams-table tbody tr.clickable { cursor: pointer; }
.ams-table tbody tr:hover { background: rgba(91,124,255,.06); }

/* ── Pills ── */
.ams-pill {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 11px; font-weight: 700; padding: 3px 10px; border-radius: 999px;
}
.ams-pill.ok { background: var(--ams-ok-bg); color: var(--ams-ok); }
.ams-pill.warn { background: var(--ams-warn-bg); color: var(--ams-warn); }
.ams-pill.crit { background: var(--ams-crit-bg); color: var(--ams-crit); }
.ams-pill.mute { background: var(--ams-icon-bg); color: var(--ams-ink-mute); }
.ams-pill.dot::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }

/* ── Buttons ── */
.ams-btn {
  display: inline-flex; align-items: center; gap: 7px; border-radius: 10px; border: 1px solid transparent;
  font-size: 13px; font-weight: 600; padding: 7px 15px; cursor: pointer; text-decoration: none;
  transition: filter .12s, background .12s, box-shadow .15s, transform .08s;
}
.ams-btn:active { transform: translateY(1px); }
.ams-btn-primary { background: var(--ams-accent-grad); color: #fff; box-shadow: 0 4px 18px -6px rgba(91,124,255,.6); }
.ams-btn-primary:hover { filter: brightness(1.1); color: #fff; box-shadow: 0 6px 22px -4px rgba(91,124,255,.75); }
.ams-btn-outline { background: var(--ams-tint-1); border-color: var(--ams-border); color: var(--ams-ink-soft); }
.ams-btn-outline:hover { background: var(--ams-tint-3); color: var(--ams-ink); border-color: rgba(91,124,255,.4); }

/* ── Empty / loading ── */
.ams-empty { text-align: center; padding: 34px 16px; color: var(--ams-ink-mute); font-size: 13px; }
.ams-empty i { font-size: 1.8rem; opacity: .35; display: block; margin-bottom: 8px; }
.ams-loading { text-align: center; padding: 20px; }

/* ============================================================
   Native Bootstrap controls — restyled app-wide (search, filters,
   forms, dropdowns, modals, pagination, badges) in the same glass
   language, since these appear across every page's filter bars
   and modals and are not yet ported to bespoke AMS markup.
   ============================================================ */

.form-control, .form-select {
  background: var(--ams-tint-1) !important;
  border: 1px solid var(--ams-border) !important;
  color: var(--ams-ink) !important;
  border-radius: 10px !important;
  font-size: .8rem !important;
  padding: .45rem .7rem !important;
  transition: border-color .15s, box-shadow .15s, background .15s;
}
.form-control::placeholder { color: var(--ams-ink-mute) !important; opacity: 1; }
.form-control:focus, .form-select:focus {
  background: var(--ams-tint-2) !important;
  border-color: var(--ams-accent-a) !important;
  box-shadow: 0 0 0 3px rgba(91,124,255,.22) !important;
  color: var(--ams-ink) !important;
}
.form-select {
  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='%23a7acc2' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e") !important;
  background-repeat: no-repeat !important;
  background-position: right .7rem center !important;
  background-size: 14px 10px !important;
  padding-right: 2rem !important;
}
.form-label { color: var(--ams-ink-soft) !important; font-size: .78rem !important; font-weight: 500; }

/* Input groups (search bars: text input + icon button) — capsule shape */
.input-group { border-radius: 10px; }
.input-group > .form-control:not(:last-child), .input-group > .form-select:not(:last-child) { border-right: none !important; }
.input-group > .form-control:first-child, .input-group > .form-select:first-child { border-radius: 10px 0 0 10px !important; }
.input-group > .form-control:not(:first-child):not(:last-child) { border-radius: 0 !important; }
.input-group > .btn { border-radius: 0 10px 10px 0 !important; border: none !important; }
.input-group > .btn:first-child { border-radius: 10px 0 0 10px !important; }

/* Search inputs — pill shape with leading icon, used via .ams-search wrapper */
.ams-search { position: relative; display: flex; align-items: center; }
.ams-search i {
  position: absolute; left: 14px; font-size: 13px; color: var(--ams-ink-mute); pointer-events: none;
}
.ams-search input {
  width: 100%; padding-left: 36px !important; border-radius: 999px !important;
}
.ams-search input:focus { box-shadow: 0 0 0 3px rgba(91,124,255,.22), var(--ams-glow-a) !important; }

/* Checkbox — gradient fill + check draw */
.form-check-input {
  background-color: var(--ams-tint-1) !important;
  border: 1.5px solid var(--ams-border) !important;
  width: 1.05em !important; height: 1.05em !important;
  transition: background .15s, border-color .15s, box-shadow .15s;
}
.form-check-input[type="checkbox"] { border-radius: 5px !important; }
.form-check-input[type="radio"] { border-radius: 50% !important; }
.form-check-input:checked {
  background: var(--ams-accent-grad) !important; border-color: transparent !important;
  box-shadow: 0 0 10px -2px rgba(91,124,255,.7) !important;
}
.form-check-input:focus { box-shadow: 0 0 0 3px rgba(91,124,255,.22) !important; border-color: var(--ams-accent-a) !important; }
.form-check-label { color: var(--ams-ink-soft); font-size: .82rem; }

/* Switch (uses Bootstrap's .form-switch structure) */
.form-switch .form-check-input {
  width: 2.3em !important; height: 1.15em !important; border-radius: 999px !important;
  background-color: var(--ams-tint-3) !important;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2370748c'/%3e%3c/svg%3e") !important;
}
.form-switch .form-check-input:checked {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e") !important;
}

/* Dropdown menus */
.dropdown-menu {
  background: var(--ams-surface-solid) !important;
  border: 1px solid var(--ams-border) !important;
  border-radius: 12px !important;
  box-shadow: var(--ams-shadow) !important;
  padding: 6px !important;
  backdrop-filter: blur(var(--ams-blur));
}
.dropdown-item {
  color: var(--ams-ink-soft) !important; border-radius: 8px !important; font-size: .82rem !important;
  padding: .45rem .7rem !important; transition: background .12s, color .12s;
}
.dropdown-item:hover, .dropdown-item:focus { background: rgba(91,124,255,.14) !important; color: var(--ams-ink) !important; }
.dropdown-divider { border-color: var(--ams-border-soft) !important; }

/* Modals */
.modal-content {
  background: var(--ams-surface-solid) !important; border: 1px solid var(--ams-border) !important;
  border-radius: var(--ams-radius) !important; box-shadow: var(--ams-shadow) !important;
}
.modal-header, .modal-footer { border-color: var(--ams-border-soft) !important; }
.modal-title { color: var(--ams-ink) !important; font-family: var(--ams-display); font-size: .95rem !important; }
:root[data-bs-theme="dark"] .btn-close { filter: invert(1) grayscale(1) brightness(1.8) !important; opacity: .7 !important; }

/* Buttons (Bootstrap base, retained as the base framework) */
.btn { font-size: .8rem !important; border-radius: 10px !important; }
.btn-sm { font-size: .75rem !important; padding: .3rem .65rem !important; }
.btn-primary {
  background: var(--ams-accent-grad) !important; border: none !important;
  box-shadow: 0 4px 16px -6px rgba(91,124,255,.6) !important;
}
.btn-primary:hover, .btn-primary:focus { filter: brightness(1.1); box-shadow: 0 6px 20px -4px rgba(91,124,255,.75) !important; }
.btn-outline-primary { color: var(--ams-link) !important; border-color: var(--ams-accent-a) !important; }
.btn-outline-primary:hover { background: var(--ams-accent-a) !important; color: #fff !important; }
.btn-outline-secondary { color: var(--ams-ink-soft) !important; border-color: var(--ams-border) !important; }
.btn-outline-secondary:hover { background: var(--ams-tint-3) !important; color: var(--ams-ink) !important; }
.btn-outline-danger { color: var(--ams-crit) !important; border-color: rgba(255,93,122,.4) !important; }
.btn-outline-danger:hover { background: var(--ams-crit) !important; border-color: var(--ams-crit) !important; color: #fff !important; }
.bg-primary { background: var(--ams-accent-a) !important; }
.text-primary { color: var(--ams-link) !important; }
.border-primary { border-color: var(--ams-accent-a) !important; }
a:not(.btn):not(.nav-link):not(.dropdown-item):not(.ams-nav-item) { color: var(--ams-link); }
.spinner-border.text-primary { color: var(--ams-accent-a) !important; }

/* Badges (still used inside JS-generated table rows) */
.badge { font-size: .68rem !important; font-weight: 600 !important; padding: .3em .6em !important; border-radius: 999px !important; }
.text-bg-primary { background: rgba(91,124,255,.18) !important; color: var(--ams-link) !important; }
.text-bg-success { background: var(--ams-ok-bg) !important; color: var(--ams-ok) !important; }
.text-bg-warning { background: var(--ams-warn-bg) !important; color: var(--ams-warn) !important; }
.text-bg-danger { background: var(--ams-crit-bg) !important; color: var(--ams-crit) !important; }
.text-bg-secondary { background: var(--ams-tint-3) !important; color: var(--ams-ink-mute) !important; }
.text-bg-info { background: var(--ams-info-bg) !important; color: var(--ams-info) !important; }

/* Pagination */
.pagination { font-size: .78rem !important; }
.page-link {
  background: var(--ams-tint-1) !important; border: 1px solid var(--ams-border) !important;
  color: var(--ams-ink-soft) !important; padding: .3rem .6rem !important; border-radius: 8px !important; margin: 0 2px;
}
.page-link:hover { background: rgba(91,124,255,.14) !important; color: var(--ams-ink) !important; }
.page-item.active .page-link { background: var(--ams-accent-grad) !important; border-color: transparent !important; color: #fff !important; }
.page-item.disabled .page-link { opacity: .4; }

/* Tables not yet on .ams-table (docs/legacy demo pages only) */
.table { color: var(--ams-ink); }
.table > :not(caption) > * > * { border-bottom-color: var(--ams-border-soft); }

/* Toasts */
#thq-toast-container .toast {
  background: var(--ams-surface-solid) !important; border: 1px solid var(--ams-border) !important; border-radius: 12px !important;
}
#thq-toast-container .toast-body { font-size: .8rem !important; color: var(--ams-ink) !important; }
:root[data-bs-theme="light"] #thq-toast-container .btn-close-white { filter: none !important; }

/* Scrollbar */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(91,124,255,.35); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: rgba(91,124,255,.55); }

/* Live status dot pulse (used on health/alerts panels) */
@keyframes ams-pulse {
  0% { box-shadow: 0 0 0 0 rgba(48,227,168,.55); }
  70% { box-shadow: 0 0 0 7px rgba(48,227,168,0); }
  100% { box-shadow: 0 0 0 0 rgba(48,227,168,0); }
}
.ams-pulse-dot { animation: ams-pulse 2s infinite; border-radius: 50%; }

@media (prefers-reduced-motion: reduce) {
  .ams-stat, .ams-btn, .ams-pulse-dot { transition: none; animation: none; }
}
