/**
 * Kool Admin Design System
 * Exact match for https://koolkars.lightnesttechnologies.in/admin
 * Modern, clean, high-contrast, minimalist UI with Switzer typography.
 */

@import url('https://api.fontshare.com/v2/css?f[]=switzer@300,400,500,600,700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&display=swap');

:root {
    --kk-font-sans: 'Switzer', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --kk-font-mono: 'JetBrains Mono', monospace;

    --kk-bg: #f4f5f7;
    --kk-surface: #ffffff;
    --kk-border: #e5e7eb;
    --kk-border-light: #f4f4f5;

    --kk-text-main: #09090b;
    --kk-text-muted: #71717a;
    --kk-text-sub: #a1a1aa;
    --kk-black: #000000;
    --kk-white: #ffffff;

    --kk-radius-sm: 8px;
    --kk-radius-md: 12px;
    --kk-radius-lg: 16px;
    --kk-radius-xl: 20px;
    --kk-radius-2xl: 24px;
    --kk-radius-full: 9999px;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

body {
    margin: 0;
    padding: 0;
    background-color: var(--kk-bg);
    color: var(--kk-text-main);
    font-family: var(--kk-font-sans);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* ==========================================================================
   Admin Shell Layout (Sidebar + Header + Content)
   ========================================================================== */

.admin-layout {
    display: flex;
    min-height: 100vh;
    background-color: var(--kk-bg);
}

.admin-sidebar {
    width: 250px;
    min-width: 250px;
    background-color: var(--kk-surface);
    border-right: 1px solid var(--kk-border);
    display: flex;
    flex-direction: column;
    height: 100vh;
    position: sticky;
    top: 0;
    z-index: 40;
    transition: transform 0.2s ease;
}

.sidebar-header {
    padding: 24px 20px 18px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    border-bottom: 1px solid var(--kk-border-light);
}

.sidebar-brand-logo {
    width: 128px;
    height: auto;
    object-fit: contain;
    display: block;
}

.sidebar-brand-sub {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--kk-text-muted);
    margin-top: 8px;
}

.sidebar-scroll {
    flex: 1;
    overflow-y: auto;
    padding: 12px 14px;
}

.sidebar-scroll::-webkit-scrollbar {
    width: 4px;
}

.sidebar-scroll::-webkit-scrollbar-thumb {
    background: #e4e4e7;
    border-radius: 4px;
}

.sidebar-group-label {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--kk-text-sub);
    padding: 14px 14px 6px;
}

.nav-link-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 16px;
    border-radius: var(--kk-radius-full);
    font-size: 13px;
    font-weight: 500;
    color: #52525b;
    text-decoration: none;
    transition: all 0.15s ease;
    margin-bottom: 2px;
}

.nav-link-item:hover {
    color: var(--kk-black);
    background-color: #f4f4f5;
}

.nav-link-item.active {
    background-color: var(--kk-black);
    color: var(--kk-white);
    font-weight: 500;
}

.nav-link-item i {
    font-size: 13.5px;
    width: 16px;
    text-align: center;
    opacity: 0.85;
}

.sidebar-profile-card {
    padding: 14px 16px;
    border-top: 1px solid var(--kk-border-light);
    display: flex;
    align-items: center;
    gap: 12px;
    background-color: var(--kk-surface);
}

.sidebar-avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background-color: var(--kk-black);
    color: var(--kk-white);
    font-size: 11px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    letter-spacing: 0.02em;
    flex-shrink: 0;
}

.sidebar-profile-name {
    font-size: 12.5px;
    font-weight: 600;
    color: var(--kk-text-main);
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sidebar-profile-role {
    font-size: 11px;
    color: var(--kk-text-muted);
    line-height: 1.2;
}

/* ==========================================================================
   Header Bar
   ========================================================================== */

.admin-main {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.admin-header {
    height: 64px;
    background-color: var(--kk-surface);
    border-bottom: 1px solid var(--kk-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 32px;
    position: sticky;
    top: 0;
    z-index: 30;
}

.header-page-title {
    font-size: 15px;
    font-weight: 600;
    color: var(--kk-text-main);
    margin: 0;
}

.header-search-container {
    flex: 1;
    max-width: 540px;
    margin: 0 24px;
    position: relative;
}

.header-search-icon {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--kk-text-sub);
    font-size: 13px;
    pointer-events: none;
}

.header-search-input {
    width: 100%;
    background-color: #f4f4f5;
    border: 1px solid transparent;
    border-radius: var(--kk-radius-full);
    padding: 8px 16px 8px 38px;
    font-size: 13px;
    color: var(--kk-text-main);
    font-family: var(--kk-font-sans);
    outline: none;
    transition: all 0.15s ease;
}

.header-search-input:focus {
    background-color: var(--kk-surface);
    border-color: #d4d4d8;
    box-shadow: 0 0 0 1px #d4d4d8;
}

.header-actions {
    display: flex;
    align-items: center;
    gap: 16px;
}

.header-bell-btn {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    border: none;
    background: transparent;
    color: #52525b;
    cursor: pointer;
    transition: background-color 0.15s ease;
}

.header-bell-btn:hover {
    background-color: #f4f4f5;
    color: var(--kk-black);
}

.header-bell-badge {
    position: absolute;
    top: 2px;
    right: 2px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background-color: #dc2626;
    color: #ffffff;
    font-size: 9.5px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
}

.header-user-badge {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 3px 10px 3px 4px;
    border-radius: var(--kk-radius-full);
    background: transparent;
    cursor: pointer;
    text-decoration: none;
}

.header-user-badge:hover {
    background-color: #f4f4f5;
}

/* ==========================================================================
   Operations Dashboard Content & Components
   ========================================================================== */

.admin-body {
    padding: 32px;
    max-width: 1600px;
    margin: 0 auto;
    width: 100%;
}

.kool-dash-header {
    margin-bottom: 24px;
}

.kool-dash-title {
    font-size: 26px;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--kk-text-main);
    margin: 0;
}

.kool-dash-subtitle {
    font-size: 13.5px;
    color: var(--kk-text-muted);
    margin: 6px 0 0 0;
}

/* KPI Cards 4-column Grid */
.kool-kpi-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-bottom: 24px;
}

@media (max-width: 1200px) {
    .kool-kpi-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 640px) {
    .kool-kpi-grid {
        grid-template-columns: 1fr;
    }
}

.kool-kpi-card {
    background-color: var(--kk-surface);
    border: 1px solid var(--kk-border);
    border-radius: 18px;
    padding: 22px 24px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 124px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.02);
}

.kool-kpi-label {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--kk-text-muted);
}

.kool-kpi-value {
    font-size: 32px;
    font-weight: 700;
    letter-spacing: -0.03em;
    color: var(--kk-text-main);
    margin: 8px 0 4px;
    line-height: 1;
}

.kool-kpi-value.alert-red {
    color: #dc2626;
}

.kool-kpi-sub {
    font-size: 12px;
    color: var(--kk-text-muted);
}

/* Two-column Content Grids */
.kool-grid-65-35 {
    display: grid;
    grid-template-columns: 65% calc(35% - 20px);
    gap: 20px;
    margin-bottom: 24px;
}

@media (max-width: 1100px) {
    .kool-grid-65-35 {
        grid-template-columns: 1fr;
    }
}

.kool-grid-50-50 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-bottom: 24px;
}

@media (max-width: 1024px) {
    .kool-grid-50-50 {
        grid-template-columns: 1fr;
    }
}

/* Kool Panel Cards */
.kool-panel {
    background-color: var(--kk-surface);
    border: 1px solid var(--kk-border);
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.02);
}

.kool-panel.kool-panel-padded,
.kool-panel-padded {
    padding: 22px 24px !important;
}

.kool-panel-header {
    padding: 18px 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid var(--kk-border-light);
    background: transparent;
}

.kool-panel-header-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

.kool-panel-title {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--kk-text-muted);
    margin: 0;
}

/* Fallback: Direct title or section title child of kool-panel */
.kool-panel > .kool-panel-title,
.kool-panel > .panel-section-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 24px;
    margin: 0;
    border-bottom: 1px solid var(--kk-border-light);
    background: transparent;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--kk-text-muted);
}

.kool-panel-link {
    font-size: 12px;
    font-weight: 600;
    color: var(--kk-text-main);
    text-decoration: underline;
    cursor: pointer;
}

.kool-panel-link:hover {
    color: var(--kk-black);
}

/* Table Design */
.kool-table-container {
    width: 100%;
    overflow-x: auto;
}

.kool-table {
    width: 100%;
    border-collapse: collapse;
    text-align: left;
}

.kool-table th {
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--kk-text-sub);
    padding: 12px 20px;
    border-bottom: 1px solid var(--kk-border-light);
    white-space: nowrap;
}

.kool-table td {
    font-size: 12.5px;
    color: #27272a;
    padding: 14px 20px;
    border-bottom: 1px solid var(--kk-border-light);
    vertical-align: middle;
    white-space: nowrap;
}

.kool-table tbody tr:hover {
    background-color: #fafafa;
}

.kool-table tbody tr:last-child td {
    border-bottom: none;
}

.code-link {
    font-weight: 600;
    color: var(--kk-text-main);
    text-decoration: underline;
}

/* Status Badges */
.badge-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--kk-radius-full);
    font-size: 11.5px;
    font-weight: 500;
    padding: 3px 12px;
    line-height: 1.4;
}

.badge-pill-neutral {
    background-color: #f4f4f5;
    color: #18181b;
}

.badge-pill-dark {
    background-color: #000000;
    color: #ffffff;
}

.badge-pill-danger {
    background-color: #dc2626;
    color: #ffffff;
}

