/* =============================================================================
   SESSION REPORT — Page-specific styles
   Extracted from SessionReport.cshtml inline <style> block.
   Uses Vuexy theme colour conventions (#7367f0 primary, #28c76f success,
   #ff9f43 warning, #ea5455 danger) and Bootstrap 5 utility-aware names.
   ============================================================================= */

/* ── Stats strip ─────────────────────────────────────────────────────────── */
.stats-strip {
    display: flex;
    gap: 1rem;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
}

.stat-card {
    flex: 1;
    min-width: 140px;
    background: #fff;
    border-radius: 10px;
    padding: 1rem 1.25rem;
    border-left: 4px solid #7367f0;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.07);
    display: flex;
    align-items: center;
    gap: 0.85rem;
}

.stat-card.completed { border-color: #28c76f; }
.stat-card.pending   { border-color: #ff9f43; }
.stat-card.total     { border-color: #7367f0; }

.stat-icon {
    width: 40px;
    height: 40px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
}

.stat-card.total     .stat-icon { background: rgba(115, 103, 240, 0.12); color: #7367f0; }
.stat-card.completed .stat-icon { background: rgba(40, 199, 111, 0.12);  color: #28c76f; }
.stat-card.pending   .stat-icon { background: rgba(255, 159, 67, 0.12);  color: #ff9f43; }

.stat-label {
    font-size: 0.75rem;
    color: #b9b9c3;
    font-weight: 500;
}

.stat-value {
    font-size: 1.3rem;
    font-weight: 700;
    color: #5e5873;
}

/* ── Badges (shared across main table + detail modal) ────────────────────── */
.badge-completed {
    background: rgba(40, 199, 111, 0.12);
    color: #28c76f;
    font-size: 0.78rem;
    font-weight: 600;
    padding: 4px 10px;
    border-radius: 20px;
}

.badge-pending {
    background: rgba(255, 159, 67, 0.12);
    color: #ff9f43;
    font-size: 0.78rem;
    font-weight: 600;
    padding: 4px 10px;
    border-radius: 20px;
}

.badge-valid {
    background: rgba(40, 199, 111, 0.12);
    color: #28c76f;
    padding: 3px 9px;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 600;
}

.badge-invalid {
    background: rgba(234, 84, 85, 0.12);
    color: #ea5455;
    padding: 3px 9px;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 600;
}

.badge-processed {
    background: rgba(115, 103, 240, 0.12);
    color: #7367f0;
    padding: 3px 9px;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 600;
}

.badge-unprocessed {
    background: rgba(255, 159, 67, 0.12);
    color: #ff9f43;
    padding: 3px 9px;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 600;
}

.badge-ignored {
    background: rgba(255, 159, 67, 0.12);
    color: #ff9f43;
    padding: 3px 9px;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 600;
}

/* ── Session key mono ────────────────────────────────────────────────────── */
.session-key-cell {
    font-family: 'Courier New', monospace;
    font-size: 0.78rem;
    color: #6e6b7b;
    max-width: 160px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.phone-cell {
    font-weight: 600;
    color: #5e5873;
}

/* ── Card ────────────────────────────────────────────────────────────────── */
.card.sessions-card {
    border-radius: 0.428rem;
    box-shadow: 0 4px 24px 0 rgba(34, 41, 47, 0.1);
    overflow: hidden;
}

.card.sessions-card .card-header {
    background: #f8f8f8;
    border-bottom: 1px solid #ebe9f1;
    padding: 1rem 1.5rem;
    font-weight: 600;
    color: #5e5873;
    font-size: 0.95rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

/* ── DataTable overrides ─────────────────────────────────────────────────── */
.sessions-card table.dataTable thead th {
    background: #f8f8f8;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #b9b9c3;
    border-bottom: 2px solid #ebe9f1 !important;
    font-weight: 600;
}

.sessions-card table.dataTable tbody td {
    font-size: 0.875rem;
    vertical-align: middle;
    color: #6e6b7b;
    border-bottom: 1px solid #ebe9f1;
}

.sessions-card table.dataTable tbody tr:hover td {
    background: rgba(115, 103, 240, 0.04);
}

/* ── Detail modal header ─────────────────────────────────────────────────── */
.session-details-header {
    background: linear-gradient(135deg, #7367f0, #9e95f5);
    color: #fff;
    border-radius: 0.357rem 0.357rem 0 0;
    padding: 1rem 1.5rem;
}

.session-details-header .btn-close {
    filter: invert(1);
}

.detail-modal-icon {
    width: 40px;
    height: 40px;
    background: rgba(255, 255, 255, 0.15);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    flex-shrink: 0;
}

/* ── Overview strip ──────────────────────────────────────────────────────── */
.detail-overview-strip {
    background: #f8f8f8;
    border-bottom: 1px solid #ebe9f1;
}

.detail-kv {
    display: flex;
    flex-direction: column;
    gap: 2px;
    word-break:break-word;
}

.detail-kv-label {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #b9b9c3;
    font-weight: 600;
}

.detail-kv-value {
    font-size: 0.9rem;
    color: #5e5873;
    font-weight: 500;
}

/* ── Session key full ────────────────────────────────────────────────────── */
.session-key-full-wrap {
    background: #fff;
    border: 1px dashed #ebe9f1;
    border-radius: 0.357rem;
    padding: 0.6rem 1rem;
}

.session-key-full {
    font-size: 0.78rem;
    color: #6e6b7b;
    word-break: break-all;
    margin: 0;
}

/* ── Request log DataTable (inside detail modal) ─────────────────────────── */
#session-requests-table thead th {
    background: #f8f8f8;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #b9b9c3;
    font-weight: 600;
    border-bottom: 2px solid #ebe9f1 !important;
    white-space: nowrap;
}

#session-requests-table tbody td {
    font-size: 0.83rem;
    vertical-align: middle;
    border-bottom: 1px solid #ebe9f1;
}

#session-requests-table tbody tr:hover td {
    background: rgba(115, 103, 240, 0.04);
}

/* ── Seq number badge ────────────────────────────────────────────────────── */
.req-seq-badge {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    /*background: linear-gradient(135deg, #7367f0, #9e95f5);*/
    /*color: #fff;*/
    font-size: 0.7rem;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* ── Raw USSD string cell ────────────────────────────────────────────────── */
.raw-ussd-cell {
    font-family: 'Courier New', monospace;
    font-size: 0.75rem;
    color: #6e6b7b;
    max-width: 200px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    display: block;
}

/* ── Actions dropdown button ─────────────────────────────────────────────── */
.session-actions-btn {
    background: none;
    border: none;
    padding: 4px 8px;
    border-radius: 6px;
    color: #6e6b7b;
    cursor: pointer;
    transition: background 0.15s;
}

.session-actions-btn:hover {
    background: rgba(115, 103, 240, 0.08);
    color: #7367f0;
}

.session-actions-btn svg {
    display: block;
}

/* ── Filter modal header ─────────────────────────────────────────────────── */
#filterModal .modal-header {
    background: linear-gradient(135deg, #7367f0, #9e95f5);
    color: #fff;
    border-radius: 0.357rem 0.357rem 0 0;
}

#filterModal .modal-header .btn-close {
    filter: invert(1);
}

/* ── Empty state ─────────────────────────────────────────────────────────── */
.no-requests-state {
    text-align: center;
    padding: 2.5rem 1rem;
    color: #b9b9c3;
}

.no-requests-state .no-req-icon {
    font-size: 2.5rem;
    display: block;
    margin-bottom: 0.5rem;
}

/* ── Loading spinner ─────────────────────────────────────────────────────── */
.session-detail-spinner {
    width: 2.5rem;
    height: 2.5rem;
}

/* ── Error icon ──────────────────────────────────────────────────────────── */
.session-error-icon {
    font-size: 1.3rem;
}

/* ── Mobile responsive ───────────────────────────────────────────────────── */
@media (max-width: 575.98px) {
    .stats-strip {
        flex-direction: column;
    }

    .stat-card {
        min-width: 100%;
    }

    .detail-overview-strip .row {
        row-gap: 0.75rem;
    }
}
