/**
 * IFHR Design System — Insurance, IFRS 17 & Fraud API Admin
 * Polakis Technologies Ltd | MediSure360
 *
 * Companion: docs/DESIGN_LANGUAGE.md
 * Load after bootstrap/app.min.css; overrides isp360-theme.css tokens.
 */
:root {
    --ifhr-brand: #0c447c;
    --ifhr-brand-dark: #083358;
    --ifhr-brand-light: #1565a8;
    --ifhr-brand-50: #e6f1fb;
    --ifhr-brand-100: #cce3f7;

    --ifhr-accent: #0d9488;
    --ifhr-accent-dark: #0f766e;
    --ifhr-secondary: #1e40af;

    --ifhr-success: #059669;
    --ifhr-success-bg: #ecfdf5;
    --ifhr-warning: #d97706;
    --ifhr-warning-bg: #fffbeb;
    --ifhr-danger: #dc2626;
    --ifhr-danger-bg: #fef2f2;
    --ifhr-info: #0284c7;
    --ifhr-info-bg: #e0f2fe;

    --ifhr-surface: #ffffff;
    --ifhr-surface-2: #f4f7fb;
    --ifhr-border: #d8e2ef;
    --ifhr-text-1: #0a2540;
    --ifhr-text-2: #4a6278;
    --ifhr-text-3: #8fa3b8;

    --ifhr-sidebar-bg: #0a2540;
    --ifhr-sidebar-text: #b8cce0;
    --ifhr-sidebar-active: #0d9488;

    --ifhr-radius-sm: 6px;
    --ifhr-radius-md: 10px;
    --ifhr-radius-lg: 14px;
    --ifhr-shadow-1: 0 1px 3px rgba(10, 37, 64, 0.08);
    --ifhr-shadow-2: 0 8px 28px rgba(10, 37, 64, 0.12);

    /* Map to shared layout aliases */
    --isp-brand: var(--ifhr-brand);
    --isp-brand-dark: var(--ifhr-brand-dark);
    --isp-brand-light: var(--ifhr-brand-light);
    --isp-brand-50: var(--ifhr-brand-50);
    --isp-brand-100: var(--ifhr-brand-100);
    --isp-secondary: var(--ifhr-secondary);
    --isp-accent: var(--ifhr-accent);
    --isp-success: var(--ifhr-success);
    --isp-warning: var(--ifhr-warning);
    --isp-danger: var(--ifhr-danger);
    --isp-surface: var(--ifhr-surface);
    --isp-surface-2: var(--ifhr-surface-2);
    --isp-border: var(--ifhr-border);
    --isp-text-1: var(--ifhr-text-1);
    --isp-text-2: var(--ifhr-text-2);
    --isp-text-3: var(--ifhr-text-3);
    --isp-sidebar-bg: var(--ifhr-sidebar-bg);
    --isp-sidebar-text: var(--ifhr-sidebar-text);
    --isp-sidebar-active: var(--ifhr-sidebar-active);
    --brand: var(--ifhr-brand);
    --brand-50: var(--ifhr-brand-50);
    --surface: var(--ifhr-surface);
    --surface-2: var(--ifhr-surface-2);
    --border: var(--ifhr-border);
    --tx-1: var(--ifhr-text-1);
    --tx-2: var(--ifhr-text-2);
    --tx-3: var(--ifhr-text-3);
    --green: var(--ifhr-success);
    --green-bg: var(--ifhr-success-bg);
    --blue: var(--ifhr-brand);
    --blue-bg: var(--ifhr-brand-50);
    --amber: var(--ifhr-warning);
    --amber-bg: var(--ifhr-warning-bg);
}

body {
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    color: var(--ifhr-text-1);
    background: var(--ifhr-surface-2);
}

/* Auth (login / logout) */
.auth-page-wrapper {
    background: linear-gradient(135deg, var(--ifhr-brand-50) 0%, #e8f5f3 45%, var(--ifhr-surface-2) 100%);
    min-height: 100vh;
}

.auth-card::before {
    background: linear-gradient(90deg, var(--ifhr-brand), var(--ifhr-accent));
}

.auth-panel-left {
    background: linear-gradient(135deg, #ffffff 0%, var(--ifhr-brand-50) 100%) !important;
    border-right: 4px solid var(--ifhr-brand);
}

.auth-feature-pill {
    background: rgba(12, 68, 124, 0.07);
    border-radius: var(--ifhr-radius-md);
    padding: 0.85rem 1rem;
}

.btn-ifhr-primary,
.btn-isp-primary {
    background: linear-gradient(135deg, var(--ifhr-brand) 0%, var(--ifhr-brand-light) 100%);
    border: none;
    border-radius: var(--ifhr-radius-sm);
    color: #fff;
    font-weight: 600;
    padding: 12px 24px;
    transition: transform 0.2s, box-shadow 0.2s;
}

.btn-ifhr-primary:hover,
.btn-isp-primary:hover {
    background: linear-gradient(135deg, var(--ifhr-brand-dark) 0%, var(--ifhr-brand) 100%);
    color: #fff;
    transform: translateY(-1px);
    box-shadow: 0 6px 20px rgba(12, 68, 124, 0.28);
}

/* App shell */
.isp-sidebar {
    background: var(--ifhr-sidebar-bg);
}

.isp-sidebar .nav-link.active,
.isp-sidebar .nav-link:hover {
    color: #fff;
    background: rgba(13, 148, 136, 0.18);
    border-left-color: var(--ifhr-accent);
}

.isp-topbar {
    background: var(--ifhr-surface);
    border-bottom: 1px solid var(--ifhr-border);
}

/* KPI cards */
.kpi-card {
    background: var(--ifhr-surface);
    border: 1px solid var(--ifhr-border);
    border-radius: var(--ifhr-radius-md);
    box-shadow: var(--ifhr-shadow-1);
    padding: 1.25rem;
    height: 100%;
}

.kpi-card .kpi-value {
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--ifhr-text-1);
    line-height: 1.2;
}

.kpi-card .kpi-label {
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--ifhr-text-3);
}

