/* Dashboard components, scoped to their original sections. */

    .admin-tech-page { color: #111827; }
    .admin-tech-page .bg-purple-subtle { background-color: #f3e8ff !important; }
    .admin-tech-page .border-purple-subtle { border-color: #e9d5ff !important; }
    .admin-tech-page .text-purple { color: #7e22ce !important; }
    .admin-tech-page .card { border: 1px solid #e5e7eb; border-radius: 16px; }
    .admin-tech-header { margin-bottom: 1.75rem; }
    .admin-tech-title { font-size: clamp(1.8rem, 2.6vw, 2.6rem); font-weight: 900; letter-spacing: 0; }
    .admin-tech-subtitle { color: #64748b; font-size: 1.05rem; font-weight: 600; }
    .admin-tech-pill { border-radius: 12px; padding: .85rem 1.35rem; font-weight: 800; }
    .admin-tech-dot { width: .65rem; height: .65rem; border-radius: 50%; display: inline-block; }
    .admin-tech-card-title { font-size: 1.15rem; font-weight: 900; margin: 0; }
    .admin-tech-card-header { padding: 1.35rem 1.5rem; border-bottom: 1px solid #edf2f7; }
    .admin-tech-metric { border-radius: 12px; padding: 1.35rem; min-height: 116px; border: 1px solid transparent; }
    .admin-tech-metric small, .admin-tech-panel small { color: inherit; opacity: .78; font-weight: 800; }
    .admin-tech-metric strong { display: block; font-size: 2rem; line-height: 1.1; font-weight: 900; color: #111827; margin-top: .5rem; }
    .admin-tech-metric em { display: block; font-style: normal; font-weight: 800; margin-top: .3rem; }
    .admin-tech-chart { min-height: 210px; }
    .admin-tech-service { border-radius: 12px; padding: 1rem; border: 1px solid #bbf7d0; background: #f0fdf4; }
    .admin-tech-service.degraded { border-color: #fed7aa; background: #fff7ed; }
    .admin-tech-service strong { font-size: 1rem; font-weight: 900; }
    .admin-tech-service-status { font-weight: 900; font-size: .85rem; }
    .admin-tech-incident { border-radius: 12px; background: #f8fafc; padding: 1rem; }
    .admin-tech-panel { border-radius: 12px; padding: 1rem; background: #f8fafc; }
    .admin-tech-progress { height: .42rem; border-radius: 999px; background: rgba(148, 163, 184, .25); overflow: hidden; }
    .admin-tech-progress span { display: block; height: 100%; border-radius: inherit; }
    .admin-tech-kv { display: grid; gap: .45rem; }
    .admin-tech-kv div { display: flex; justify-content: space-between; gap: 1rem; font-size: .9rem; color: #475569; }
    .admin-tech-kv strong { color: #0f172a; }
    .admin-tech-log { border-radius: 12px; padding: 1.1rem 1.25rem; border-left: 4px solid transparent; }
    .admin-tech-log.error { background: #fef2f2; border-left-color: #ef4444; color: #991b1b; }
    .admin-tech-log.warning { background: #fff7ed; border-left-color: #f97316; color: #9a3412; }
    .admin-tech-log.info { background: #eff6ff; border-left-color: #3b82f6; color: #1d4ed8; }
    .admin-tech-log.success { background: var(--bs-success-bg-subtle); border-left-color: var(--bs-success-border-subtle); color: var(--bs-success); }
    .admin-tech-log-title { color: inherit; font-weight: 900; }
    .admin-tech-version { border-radius: 12px; background: #f8fafc; padding: 1rem; }
    .admin-tech-version.current { background: #f0fdf4; border: 1px solid #bbf7d0; }
    .admin-tech-version-dot { width: .5rem; height: .5rem; border-radius: 50%; background: #94a3b8; display: inline-block; }
    .admin-tech-version.current .admin-tech-version-dot { background: #22c55e; }


    .admin-data-hero{display:flex;justify-content:space-between;gap:1rem;align-items:flex-end;margin-bottom:1.5rem}
    .admin-data-filter{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:1rem;box-shadow:0 1px 3px rgba(15,23,42,.06)}
    .admin-data-filter label{font-size:.68rem;font-weight:800;color:#94a3b8;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.25rem}
    .admin-data-kpi .card{transition:transform .18s ease, box-shadow .18s ease}
    .admin-data-kpi .card:hover{transform:translateY(-2px);box-shadow:0 .5rem 1.2rem rgba(15,23,42,.08)}
    .admin-data-icon{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px}
    .admin-data-table th{font-size:.68rem;text-transform:uppercase;color:#94a3b8;letter-spacing:.04em;white-space:nowrap}
    .admin-data-table td{vertical-align:middle}
    .admin-data-progress{height:.45rem;border-radius:999px;background:#eef2f7;overflow:hidden}
    .admin-data-progress span{display:block;height:100%;border-radius:inherit}
    .admin-data-rank{width:28px;height:28px;border-radius:999px;background:#f1f5f9;display:inline-flex;align-items:center;justify-content:center;font-weight:800;color:#64748b}
    @media (max-width: 768px){.admin-data-hero{align-items:flex-start;flex-direction:column}}


    .admin-messenger-page { color: #111827; }
    .admin-messenger-page .card { border: 1px solid #e5e7eb; border-radius: 16px; }
    .admin-messenger-title { font-size: clamp(1.8rem, 2.6vw, 2.6rem); font-weight: 900; }
    .admin-messenger-subtitle { color: #64748b; font-size: 1.05rem; font-weight: 600; }
    .admin-messenger-card-header { padding: 1.35rem 1.5rem; border-bottom: 1px solid #edf2f7; }
    .admin-messenger-card-title { font-size: 1.15rem; font-weight: 900; margin: 0; }
    .admin-messenger-state { border-radius: 14px; padding: 1.4rem; }
    .admin-messenger-dot { width: .7rem; height: .7rem; border-radius: 50%; display: inline-block; }
    .admin-messenger-queue { border: 1px solid #e2e8f0; border-radius: 12px; padding: 1rem; background: #f8fafc; }
    .admin-messenger-queue strong { font-size: 1.5rem; font-weight: 900; }
    .admin-messenger-table th { color: #64748b; font-size: .75rem; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; }
    .admin-messenger-table td { vertical-align: middle; }
    .admin-messenger-type { max-width: 300px; }
    .admin-messenger-type code { color: #475569; font-size: .75rem; }

/* Unified cockpit layout. */
.admin-dashboard__status { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.admin-dashboard__tabs { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:5px; padding:6px; margin-bottom:28px; border-radius:12px; background:#eaf0f5; }
.admin-dashboard__tabs .nav-link { display:flex; align-items:center; justify-content:center; gap:8px; width:100%; padding:12px 8px; border:0; border-radius:8px; color:#64748b; background:transparent; font-size:13px; font-weight:650; }
.admin-dashboard__tabs .nav-link:hover { color:#17324a; background:#f6f8fb; }
.admin-dashboard__tabs .nav-link.active { color:#17324a; background:#fff; box-shadow:0 2px 5px #17324a0d; }
.admin-dashboard__section-heading { margin-bottom:24px; }
.admin-dashboard__section-heading h2,.admin-dashboard .admin-tech-title,.admin-dashboard .admin-messenger-title,.admin-dashboard .admin-data-hero h2 { font-size:22px; font-weight:750; letter-spacing:-.025em; color:#17324a; margin-bottom:8px; }
.admin-dashboard__section-heading p,.admin-dashboard .admin-tech-subtitle,.admin-dashboard .admin-messenger-subtitle,.admin-dashboard .admin-data-hero p { color:#64748b; font-size:13px; font-weight:400; margin-bottom:0; }
.admin-dashboard .card { margin-bottom:0; }
.admin-dashboard .card-body > .row > div > .border { height:100%; }
.admin-dashboard .card-body .fs-7,.admin-dashboard .display-6 { font-size:30px !important; font-weight:750 !important; line-height:1.25; letter-spacing:-.03em; }
.admin-dashboard .admin-tech-metric strong { font-size:28px; font-weight:750; color:#17324a; }
.admin-dashboard .admin-tech-metric small,.admin-dashboard .admin-tech-panel small { font-weight:500; opacity:1; }
.admin-dashboard .admin-tech-metric em { font-size:12px; font-weight:500; }
.admin-dashboard .admin-tech-metric { min-height:130px; border-color:#e2e9f0; }
.admin-dashboard .admin-tech-card-header,.admin-dashboard .admin-messenger-card-header { padding:20px 24px; background:#f9fbfd; border-bottom:1px solid #edf1f5; border-radius:16px 16px 0 0; flex-wrap:wrap; gap:12px; }
.admin-dashboard .admin-tech-card-title,.admin-dashboard .admin-messenger-card-title { font-size:16px; font-weight:700; color:#17324a; }
.admin-dashboard .admin-tech-pill { font-size:12px; padding:8px 12px; font-weight:650; border-radius:8px; }
.admin-dashboard .admin-tech-header { margin-bottom:24px; }
.admin-dashboard .admin-tech-service strong { font-size:14px; font-weight:700; }
.admin-dashboard .admin-tech-service-status { font-size:12px; font-weight:650; }
.admin-dashboard .admin-tech-kv div { font-size:12px; }
.admin-dashboard .admin-tech-kv strong { text-align:right; overflow-wrap:anywhere; }
.admin-dashboard .admin-tech-log-title { font-weight:700; }
.admin-dashboard .admin-tech-log { font-size:13px; }
.admin-dashboard .admin-tech-log :is(p,code),.admin-dashboard .admin-messenger-type { overflow-wrap:anywhere; }
.admin-dashboard .admin-messenger-state { padding:20px; }
.admin-dashboard .admin-messenger-queue strong { font-size:28px; font-weight:750; }
.admin-dashboard .admin-data-filter { padding:24px; border-color:#e2e9f0; border-radius:16px; box-shadow:none; }
.admin-dashboard .admin-data-filter label { font-size:12px; text-transform:none; letter-spacing:0; font-weight:650; color:#526579; margin-bottom:8px; }
.admin-dashboard .admin-data-kpi .card { height:100%; }
.admin-dashboard .admin-data-icon { width:42px; height:42px; border-radius:12px; }
.admin-dashboard .admin-data-rank { font-size:12px; background:#edf3ff; color:#355d99; border-radius:8px; }
.admin-dashboard .progress { background:#eaf0f5; height:8px !important; border-radius:10px; }
.admin-dashboard .progress-bar { border-radius:10px; }
.admin-dashboard [data-dashboard-charts-target] { min-width:0; max-width:100%; }
.admin-dashboard .tab-pane:focus-visible { outline:3px solid #639be0; outline-offset:5px; border-radius:12px; }
@media(max-width:991px) {
 .admin-dashboard__tabs { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .admin-dashboard .admin-tech-header { align-items:stretch; }
}
@media(max-width:767px) {
 .admin-dashboard__tabs { grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px; }
 .admin-dashboard__tabs .nav-link { padding:11px 8px; }
 .admin-dashboard__section-heading h2,.admin-dashboard .admin-tech-title,.admin-dashboard .admin-messenger-title,.admin-dashboard .admin-data-hero h2 { font-size:20px; }
 .admin-dashboard .admin-tech-card-header,.admin-dashboard .admin-messenger-card-header,.admin-dashboard .admin-data-filter { padding:18px; }
 .admin-dashboard .admin-tech-service { flex-wrap:wrap; }
 .admin-dashboard .admin-tech-kv div { flex-wrap:wrap; gap:4px 12px; }
 .admin-dashboard .admin-data-kpi .card:hover { transform:none; }
 .admin-dashboard .col-4:has(> .rounded-3) { width:100%; }
}
@media(prefers-reduced-motion:reduce) { .admin-dashboard .admin-data-kpi .card { transition:none; } }
.admin-dashboard .bg-primary-subtle { background-color:#edf3ff !important; }
.admin-dashboard .bg-success-subtle { background-color:var(--bs-success-bg-subtle) !important; }
.admin-dashboard .bg-warning-subtle { background-color:#fff7e8 !important; }
.admin-dashboard .bg-danger-subtle { background-color:#fdf0f1 !important; }
.admin-dashboard .text-success { color:var(--bs-success) !important; }
.admin-dashboard .text-warning { color:#956417 !important; }
.admin-dashboard .card :is(strong,.fw-bold,.fw-semibold):not([class*="text-"]) { color:#17324a; }
