/* ── Insurer.Admin — Brand Variables (Slate Blue) ── */
:root {
    --ih-primary: #4F6F8F;
    --ih-primary-light: #5B9BD5;
    --ih-secondary: #2C4A6E;
    --ih-accent: #E07B00;
    --ih-surface: #ffffff;
    --ih-surface-alt: #f5f7fa;
    --ih-border: #e5e7eb;
    --ih-text: #2d3748;
    --ih-text-muted: #6c757d;
}

[data-bs-theme="dark"] {
    --ih-surface: #2A303C;
    --ih-surface-alt: #1e2330;
    --ih-border: #3d4452;
    --ih-text: #e2e8f0;
    --ih-text-muted: #94a3b8;
}

body { font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif; }

/* ── Sidebar active item — override theme ── */
.left-sidebar .sidebar-item.selected > .sidebar-link,
.left-sidebar .sidebar-link.active {
    background: var(--ih-primary) !important;
    color: #fff !important;
    border-radius: 7px;
}
.left-sidebar .sidebar-link:hover {
    background: rgba(79, 111, 143, .12);
    color: var(--ih-primary);
}

/* ── KPI Cards ── */
.kpi-icon {
    width: 48px; height: 48px; border-radius: 12px;
    display: flex; align-items: center; justify-content: center; font-size: 1.2rem;
}

/* ── Product badges ── */
.badge-product-insurehealth { background: #4F6F8F; color: #fff; }
.badge-product-insurehealthpatient { background: #5B9BD5; color: #fff; }

/* ── Status badges ── */
.badge-status-active { background: #27AE60; color: #fff; }
.badge-status-suspended { background: #E67E22; color: #fff; }
.badge-status-archived { background: #95A5A6; color: #fff; }
.badge-status-pendingprovisioning { background: #3498DB; color: #fff; }
.badge-status-trial { background: #8E44AD; color: #fff; }
.badge-status-cancelled { background: #E74C3C; color: #fff; }

/* ── Invoice status badges ── */
.badge-invoice-draft { background: #95A5A6; color: #fff; }
.badge-invoice-issued { background: #3498DB; color: #fff; }
.badge-invoice-paid { background: #27AE60; color: #fff; }
.badge-invoice-overdue { background: #E74C3C; color: #fff; }
.badge-invoice-cancelled { background: #E67E22; color: #fff; }
.badge-invoice-refunded { background: #8E44AD; color: #fff; }

/* ── Table ── */
.table th { font-weight: 600; font-size: .8rem; text-transform: uppercase; color: var(--ih-text-muted); }
.table td { vertical-align: middle; }

/* ── Cards ── */
.card { border-radius: 10px; }
.card-header { border-bottom: 1px solid var(--ih-border); }

/* ── Feature toggle switches ── */
.form-check-input:checked {
    background-color: var(--ih-primary);
    border-color: var(--ih-primary);
}

/* ── Color picker ── */
.form-control-color { width: 48px; height: 38px; padding: 4px; }

/* ── Revenue cards ── */
.revenue-card { border-left: 4px solid var(--ih-primary); }

/* ── Utilities ── */
.cursor-pointer { cursor: pointer; }
.ring { box-shadow: 0 0 0 2px var(--ih-primary); }
.btn-xs { padding: 2px 8px; font-size: 72%; }
.text-accent { color: var(--ih-accent) !important; }
.bg-accent { background-color: var(--ih-accent) !important; }
.btn-ih { background: var(--ih-primary); color: #fff; border: none; }
.btn-ih:hover { background: var(--ih-secondary); color: #fff; }

/* ── Login page ── */
.login-circle {
    position: absolute; border-radius: 50%;
    background: rgba(255,255,255,.06);
}
.login-circle-1 { width: 400px; height: 400px; top: -80px; right: -100px; }
.login-circle-2 { width: 280px; height: 280px; bottom: -60px; left: -80px; }
.login-circle-3 { width: 160px; height: 160px; top: 40%; left: 12%; }

/* ── Service cards ── */
.service-card { transition: transform .15s ease, box-shadow .15s ease; }
.service-card:hover { transform: translateY(-3px); box-shadow: 0 6px 20px rgba(0,0,0,.1) !important; }
.service-status-dot {
    display: inline-block; width: 10px; height: 10px; border-radius: 50%;
}

/* ── Gentle page-load animations ── */
@keyframes fadeUp {
    from { opacity: 0; transform: translateY(18px); }
    to   { opacity: 1; transform: translateY(0); }
}
.fade-up { opacity: 0; animation: fadeUp .45s ease-out forwards; }