.kpi-icon {
    width: 48px;
    height: 48px;
    border-radius: var(--ifhr-radius-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.35rem;
    background: var(--ifhr-brand-50);
    color: var(--ifhr-brand);
}

.kpi-icon.accent { background: #e8f5f3; color: var(--ifhr-accent); }
.kpi-icon.warn   { background: var(--ifhr-warning-bg); color: var(--ifhr-warning); }
.kpi-icon.danger { background: var(--ifhr-danger-bg); color: var(--ifhr-danger); }

/* Score pills (fraud) */
.score-pill {
    display: inline-block;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 700;
}
.score-low      { background: var(--ifhr-success-bg); color: var(--ifhr-success); }
.score-medium   { background: var(--ifhr-brand-50); color: var(--ifhr-brand); }
.score-high     { background: var(--ifhr-warning-bg); color: var(--ifhr-warning); }
.score-critical { background: var(--ifhr-danger-bg); color: var(--ifhr-danger); }

/* Data tables */
.ifhr-table-card {
    background: var(--ifhr-surface);
    border: 1px solid var(--ifhr-border);
    border-radius: var(--ifhr-radius-md);
    overflow: hidden;
}

.ifhr-table-card .card-header {
    background: var(--ifhr-surface-2);
    border-bottom: 1px solid var(--ifhr-border);
    font-weight: 600;
}

/* Sandbox response panel */
.sandbox-response {
    background: #0a2540;
    color: #cce3f7;
    border-radius: var(--ifhr-radius-sm);
    font-family: 'SF Mono', 'Fira Code', monospace;
    font-size: 0.8rem;
    max-height: 360px;
    overflow: auto;
    padding: 1rem;
}

.badge-ifhr { background: var(--ifhr-brand); color: #fff; }
.badge-sandbox { background: var(--ifhr-accent); color: #fff; }

/* Quota / rate limit progress */
.quota-bar {
    height: 8px;
    border-radius: 4px;
    background: var(--ifhr-border);
    overflow: hidden;
}
.quota-bar-fill {
    height: 100%;
    border-radius: 4px;
    transition: width 0.4s ease;
}
.quota-bar-fill.ok       { background: var(--ifhr-success); }
.quota-bar-fill.warning  { background: var(--ifhr-warning); }
.quota-bar-fill.critical { background: var(--ifhr-danger); }

.status-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    display: inline-block;
}
.status-dot.ok       { background: var(--ifhr-success); }
.status-dot.warning  { background: var(--ifhr-warning); }
.status-dot.critical { background: var(--ifhr-danger); }
.status-dot.offline  { background: var(--ifhr-text-3); }

/* Fraud review detail panels */
.ifhr-detail-card {
    background: var(--ifhr-surface);
    border: 1px solid var(--ifhr-border);
    border-radius: var(--ifhr-radius-md);
    padding: 1.25rem 1.5rem;
    margin-bottom: 1rem;
}
.ifhr-detail-label {
    font-size: 0.7rem;
    color: var(--ifhr-text-3);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 0.15rem;
}
.ifhr-detail-value { font-size: 0.925rem; font-weight: 600; }
.peer-bar { height: 6px; background: var(--ifhr-border); border-radius: 3px; margin-top: 0.35rem; }
.peer-fill { height: 100%; border-radius: 3px; background: var(--ifhr-brand); }
.sla-ok { color: var(--ifhr-success); }
.sla-warn { color: var(--ifhr-warning); }
.sla-breach { color: var(--ifhr-danger); font-weight: 600; }

.ifhr-table-card .dataTables_wrapper .dataTables_filter input {
    border: 1px solid var(--ifhr-border);
    border-radius: var(--ifhr-radius-sm);
    padding: 0.25rem 0.5rem;
    font-size: 0.85rem;
}
.ifhr-table-card .dataTables_wrapper .dataTables_length select {
    border: 1px solid var(--ifhr-border);
    border-radius: var(--ifhr-radius-sm);
}

.flag-score { min-width: 36px; text-align: right; font-size: 0.8rem; font-weight: 600; color: var(--ifhr-brand); }
.flag-row { display: flex; align-items: flex-start; gap: 0.65rem; padding: 0.5rem 0; border-bottom: 1px solid var(--ifhr-border); }
.flag-row:last-child { border-bottom: none; }
.text-ifhr-brand { color: var(--ifhr-brand); }

.connection-stale { opacity: 0.65; }