.badge-pill-subtle {
    background-color: #f4f4f5;
    color: #71717a;
}

/* Boarding Overview 2x2 stats */
.boarding-mini-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    padding: 20px 24px 16px;
}

.boarding-mini-box {
    background-color: #f9fafb;
    border-radius: 12px;
    padding: 14px 16px;
}

.boarding-mini-label {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--kk-text-sub);
}

.boarding-mini-value {
    font-size: 24px;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--kk-text-main);
    margin-top: 4px;
}

.boarding-mini-value.red {
    color: #dc2626;
}

.boarding-bars-list {
    padding: 0 24px 20px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.boarding-bar-item {
    display: flex;
    align-items: center;
    gap: 16px;
}

.boarding-bar-code {
    font-size: 12px;
    font-weight: 600;
    color: var(--kk-text-main);
    text-decoration: underline;
    width: 80px;
}

.kool-progress-track {
    flex: 1;
    height: 6px;
    background-color: #f4f4f5;
    border-radius: var(--kk-radius-full);
    overflow: hidden;
}

.kool-progress-fill {
    height: 100%;
    background-color: var(--kk-black);
    border-radius: var(--kk-radius-full);
}

.boarding-bar-pct {
    font-size: 11.5px;
    color: var(--kk-text-muted);
    width: 36px;
    text-align: right;
}

/* Urgent Attention List */
.urgent-list {
    display: flex;
    flex-direction: column;
}

.urgent-item {
    padding: 16px 24px;
    border-bottom: 1px solid var(--kk-border-light);
    display: flex;
    gap: 14px;
    align-items: flex-start;
}

.urgent-item:last-child {
    border-bottom: none;
}

.urgent-icon {
    color: #dc2626;
    font-size: 15px;
    margin-top: 2px;
    flex-shrink: 0;
}

.urgent-title {
    font-size: 12.5px;
    font-weight: 600;
    color: var(--kk-text-main);
    margin-bottom: 2px;
}

.urgent-sub {
    font-size: 11.5px;
    color: var(--kk-text-muted);
    margin-bottom: 4px;
}

.urgent-meta {
    font-size: 11px;
    color: var(--kk-text-sub);
}

.urgent-meta a {
    color: var(--kk-text-muted);
    text-decoration: underline;
}

/* Activity List */
.activity-list {
    display: flex;
    flex-direction: column;
}

.activity-item {
    padding: 14px 24px;
    border-bottom: 1px solid var(--kk-border-light);
    display: flex;
    align-items: center;
    gap: 24px;
}

.activity-item:last-child {
    border-bottom: none;
}

.activity-time {
    font-size: 11.5px;
    color: var(--kk-text-sub);
    min-width: 60px;
}

.activity-text {
    font-size: 12.5px;
    color: var(--kk-text-muted);
}

.activity-text strong {
    color: var(--kk-text-main);
    font-weight: 600;
    margin-right: 6px;
}

/* Action Buttons & Creation Triggers */
.btn-kool-primary,
.kool-btn-black {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background-color: var(--kk-black);
    color: var(--kk-white) !important;
    border: 1px solid var(--kk-black);
    border-radius: var(--kk-radius-full);
    padding: 8px 18px;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none !important;
    cursor: pointer;
    transition: all 0.15s ease;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
    white-space: nowrap;
    line-height: 1.4;
}

.btn-kool-primary:hover,
.kool-btn-black:hover {
    background-color: #27272a;
    border-color: #27272a;
    color: var(--kk-white) !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
}

.btn-kool-primary:active,
.kool-btn-black:active {
    transform: translateY(0);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}

.btn-kool-primary i,
.kool-btn-black i {
    font-size: 12px;
    line-height: 1;
}

/* Filter Card for subpages */
.kool-filter-card {
    background-color: var(--kk-surface);
    border: 1px solid var(--kk-border);
    border-radius: 18px;
    padding: 14px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 20px;
    flex-wrap: wrap;
}

.kool-filter-input {
    background-color: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: var(--kk-radius-full);
    padding: 7px 16px;
    font-size: 12.5px;
    color: var(--kk-text-main);
    outline: none;
    font-family: var(--kk-font-sans);
}

.kool-filter-select {
    background-color: var(--kk-surface);
    border: 1px solid #e5e7eb;
    border-radius: var(--kk-radius-full);
    padding: 7px 16px;
    font-size: 12.5px;
    color: #374151;
    outline: none;
    cursor: pointer;
    font-family: var(--kk-font-sans);
}

/* ==========================================================================
   Login Page
   ========================================================================== */

.login-shell {
    min-height: 100vh;
    background-color: var(--kk-bg);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.login-logo-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 32px;
}

.login-card {
    width: 100%;
    max-width: 440px;
    background-color: var(--kk-surface);
    border: 1px solid var(--kk-border);
    border-radius: var(--kk-radius-2xl);
    padding: 38px 36px 32px;
    box-shadow: 0 4px 24px -2px rgba(0, 0, 0, 0.04);
}

.login-title {
    font-size: 22px;
    font-weight: 700;
    color: var(--kk-text-main);
    margin: 0 0 6px 0;
    letter-spacing: -0.02em;
}

.login-subtitle {
    font-size: 13px;
    color: var(--kk-text-muted);
    margin: 0 0 24px 0;
}

.login-field {
    margin-bottom: 18px;
}

.login-label {
    display: block;
    font-size: 12px;
    font-weight: 500;
    color: var(--kk-text-main);
    margin-bottom: 6px;
}

.login-input {
    width: 100%;
    background-color: #f9fafb;
    border: 1px solid #d4d4d8;
    border-radius: 12px;
    padding: 11px 16px;
    font-size: 13.5px;
    color: var(--kk-text-main);
    font-family: var(--kk-font-sans);
    outline: none;
    transition: all 0.15s ease;
}

.login-input:focus {
    background-color: #ffffff;
    border-color: #000000;
    box-shadow: 0 0 0 1px #000000;
}

.login-password-wrap {
    position: relative;
}

.login-password-wrap .login-input {
    padding-right: 42px;
}

.login-eye-btn {
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
    background: transparent;
    border: none;
    color: var(--kk-text-muted);
    cursor: pointer;
    padding: 0;
    font-size: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    transition: color 0.15s ease;
}

.login-eye-btn:hover {
    color: var(--kk-text-main, #09090b);
}

.login-options-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 12px;
    margin: 6px 0 20px;
}

.login-checkbox-label {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--kk-text-muted);
    cursor: pointer;
}

.login-forgot-link {
    color: var(--kk-text-main);
    text-decoration: underline;
    font-weight: 500;
}

.login-submit-btn {
    width: 100%;
    background-color: var(--kk-black);
    color: var(--kk-white);
    border: none;
    border-radius: var(--kk-radius-full);
    padding: 12px;
    font-size: 13.5px;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.15s ease;
}

.login-submit-btn:hover {
    background-color: #27272a;
}

.login-demo-accounts {
    margin-top: 24px;
    background-color: #f4f4f5;
    border-radius: 14px;
    padding: 16px;
    font-size: 11.5px;
    color: var(--kk-text-muted);
    line-height: 1.6;
}

.login-demo-title {
    font-weight: 600;
    color: #18181b;
    margin-bottom: 6px;
}

.login-alert-error {
    background-color: #fee2e2;
    border: 1px solid #fca5a5;
    color: #b91c1c;
    padding: 10px 14px;
    border-radius: 10px;
    font-size: 12px;
    margin-bottom: 16px;
}

.login-alert-success {
    background-color: #ecfdf5;
    border: 1px solid #a7f3d0;
    color: #047857;
    padding: 10px 14px;
    border-radius: 10px;
    font-size: 12px;
    margin-bottom: 16px;
}

.login-error-text {
    color: #dc2626;
    font-size: 11.5px;
    margin: 4px 0 0 0;
}

.login-checkbox {
    border-radius: 4px;
    accent-color: #000000;
}

.demo-account-chip {
    cursor: pointer;
    display: inline-block;
    color: var(--kk-text-main);
    text-decoration: underline;
    margin-right: 4px;
}

.demo-account-chip:hover {
    color: #000000;
    font-weight: 600;
}

/* ==========================================================================
   Subpage Cards, Tables & Form Controls
   ========================================================================== */

.app-card,
.kk-dashboard-card {
    background-color: var(--kk-surface);
    border: 1px solid var(--kk-border);
    border-radius: 18px;
    padding: 20px 24px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.02);
    margin-bottom: 16px;
    position: relative;
}

.app-card.p-0,
.kk-dashboard-card.p-0,
.kool-panel.p-0 {
    padding: 0 !important;
    overflow: hidden;
}

/* Consistent Card Headers across app-card, kk-dashboard-card */
.app-card > .border-b,
.kk-dashboard-card > .border-b,
.app-card > .p-4.border-b,
.kk-dashboard-card > .p-4.border-b {
    padding: 18px 24px !important;
    border-bottom: 1px solid var(--kk-border-light) !important;
}

.data-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    padding: 14px 20px;
    border-radius: 18px;
    background-color: var(--kk-surface);
    border: 1px solid var(--kk-border);
}

.btn-primary {
    background-color: var(--kk-black) !important;
    border-color: var(--kk-black) !important;
    color: var(--kk-white) !important;
    border-radius: var(--kk-radius-full) !important;
    padding: 8px 20px !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    text-decoration: none !important;
}

.btn-primary:hover {
    background-color: #27272a !important;
}

.btn-secondary {
    background-color: #f4f4f5 !important;
    border-color: #e5e7eb !important;
    color: #18181b !important;
    border-radius: var(--kk-radius-full) !important;
    padding: 8px 18px !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    text-decoration: none !important;
}

