:root {
    --jc-bg: #f2f4f9;
}

body {
    background-color: var(--jc-bg);
    font-size: .95rem;
}

.navbar { padding: .55rem 1rem; }
.navbar .nav-link.active { font-weight: 600; border-bottom: 2px solid #fff; }
.footer { background: #fff; }

/* ── Tarjetas de estadísticas ─────────────────────────────── */
.stat-card {
    border: 0;
    border-radius: 14px;
    color: #fff;
    padding: 1rem 1.25rem;
    box-shadow: 0 6px 16px rgba(20, 40, 80, .10);
    height: 100%;
}
.stat-card .stat-value { font-size: 1.9rem; font-weight: 700; line-height: 1.05; }
.stat-card .stat-label { opacity: .92; font-size: .82rem; text-transform: uppercase; letter-spacing: .03em; }
.bg-gradient-blue   { background: linear-gradient(135deg, #2563eb, #1e40af); }
.bg-gradient-green  { background: linear-gradient(135deg, #16a34a, #14532d); }
.bg-gradient-red    { background: linear-gradient(135deg, #dc2626, #7f1d1d); }
.bg-gradient-purple { background: linear-gradient(135deg, #7c3aed, #4c1d95); }
.bg-gradient-teal   { background: linear-gradient(135deg, #0d9488, #134e4a); }
.bg-gradient-orange { background: linear-gradient(135deg, #ea580c, #7c2d12); }

/* ── Insignias de resultado ───────────────────────────────── */
.badge-ok   { background: #e6f6ec; color: #137a3d; border: 1px solid #b6e3c4; }
.badge-fail { background: #fdeaea; color: #b02a37; border: 1px solid #f2c0c5; }

/* ── Indicador de agente en línea ─────────────────────────── */
.dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: .35rem; }
.dot-online  { background: #22c55e; box-shadow: 0 0 0 3px rgba(34,197,94,.18); }
.dot-offline { background: #9ca3af; }

/* ── Tablas / misceláneos ─────────────────────────────────── */
.table thead th {
    font-size: .74rem;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: #6b7280;
    border-bottom-width: 1px;
}
.card { border-radius: 12px; border: 1px solid #e5e7eb; box-shadow: 0 1px 2px rgba(16,24,40,.04); }
.card .card-header { background: #fff; border-bottom: 1px solid #eef0f3; font-weight: 600; }
.mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .8rem; }

/* Barras diarias */
.daily-row { display: flex; align-items: center; gap: .6rem; margin-bottom: .4rem; }
.daily-label { width: 90px; font-size: .78rem; color: #6b7280; }
.daily-track { flex: 1; display: flex; gap: 2px; background: #eef1f6; border-radius: 5px; overflow: hidden; height: 18px; }
.daily-bar { height: 18px; }
.bar-success { background: #22c55e; }
.bar-fail    { background: #ef4444; }
.daily-count { width: 70px; font-size: .75rem; text-align: right; color: #6b7280; }

pre.report {
    background: #0f172a;
    color: #e2e8f0;
    padding: 1rem;
    border-radius: 8px;
    max-height: 70vh;
    overflow: auto;
    font-size: .76rem;
    line-height: 1.45;
}

.login-wrap { min-height: 90vh; display: flex; align-items: center; }
.login-card { max-width: 420px; width: 100%; }
.clickable-row { cursor: pointer; }
.empty-hint { color: #9ca3af; text-align: center; padding: 2.5rem 1rem; }