.form-control,
.form-select {
    background-color: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 8px 14px;
    font-size: 13px;
    color: var(--kk-text-main);
    font-family: var(--kk-font-sans);
}

.form-control:focus,
.form-select:focus {
    border-color: var(--kk-black);
    box-shadow: 0 0 0 1px var(--kk-black);
    outline: none;
}

/* ==========================================================================

   Kool Admin Filter Toolbar & Controls
   ========================================================================== */
.kool-filter-bar {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 20px;
    border-bottom: 1px solid #f4f4f5;
    background-color: #ffffff;
    flex-wrap: wrap;
}

.kool-filter-group {
    display: inline-flex;
    align-items: center;
}

.kool-filter-input {
    height: 38px;
    border-radius: var(--kk-radius-full);
    border: 1px solid #e4e4e7;
    background-color: #ffffff;
    padding: 0 16px 0 36px;
    font-size: 13px;
    font-family: inherit;
    color: #09090b;
    outline: none;
    transition: all 0.15s ease;
    width: 100%;
}

.kool-filter-input:focus {
    border-color: #18181b;
    box-shadow: 0 0 0 1px #18181b;
}

.kool-filter-select {
    height: 38px;
    border-radius: var(--kk-radius-full);
    border: 1px solid #e4e4e7;
    background-color: #ffffff;
    padding: 0 32px 0 16px;
    font-size: 13px;
    font-weight: 500;
    font-family: inherit;
    color: #09090b;
    outline: none;
    cursor: pointer;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='2' stroke='%2371717a'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M19.5 8.25l-7.5 7.5-7.5-7.5'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 14px 14px;
    transition: all 0.15s ease;
}

.kool-filter-select:focus {
    border-color: #18181b;
}

/* ==========================================================================
   Kool Admin Global Utility Classes (Zero Inline Styles)
   ========================================================================== */

.admin-page-container {
    max-width: 1600px;
    margin: 0 auto;
    width: 100%;
}

.admin-page-header-row,
.admin-page-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 24px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--border-color, #e4e4e7);
    gap: 16px;
    flex-wrap: wrap;
}

@media (min-width: 768px) {
    .admin-page-header {
        align-items: center;
    }
}

.admin-page-header .dashboard-title,
.dashboard-title,
.admin-page-title {
    font-size: 26px;
    font-weight: 700;
    color: #09090b;
    margin: 0 0 4px 0;
    letter-spacing: -0.025em;
    line-height: 1.25;
}

.admin-page-header .dashboard-subtitle,
.dashboard-subtitle,
.admin-page-subtitle {
    font-size: 13px;
    color: #71717a;
    margin: 0;
    line-height: 1.45;
}

.page-header-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.admin-btn-pill-dark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 8px 18px;
    background-color: #09090b;
    color: #ffffff;
    font-size: 12px;
    font-weight: 600;
    border-radius: 9999px;
    border: none;
    cursor: pointer;
    text-decoration: none;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
    transition: background-color 0.15s ease;
}

.admin-btn-pill-dark:hover {
    background-color: #27272a;
    color: #ffffff;
}

.admin-btn-pill-neutral {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 8px 18px;
    background-color: #f4f4f5;
    color: #18181b;
    font-size: 12px;
    font-weight: 500;
    border-radius: 9999px;
    border: 1px solid #e4e4e7;
    cursor: pointer;
    text-decoration: none;
    transition: all 0.15s ease;
}

.admin-btn-pill-neutral:hover {
    background-color: #e4e4e7;
}

/* Filter Bar & Inputs */
.admin-filter-bar {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 20px;
    flex-wrap: wrap;
}

.kool-panel > .admin-filter-bar,
.app-card > .admin-filter-bar,
.kk-dashboard-card > .admin-filter-bar {
    padding: 16px 24px;
    border-bottom: 1px solid var(--kk-border-light);
    margin-bottom: 0;
    width: 100%;
}

.admin-search-wrapper,
.kool-search-wrap {
    position: relative;
    width: 280px;
    max-width: 100%;
    display: flex;
    align-items: center;
}

.kool-panel-header-actions .admin-search-wrapper,
.kool-panel-header-actions .kool-search-wrap {
    width: 260px;
}

.admin-search-icon,
.kool-search-icon {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 11.5px;
    color: #a1a1aa;
    pointer-events: none;
    line-height: 1;
}

.admin-search-input,
.kool-search-input {
    width: 100%;
    height: 38px;
    padding: 8px 16px 8px 36px;
    font-size: 12.5px;
    border-radius: 9999px;
    border: 1px solid #e4e4e7;
    background-color: #ffffff;
    color: #09090b;
    outline: none;
    font-family: inherit;
    transition: all 0.15s ease;
    line-height: 1.4;
}

.admin-search-input:focus,
.kool-search-input:focus {
    border-color: #09090b;
    box-shadow: 0 0 0 1px #09090b;
    background-color: #ffffff;
}

.admin-search-input::placeholder,
.kool-search-input::placeholder {
    color: #a1a1aa;
    font-size: 12px;
}

.admin-select-pill {
    padding: 8px 32px 8px 14px;
    font-size: 12px;
    font-weight: 500;
    border-radius: 9999px;
    border: 1px solid #e4e4e7;
    background-color: #ffffff;
    color: #09090b;
    outline: none;
    cursor: pointer;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='2' stroke='%2371717a'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M19.5 8.25l-7.5 7.5-7.5-7.5'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 12px 12px;
}

.admin-select-pill:focus {
    border-color: #09090b;
}

/* Panels */
.panel-section-title {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.05em;
    color: #71717a;
    text-transform: uppercase;
    margin-bottom: 16px;
}

/* Tables */
.admin-table-wrap {
    width: 100%;
    overflow-x: auto;
}

.admin-table {
    width: 100%;
    border-collapse: collapse;
    text-align: left;
    font-size: 12px;
}

.admin-table th {
    padding: 12px 14px;
    font-size: 11px;
    font-weight: 600;
    color: #71717a;
    text-transform: uppercase;
    border-bottom: 1px solid #f4f4f5;
    white-space: nowrap;
}

.admin-table td {
    padding: 14px 14px;
    border-bottom: 1px solid #f4f4f5;
    color: #27272a;
    vertical-align: middle;
}

.admin-table tr:last-child td {
    border-bottom: none;
}

.admin-table tbody tr:hover td {
    background-color: #fafafa;
}

.td-name-bold {
    font-weight: 600;
    color: #09090b;
    font-size: 13px;
}

.td-subtext {
    font-size: 11px;
    color: #71717a;
    margin-top: 2px;
}

.td-secondary {
    color: #3f3f46;
    font-size: 12px;
}

.td-muted {
    color: #71717a;
    font-size: 12px;
    white-space: nowrap;
}

.td-actions {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

/* Action Buttons inside tables */
.btn-pill-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 4px 12px;
    font-size: 11px;
    font-weight: 500;
    border-radius: 9999px;
    background-color: #f4f4f5;
    color: #18181b;
    border: none;
    cursor: pointer;
    text-decoration: none;
    transition: background-color 0.15s ease;
}

.btn-pill-action:hover {
    background-color: #e4e4e7;
    color: #18181b;
}

.btn-pill-danger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 4px 12px;
    font-size: 11px;
    font-weight: 500;
    border-radius: 9999px;
    background-color: #dc2626;
    color: #ffffff;
    border: none;
    cursor: pointer;
    text-decoration: none;
    transition: background-color 0.15s ease;
}

.btn-pill-danger:hover {
    background-color: #b91c1c;
    color: #ffffff;
}

.btn-pill-dark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 4px 12px;
    font-size: 11px;
    font-weight: 500;
    border-radius: 9999px;
    background-color: #09090b;
    color: #ffffff;
    border: none;
    cursor: pointer;
    text-decoration: none;
    transition: background-color 0.15s ease;
}

.btn-pill-dark:hover {
    background-color: #27272a;
    color: #ffffff;
}

/* Key-Value List */
.kool-kv-list {
    display: flex;
    flex-direction: column;
}

.kool-kv-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 12px;
    border-bottom: 1px solid #f4f4f5;
    font-size: 13px;
}

.kool-kv-item:last-child {
    border-bottom: none;
}

.kool-kv-item-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding: 14px 12px;
    border-bottom: 1px solid #f4f4f5;
    font-size: 13px;
}

.kool-kv-item-top:last-child {
    border-bottom: none;
}

.kool-kv-label {
    color: #71717a;
    font-weight: 400;
}

.kool-kv-val {
    font-weight: 500;
    color: #09090b;
}

.kool-kv-val-long {
    font-weight: 400;
    color: #09090b;
    text-align: right;
    line-height: 1.6;
    max-width: 900px;
}

/* Multi-column layouts */
.kool-stack-24 {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.kool-card-grid-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}

@media (max-width: 960px) {
    .kool-card-grid-2 {
        grid-template-columns: 1fr;
    }
}

.kool-timeline {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.kool-timeline-item {
    display: flex;
    gap: 14px;
    align-items: flex-start;
}

.kool-timeline-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-color: #09090b;
    margin-top: 6px;
    flex-shrink: 0;
}

.kool-timeline-content {
    flex: 1;
}

.kool-timeline-title {
    font-size: 13px;
    font-weight: 600;
    color: #09090b;
}

.kool-timeline-time {
    font-size: 11px;
    color: #71717a;
    margin-top: 2px;
}

.kool-empty-cell {
    padding: 40px;
    text-align: center;
    color: #71717a;
    font-size: 13px;
}

/* Kool Care Layout */
.kc-split-grid {
    display: grid;
    grid-template-columns: 1.8fr 1fr;
    gap: 48px;
    align-items: start;
}

@media (max-width: 960px) {
    .kc-split-grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }
}

.kc-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 4px;
    border-bottom: 1px solid #fafafa;
}

.kc-row:last-child {
    border-bottom: none;
}

.kc-label {
    font-size: 12px;
    color: #71717a;
    font-weight: 400;
}

.kc-val {
    font-size: 12px;
    color: #18181b;
    font-weight: 500;
}

.kc-val-mono {
    font-size: 12px;
    color: #18181b;
    font-weight: 600;
    font-family: var(--kk-font-mono);
}

.kc-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 24px;
    flex-wrap: wrap;
}

/* Sidebar & Header Helpers */
.sidebar-brand-link {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-decoration: none;
}

.sidebar-profile-info {
    flex: 1;
    min-width: 0;
}

.sidebar-logout-btn {
    background: transparent;
    border: none;
    color: #71717a;
    cursor: pointer;
    padding: 6px;
    border-radius: 6px;
    transition: color 0.15s ease;
}

.sidebar-logout-btn:hover {
    color: #dc2626;
}

.sidebar-avatar-sm {
    width: 28px;
    height: 28px;
    font-size: 10px;
    border-radius: 50%;
    background-color: var(--kk-black);
    color: var(--kk-white);
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.header-user-info {
    text-align: left;
}

.header-user-name {
    font-size: 12px;
    font-weight: 600;
    color: #09090b;
    line-height: 1.1;
}

.header-user-role {
    font-size: 10px;
    color: #71717a;
    line-height: 1.1;
}

/* Column Width Helpers */
.w-col-5 {
    width: 5%;
}

.w-col-6 {
    width: 6%;
}

.w-col-7 {
    width: 7%;
}

.w-col-8 {
    width: 8%;
}

.w-col-9 {
    width: 9%;
}

.w-col-10 {
    width: 10%;
}

.w-col-12 {
    width: 12%;
}

.w-col-13 {
    width: 13%;
}

.w-col-14 {
    width: 14%;
}

.w-col-15 {
    width: 15%;
}

.w-col-16 {
    width: 16%;
}

.w-col-17 {
    width: 17%;
}

.w-col-18 {
    width: 18%;
}

.w-col-20 {
    width: 20%;
}

.w-col-22 {
    width: 22%;
}

.w-col-25 {
    width: 25%;
}

.w-col-28 {
    width: 28%;
}

.w-col-30 {
    width: 30%;
}

.w-col-35 {
    width: 35%;
}

.w-col-40 {
    width: 40%;
}

.w-col-45 {
    width: 45%;
}

.w-col-50 {
    width: 50%;
}

.w-col-action-min {
    min-width: 220px;
}

/* Modals */
.modal-backdrop-semi {
    background: rgba(0, 0, 0, 0.5);
}

/* Stat Cards & Grids */
.kool-stat-grid-5 {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 16px;
    margin-bottom: 16px;
}

.kool-stat-grid-4 {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-bottom: 24px;
}

@media (max-width: 1024px) {

    .kool-stat-grid-5,
    .kool-stat-grid-4 {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 640px) {

    .kool-stat-grid-5,
    .kool-stat-grid-4 {
        grid-template-columns: 1fr;
    }
}

.kool-stat-card {
    padding: 20px 24px;
    border-radius: 16px;
    background: #ffffff;
    border: 1px solid #e4e4e7;
}

.kool-stat-label {
    font-size: 11px;
    font-weight: 700;
    color: #71717a;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 8px;
}

.kool-stat-value {
    font-size: 32px;
    font-weight: 700;
    color: #09090b;
    letter-spacing: -0.03em;
    line-height: 1;
}

.kool-stat-value-danger {
    font-size: 32px;
    font-weight: 700;
    color: #dc2626;
    letter-spacing: -0.03em;
    line-height: 1;
}

.kool-stat-subtext {
    font-size: 12px;
    color: #71717a;
    line-height: 1.35;
    margin-top: 6px;
    font-weight: 400;
}

.kool-stat-value-mono {
    font-size: 22px;
    font-weight: 700;
    color: #09090b;
    font-family: var(--kk-font-mono, monospace);
    letter-spacing: -0.02em;
    line-height: 1.45;
}

/* Universal Modern Badges */
.badge,
.badge-pill {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    border-radius: var(--kk-radius-full, 9999px);
    font-size: 11px;
    font-weight: 600;
    line-height: 1.35;
    padding: 3px 10px;
    white-space: nowrap;
    text-transform: none;
    letter-spacing: 0.01em;
}

.badge-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    display: inline-block;
    flex-shrink: 0;
}

/* Success / Active */
.badge-success,
.badge-pill-success {
    background-color: #dcfce7 !important;
    color: #15803d !important;
    border: 1px solid #bbf7d0;
}
.badge-success .badge-dot,
.badge-pill-success .badge-dot {
    background-color: #16a34a;
}

/* Warning / Pending */
.badge-warning,
.badge-pill-warning {
    background-color: #fef9c3 !important;
    color: #a16207 !important;
    border: 1px solid #fef08a;
}
.badge-warning .badge-dot,
.badge-pill-warning .badge-dot {
    background-color: #eab308;
}

/* Danger / Cancelled */
.badge-danger,
.badge-pill-danger {
    background-color: #fee2e2 !important;
    color: #b91c1c !important;
    border: 1px solid #fecaca;
}
.badge-danger .badge-dot,
.badge-pill-danger .badge-dot {
    background-color: #ef4444;
}

/* Neutral / Secondary / Subtle / Inactive */
.badge-neutral,
.badge-pill-neutral,
.badge-pill-secondary,
.badge-pill-subtle,
.badge-inactive {
    background-color: #f4f4f5 !important;
    color: #52525b !important;
    border: 1px solid #e4e4e7;
}
.badge-neutral .badge-dot,
.badge-pill-neutral .badge-dot,
.badge-inactive .badge-dot {
    background-color: #71717a;
}

/* Info */
.badge-info,
.badge-pill-info {
    background-color: #e0f2fe !important;
    color: #0369a1 !important;
    border: 1px solid #bae6fd;
}
.badge-info .badge-dot,
.badge-pill-info .badge-dot {
    background-color: #0284c7;
}

/* Primary / Dark */
.badge-primary,
.badge-pill-dark {
    background-color: #09090b !important;
    color: #ffffff !important;
    border: 1px solid #09090b;
}
.badge-primary .badge-dot,
.badge-pill-dark .badge-dot {
    background-color: #ffffff;
}

/* App KPI Card Tokens */
.app-kpi-label {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--kk-text-muted, #71717a);
    margin-bottom: 6px;
    line-height: 1.3;
}

.app-kpi-value {
    font-size: 26px;
    font-weight: 700;
    color: var(--kk-text-main, #09090b);
    line-height: 1.15;
    font-family: var(--kk-font-sans);
    margin-bottom: 4px;
}

.app-kpi-subtext {
    font-size: 12px;
    color: var(--kk-text-muted, #71717a);
    line-height: 1.35;
}

.admin-filter-count {
    margin-left: auto;
    font-size: 12.5px;
    font-weight: 500;
    color: var(--kk-text-muted, #71717a);
    white-space: nowrap;
}

/* Modern Tables */
.admin-table-row {
    border-bottom: 1px solid #fafafa;
}

.admin-table-row-head {
    border-bottom: 1px solid #f4f4f5;
}

.th-cell {
    font-size: 11px;
    font-weight: 600;
    color: #71717a;
    letter-spacing: 0.05em;
    padding-bottom: 12px;
}

.th-cell-end {
    font-size: 11px;
    font-weight: 600;
    color: #71717a;
    letter-spacing: 0.05em;
    padding-bottom: 12px;
    text-align: right;
}

.td-cell-code {
    padding: 16px 8px 16px 0;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 700;
    font-size: 13px;
    color: #09090b;
}

.td-cell-bold {
    padding: 16px 8px;
    font-size: 13px;
    font-weight: 600;
    color: #09090b;
}

.td-cell-text {
    padding: 16px 8px;
    font-size: 13px;
    color: #18181b;
}

.td-cell-muted {
    padding: 16px 8px;
    font-size: 13px;
    color: #71717a;
}

.td-cell-actions {
    padding: 16px 0 16px 8px;
    text-align: right;
    white-space: nowrap;
}

.form-inline-clean {
    margin: 0;
    display: inline-block;
}

.actions-group-end {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
}

/* Notification Operations Grid Helpers */
.notif-kpi-icon-blue {
    background: rgba(47, 111, 237, 0.12);
    width: 44px;
    height: 44px;
}

.notif-kpi-icon-red {
    background: rgba(244, 63, 94, 0.12);
    width: 44px;
    height: 44px;
}

.notif-kpi-icon-amber {
    background: rgba(245, 158, 11, 0.12);
    width: 44px;
    height: 44px;
}

.notif-kpi-icon-sky {
    background: rgba(14, 165, 233, 0.12);
    width: 44px;
    height: 44px;
}

.notif-status-filter-select {
    width: 130px;
}

.notif-search-box {
    min-width: 220px;
    position: relative;
}

.notif-search-icon {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
}

.notif-table-w-status {
    width: 40px;
}

.notif-table-w-sev {
    width: 90px;
}

.notif-table-w-cat {
    width: 100px;
}

.notif-table-w-time {
    width: 140px;
}

.notif-table-w-act {
    width: 170px;
}

.notif-status-dot-dim {
    width: 8px;
    height: 8px;
}

.notif-avatar-circle {
    width: 28px;
    height: 28px;
}

.bg-tint-primary {
    background: rgba(47, 111, 237, 0.12);
}

.bg-tint-rose {
    background: rgba(244, 63, 94, 0.15);
}

.bg-tint-amber {
    background: rgba(245, 158, 11, 0.15);
}

.bg-tint-sky {
    background: rgba(14, 165, 233, 0.15);
}

.bg-tint-emerald {
    background: rgba(16, 185, 129, 0.15);
}

.bg-tint-slate {
    background: rgba(148, 163, 184, 0.15);
}

.notif-desc-clamp {
    max-width: 540px;
}

.action-link-underline {
    color: #09090b;
    font-size: 13px;
    font-weight: 500;
    text-decoration: underline;
    cursor: pointer;
}

.kool-empty-icon {
    font-size: 32px;
    margin-bottom: 8px;
    color: #d4d4d8;
}

.kool-empty-title {
    font-weight: 600;
    color: #18181b;
}

.kool-empty-subtext {
    font-size: 12px;
    margin-top: 4px;
    color: #71717a;
}

/* Callout & Information Panels */
.panel-callout-box {
    background-color: #f4f5f7;
    border-radius: 12px;
    padding: 18px 20px;
    font-size: 13px;
    color: #71717a;
    line-height: 1.5;
}

/* Timeline Components */
.timeline-stem {
    border-left: 2px solid var(--bs-border-color, #e4e4e7);
}

.timeline-step-item {
    margin-left: -1px;
}

.timeline-marker {
    width: 12px;
    height: 12px;
    left: -7px;
    top: 3px;
    position: absolute;
    border-radius: 50%;
}

.timeline-marker-active {
    background: #09090b !important;
}

.timeline-marker-inactive {
    background: #ffffff !important;
    border: 2px solid #e4e4e7;
}

/* Typography Helpers */
.text-9px {
    font-size: 9px !important;
}

.text-10px {
    font-size: 10px !important;
}

.text-11px {
    font-size: 11px !important;
}

.text-12px {
    font-size: 12px !important;
}

.text-13px {
    font-size: 13px !important;
}

/* Micro Avatars & Badges */
.avatar-32 {
    width: 32px;
    height: 32px;
}

.step-badge-num {
    width: 26px;
    height: 26px;
    font-size: 11px;
}

.badge-inactive {
    background: #e4e4e7;
    color: #3f3f46;
    border-radius: 9999px;
    font-weight: 600;
    padding: 4px 12px;
    font-size: 11px;
    display: inline-block;
}

.btn-pill-action-white {
    border: 1px solid #e4e4e7;
    background: #ffffff;
    color: #18181b;
}

.btn-pill-action-white:hover {
    background: #f4f4f5;
    color: #000000;
}

/* Layout & Table Helpers */
.table-fixed {
    table-layout: fixed !important;
}

.letter-spacing-5 {
    letter-spacing: 0.05em;
}

.cell-multiline-zinc {
    font-size: 12px;
    line-height: 1.4;
    word-break: break-word;
    overflow-wrap: break-word;
}

.flex-col-gap-20 {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.flex-1-min-0 {
    flex: 1;
    min-width: 0;
}

.panel-empty-padded {
    padding: 24px;
    text-align: center;
    color: var(--kk-text-muted, #71717a);
    font-size: 12px;
}

.td-empty-padded-32 {
    text-align: center;
    color: var(--kk-text-muted, #71717a);
    padding: 32px;
}

.td-empty-padded-24 {
    text-align: center;
    color: var(--kk-text-muted, #71717a);
    padding: 24px;
}

.search-result-dropdown {
    max-height: 180px;
    overflow-y: auto;
}

.search-result-item {
    cursor: pointer;
}

.input-search-icon-left {
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 11px;
}

.cursor-pointer {
    cursor: pointer !important;
}

/* Dynamic progress percentages */
.progress-pct-0 {
    width: 0%;
}

.progress-pct-1 {
    width: 1%;
}

.progress-pct-2 {
    width: 2%;
}

.progress-pct-3 {
    width: 3%;
}

.progress-pct-4 {
    width: 4%;
}

.progress-pct-5 {
    width: 5%;
}

.progress-pct-6 {
    width: 6%;
}

.progress-pct-7 {
    width: 7%;
}

.progress-pct-8 {
    width: 8%;
}

.progress-pct-9 {
    width: 9%;
}

.progress-pct-10 {
    width: 10%;
}

.progress-pct-11 {
    width: 11%;
}

.progress-pct-12 {
    width: 12%;
}

.progress-pct-13 {
    width: 13%;
}

.progress-pct-14 {
    width: 14%;
}

.progress-pct-15 {
    width: 15%;
}

.progress-pct-16 {
    width: 16%;
}

.progress-pct-17 {
    width: 17%;
}

.progress-pct-18 {
    width: 18%;
}

.progress-pct-19 {
    width: 19%;
}

.progress-pct-20 {
    width: 20%;
}

.progress-pct-21 {
    width: 21%;
}

.progress-pct-22 {
    width: 22%;
}

.progress-pct-23 {
    width: 23%;
}

.progress-pct-24 {
    width: 24%;
}

.progress-pct-25 {
    width: 25%;
}

.progress-pct-26 {
    width: 26%;
}

.progress-pct-27 {
    width: 27%;
}

.progress-pct-28 {
    width: 28%;
}

.progress-pct-29 {
    width: 29%;
}

.progress-pct-30 {
    width: 30%;
}

.progress-pct-31 {
    width: 31%;
}

.progress-pct-32 {
    width: 32%;
}

.progress-pct-33 {
    width: 33%;
}

.progress-pct-34 {
    width: 34%;
}

.progress-pct-35 {
    width: 35%;
}

.progress-pct-36 {
    width: 36%;
}

.progress-pct-37 {
    width: 37%;
}

.progress-pct-38 {
    width: 38%;
}

.progress-pct-39 {
    width: 39%;
}

.progress-pct-40 {
    width: 40%;
}

.progress-pct-41 {
    width: 41%;
}

.progress-pct-42 {
    width: 42%;
}

.progress-pct-43 {
    width: 43%;
}

.progress-pct-44 {
    width: 44%;
}

.progress-pct-45 {
    width: 45%;
}

.progress-pct-46 {
    width: 46%;
}

.progress-pct-47 {
    width: 47%;
}

.progress-pct-48 {
    width: 48%;
}

.progress-pct-49 {
    width: 49%;
}

.progress-pct-50 {
    width: 50%;
}

.progress-pct-51 {
    width: 51%;
}

.progress-pct-52 {
    width: 52%;
}

.progress-pct-53 {
    width: 53%;
}

.progress-pct-54 {
    width: 54%;
}

.progress-pct-55 {
    width: 55%;
}

.progress-pct-56 {
    width: 56%;
}

.progress-pct-57 {
    width: 57%;
}

.progress-pct-58 {
    width: 58%;
}

.progress-pct-59 {
    width: 59%;
}

.progress-pct-60 {
    width: 60%;
}

.progress-pct-61 {
    width: 61%;
}

.progress-pct-62 {
    width: 62%;
}

.progress-pct-63 {
    width: 63%;
}

.progress-pct-64 {
    width: 64%;
}

.progress-pct-65 {
    width: 65%;
}

.progress-pct-66 {
    width: 66%;
}

.progress-pct-67 {
    width: 67%;
}

.progress-pct-68 {
    width: 68%;
}

.progress-pct-69 {
    width: 69%;
}

.progress-pct-70 {
    width: 70%;
}

.progress-pct-71 {
    width: 71%;
}

.progress-pct-72 {
    width: 72%;
}

.progress-pct-73 {
    width: 73%;
}

.progress-pct-74 {
    width: 74%;
}

.progress-pct-75 {
    width: 75%;
}

.progress-pct-76 {
    width: 76%;
}

.progress-pct-77 {
    width: 77%;
}

.progress-pct-78 {
    width: 78%;
}

.progress-pct-79 {
    width: 79%;
}

.progress-pct-80 {
    width: 80%;
}

.progress-pct-81 {
    width: 81%;
}

.progress-pct-82 {
    width: 82%;
}

.progress-pct-83 {
    width: 83%;
}

.progress-pct-84 {
    width: 84%;
}

.progress-pct-85 {
    width: 85%;
}

.progress-pct-86 {
    width: 86%;
}

.progress-pct-87 {
    width: 87%;
}

.progress-pct-88 {
    width: 88%;
}

.progress-pct-89 {
    width: 89%;
}

.progress-pct-90 {
    width: 90%;
}

.progress-pct-91 {
    width: 91%;
}

.progress-pct-92 {
    width: 92%;
}

.progress-pct-93 {
    width: 93%;
}

.progress-pct-94 {
    width: 94%;
}

.progress-pct-95 {
    width: 95%;
}

.progress-pct-96 {
    width: 96%;
}

.progress-pct-97 {
    width: 97%;
}

.progress-pct-98 {
    width: 98%;
}

.progress-pct-99 {
    width: 99%;
}

.progress-pct-100 {
    width: 100%;
}

/* Broadcast Manager Helpers */
.broadcast-banner {
    background: #ffffff !important;
    border: 1px solid #e4e4e7 !important;
    border-radius: 16px !important;
    padding: 20px 24px !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.02) !important;
}

.broadcast-banner-icon {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: #09090b;
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    flex-shrink: 0;
}

.broadcast-stat-pill {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 7px 13px;
    background: #f4f4f5;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    transition: all 0.15s ease;
}

.broadcast-stat-pill-icon {
    font-size: 13px;
    color: #71717a;
    display: flex;
    align-items: center;
    justify-content: center;
}

.broadcast-stat-pill-label {
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #71717a;
    line-height: 1.2;
}

.broadcast-stat-pill-val {
    font-size: 13px;
    font-weight: 700;
    font-family: var(--kk-font-mono, monospace);
    color: #09090b;
    line-height: 1.2;
    margin-top: 1px;
}

.text-1-1rem {
    font-size: 1.1rem !important;
}

.uppercase-tracking-4 {
    text-transform: uppercase;
    letter-spacing: .04em;
}

.icon-input-clear {
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    text-decoration: none;
    position: absolute;
}

.icon-56-subtle {
    width: 56px;
    height: 56px;
    background: var(--app-surface-subtle, #f8fafc);
    color: var(--app-text-muted, #94a3b8);
}

/* Broadcast Composer & Target Audience Cards (Monochrome High-Contrast) */
.audience-option-card {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 11px 14px;
    background: #ffffff;
    border: 1px solid #e4e4e7;
    border-radius: 10px;
    cursor: pointer;
    transition: all 0.15s ease-in-out;
    position: relative;
    user-select: none;
}

.audience-option-card:hover {
    background: #fbfbfb;
    border-color: #d4d4d8;
}

.audience-option-card.active {
    background: #ffffff !important;
    border-color: #09090b !important;
    box-shadow: 0 0 0 1px #09090b, 0 1px 3px rgba(0, 0, 0, 0.04);
}

.audience-radio-circle {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 1.5px solid #d4d4d8;
    background: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all 0.15s ease;
}

.audience-option-card.active .audience-radio-circle {
    border-color: #09090b;
    background: #09090b;
}

.audience-radio-inner-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #ffffff;
    display: block;
}

.audience-icon-box {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: #f4f4f5;
    color: #3f3f46;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    flex-shrink: 0;
    transition: all 0.15s ease;
}

.audience-option-card.active .audience-icon-box {
    background: #09090b;
    color: #ffffff;
}

.audience-info {
    flex-grow: 1;
    min-width: 0;
}

.audience-title {
    font-size: 13px;
    font-weight: 600;
    color: #09090b;
    margin-bottom: 1px;
    line-height: 1.25;
}

.audience-subtitle {
    font-size: 11px;
    color: #71717a;
    line-height: 1.35;
}

/* Quick Announcement Presets */
.btn-quick-template {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    font-size: 11.5px;
    font-weight: 500;
    color: #3f3f46;
    background: #ffffff;
    border: 1px solid #e4e4e7;
    border-radius: 9999px;
    cursor: pointer;
    transition: all 0.15s ease;
    text-decoration: none;
    line-height: 1.2;
}

.btn-quick-template i {
    font-size: 11px;
    color: #71717a;
    transition: color 0.15s ease;
}

.btn-quick-template:hover {
    background: #09090b;
    border-color: #09090b;
    color: #ffffff;
}

.btn-quick-template:hover i {
    color: #ffffff;
}

/* Form Controls in Compose Card */
.kool-form-input,
.kool-form-textarea {
    width: 100%;
    padding: 9px 13px;
    font-size: 13px;
    color: #09090b;
    background-color: #ffffff;
    border: 1px solid #e4e4e7;
    border-radius: 8px;
    font-family: inherit;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.kool-form-input:focus,
.kool-form-textarea:focus {
    border-color: #09090b;
    box-shadow: 0 0 0 1px #09090b;
    outline: none;
}

.kool-form-input::placeholder,
.kool-form-textarea::placeholder {
    color: #a1a1aa;
    font-size: 12.5px;
}

.kool-form-textarea {
    min-height: 96px;
    resize: vertical;
    line-height: 1.5;
}

.lh-1-5 {
    line-height: 1.5 !important;
}

/* Berth Seat Grid & Cards */
.berth-grid-6 {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 12px;
}

.berth-seat-box {
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    padding: 14px 10px;
    background-color: #ffffff;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 68px;
}

.berth-seat-box.blocked {
    border-color: #fca5a5;
    background-color: #fee2e2;
}

.berth-seat-code {
    font-size: 13px;
    font-weight: 700;
    color: #09090b;
    font-family: 'JetBrains Mono', monospace;
}

.berth-seat-box.blocked .berth-seat-code {
    color: #dc2626;
}

.berth-seat-sub {
    font-size: 11px;
    color: #a1a1aa;
    margin-top: 4px;
}

.berth-seat-box.blocked .berth-seat-sub {
    color: #dc2626;
}

.row-selected-dim {
    background-color: #fafafa;
}

.crew-name-link {
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
}

/* Journey Assigner Helpers */
.modal-backdrop-custom {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    z-index: 50;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
}

.modal-card-custom {
    background: #ffffff;
    border-radius: 20px;
    width: 100%;
    max-width: 480px;
    padding: 28px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

.btn-close-clean {
    background: none;
    border: none;
    font-size: 16px;
    color: var(--kk-text-sub, #71717a);
    cursor: pointer;
}

.form-label-clean {
    display: block;
    font-size: 12px;
    font-weight: 600;
    color: var(--kk-text-main, #09090b);
    margin-bottom: 6px;
}

.form-control-full-rounded {
    width: 100%;
    border-radius: 10px !important;
}

.journey-drawer-row {
    background-color: #fafafa;
    padding: 20px 24px;
    border-bottom: 1px solid var(--kk-border, #e4e4e7);
}

.journey-drawer-body {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
}

.drawer-section-coach {
    flex: 1;
    min-width: 240px;
}

.drawer-section-crew {
    flex: 1;
    min-width: 260px;
}

.drawer-section-status {
    flex: 1;
    min-width: 240px;
}

.drawer-title-muted {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--kk-text-muted, #71717a);
    margin-bottom: 8px;
}

.drawer-actions-row {
    display: flex;
    gap: 8px;
}

.btn-link-clean {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
}

.btn-link-danger {
    background: transparent;
    border: none;
    color: #dc2626;
    font-size: 12px;
    cursor: pointer;
    text-decoration: underline;
}

.btn-assign-black {
    padding: 7px 16px;
    font-size: 12px;
}

.w-100-px {
    width: 100px !important;
}

.td-empty-padded-40 {
    text-align: center;
    color: var(--kk-text-muted, #71717a);
    padding: 40px;
}

.w-min-220 {
    min-width: 220px;
}

.input-search-pl36 {
    padding-left: 36px;
    width: 100%;
    min-width: 200px;
}

/* Boarding & Layout Helpers */
.kool-panel-flush {
    padding: 0 !important;
    overflow: hidden;
}

.kool-panel-padded {
    padding: 20px 24px;
    border-radius: 16px;
}

.kool-panel-header-title {
    padding: 16px 20px;
    border-bottom: 1px solid #f4f4f5;
    font-size: 11px;
    font-weight: 700;
    color: #71717a;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.td-cell-danger {
    padding: 16px 8px;
    font-size: 13px;
    font-weight: 600;
    color: #dc2626;
}

.td-progress-col {
    min-width: 140px;
}

.progress-bar-wrap {
    display: flex;
    align-items: center;
    gap: 10px;
}

.progress-track {
    flex: 1;
    height: 6px;
    background-color: #f4f4f5;
    border-radius: 9999px;
    overflow: hidden;
}

.progress-fill {
    height: 100%;
    background-color: #09090b;
    border-radius: 9999px;
}

.progress-label {
    font-size: 12px;
    color: #71717a;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 500;
    width: 36px;
}

.berth-panel-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
    border-bottom: 1px solid #f4f4f5;
    padding-bottom: 14px;
}

.berth-panel-title {
    font-size: 12px;
    font-weight: 700;
    color: #71717a;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.deck-label {
    font-size: 11px;
    font-weight: 700;
    color: #71717a;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.berth-grid-3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}

@media (max-width: 768px) {
    .berth-grid-3 {
        grid-template-columns: repeat(1, 1fr);
    }
}

.berth-card {
    border: 1px solid #e4e4e7;
    border-radius: 12px;
    padding: 14px 16px;
    background-color: #ffffff;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 80px;
}

.berth-card-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}

.berth-card-code {
    font-weight: 700;
    font-size: 13px;
    color: #09090b;
    font-family: 'JetBrains Mono', monospace;
}

.badge-pill-sm {
    font-size: 11px;
    padding: 2px 10px;
}

.berth-status-empty {
    font-size: 12px;
    color: #a1a1aa;
    font-weight: 500;
}

.berth-card-pax {
    margin-top: 8px;
}

.berth-pax-name {
    font-size: 13px;
    font-weight: 600;
    color: #09090b;
}

.berth-pax-info {
    font-size: 11px;
    color: #71717a;
    margin-top: 2px;
}

/* Journey Assigner additions */
.td-nowrap-muted {
    white-space: nowrap;
    color: var(--kk-text-muted, #71717a);
}

.btn-pill-cancel {
    padding: 10px 18px;
    cursor: pointer;
    border: 1px solid var(--kk-border, #e4e4e7);
}

.btn-pill-action {
    border: 1px solid var(--kk-border, #e4e4e7);
    cursor: pointer;
    padding: 6px 14px;
}

.btn-pill-link {
    text-decoration: none;
    padding: 6px 14px;
}

.journey-filter-toolbar {
    padding: 16px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border-bottom: 1px solid var(--kk-border-light, #f4f4f5);
    flex-wrap: wrap;
}

.journey-filter-group {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    flex: 1;
}

.journey-search-wrap {
    position: relative;
    min-width: 220px;
}

.journey-search-icon {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--kk-text-sub, #71717a);
    font-size: 12px;
}

.journey-count {
    font-size: 12px;
    color: var(--kk-text-muted, #71717a);
    font-weight: 500;
}

/* Live Header Elements: System Status, Clock, Search Shortcut */
.sys-status-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.05em;
    color: #166534;
    background: #dcfce7;
    padding: 4px 12px;
    border-radius: 9999px;
    white-space: nowrap;
}

.sys-status-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #16a34a;
    display: inline-block;
    animation: statusPulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

@keyframes statusPulse {

    0%,
    100% {
        opacity: 1;
        transform: scale(1);
    }

    50% {
        opacity: 0.4;
        transform: scale(0.9);
    }
}

.header-clock {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    font-weight: 600;
    color: #71717a;
    padding: 4px 10px;
    border-radius: 8px;
    background: #f4f4f5;
    white-space: nowrap;
}

.search-shortcut-badge {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 10px;
    font-weight: 600;
    color: #a1a1aa;
    background: #e4e4e7;
    padding: 2px 6px;
    border-radius: 4px;
    pointer-events: none;
}

/* ==========================================================================
   Admin Notification Flyout & Topbar Radar
   ========================================================================== */
.notification-dropdown-wrapper {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.header-bell-badge.has-critical {
    background: #ef4444 !important;
    animation: notificationPulse 1.8s infinite;
}

@keyframes notificationPulse {
    0% {
        transform: scale(1);
        box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.7);
    }

    70% {
        transform: scale(1.15);
        box-shadow: 0 0 0 5px rgba(239, 68, 68, 0);
    }

    100% {
        transform: scale(1);
        box-shadow: 0 0 0 0 rgba(239, 68, 68, 0);
    }
}

/* Text & Color Utilities */
.text-main {
    color: #18181b !important;
}

.text-sub {
    color: #71717a !important;
}

.text-muted {
    color: #a1a1aa !important;
}

.text-rose {
    color: #ef4444 !important;
}

.text-emerald {
    color: #10b981 !important;
}

.text-primary {
    color: #2563eb !important;
}

.font-mono {
    font-family: 'JetBrains Mono', monospace !important;
}

.border-subtle {
    border-color: #e4e4e7 !important;
}

/* Custom Sleek Scrollbar */
.custom-scrollbar {
    scrollbar-width: thin;
    scrollbar-color: #d4d4d8 transparent;
}

.custom-scrollbar::-webkit-scrollbar {
    width: 5px;
    height: 5px;
}

.custom-scrollbar::-webkit-scrollbar-track {
    background: transparent;
}

.custom-scrollbar::-webkit-scrollbar-thumb {
    background-color: #d4d4d8;
    border-radius: 4px;
}

.custom-scrollbar::-webkit-scrollbar-thumb:hover {
    background-color: #a1a1aa;
}

/* Flyout Dropdown Container */
.notification-flyout-panel {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    width: 420px;
    max-width: min(420px, calc(100vw - 20px));
    background-color: #ffffff;
    border: 1px solid #e4e4e7;
    border-radius: 14px;
    box-shadow: 0 20px 45px -12px rgba(0, 0, 0, 0.22), 0 0 1px 1px rgba(0, 0, 0, 0.05);
    z-index: 1060;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transform-origin: top right;
}

.notification-flyout-panel.d-none {
    display: none !important;
}

.notification-flyout-panel:not(.d-none) {
    display: flex !important;
    animation: notifFlyoutSlide 0.18s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes notifFlyoutSlide {
    0% {
        opacity: 0;
        transform: translateY(-6px) scale(0.98);
    }

    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* Panel Header */
.notification-panel-header {
    padding: 13px 16px 11px;
    background-color: #ffffff;
    border-bottom: 1px solid #f0f0f2;
}

.notification-panel-header-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.notif-header-title-wrap {
    display: flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
}

.notif-radar-icon {
    font-size: 13px;
    color: #2563eb;
    flex-shrink: 0;
}

.notif-header-title {
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #18181b;
    white-space: nowrap;
}

.notif-header-live-badge {
    display: inline-flex;
    align-items: center;
    background-color: #eff6ff;
    color: #2563eb;
    border: 1px solid #bfdbfe;
    font-size: 9.5px;
    font-weight: 700;
    padding: 1.5px 6px;
    border-radius: 9999px;
    letter-spacing: 0.03em;
    white-space: nowrap;
}

.notif-header-actions {
    display: flex;
    align-items: center;
    gap: 5px;
    flex-shrink: 0;
}

.btn-notif-action {
    background: #ffffff;
    border: 1px solid #e4e4e7;
    color: #71717a;
    border-radius: 6px;
    padding: 3.5px 8px;
    font-size: 11px;
    font-weight: 500;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    transition: all 0.15s ease;
}

.btn-notif-action:hover {
    color: #18181b;
    background-color: #f4f4f5;
    border-color: #d4d4d8;
}

.btn-notif-action.btn-notif-close {
    padding: 3.5px 7px;
}

/* Category Filter Tabs */
.notification-filters-bar {
    margin-top: 10px;
    display: flex;
    align-items: center;
    gap: 5px;
    overflow-x: auto;
    scrollbar-width: none;
    padding-bottom: 2px;
}

.notification-filters-bar::-webkit-scrollbar {
    display: none;
}

.notification-filter-btn {
    background: #f4f4f5;
    border: 1px solid #e4e4e7;
    color: #52525b;
    font-size: 10.5px;
    font-weight: 500;
    padding: 3px 9px;
    border-radius: 9999px;
    cursor: pointer;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    transition: all 0.15s ease;
}

.notification-filter-btn:hover {
    color: #18181b;
    background-color: #e4e4e7;
}

.notification-filter-btn.active {
    background: #18181b;
    color: #ffffff;
    border-color: #18181b;
    font-weight: 600;
}

.notification-filter-btn .filter-count {
    display: inline-block;
    padding: 0 4px;
    font-size: 9.5px;
    font-weight: 600;
    border-radius: 9999px;
    background: rgba(0, 0, 0, 0.08);
    color: inherit;
    min-width: 14px;
    text-align: center;
}

.notification-filter-btn.active .filter-count {
    background: rgba(255, 255, 255, 0.2);
    color: #ffffff;
}

/* Notification Items Feed */
.notification-list-container {
    max-height: 380px;
    overflow-y: auto;
    overscroll-behavior: contain;
}

.notification-item {
    position: relative;
    padding: 12px 16px;
    border-bottom: 1px solid #f4f4f5;
    display: flex;
    align-items: flex-start;
    gap: 12px;
    background-color: #ffffff;
    text-decoration: none;
    color: inherit;
    cursor: pointer;
    transition: background-color 0.15s ease;
}

.notification-item:hover {
    background-color: #fafafa;
}

.notification-item.unread {
    background-color: #f8fafc;
}

.notification-item.severity-critical {
    background-color: #fff1f2;
    border-left: 3px solid #ef4444;
}

.notification-item:last-child {
    border-bottom: none;
}

.notif-icon-box {
    width: 34px;
    height: 34px;
    border-radius: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    flex-shrink: 0;
}

.notif-content-box {
    flex: 1 1 auto;
    min-width: 0;
}

.notif-header-line {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 4px;
}

.notif-title {
    font-size: 12.5px;
    font-weight: 600;
    color: #18181b;
    line-height: 1.3;
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.notif-time-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
    font-family: 'JetBrains Mono', monospace;
    font-size: 10.5px;
    color: #a1a1aa;
    font-weight: 500;
    white-space: nowrap;
}

.notif-unread-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background-color: #2563eb;
    display: inline-block;
    flex-shrink: 0;
}

.notif-unread-dot.critical {
    background-color: #ef4444;
    box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.2);
}

.notif-desc {
    font-size: 11.5px;
    color: #52525b;
    line-height: 1.45;
    margin-bottom: 6px;
    word-break: break-word;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.notif-meta-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-top: 2px;
}

.notif-meta-subtitle {
    font-size: 10.5px;
    font-family: 'JetBrains Mono', monospace;
    color: #71717a;
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.notif-actions-group {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}

.notif-dismiss-btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: transparent;
    border: 1px solid #e4e4e7;
    border-radius: 4px;
    padding: 2px 7px;
    font-size: 10px;
    font-weight: 500;
    color: #71717a;
    cursor: pointer;
    transition: all 0.15s ease;
}

.notif-dismiss-btn:hover {
    background: #f4f4f5;
    color: #18181b;
    border-color: #d4d4d8;
}

.notif-view-btn {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: 10.5px;
    font-weight: 600;
    color: #2563eb;
    text-decoration: none !important;
    padding: 2px 7px;
    border-radius: 4px;
    transition: all 0.15s ease;
}

.notif-view-btn:hover {
    background-color: #eff6ff;
    color: #1d4ed8;
}

/* Empty State */
.notification-empty-state {
    padding: 36px 20px;
}

/* Panel Footer */
.notification-panel-footer {
    padding: 12px 16px;
    background-color: #fafafa;
    border-top: 1px solid #e4e4e7;
    flex-shrink: 0;
}

.btn-grid-link {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    box-sizing: border-box;
    background-color: #18181b;
    color: #ffffff !important;
    font-size: 12px;
    font-weight: 600;
    padding: 8px 14px;
    border-radius: 8px;
    text-decoration: none !important;
    letter-spacing: 0.02em;
    transition: all 0.15s ease;
}

.btn-grid-link:hover {
    background-color: #27272a;
    color: #ffffff !important;
    text-decoration: none !important;
}

.notif-footer-sub-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid #f0f0f2;
}

.notif-footer-sub-link {
    color: #71717a !important;
    font-size: 11px;
    font-weight: 500;
    text-decoration: none !important;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    transition: color 0.15s ease;
}

.notif-footer-sub-link:hover {
    color: #18181b !important;
    text-decoration: none !important;
}

.notif-footer-sub-link.sos-link {
    color: #e11d48 !important;
    font-weight: 600;
}

.notif-footer-sub-link.sos-link:hover {
    color: #be123c !important;
}

/* Backward-compatibility bridge for .kool-modal markup */
.kool-modal-backdrop {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(15, 23, 42, 0.45);
    backdrop-filter: blur(2px);
    z-index: 1055;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.kool-modal {
    position: relative;
    width: 100%;
    max-width: 540px;
    background: #ffffff;
    border: 1px solid #e4e4e7;
    border-radius: 14px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.kool-modal-sm {
    max-width: 400px;
}

.kool-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 18px;
    border-bottom: 1px solid #f0f0f2;
    background: #ffffff;
}

.kool-modal-title {
    margin: 0;
    font-size: 13.5px;
    font-weight: 700;
    color: #18181b;
}

.kool-modal-close {
    background: transparent;
    border: none;
    font-size: 18px;
    line-height: 1;
    color: #71717a;
    cursor: pointer;
    border-radius: 4px;
    padding: 2px 6px;
}

.kool-modal-close:hover {
    color: #18181b;
    background: #f4f4f5;
}

.kool-modal-body {
    padding: 18px;
    max-height: calc(85vh - 120px);
    overflow-y: auto;
}

.kool-modal-footer {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    padding: 12px 18px;
    border-top: 1px solid #f0f0f2;
    background: #fafafa;
}

/* ==========================================================================
   Responsive Architecture & Mobile Shell Controls
   ========================================================================== */

.sidebar-toggle-btn {
    display: none;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background: #ffffff;
    border: 1px solid var(--kk-border);
    border-radius: var(--kk-radius-md);
    color: var(--kk-text-main);
    cursor: pointer;
    font-size: 15px;
    transition: all 0.15s ease;
    flex-shrink: 0;
}

.sidebar-toggle-btn:hover {
    background-color: #f4f4f5;
    border-color: #d4d4d8;
}

.sidebar-backdrop {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(9, 9, 11, 0.45);
    backdrop-filter: blur(2px);
    z-index: 1040;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.25s ease, visibility 0.25s ease;
}

.sidebar-backdrop.show {
    opacity: 1;
    visibility: visible;
}

.admin-body {
    flex: 1;
    padding: 24px 32px;
    max-width: 100%;
}

/* Responsive Table Wrapper */
.table-wrapper {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    min-width: 640px;
}

.table-header-cell {
    padding: 12px 16px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.05em;
    color: var(--kk-text-sub);
    border-bottom: 1px solid var(--kk-border);
    background-color: #fafafa;
    text-align: left;
    white-space: nowrap;
}

.table-row-line {
    transition: background-color 0.15s ease;
}

.table-row-line:hover {
    background-color: #fcfcfd;
}

.table-row-line td {
    border-bottom: 1px solid var(--kk-border-light);
}

.table-cell-text {
    padding: 14px 16px;
    font-size: 13px;
    color: var(--kk-text-main);
    vertical-align: middle;
}

.table-cell-mono {
    padding: 14px 16px;
    font-family: var(--kk-font-mono);
    font-size: 12.5px;
    color: var(--kk-text-main);
    vertical-align: middle;
}

/* Media Queries for Full Responsiveness */
@media (max-width: 1199.98px) {
    .header-search-container {
        max-width: 360px;
    }
}

@media (max-width: 991.98px) {
    .sidebar-toggle-btn {
        display: inline-flex;
    }

    .admin-sidebar {
        position: fixed !important;
        top: 0;
        left: 0;
        bottom: 0;
        height: 100vh;
        z-index: 1050;
        transform: translateX(-100%);
        box-shadow: none;
        transition: transform 0.28s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.28s ease;
    }

    .admin-sidebar.sidebar-open {
        transform: translateX(0);
        box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.2), 0 10px 10px -5px rgba(0, 0, 0, 0.1);
    }

    .admin-header {
        padding: 0 16px;
    }

    .header-search-container {
        margin: 0 12px;
        max-width: 240px;
    }

    .admin-body {
        padding: 18px 16px;
    }
}

@media (max-width: 767.98px) {
    .header-search-container {
        max-width: 180px;
    }

    .search-shortcut-badge {
        display: none !important;
    }

    .header-clock {
        display: none !important;
    }

    .header-page-title {
        font-size: 14px;
    }
}

@media (max-width: 575.98px) {
    .admin-header {
        padding: 0 12px;
        height: 56px;
    }

    .header-search-container {
        display: none !important;
    }

    .sys-status-badge {
        display: none !important;
    }

    .header-user-info {
        display: none !important;
    }

    .header-page-title {
        font-size: 13px;
        max-width: 140px;
    }

    .admin-body {
        padding: 14px 10px;
    }

    .notification-flyout-panel {
        position: fixed !important;
        top: 56px !important;
        left: 8px !important;
        right: 8px !important;
        width: auto !important;
        max-width: none !important;
        max-height: calc(100vh - 70px) !important;
        border-radius: 12px !important;
    }

    .modal-dialog {
        margin: 0.5rem;
    }
}

/* SweetAlert2 Kool Design Theme */
.swal2-kool-popup {
    border-radius: 16px !important;
    padding: 24px !important;
    font-family: 'Switzer', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25) !important;
    border: 1px solid #e4e4e7 !important;
}

.swal2-kool-title {
    font-size: 16px !important;
    font-weight: 700 !important;
    color: #09090b !important;
    margin-bottom: 8px !important;
}

.swal2-kool-html {
    font-size: 13px !important;
    color: #71717a !important;
    line-height: 1.5 !important;
}

.swal2-kool-actions {
    margin-top: 20px !important;
    gap: 8px !important;
}

.swal2-kool-confirm {
    border-radius: 9999px !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    padding: 8px 20px !important;
    background-color: #09090b !important;
    color: #ffffff !important;
    border: 1px solid #09090b !important;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05) !important;
    transition: all 0.15s ease !important;
}

.swal2-kool-confirm:hover {
    background-color: #27272a !important;
    border-color: #27272a !important;
}

.swal2-kool-cancel {
    border-radius: 9999px !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    padding: 8px 16px !important;
    background-color: #f4f4f5 !important;
    color: #52525b !important;
    border: 1px solid #e4e4e7 !important;
    transition: all 0.15s ease !important;
}

.swal2-kool-cancel:hover {
    background-color: #e4e4e7 !important;
    color: #18181b !important;
}

/* --- Icon Action Buttons ------------------------------------------------------------------------------ */

.action-btn-group {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

/* Base icon button */
.btn-icon-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 8px;
    border: 1px solid transparent;
    background: transparent;
    cursor: pointer;
    font-size: 13px;
    line-height: 1;
    text-decoration: none !important;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, transform 0.1s ease;
    position: relative;
}

.btn-icon-action:focus-visible {
    outline: 2px solid #3b82f6;
    outline-offset: 2px;
}

.btn-icon-action:active {
    transform: scale(0.92);
}

/* Neutral — Edit */
.btn-icon-action.btn-icon-neutral {
    color: #52525b;
    background: #f4f4f5;
    border-color: #e4e4e7;
}

.btn-icon-action.btn-icon-neutral:hover {
    color: #18181b;
    background: #e4e4e7;
    border-color: #d4d4d8;
}

/* Warning — Activate / Deactivate / Toggle */
.btn-icon-action.btn-icon-warning {
    color: #92400e;
    background: #fef3c7;
    border-color: #fde68a;
}

.btn-icon-action.btn-icon-warning:hover {
    color: #78350f;
    background: #fde68a;
    border-color: #fcd34d;
}

/* Active-state variant (green) — for inactive rows "Activate" */
.btn-icon-action.btn-icon-activate {
    color: #14532d;
    background: #dcfce7;
    border-color: #bbf7d0;
}

.btn-icon-action.btn-icon-activate:hover {
    color: #166534;
    background: #bbf7d0;
    border-color: #86efac;
}

/* Danger — Delete */
.btn-icon-action.btn-icon-danger {
    color: #9f1239;
    background: #fff1f2;
    border-color: #fecdd3;
}

.btn-icon-action.btn-icon-danger:hover {
    color: #881337;
    background: #fecdd3;
    border-color: #fda4af;
}

/* Info / View */
.btn-icon-action.btn-icon-info {
    color: #1e3a8a;
    background: #eff6ff;
    border-color: #bfdbfe;
}

.btn-icon-action.btn-icon-info:hover {
    color: #1e40af;
    background: #bfdbfe;
    border-color: #93c5fd;
}

.td-cell-actions {
    white-space: nowrap;
    vertical-align: middle;
}

/* --- Sleek Tooltip Theme ---------------------------------------------------------------------------- */
.tooltip {
    font-family: var(--kk-font-sans);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.01em;
    pointer-events: none;
}

.tooltip .tooltip-inner {
    background-color: #09090b;
    color: #ffffff;
    border-radius: 6px;
    padding: 5px 9px;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.22);
    max-width: 240px;
}

.tooltip.bs-tooltip-top .tooltip-arrow::before {
    border-top-color: #09090b;
}

.tooltip.bs-tooltip-bottom .tooltip-arrow::before {
    border-bottom-color: #09090b;
}

.tooltip.bs-tooltip-start .tooltip-arrow::before {
    border-left-color: #09090b;
}

.tooltip.bs-tooltip-end .tooltip-arrow::before {
    border-right-color: #09090b;
}
