/* Import Inter font from Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');

/**
 * SageAI_BAC Admin Interface Styles
 * Following UI/UX Design System standards
 */

/* Skip Navigation Link - WCAG 2.2 AAA */
.skip-link {
    position: absolute;
    top: -40px;
    left: 0;
    background: var(--primary);
    color: #fff;
    padding: var(--spacing-sm) var(--spacing-md);
    z-index: 10000;
    font-size: var(--font-size-base);
    text-decoration: none;
    border-radius: 0 0 4px 0;
    transition: top 0.2s;
}
.skip-link:focus {
    top: 0;
}

/* WCAG AAA Enhanced Contrast Utility Classes */
.text-enhanced-primary   { color: var(--text-enhanced-primary); }
.text-enhanced-secondary { color: var(--text-enhanced-secondary); }
.text-enhanced-success   { color: var(--text-enhanced-success); }
.text-enhanced-warning   { color: var(--text-enhanced-warning); }
.text-enhanced-error     { color: var(--text-enhanced-error); }

/* Badge (e.g. Active model config) */
.badge {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: var(--font-size-sm);
    font-weight: 500;
}
.badge-success {
    background: var(--success);
    color: #fff;
}

.badge-error {
    background: var(--error);
    color: #fff;
}

.sage-panel {
    background: var(--bg-primary);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: var(--spacing-md);
}

.sage-panel-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-md);
}

.sage-panel-header h3,
.sage-card-header h4 {
    margin: 0;
}

.sage-panel-header p,
.sage-card-header p {
    margin: 4px 0 0;
    color: var(--text-secondary);
}

.sage-grid {
    display: grid;
    gap: var(--spacing-md);
}

.sage-grid-2 {
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
}

.sage-card {
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--bg-secondary);
    padding: var(--spacing-md);
}

.sage-card-header {
    display: flex;
    justify-content: space-between;
    gap: var(--spacing-md);
    align-items: flex-start;
    margin-bottom: var(--spacing-md);
}

.sage-compact-list {
    margin: 0;
    padding-left: var(--spacing-lg);
}

.sage-compact-list li {
    margin-bottom: var(--spacing-sm);
}

.sage-compact-list .form-hint {
    display: block;
    margin-top: 2px;
}

.sage-details-block {
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: var(--spacing-sm) var(--spacing-md);
    background: var(--bg-primary);
}

.sage-details-block summary {
    cursor: pointer;
    font-weight: 600;
}

/* Touch-target utility: WCAG minimum 44x44px interactive area */
.touch-target {
    min-height: 44px;
    min-width: 44px;
}

/* Statistics Count Blocks / Stats Bar */
.stats-bar {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-lg);
}
.stat-card {
    background: var(--bg-primary);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: var(--spacing-md);
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    transition: box-shadow 0.15s;
}
.stat-card:hover {
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}
.stat-card .stat-icon {
    width: 40px;
    height: 40px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.stat-card .stat-icon.primary   { background: #eef2ff; color: var(--primary); }
.stat-card .stat-icon.success   { background: #ecfdf5; color: var(--success); }
.stat-card .stat-icon.warning   { background: #fffbeb; color: var(--warning); }
.stat-card .stat-icon.error     { background: #fef2f2; color: var(--error); }
.stat-card .stat-icon.info      { background: #eff6ff; color: var(--info); }
.stat-card .stat-info { display: flex; flex-direction: column; }
.stat-card .stat-value {
    font-size: var(--font-size-xl);
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.2;
}
.stat-card .stat-label {
    font-size: var(--font-size-sm);
    color: var(--text-secondary);
}

/* Pro Tip boxes */
.pro-tip {
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: 6px;
    padding: var(--spacing-sm) var(--spacing-md);
    margin-top: var(--spacing-xs);
    font-size: var(--font-size-sm);
    color: #1e40af;
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-sm);
    line-height: 1.5;
}
.pro-tip::before {
    content: '💡';
    flex-shrink: 0;
}
[data-theme="dark"] .pro-tip,
.dark-mode .pro-tip {
    background: #1e293b;
    border-color: #334155;
    color: #93c5fd;
}

/* Collapsible list controls */
.list-controls-wrapper {
    border: 1px solid var(--border);
    border-radius: 8px;
    margin-bottom: var(--spacing-md);
    background: var(--bg-primary);
}
.list-controls-toggle {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-sm) var(--spacing-md);
    cursor: pointer;
    user-select: none;
    font-size: var(--font-size-sm);
    font-weight: 600;
    color: var(--text-secondary);
    border: none;
    background: none;
    width: 100%;
    text-align: left;
}
.list-controls-toggle:hover { color: var(--text-primary); }
.list-controls-toggle .toggle-icon {
    transition: transform 0.2s;
    display: inline-flex;
}
.list-controls-toggle.expanded .toggle-icon { transform: rotate(90deg); }
.list-controls-body {
    padding: 0 var(--spacing-md) var(--spacing-md);
    display: none;
}
.list-controls-body.expanded { display: block; }

/* Password Input with Toggle */
.password-input-wrapper {
    position: relative;
    display: flex;
    align-items: center;
}

.password-input-wrapper input {
    padding-right: 45px;
}

.password-toggle-btn {
    position: absolute;
    right: 12px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 4px 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-secondary);
    font-size: 18px;
    transition: color 0.2s;
    z-index: 10;
}

.password-toggle-btn:hover {
    color: var(--primary);
}

.password-toggle-btn:focus {
    outline: none;
    color: var(--primary);
}

.password-toggle-btn:active {
    transform: scale(0.95);
}

:root {
    /* Color Theme - CodeGuide-style indigo primary */
    --primary: #4f46e5;
    --primary-hover: #4338ca;
    --primary-light: #eef2ff;
    --secondary: #6366f1;
    --secondary-hover: #4f46e5;
    
    /* Neutral Colors (light) */
    --bg-primary: #ffffff;
    --bg-secondary: #f8f9fa;
    --bg-tertiary: #e9ecef;
    --text-primary: #1a1a1a;
    --text-secondary: #666666;
    --text-tertiary: #999999;
    --border: #e0e0e0;
    --border-hover: #d0d0d0;
    /* List table header - CodeGuide gray-50 / slightly darker */
    --table-header-bg: #f9fafb;
    --table-header-text: #374151;
    /* CodeGuide layout: page gray-50, sidebar & top bar white */
    --app-bg: #f9fafb;
    --header-bg: #ffffff;
    --sidebar-bg: #ffffff;
    /* Sidebar nav - light theme: dark text on light sidebar (CodeGuide parity) */
    --sidebar-nav-text: #374151;
    --sidebar-nav-text-active: #4338ca;
    --sidebar-active-bg: #eef2ff;
    --sidebar-nav-hover-bg: #f9fafb;
    --sidebar-border: rgba(0, 0, 0, 0.08);
    --sidebar-user-bg: #f9fafb;
    --sidebar-submenu-bg: transparent;
    
    /* Status Colors */
    --success: #10b981;
    --warning: #f59e0b;
    --error: #ef4444;
    --info: #3b82f6;
    
    /* Layout - fixed header (CodeGuide parity); reserves space so Add Content / Show Controls are not hidden */
    --header-height: 80px;

    /* Spacing */
    --spacing-xs: 4px;
    --spacing-sm: 8px;
    --spacing-md: 16px;
    --spacing-lg: 24px;
    --spacing-xl: 32px;
    
    /* Typography */
    --font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
    --font-size-sm: 13px;
    --font-size-base: 14px;
    --font-size-lg: 16px;
    --font-size-xl: 18px;
    --font-size-2xl: 24px;

    /* WCAG AAA Enhanced Contrast (7:1+ ratio) */
    --text-enhanced-primary: #1e40af;    /* 8.72:1 on white */
    --text-enhanced-secondary: #1e3a5f;  /* 8.49:1 on white */
    --text-enhanced-success: #065f46;    /* 7.56:1 on white */
    --text-enhanced-warning: #92400e;    /* 7.12:1 on white */
    --text-enhanced-error: #991b1b;      /* 8.28:1 on white */
}

/* Dark Mode - CodeGuide gray-900 page, gray-800 sidebar/header, gray-700/800 lists */
/* .dark is unified class used by landing and auth; .dark-mode used by app */
[data-theme="dark"],
html.dark-mode,
html.dark,
:root.dark-mode {
    --bg-primary: #1f2937 !important;
    --bg-secondary: #374151 !important;
    --bg-tertiary: #4b5563 !important;
    --text-primary: #f9fafb !important;
    --text-secondary: #d1d5db !important;
    --text-tertiary: #9ca3af !important;
    --border: #374151 !important;
    --border-hover: #4b5563 !important;
    --primary-light: rgba(79, 70, 229, 0.2) !important;
    --table-header-bg: #374151 !important;
    --table-header-text: #ffffff !important;
    /* CodeGuide: page bg gray-900, sidebar & top bar gray-800 */
    --app-bg: #111827 !important;
    --header-bg: #1f2937 !important;
    --sidebar-bg: #1f2937 !important;
    --sidebar-border: rgba(255, 255, 255, 0.08) !important;
    --sidebar-active-bg: rgba(79, 70, 229, 0.3) !important;
    --sidebar-user-bg: #1f2937 !important;
    /* Sidebar nav - dark theme (CodeGuide parity) */
    --sidebar-nav-text: #d1d5db !important;
    --sidebar-nav-text-active: #a5b4fc !important;
    --sidebar-nav-hover-bg: #374151 !important;
    /* List card = CodeGuide DataTable: gray-800 container, gray-700 header */
    --list-card-bg: #1f2937 !important;
    --list-card-header-bg: #374151 !important;
}

/* Sidebar: no white strip in dark mode - ensure full height and same bg throughout */
[data-theme="dark"] .sidebar-nav,
html.dark-mode .sidebar-nav,
html.dark .sidebar-nav,
:root.dark-mode .sidebar-nav {
    background: var(--sidebar-bg) !important;
    box-shadow: none !important;
}
[data-theme="dark"] .sidebar-user-section,
html.dark-mode .sidebar-user-section,
html.dark .sidebar-user-section,
:root.dark-mode .sidebar-user-section {
    background: var(--sidebar-bg) !important;
}

/* Dark mode: all scrollbars use dark track (no grey bar on right) */
[data-theme="dark"],
[data-theme="dark"] .main-content-wrapper,
html.dark-mode,
html.dark-mode .main-content-wrapper,
html.dark,
html.dark .main-content-wrapper,
:root.dark-mode,
:root.dark-mode .main-content-wrapper {
    scrollbar-color: var(--border) var(--bg-primary);
}

/* Dark Mode - System Preference Fallback (CodeGuide palette) */
@media (prefers-color-scheme: dark) {
    :root:not(.light-mode):not([data-theme="light"]) {
        --bg-primary: #1f2937;
        --bg-secondary: #374151;
        --bg-tertiary: #4b5563;
        --text-primary: #f9fafb;
        --text-secondary: #d1d5db;
        --text-tertiary: #9ca3af;
        --border: #374151;
        --border-hover: #4b5563;
        --primary-light: rgba(79, 70, 229, 0.2);
        --table-header-bg: #374151;
        --table-header-text: #ffffff;
        --app-bg: #111827;
        --header-bg: #1f2937;
        --sidebar-bg: #1f2937;
        --sidebar-border: rgba(255, 255, 255, 0.08);
        --sidebar-active-bg: rgba(79, 70, 229, 0.3);
        --sidebar-user-bg: #1f2937;
        --list-card-bg: #1f2937;
        --list-card-header-bg: #374151;
        --sidebar-submenu-bg: rgba(0, 0, 0, 0.25);
    }
}

/* Reset & Base */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* Smooth transitions for dark mode */
html {
    transition: background-color 0.3s ease;
}

body {
    font-family: var(--font-family);
    font-size: var(--font-size-base);
    color: var(--text-primary);
    background: var(--app-bg, var(--bg-secondary));
    line-height: 1.6;
    transition: background-color 0.3s ease, color 0.3s ease;
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

/* Reusable loading spinner */
.loading-spinner {
    display: inline-block;
    width: 24px;
    height: 24px;
    border: 3px solid var(--border);
    border-top-color: var(--primary);
    border-radius: 50%;
    animation: loading-spin 0.8s linear infinite;
}
@keyframes loading-spin {
    to { transform: rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) {
    .loading-spinner { animation: none; border-top-color: var(--primary); }
}

/* Container - CodeGuide page background */
.admin-container {
    min-height: 100vh;
    display: flex;
    flex-direction: row;
    background: var(--app-bg, var(--bg-secondary));
}

/* Main Content Wrapper - padding-top reserves space for fixed header */
.main-content-wrapper {
    flex: 1;
    margin-left: 256px;
    width: calc(100% - 256px);
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    background: var(--app-bg, var(--bg-secondary));
    position: relative;
    overflow-x: hidden;
    padding-top: var(--header-height);
}

@media (max-width: 1023px) {
    .main-content-wrapper {
        padding-top: var(--header-height);
    }
}

/* Main Content Header - CodeGuide parity: FIXED at top so it stays visible on scroll */
.main-content-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 100;
    min-height: var(--header-height);
    background: var(--header-bg, var(--bg-primary));
    border-bottom: 1px solid var(--border);
    padding: var(--spacing-lg) var(--spacing-xl);
    width: 100%;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
}

@media (min-width: 1024px) {
    .main-content-header {
        left: 280px;
        width: calc(100% - 280px);
    }
}

/* Main Content Area - CodeGuide page background */
.admin-main {
    flex: 1;
    width: 100%;
    max-width: 1400px;
    min-width: 0;
    margin: 0 auto;
    padding: var(--spacing-lg);
    box-sizing: border-box;
    background: var(--app-bg, var(--bg-secondary));
    overflow-x: hidden;
}

/* List pages - left align content list */
#content-list-content,
#chatbots-list-content,
#scopes-list-content {
    margin-left: 0;
    padding-left: 0;
}

#content-table-container,
#chatbots-table-container,
#scopes-table-container,
#user-table-container,
#code-table-container {
    margin-left: 0;
    padding-left: 0;
}

/* Pages Container - wraps all page-content divs */
.pages-container {
    width: 100%;
    position: relative;
}

/* Page Content */
.page-content {
    display: none !important;
    width: 100%;
    clear: both;
}

.page-content.active {
    display: block !important;
}


/* Left Sidebar Navigation - CodeGuide parity: w-64, no vertical bar (shadow removed to avoid grey line) */
.sidebar-nav {
    width: 256px;
    min-width: 256px;
    background: var(--sidebar-bg);
    color: var(--sidebar-nav-text);
    display: flex;
    flex-direction: column;
    height: 100vh;
    min-height: 100vh;
    position: fixed;
    left: 0;
    top: 0;
    z-index: 1050;
    overflow-y: auto;
    overflow-x: hidden;
    box-shadow: none;
    transition: background-color 0.2s ease, transform 0.3s ease;
}

/* Mobile: sidebar off-screen by default; .open slides it in */
@media (max-width: 1023px) {
    .sidebar-nav {
        transform: translateX(-100%);
    }
    .sidebar-nav.open {
        transform: translateX(0);
    }
}

/* Desktop: sidebar always visible */
@media (min-width: 1024px) {
    .sidebar-nav {
        transform: translateX(0);
    }
}

/* Sidebar overlay - mobile only; shown when sidebar open */
.sidebar-overlay {
    position: fixed;
    inset: 0;
    z-index: 1040;
    background: rgba(0, 0, 0, 0.5);
    display: none;
}

.sidebar-overlay.visible {
    display: block;
}

[data-theme="dark"] .sidebar-overlay {
    background: rgba(0, 0, 0, 0.75);
}

@media (min-width: 1024px) {
    .sidebar-overlay {
        display: none !important;
    }
}

/* Sidebar toggle buttons - icon style */
/* Sidebar toggle: min 44x44px touch target (WCAG 2.2 AAA) */
.sidebar-toggle {
    background: none;
    border: none;
    padding: 10px;
    min-width: 44px;
    min-height: 44px;
    cursor: pointer;
    color: var(--text-secondary);
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    transition: color 0.2s, background 0.2s;
}

.sidebar-toggle:hover {
    background: var(--bg-secondary);
    color: var(--text-primary);
}

.sidebar-toggle svg {
    width: 24px;
    height: 24px;
}

.sidebar-toggle-open {
    display: none;
}

.sidebar-toggle-close {
    display: none;
}

@media (max-width: 1023px) {
    .sidebar-toggle-open {
        display: flex;
    }
    .sidebar-toggle-close {
        display: flex;
    }
}

@media (min-width: 1024px) {
    .sidebar-toggle-open,
    .sidebar-toggle-close {
        display: none !important;
    }
}

/* Main content full width on mobile (sidebar off-screen) */
@media (max-width: 1023px) {
    .main-content-wrapper {
        margin-left: 0 !important;
        width: 100% !important;
        min-width: 100% !important;
        max-width: 100% !important;
    }
}

/* Sidebar Branding - CodeGuide: h-16 px-4 border-b */
.sidebar-branding {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-md);
    min-height: 64px;
    padding: 0 16px;
    border-bottom: 1px solid var(--sidebar-border);
    position: relative;
}

.sidebar-branding .sidebar-toggle-close {
    color: var(--sidebar-nav-text);
}
.sidebar-branding .sidebar-toggle-close:hover {
    color: var(--text-primary);
}

.sidebar-logo {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
}

.sidebar-home-link {
    flex: 1 1 auto;
    min-width: 0;
    align-self: stretch;
    color: inherit;
    text-decoration: none;
    border-radius: 8px;
    cursor: pointer;
}

.sidebar-home-link:hover .logo-name,
.sidebar-home-link:hover .logo-tagline {
    color: var(--primary);
}

.sidebar-home-link:focus-visible {
    outline: 2px solid var(--primary);
    outline-offset: 3px;
}

.logo-icon {
    font-size: 32px;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);
    border-radius: 8px;
    flex-shrink: 0;
}

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

.logo-name {
    font-size: var(--font-size-xl);
    font-weight: 600;
    color: var(--sidebar-nav-text, #374151);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.logo-tagline {
    font-size: var(--font-size-sm);
    color: var(--sidebar-nav-text, #374151);
    opacity: 0.85;
    margin-top: 4px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Sidebar Navigation Menu - CodeGuide: py-2 px-2 */
.sidebar-nav-menu {
    flex: 1;
    overflow-y: auto;
    padding: 8px 8px;
}

.nav-menu-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.nav-menu-item {
    margin: 0;
    padding: 0;
}

.nav-menu-link {
    display: flex;
    align-items: center;
    padding: 4px 16px;
    margin: 0 0 2px 0;
    color: var(--sidebar-nav-text);
    text-decoration: none;
    transition: all 0.2s;
    cursor: pointer;
    user-select: none;
    position: relative;
    min-height: 32px;
    font-size: 14px;
    font-weight: 500;
    border-radius: 8px;
}

.nav-menu-link:hover {
    background: var(--sidebar-nav-hover-bg);
    color: var(--text-primary);
}

.nav-menu-link.active {
    background: var(--sidebar-active-bg);
    color: var(--sidebar-nav-text-active);
    border-left: none;
}

.nav-menu-link.active::before {
    display: none;
}

.nav-icon {
    font-size: 16px;
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: 12px;
    flex-shrink: 0;
}

.nav-text {
    flex: 1;
    font-size: 14px;
    font-weight: 500;
}

.nav-chevron {
    font-size: 12px;
    transition: transform 0.2s;
    margin-left: auto;
    flex-shrink: 0;
}

.nav-menu-item-expandable.expanded .nav-chevron {
    transform: rotate(180deg);
}

/* Submenu - CodeGuide expanded section */
.nav-submenu {
    list-style: none;
    padding: 0;
    margin: 0;
    background: var(--sidebar-submenu-bg, rgba(0, 0, 0, 0.2));
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
}

.nav-menu-item-expandable.expanded .nav-submenu {
    max-height: 500px;
}

.nav-submenu-item {
    margin: 0;
    padding: 0;
}

.nav-submenu-link {
    display: flex;
    align-items: center;
    padding: 4px 16px 4px 16px;
    margin: 0 0 2px 0;
    margin-left: 16px;
    color: var(--sidebar-nav-text);
    opacity: 0.9;
    text-decoration: none;
    transition: all 0.2s;
    cursor: pointer;
    user-select: none;
    position: relative;
    font-size: 14px;
    font-weight: 500;
    border-radius: 8px;
}

.nav-submenu-link:hover {
    background: var(--sidebar-nav-hover-bg);
    color: var(--text-primary);
    opacity: 1;
}

.nav-submenu-link.active {
    background: var(--sidebar-active-bg);
    color: var(--sidebar-nav-text-active);
    opacity: 1;
    border-left: 2px solid var(--primary);
}

.nav-submenu-link.active::before {
    display: none;
}

.nav-submenu-link .nav-icon {
    font-size: 16px;
    width: 20px;
    height: 20px;
    margin-right: var(--spacing-sm);
}

/* Sidebar User Section - CodeGuide: border-t, p-4, bg-gray-50 / dark:gray-800/50 */
.sidebar-user-section {
    border-top: 1px solid var(--sidebar-border);
    padding: var(--spacing-md);
    background: var(--sidebar-user-bg, var(--bg-secondary));
}

.sidebar-divider {
    height: 1px;
    background: var(--sidebar-border, rgba(255, 255, 255, 0.1));
    margin: 0 calc(-1 * var(--spacing-lg)) var(--spacing-lg);
}

.sidebar-user-profile {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-md);
}

.user-avatar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: linear-gradient(135deg, #9333ea 0%, #4f46e5 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    font-weight: 600;
    font-size: var(--font-size-lg);
    flex-shrink: 0;
}

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

.sidebar-user-section .user-name {
    font-size: var(--font-size-base);
    font-weight: 500;
    color: var(--sidebar-nav-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sidebar-user-section .user-email {
    font-size: var(--font-size-sm);
    color: var(--text-secondary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-top: 2px;
}

.sidebar-user-section .user-role {
    font-size: var(--font-size-sm);
    color: var(--text-secondary);
    margin-top: 2px;
}

.sidebar-user-actions {
    display: flex;
    gap: var(--spacing-xs);
}

.sidebar-user-actions .user-action-btn {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-xs);
    padding: var(--spacing-sm) var(--spacing-md);
    background: var(--sidebar-nav-hover-bg);
    border: 1px solid var(--border);
    border-radius: 6px;
    color: var(--sidebar-nav-text);
    font-size: var(--font-size-sm);
    cursor: pointer;
    transition: all 0.2s;
}

.user-action-btn:hover {
    background: rgba(255, 255, 255, 0.15);
    color: #ffffff;
}

.user-action-btn-logout {
    color: #ff6b6b;
    border-color: rgba(255, 107, 107, 0.3);
}

.user-action-btn-logout:hover {
    background: rgba(255, 107, 107, 0.1);
    color: #ff5252;
}

.user-action-icon {
    font-size: 16px;
}

.user-action-text {
    font-size: var(--font-size-sm);
}

/* Preferences & Administration (Code Guide style) */
.sidebar-user-expandable {
    margin-bottom: var(--spacing-sm);
}

.sidebar-user-expandable-btn {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    width: 100%;
    padding: var(--spacing-sm) 0;
    background: none;
    border: none;
    color: var(--sidebar-nav-text);
    font-size: var(--font-size-sm);
    cursor: pointer;
    text-align: left;
    transition: all 0.2s;
}

.sidebar-user-expandable-btn:hover {
    color: var(--sidebar-nav-text-active);
}

.sidebar-user-expandable-btn .nav-chevron {
    margin-left: auto;
    font-size: 10px;
    transition: transform 0.2s;
}

.sidebar-user-expandable.expanded .sidebar-user-expandable-btn .nav-chevron {
    transform: rotate(180deg);
}

.sidebar-user-expandable-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
}

.sidebar-user-expandable.expanded .sidebar-user-expandable-content {
    max-height: 200px;
}

.sidebar-user-expandable-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-xs) 0 var(--spacing-xs) calc(var(--spacing-md) + 20px);
    color: var(--sidebar-nav-text);
    font-size: var(--font-size-sm);
    text-decoration: none;
    background: none;
    border: none;
    width: 100%;
    cursor: pointer;
    text-align: left;
    transition: all 0.2s;
}

/* Ensure Administration submenu labels are visible (avoid white-on-white) */
.sidebar-user-expandable-content .sidebar-user-expandable-item,
.sidebar-user-expandable-content .sidebar-user-expandable-item span {
    color: var(--sidebar-nav-text);
}

.sidebar-user-expandable-item:hover,
.sidebar-user-expandable-content .sidebar-user-expandable-item:hover span {
    color: var(--sidebar-nav-text-active);
}

.sidebar-user-expandable-item .nav-icon,
.sidebar-user-expandable-item .user-action-icon {
    flex-shrink: 0;
    width: 18px;
}

/* Main Content Wrapper - reserve space for fixed header */
.main-content-wrapper {
    flex: 1;
    margin-left: 280px;
    display: flex !important;
    flex-direction: column !important;
    min-height: 100vh;
    background: var(--bg-secondary);
    transition: background-color 0.3s ease;
    width: calc(100% - 280px) !important;
    min-width: calc(100% - 280px) !important;
    max-width: calc(100% - 280px) !important;
    box-sizing: border-box;
    overflow-x: hidden;
    position: relative;
    padding-top: var(--header-height) !important;
}

/* Main Content Header - CodeGuide parity: FIXED at top (stays visible on scroll) */
.main-content-header {
    background: var(--header-bg, var(--bg-primary)) !important;
    border-bottom: 2px solid var(--border) !important;
    padding: var(--spacing-lg) var(--spacing-xl) !important;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1) !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 100 !important;
    min-height: var(--header-height) !important;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    visibility: visible !important;
    overflow: visible !important;
    opacity: 1 !important;
    margin: 0 !important;
}

@media (min-width: 1024px) {
    .main-content-header {
        left: 280px !important;
        width: calc(100% - 280px) !important;
    }
}

.page-title-section {
    max-width: 1400px;
    margin: 0 auto;
    width: 100% !important;
    min-width: 100% !important;
    padding: 0;
    display: block !important;
    position: relative;
    visibility: visible !important;
}

/* CodeGuide parity: title text-lg, breadcrumbs text-xs */
.page-title {
    font-size: var(--font-size-lg);
    font-weight: 600;
    color: var(--text-primary);
    margin: 0 0 4px 0;
    visibility: visible !important;
}

.page-subtitle {
    font-size: 12px;
    color: var(--text-secondary);
    margin: 0;
}

.page-breadcrumbs {
    font-size: 12px;
    color: var(--text-secondary);
    margin: 0;
    visibility: visible !important;
}

.page-breadcrumb-link {
    color: var(--text-secondary);
    text-decoration: none;
}

.page-breadcrumb-link:hover {
    color: var(--text-primary);
    text-decoration: underline;
}

.page-breadcrumb-current {
    color: var(--text-primary);
}

/* Content List Header - CodeGuide ListControls layout */
.content-list-header {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: var(--spacing-sm);
    margin-bottom: var(--spacing-md);
    padding: 0;
    width: 100%;
    clear: both;
    position: relative;
}

/* Show Controls button - CodeGuide dark gray (bg-gray-700, border-gray-600) */
/* Pagination Styling - CodeGuide DataTable match */
.user-pagination-info {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 12px;
    flex-wrap: wrap;
    gap: var(--spacing-md);
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    margin: 0;
    width: 100%;
    clear: both;
    background: var(--list-card-bg, var(--bg-primary));
    transition: background-color 0.2s;
}

.pagination-left {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    flex-wrap: wrap;
}

.pagination-show-label {
    font-size: var(--font-size-sm);
    color: var(--text-secondary);
    white-space: nowrap;
}

.pagination-per-page-label {
    font-size: var(--font-size-sm);
    color: var(--text-secondary);
    white-space: nowrap;
}

/* CodeGuide DataTable: select border-gray-300 dark:border-gray-600, bg white dark:gray-700 */
.per-page-select {
    padding: 6px 12px;
    border: 1px solid var(--border);
    border-radius: 4px;
    background: var(--bg-primary);
    color: var(--text-primary);
    font-size: var(--font-size-sm);
    cursor: pointer;
    min-width: 3rem;
}

.pagination-results {
    font-size: var(--font-size-sm);
    color: var(--text-secondary);
}

.pagination-controls {
    display: flex;
    align-items: center;
    gap: 4px;
}

.pagination-btn {
    padding: 6px 10px;
    border: 1px solid var(--border);
    border-radius: 4px;
    background: var(--bg-primary);
    color: var(--text-primary);
    font-size: var(--font-size-sm);
    cursor: pointer;
    transition: all 0.2s;
    min-width: 32px;
    text-align: center;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.pagination-btn:hover:not(:disabled) {
    background: var(--bg-secondary);
    border-color: var(--primary);
    color: var(--primary);
}

.pagination-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.pagination-page {
    padding: 6px 12px;
    font-size: var(--font-size-sm);
    color: var(--text-primary);
    font-weight: 500;
    border: 1px solid transparent;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.2s;
}

.pagination-page:hover {
    background: var(--bg-secondary);
}

.pagination-page.active {
    background: var(--primary);
    color: white;
    border-color: var(--primary);
}

[data-theme="dark"] .per-page-select,
html.dark-mode .per-page-select {
    background: var(--list-card-header-bg);
    border-color: #4b5563;
}

/* Action Links Styling - Match Sample */
.action-links {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
}

.action-link {
    font-size: var(--font-size-sm);
    text-decoration: none;
    cursor: pointer;
    transition: color 0.2s;
    font-weight: 500;
}

.action-link-view {
    color: #3b82f6;
}

.action-link-view:hover {
    color: #2563eb;
    text-decoration: underline;
}

.action-link-edit {
    color: #ef4444;
}

.action-link-edit:hover {
    color: #dc2626;
    text-decoration: underline;
}

.action-link-delete {
    color: #ef4444;
}

.action-link-delete:hover {
    color: #dc2626;
    text-decoration: underline;
}

/* Main Content - CodeGuide page background */
.admin-main {
    flex: 1 !important;
    max-width: 1400px;
    width: 100% !important;
    margin: 0 auto;
    padding: var(--spacing-lg);
    background: var(--app-bg, var(--bg-secondary));
    transition: background-color 0.3s ease;
    display: block !important;
    clear: both !important;
    margin-top: 0 !important;
    padding-top: var(--spacing-lg) !important;
    visibility: visible !important;
    opacity: 1 !important;
    min-height: 200px !important;
}

/* Page Content */
/* Removed duplicate .page-content rules - using the standard ones at line 179 */

#content-list-content,
#chatbots-list-content,
#scopes-list-content {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    display: block !important;
    clear: both !important;
    visibility: visible !important;
    opacity: 1 !important;
    box-sizing: border-box !important;
    overflow-x: visible !important;
    overflow-y: visible !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Content Type Selector - Matching Content Ingestion/List Style */
.content-type-selector {
    background: var(--bg-primary);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 0;
    margin-bottom: var(--spacing-lg);
    overflow: hidden;
}

/* Content Type Selector / Select Scope Panel */
.content-type-selector {
    background: var(--bg-primary);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 0;
    margin-bottom: 24px;
    overflow: hidden;
}

.content-scope-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 24px;
    background: var(--bg-secondary);
    border-bottom: 1px solid var(--border);
}

.content-type-label {
    margin: 0;
    font-size: 14px;
    font-weight: 600;
    color: var(--text-primary);
    flex: 1;
    cursor: default;
}

.content-scope-body {
    padding: 24px;
    display: flex;
    gap: 16px;
    align-items: flex-start;
}

.content-scope-field {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.content-scope-label {
    display: block;
    margin-bottom: 8px;
    font-weight: 600;
    color: var(--text-primary);
}

.required-asterisk {
    color: var(--error);
}

.content-type-select-input {
    width: 100%;
    padding: 12px 16px;
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: 13px;
    font-weight: 400;
    background: var(--bg-primary);
    color: var(--text-primary);
    cursor: pointer;
    transition: border-color 0.2s;
}

.content-type-select-input:hover {
    border-color: var(--primary);
}

.content-type-select-input:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 3px var(--primary-light);
}

.field-error {
    display: block;
    margin-top: 4px;
    color: var(--error);
    font-size: 14px;
    min-height: 20px;
}

/* Admin Tabs */
.admin-tabs {
    display: flex;
    gap: var(--spacing-sm);
    border-bottom: 2px solid var(--border);
    margin-bottom: var(--spacing-lg);
    background: var(--bg-primary);
    border-radius: 8px 8px 0 0;
    padding: var(--spacing-sm) var(--spacing-lg) 0;
    overflow-x: auto;
}

.admin-tab-btn {
    padding: var(--spacing-md) var(--spacing-lg);
    border: none;
    background: transparent;
    color: var(--text-secondary);
    font-size: var(--font-size-base);
    font-weight: 500;
    cursor: pointer;
    border-bottom: 3px solid transparent;
    transition: all 0.2s;
    white-space: nowrap;
    min-height: 44px;
}

.admin-tab-btn:hover {
    color: var(--primary);
    background: var(--bg-secondary);
}

.admin-tab-btn.active {
    color: var(--primary);
    border-bottom-color: var(--primary);
    background: var(--bg-secondary);
}

.admin-tab-content {
    display: none;
}

.admin-tab-content.active {
    display: block;
}

/* Settings Sections */
.settings-section {
    background: var(--bg-primary);
    border: 1px solid var(--border);
    border-radius: 8px;
    margin-bottom: var(--spacing-lg);
    overflow: hidden;
}

.settings-content {
    padding: var(--spacing-lg);
}

.settings-content h3 {
    margin-bottom: var(--spacing-sm);
    color: var(--text-primary);
    font-size: var(--font-size-xl);
}

.settings-description {
    color: var(--text-secondary);
    margin-bottom: var(--spacing-lg);
    font-size: var(--font-size-base);
}

/* Reports Placeholder */
.reports-placeholder {
    background: var(--bg-primary);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: var(--spacing-xl);
    text-align: center;
}

.reports-placeholder h2 {
    margin-bottom: var(--spacing-lg);
    color: var(--text-primary);
}

/* Pagination */
.pagination-container {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: var(--spacing-md);
    margin-top: var(--spacing-lg);
    padding: var(--spacing-md);
    background: var(--bg-secondary);
    border-radius: 8px;
}

.pagination-info {
    color: var(--text-secondary);
    font-size: var(--font-size-base);
    min-width: 120px;
    text-align: center;
}

#content-prev-btn:disabled,
#content-next-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* List Section */
.list-section {
    background: var(--bg-primary);
    border-radius: 8px;
    padding: 0;
    margin-top: var(--spacing-lg);
    border: 1px solid var(--border);
    overflow: hidden;
}

.list-section.collapsible-section .section-header {
    margin: 0;
    padding: var(--spacing-lg);
    background: var(--bg-secondary);
    border-bottom: 1px solid var(--border);
}

.list-section.collapsible-section .collapsible-content {
    padding: var(--spacing-lg);
}

/* List Controls */
.list-controls {
    display: flex;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-lg);
    flex-wrap: wrap;
}

.search-bar {
    flex: 1;
    min-width: 200px;
    display: flex;
    gap: var(--spacing-sm);
}

.search-input {
    flex: 1;
    padding: 10px 14px;
    border: 1px solid var(--border);
    border-radius: 8px;
    font-size: var(--font-size-base);
    min-height: 44px;
    background: var(--bg-primary);
    color: var(--text-primary);
}

.filter-controls {
    display: flex;
    gap: var(--spacing-sm);
    flex-wrap: wrap;
}

.filter-select {
    padding: 10px 14px;
    border: 1px solid var(--border);
    border-radius: 8px;
    font-size: var(--font-size-base);
    background: var(--bg-primary);
    color: var(--text-primary);
    min-height: 44px;
    min-width: 150px;
}

/* Buttons - CodeGuide parity: px-4 py-2, rounded-lg, indigo primary. Min 44px touch (WCAG 2.2 AAA). */
.btn {
    padding: 8px 16px;
    border: none;
    border-radius: 8px;
    font-size: var(--font-size-base);
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-sm);
}

.btn-primary {
    background: var(--primary);
    color: white;
}

.btn-primary:hover {
    background: var(--primary-hover);
}

[data-theme="dark"] .btn-primary:hover,
html.dark-mode .btn-primary:hover {
    background: #818cf8;
}

.btn-secondary {
    background: var(--bg-primary);
    color: var(--text-primary);
    border: 1px solid var(--border);
}

.btn-secondary:hover {
    background: var(--bg-secondary);
    border-color: var(--border-hover);
}

/* Show Controls / list secondary - CodeGuide: white dark:gray-700, border gray-300 dark:gray-600 */
.content-list-header .btn-secondary {
    background: var(--bg-primary);
    border: 1px solid var(--border);
    color: var(--text-primary);
}

.content-list-header .btn-secondary:hover {
    background: var(--bg-secondary);
    border-color: var(--border-hover);
}

.content-list-header .admin-only-btn,
.content-list-header #remove-duplicates-btn {
    color: var(--text-primary);
}

[data-theme="dark"] .content-list-header .btn-secondary,
html.dark-mode .content-list-header .btn-secondary {
    background: var(--bg-secondary);
    border-color: #4b5563;
}

[data-theme="dark"] .content-list-header .btn-secondary:hover,
html.dark-mode .content-list-header .btn-secondary:hover {
    background: var(--bg-tertiary);
}

/* Icon buttons: min 44x44px touch target (WCAG 2.2 AAA - MOBILE_RESPONSIVE_STANDARDS) */
.btn-icon {
    padding: 0;
    min-width: 44px;
    min-height: 44px;
    width: 44px;
    height: 44px;
    background: transparent;
    border: 1.5px solid var(--border);
    border-radius: 6px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
    font-size: 14px;
    line-height: 1;
    position: relative;
    z-index: 1001;
    pointer-events: auto;
}

/* Dark mode toggle button - ensure it's always clickable */
#dark-mode-toggle {
    position: relative !important;
    z-index: 1002 !important;
    pointer-events: auto !important;
    cursor: pointer !important;
    min-width: 40px !important;
    min-height: 40px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    user-select: none !important;
    -webkit-user-select: none !important;
    -moz-user-select: none !important;
    -ms-user-select: none !important;
}

#dark-mode-toggle * {
    pointer-events: none !important;
}

#dark-mode-toggle:hover {
    transform: scale(1.1) !important;
    background: rgba(255, 255, 255, 0.3) !important;
}

#dark-mode-toggle:active {
    transform: scale(0.95) !important;
}

#dark-mode-toggle:focus {
    outline: 2px solid rgba(255, 255, 255, 0.5) !important;
    outline-offset: 2px !important;
}

.btn-icon:hover {
    background: var(--bg-secondary);
    transform: translateY(-1px);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* Icon button color variants */
.btn-icon.btn-success {
    border-color: var(--success);
    color: var(--success);
}

.btn-icon.btn-success:hover {
    background: rgba(16, 185, 129, 0.1);
    border-color: #059669;
    color: #059669;
}

[data-theme="dark"] .btn-icon.btn-success:hover,
.dark-mode .btn-icon.btn-success:hover {
    background: rgba(16, 185, 129, 0.2);
}

.btn-icon.btn-primary {
    border-color: var(--primary);
    color: var(--primary);
}

.btn-icon.btn-primary:hover {
    background: var(--primary-light);
    border-color: var(--primary-hover);
    color: var(--primary-hover);
}

.btn-icon.btn-secondary {
    border-color: var(--text-secondary);
    color: var(--text-secondary);
}

.btn-icon.btn-secondary:hover {
    background: var(--bg-secondary);
    border-color: var(--text-primary);
    color: var(--text-primary);
}

.btn-icon.btn-warning {
    border-color: var(--warning);
    color: var(--warning);
}

.btn-icon.btn-warning:hover {
    background: rgba(245, 158, 11, 0.1);
    border-color: #d97706;
    color: #d97706;
}

[data-theme="dark"] .btn-icon.btn-warning:hover,
.dark-mode .btn-icon.btn-warning:hover {
    background: rgba(245, 158, 11, 0.2);
}

.btn-icon.btn-danger {
    border-color: var(--error);
    color: var(--error);
}

.btn-icon.btn-danger:hover {
    background: rgba(239, 68, 68, 0.1);
    border-color: #dc2626;
    color: #dc2626;
}

[data-theme="dark"] .btn-icon.btn-danger:hover,
.dark-mode .btn-icon.btn-danger:hover {
    background: rgba(239, 68, 68, 0.2);
}

/* Icon button variants */
.btn-icon-view {
    border-color: #3b82f6;
    color: #3b82f6;
}

.btn-icon-view:hover {
    background: rgba(59, 130, 246, 0.1);
    border-color: #2563eb;
    color: #2563eb;
}

[data-theme="dark"] .btn-icon-view:hover,
.dark-mode .btn-icon-view:hover {
    background: rgba(59, 130, 246, 0.2);
}

.btn-icon-edit {
    border-color: #f59e0b;
    color: #f59e0b;
}

.btn-icon-edit:hover {
    background: rgba(245, 158, 11, 0.1);
    border-color: #d97706;
    color: #d97706;
}

[data-theme="dark"] .btn-icon-edit:hover,
.dark-mode .btn-icon-edit:hover {
    background: rgba(245, 158, 11, 0.2);
}

.btn-icon-delete {
    border-color: #ef4444;
    color: #ef4444;
}

.btn-icon-delete:hover {
    background: rgba(239, 68, 68, 0.1);
    border-color: #dc2626;
    color: #dc2626;
}

[data-theme="dark"] .btn-icon-delete:hover,
.dark-mode .btn-icon-delete:hover {
    background: rgba(239, 68, 68, 0.2);
}

.btn-icon-reprocess {
    border-color: #059669;
    color: #059669;
}

.btn-icon-reprocess:hover:not(:disabled) {
    background: rgba(5, 150, 105, 0.1);
    border-color: #047857;
    color: #047857;
}

[data-theme="dark"] .btn-icon-reprocess:hover:not(:disabled),
.dark-mode .btn-icon-reprocess:hover:not(:disabled) {
    background: rgba(5, 150, 105, 0.2);
}

/* Action icons container */
.action-icons {
    display: flex;
    flex-wrap: nowrap;
    gap: 6px;
    align-items: center;
}

/* Smaller action button icons on all lists (Content, Scopes, Chatbots, Code, Users, etc.) */
.action-icons .btn-icon {
    min-width: 26px;
    min-height: 26px;
    width: 26px;
    height: 26px;
}
.action-icons .btn-icon svg {
    width: 12px;
    height: 12px;
    flex-shrink: 0;
}

.content-actions-cell .action-icons {
    flex-wrap: nowrap;
    min-width: 0;
}

/* Table */
/* CodeGuide DataTable: list card; height fits content up to max, then scrollbars */
.documents-table-container {
    background: var(--list-card-bg, var(--bg-primary));
    border-radius: 8px;
    overflow-x: scroll;
    overflow-y: scroll;
    max-height: calc(100vh - 260px);
    min-height: 280px;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
    width: 100%;
    max-width: 100%;
    min-width: 0;
    transition: background-color 0.2s;
    border: 1px solid var(--border);
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    display: block;
    flex-shrink: 0;
}

/* File path links - open source in new tab */
.file-path-link {
    color: var(--primary, #2563eb);
    text-decoration: none;
    display: inline-block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: bottom;
}
.file-path-link:hover {
    text-decoration: underline;
}

.documents-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: auto;
    border-spacing: 0;
    text-align: left;
    min-width: 0;
}

.documents-table thead th {
    white-space: nowrap;
}

.documents-table th,
.documents-table td {
    box-sizing: border-box;
}

/* Content table: box-sizing so column widths include padding — removes gap between col 1 and 2 */
#content-table th,
#content-table td {
    box-sizing: border-box;
}

.documents-table th,
.documents-table td {
    text-align: left;
}

/* Checkbox column - minimal right padding to eliminate gap before Document ID */
.documents-table th:nth-child(1),
.documents-table td:nth-child(1) {
    width: 36px;
    min-width: 36px;
    max-width: 36px;
    padding: 4px 2px 4px 6px;
    text-align: left;
}

/* Content table only: col 1 and 2 — width includes padding (border-box), no gap */
#content-table th:nth-child(1),
#content-table td:nth-child(1) {
    width: 32px !important;
    min-width: 32px !important;
    max-width: 32px !important;
    padding: 4px 2px 4px 4px !important;
    box-sizing: border-box !important;
}
#content-table th:nth-child(2),
#content-table td:nth-child(2) {
    padding-left: 4px !important;
    box-sizing: border-box !important;
}
#content-table thead th:nth-child(1) { padding: 4px 2px 4px 4px !important; }
#content-table thead th:nth-child(2) { padding: 4px 8px 4px 4px !important; }

/* Badge styling for compact display */
.documents-table .source-badge,
.documents-table .content-type-badge,
.documents-table .document-type-badge,
.documents-table .status-badge {
    padding: 2px 6px;
    font-size: 11px;
    display: inline-block;
    white-space: nowrap;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Document ID column - compact but readable */
.documents-table th:nth-child(2),
.documents-table td:nth-child(2) {
    width: 5%;
    min-width: 52px;
    padding: 4px 8px 4px 4px;
}

/* Title column - large to fill list */
.documents-table th:nth-child(3),
.documents-table td:nth-child(3) {
    width: 24%;
    min-width: 120px;
    padding: 4px 8px;
    white-space: normal;
    word-wrap: break-word;
    overflow-wrap: break-word;
    line-height: 1.3;
}

/* Source column */
.documents-table th:nth-child(4),
.documents-table td:nth-child(4) {
    width: 6%;
    min-width: 48px;
    padding: 4px 8px;
    white-space: normal;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

/* Content Type column */
.documents-table th:nth-child(5),
.documents-table td:nth-child(5) {
    width: 6%;
    min-width: 48px;
    padding: 4px 8px;
    white-space: normal;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

/* Document Type column */
.documents-table th:nth-child(6),
.documents-table td:nth-child(6) {
    width: 6%;
    min-width: 48px;
    padding: 4px 8px;
    white-space: normal;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

/* File Path column (7) - large to fill list */
.documents-table th:nth-child(7),
.documents-table td:nth-child(7) {
    width: 22%;
    min-width: 100px;
    padding: 4px 8px;
    white-space: normal;
    word-wrap: break-word;
    overflow-wrap: break-word;
    line-height: 1.3;
}

/* Size column (8) */
.documents-table th:nth-child(8),
.documents-table td:nth-child(8) {
    width: 5%;
    min-width: 48px;
    padding: 4px 8px;
    white-space: normal;
    word-wrap: break-word;
}

/* Status column (9) */
.documents-table th:nth-child(9),
.documents-table td:nth-child(9) {
    width: 6%;
    min-width: 52px;
    padding: 4px 8px;
    white-space: normal;
    word-wrap: break-word;
}

/* Created column (10) */
.documents-table th:nth-child(10),
.documents-table td:nth-child(10) {
    width: 6%;
    min-width: 64px;
    padding: 4px 8px;
    white-space: normal;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

/* Actions column (11) - always visible, fixed share of width */
.documents-table th:nth-child(11),
.documents-table td:nth-child(11) {
    width: 15%;
    min-width: 140px;
    padding: 4px 8px;
    white-space: nowrap;
}

/* CodeGuide-style: no vertical bars between columns, only row borders */
.documents-table th,
.documents-table td,
#scopes-table th,
#scopes-table td,
#chatbots-table th,
#chatbots-table td,
.scope-content-table th,
.scope-content-table td {
    border-left: none !important;
    border-right: none !important;
}

.documents-table thead {
    background: var(--table-header-bg, var(--bg-secondary));
}

/* CodeGuide thead: bg-gray-50 dark:bg-gray-700, text uppercase */
.documents-table th {
    padding: 8px 12px;
    text-align: left;
    font-weight: 600;
    font-size: 12px;
    color: var(--table-header-text, var(--text-primary));
    border-bottom: 1px solid var(--border);
    background: var(--list-card-header-bg, var(--table-header-bg, var(--bg-secondary)));
    text-transform: uppercase;
    letter-spacing: 0.05em;
    white-space: normal;
    word-wrap: break-word;
    line-height: 1.2;
    vertical-align: middle;
}

.documents-table thead th .sort-icon {
    opacity: 0.8;
}

.documents-table td {
    padding: 4px 6px;
    border-bottom: 1px solid var(--border);
    color: var(--text-primary);
    background: var(--bg-primary);
    vertical-align: top;
    font-size: var(--font-size-sm);
    white-space: normal;
    word-wrap: break-word;
    overflow-wrap: break-word;
    line-height: 1.3;
}

.documents-table tbody tr {
    transition: background-color 0.2s;
}

.documents-table tbody tr:hover {
    background: var(--bg-tertiary);
}

.documents-table tbody tr:hover td {
    background: var(--bg-tertiary);
}

/* Scopes table - match content table styling; scrollbars for overflow */
#scopes-table-container {
    background: var(--list-card-bg, var(--bg-primary));
    border-radius: 8px;
    overflow-x: scroll;
    overflow-y: scroll;
    max-height: calc(100vh - 260px);
    min-height: 280px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    border: 1px solid var(--border);
    box-sizing: border-box !important;
    visibility: visible !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}

#scopes-table {
    width: 100%;
    min-width: 1120px;
    border-collapse: collapse;
    table-layout: fixed;
    border-spacing: 0;
}

#scopes-table thead {
    background: var(--list-card-header-bg, var(--table-header-bg, var(--bg-secondary)));
}

/* Scopes table - one useful field per column */
#scopes-table th:nth-child(1),
#scopes-table td:nth-child(1) {
    width: 32px;
    min-width: 32px;
    max-width: 32px;
    padding: 4px 2px !important;
}
#scopes-table th:nth-child(2),
#scopes-table td:nth-child(2) { width: 8%; min-width: 84px; padding: 6px 10px; }
#scopes-table th:nth-child(3),
#scopes-table td:nth-child(3) { width: 18%; min-width: 180px; padding: 6px 10px; }
#scopes-table th:nth-child(4),
#scopes-table td:nth-child(4) { width: 28%; min-width: 260px; padding: 6px 10px; }
#scopes-table th:nth-child(5),
#scopes-table td:nth-child(5) { width: 10%; min-width: 120px; padding: 6px 10px; }
#scopes-table th:nth-child(6),
#scopes-table td:nth-child(6) { width: 10%; min-width: 120px; padding: 6px 10px; }
#scopes-table th:nth-child(7),
#scopes-table td:nth-child(7) { width: 9%; min-width: 100px; padding: 6px 10px; }
#scopes-table th:nth-child(8),
#scopes-table td:nth-child(8) { width: 9%; min-width: 100px; padding: 6px 10px; }
#scopes-table th:nth-child(9),
#scopes-table td:nth-child(9) { width: 14%; min-width: 150px; padding: 6px 10px; }

#scopes-table th {
    padding: 4px 6px;
    text-align: left;
    font-weight: 600;
    font-size: 11px;
    color: var(--table-header-text, var(--text-primary));
    border-bottom: 1px solid var(--border);
    background: var(--list-card-header-bg, var(--table-header-bg, var(--bg-secondary)));
    text-transform: uppercase;
    letter-spacing: 0.03em;
    white-space: normal;
    word-wrap: break-word;
    overflow-wrap: break-word;
    line-height: 1.2;
}

#scopes-table thead th .sort-icon {
    opacity: 0.8;
}

#scopes-table td {
    padding: 6px 10px;
    border-bottom: 1px solid var(--border);
    font-size: var(--font-size-sm);
    vertical-align: middle;
    white-space: normal;
    word-wrap: break-word;
    overflow-wrap: break-word;
    line-height: 1.3;
}

#scopes-table tbody tr:hover {
    background: var(--bg-tertiary);
}

#scopes-table tbody tr:hover td {
    background: var(--bg-tertiary);
}

/* Scopes table: all columns wrap to show full data */
#scopes-table td[data-column="name"],
#scopes-table td[data-column="description"],
#scopes-table td[data-column="content"],
#scopes-table td[data-column="chatbots"],
#scopes-table td[data-column="default"],
#scopes-table td[data-column="created"] {
    white-space: normal !important;
    word-wrap: break-word;
    overflow-wrap: break-word;
    overflow: visible;
    text-overflow: clip;
    vertical-align: top;
}

.scope-id-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 48px;
    height: 26px;
    padding: 0 10px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--bg-secondary);
    color: var(--primary);
    font-weight: 700;
    font-size: 12px;
}

.scope-name {
    display: block;
    color: var(--text-primary);
    font-weight: 700;
    line-height: 1.3;
}

.scope-description-text {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    color: var(--text-secondary);
    line-height: 1.35;
}

.scope-muted,
.scope-date {
    color: var(--text-tertiary);
}

.scope-type-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 24px;
    padding: 2px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
}

.scope-type-badge.default {
    color: #065f46;
    background: #d1fae5;
}

.scope-type-badge.custom {
    color: #1d4ed8;
    background: #dbeafe;
}

.scope-metric-link {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1px;
    min-width: 92px;
    padding: 6px 8px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--bg-primary);
    color: var(--text-primary);
    cursor: pointer;
}

.scope-metric-link:hover,
.scope-metric-link:focus-visible {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px var(--primary-light, rgba(37, 99, 235, 0.14));
}

.scope-metric-link strong {
    font-size: 16px;
    line-height: 1;
}

.scope-metric-link span {
    color: var(--text-secondary);
    font-size: 11px;
    text-transform: uppercase;
}

.scope-row-actions.action-icons {
    justify-content: flex-start;
}

.scopes-cards-grid {
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 12px;
    width: 100%;
}

.scope-card {
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--bg-primary);
    padding: 16px;
    box-shadow: var(--shadow-sm, 0 1px 2px rgba(15, 23, 42, 0.06));
}

.scope-card-header,
.scope-card-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.scope-card h3 {
    margin: 14px 0 6px;
    color: var(--text-primary);
    font-size: 18px;
    line-height: 1.25;
}

.scope-card p {
    min-height: 44px;
    margin: 0 0 14px;
    color: var(--text-secondary);
    line-height: 1.4;
}

.scope-card-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 14px;
}

.scope-card-metrics button,
.scope-card-metrics span {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-height: 54px;
    padding: 8px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--bg-secondary);
    color: var(--text-primary);
    text-align: left;
}

.scope-card-metrics button {
    cursor: pointer;
}

.scope-card-metrics strong {
    font-size: 16px;
    line-height: 1;
}

.scope-card-metrics span span,
.scope-card-metrics button span {
    color: var(--text-tertiary);
    font-size: 11px;
    text-transform: uppercase;
}

.scope-empty-card {
    grid-column: 1 / -1;
}

/* Chatbot table - match content table styling; scrollbars for overflow */
#chatbots-table-container {
    background: var(--list-card-bg, var(--bg-primary));
    border-radius: 8px;
    overflow-x: scroll;
    overflow-y: scroll;
    max-height: calc(100vh - 260px);
    min-height: 280px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    border: 1px solid var(--border);
    box-sizing: border-box !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}

#chatbots-table {
    width: 100%;
    min-width: 800px;
    border-collapse: collapse;
    table-layout: fixed;
    border-spacing: 0;
}

#chatbots-table thead {
    background: var(--list-card-header-bg, var(--table-header-bg, var(--bg-secondary)));
}

#chatbots-table th {
    padding: 4px 6px;
    text-align: left;
    font-weight: 600;
    font-size: 11px;
    color: var(--table-header-text, var(--text-primary));
    border-bottom: 1px solid var(--border);
    background: var(--list-card-header-bg, var(--table-header-bg, var(--bg-secondary)));
    text-transform: uppercase;
    letter-spacing: 0.03em;
    white-space: normal;
    word-wrap: break-word;
    overflow-wrap: break-word;
    line-height: 1.2;
    vertical-align: middle;
}

#chatbots-table thead th .sort-icon {
    opacity: 0.8;
}

#chatbots-table td {
    padding: 4px 6px;
    border-bottom: 1px solid var(--border);
    color: var(--text-primary);
    background: var(--bg-primary);
    vertical-align: top;
    font-size: var(--font-size-sm);
    white-space: normal;
    word-wrap: break-word;
    overflow-wrap: break-word;
    line-height: 1.3;
}

#chatbots-table tbody tr {
    transition: background-color 0.2s;
}

#chatbots-table tbody tr:hover {
    background: var(--bg-tertiary);
}

#chatbots-table tbody tr:hover td {
    background: var(--bg-tertiary);
}

/* All chatbot table cells wrap */
#chatbots-table td:nth-child(2) {
    overflow: visible;
    text-overflow: clip;
}

/* All chatbot columns wrap to show full data */

/* Chatbot table: no gap between checkbox and Name column */
#chatbots-table th:nth-child(1),
#chatbots-table td:nth-child(1) {
    width: 32px;
    min-width: 32px;
    max-width: 32px;
    padding: 6px 0 6px 2px;
}

#chatbots-table th:nth-child(2),
#chatbots-table td:nth-child(2) {
    padding-left: 4px;
}

#chatbots-table th:nth-child(2),
#chatbots-table td:nth-child(2) {
    width: 20%;
    min-width: 200px;
}

#chatbots-table th:nth-child(3),
#chatbots-table td:nth-child(3) {
    width: 15%;
    min-width: 120px;
}

#chatbots-table th:nth-child(4),
#chatbots-table td:nth-child(4) {
    width: 10%;
    min-width: 100px;
}

#chatbots-table th:nth-child(5),
#chatbots-table td:nth-child(5) {
    width: 10%;
    min-width: 80px;
}

#chatbots-table th:nth-child(6),
#chatbots-table td:nth-child(6) {
    width: 12%;
    min-width: 100px;
}

#chatbots-table th:nth-child(7),
#chatbots-table td:nth-child(7) {
    width: 14%;
    min-width: 140px;
}

#chatbots-table th:nth-child(8),
#chatbots-table td:nth-child(8) {
    width: 15%;
    min-width: 180px;
}

.documents-table tbody tr.selected {
    background: var(--primary-light);
}

/* Status Badges */
.status-badge {
    display: inline-block;
    padding: 2px 6px;
    border-radius: 10px;
    font-size: 11px;
    font-weight: 500;
    white-space: nowrap;
    line-height: 1.2;
}

.status-pending {
    background: #fef3c7;
    color: #92400e;
}

[data-theme="dark"] .status-pending,
.dark-mode .status-pending {
    background: #78350f;
    color: #fbbf24;
}

.status-processing {
    background: #dbeafe;
    color: #1e40af;
}

[data-theme="dark"] .status-processing,
.dark-mode .status-processing {
    background: #1e3a8a;
    color: #93c5fd;
}

.status-completed {
    background: #d1fae5;
    color: #065f46;
}

[data-theme="dark"] .status-completed,
.dark-mode .status-completed {
    background: #064e3b;
    color: #6ee7b7;
}

.status-active {
    background: #d1fae5;
    color: #065f46;
}

[data-theme="dark"] .status-active,
.dark-mode .status-active {
    background: #064e3b;
    color: #6ee7b7;
}

.status-inactive {
    background: #fee2e2;
    color: #991b1b;
}

[data-theme="dark"] .status-inactive,
.dark-mode .status-inactive {
    background: #7f1d1d;
    color: #fca5a5;
}

.status-failed {
    background: #fee2e2;
    color: #991b1b;
}

[data-theme="dark"] .status-failed,
.dark-mode .status-failed {
    background: #7f1d1d;
    color: #fca5a5;
}

/* Bulk Actions */
.bulk-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--spacing-md);
    background: var(--bg-primary);
    border-radius: 8px;
    margin-top: var(--spacing-md);
}

.pagination-bulk-actions {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    flex: 1;
    justify-content: center;
}

.bulk-selected-count {
    font-size: var(--font-size-sm);
    font-weight: 500;
    color: var(--text-primary);
    white-space: nowrap;
}

.bulk-buttons {
    display: flex;
    gap: var(--spacing-sm);
}

.btn-sm {
    padding: 6px 12px;
    font-size: var(--font-size-sm);
    min-height: 32px;
}

/* Upload Area */
.upload-area {
    background: var(--bg-primary);
    border-radius: 8px;
    padding: var(--spacing-xl);
    margin-bottom: var(--spacing-lg);
    color: var(--text-primary);
}

.upload-dropzone {
    border: 2px dashed var(--border);
    border-radius: 8px;
    padding: var(--spacing-xl);
    text-align: center;
    transition: all 0.2s;
    min-height: 200px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-md);
    background: var(--bg-secondary);
    color: var(--text-primary);
}

.upload-dropzone:hover,
.upload-dropzone.dragover {
    border-color: var(--primary);
    background: var(--primary-light);
}

.upload-hint {
    font-size: var(--font-size-sm);
    color: var(--text-tertiary);
    margin-top: var(--spacing-sm);
}

.upload-options {
    margin-bottom: var(--spacing-lg);
    display: flex;
    gap: var(--spacing-lg);
    flex-wrap: wrap;
    padding: var(--spacing-md);
    background: var(--bg-secondary);
    border-radius: 8px;
}

.sage-segmented-control {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px;
    margin: 0 0 var(--spacing-md) 0;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--bg-secondary);
}

.sage-segmented-option {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 8px 14px;
    border-radius: 8px;
    color: var(--text-secondary);
    font-weight: 700;
    cursor: pointer;
    user-select: none;
}

.sage-segmented-option input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.sage-segmented-option span {
    pointer-events: none;
}

.sage-segmented-option.active {
    background: var(--primary);
    color: #fff;
    box-shadow: var(--shadow-sm);
}

.sage-segmented-option:focus-within {
    outline: 2px solid var(--focus-ring, rgba(37, 99, 235, 0.35));
    outline-offset: 2px;
}

.upload-queue {
    margin-top: var(--spacing-lg);
}

.upload-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--spacing-md);
    background: var(--bg-secondary);
    border-radius: 8px;
    margin-bottom: var(--spacing-sm);
    color: var(--text-primary);
    border: 1px solid var(--border);
}

.upload-progress {
    width: 100%;
    height: 8px;
    background: var(--bg-tertiary);
    border-radius: 4px;
    overflow: hidden;
    margin-top: var(--spacing-sm);
}

.upload-progress-bar {
    height: 100%;
    background: var(--primary);
    transition: width 0.3s;
}

/* Form Elements */
.form-group {
    margin-bottom: var(--spacing-lg);
}

.form-group label {
    display: block;
    margin-bottom: var(--spacing-sm);
    font-weight: 500;
    color: var(--text-primary);
}

.form-input {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid var(--border);
    border-radius: 8px;
    font-size: var(--font-size-base);
    font-family: var(--font-family);
    min-height: 44px;
    background: var(--bg-primary);
    color: var(--text-primary);
}

.form-input:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 3px var(--primary-light);
}

.form-input.readonly,
.form-input[readonly] {
    background-color: var(--bg-secondary);
    color: var(--text-primary);
    cursor: not-allowed;
    opacity: 0.9;
}

.form-input.readonly:focus,
.form-input[readonly]:focus {
    border-color: var(--border);
    box-shadow: none;
}

.read-only-form .form-input {
    background-color: var(--bg-secondary);
    cursor: not-allowed;
}

.form-readonly-value {
    padding: 10px 14px;
    background-color: var(--bg-secondary);
    border: 1px solid var(--border);
    border-radius: 8px;
    color: var(--text-primary);
    font-size: var(--font-size-base);
    min-height: 44px;
    display: flex;
    align-items: center;
}

textarea.form-input {
    min-height: 120px;
    resize: vertical;
}

/* Enhanced Form Styles */
.enhanced-form {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-lg);
}

.form-field {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
}

.form-label {
    font-weight: 500;
    color: var(--text-primary);
    font-size: var(--font-size-base);
}

.form-label .required {
    color: var(--error);
}

.form-fieldset {
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: var(--spacing-md);
    margin: 0;
}
.form-legend {
    padding: 0 8px;
    font-weight: 600;
    color: var(--text-primary);
}

/* Model config modal: two columns, fit one screen without vertical scroll */
.model-config-modal-content {
    max-width: 820px;
    width: 95vw;
    max-height: 90vh;
    display: flex;
    flex-direction: column;
}
.model-config-modal-body {
    flex: 1;
    min-height: 0;
    overflow: hidden;
    padding: var(--spacing-md) var(--spacing-lg);
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
}
/* Section labels: overall vs model-specific */
.model-config-section-title {
    font-size: var(--font-size-sm);
    font-weight: 600;
    color: var(--text-secondary);
    margin: 0 0 var(--spacing-xs) 0;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}
/* Overall model setup: one column (full width), applies to both models */
.model-config-overall {
    flex-shrink: 0;
    padding-bottom: var(--spacing-sm);
    border-bottom: 1px solid var(--border);
}
.model-config-top-row {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
}
.model-config-top-row .form-group {
    margin-bottom: 0;
}
/* Model-specific: two columns (LLM | Embedding) */
.model-config-models {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    padding-top: var(--spacing-sm);
}
.model-config-models .model-config-section-title {
    flex-shrink: 0;
}
.model-config-columns {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing-md);
    min-height: 0;
    flex: 1;
    align-content: start;
}
.model-config-col {
    min-width: 0;
    margin: 0;
    padding: var(--spacing-sm) var(--spacing-md);
    display: flex;
    flex-direction: column;
    gap: 6px;
}
#model-config-modal .form-group {
    margin-bottom: 0;
}
#model-config-modal .form-credentials {
    margin-top: 2px;
}
#model-config-modal .form-credentials .form-group {
    margin-bottom: 0;
}
#model-config-modal .form-credentials .form-group + .form-group {
    margin-top: 6px;
}
#model-config-modal .form-hint {
    margin-top: 2px;
}

.form-hint {
    font-size: var(--font-size-sm);
    color: var(--text-tertiary);
    margin-top: -4px;
}

.field-error {
    color: var(--error);
    font-size: var(--font-size-sm);
    margin-top: 4px;
    display: none;
    line-height: 1.4;
    min-height: 20px;
}

.field-error-input {
    border-color: var(--error) !important;
    box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.1) !important;
}

.field-error-input:focus {
    border-color: var(--error) !important;
    box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.2) !important;
}

/* Scope modal: tabbed interface */
.scope-form-tabbed {
    display: flex;
    flex-direction: column;
    min-height: 0;
}
/* Reduce gap between "Edit Search Scope" header and Scope details / Content tabs */
#form-modal .modal-header {
    padding-bottom: 6px;
}
#form-modal .modal-body {
    padding-top: 6px;
}
.scope-modal-tabs {
    display: flex;
    gap: 0;
    border-bottom: 2px solid var(--border);
    margin-bottom: var(--spacing-sm);
    margin-top: 0;
    flex-shrink: 0;
}
.scope-tab-btn {
    padding: 6px 14px;
    border: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    background: transparent;
    color: var(--text-secondary);
    font-size: var(--font-size-sm);
    font-weight: 600;
    cursor: pointer;
    border-radius: 6px 6px 0 0;
    transition: color 0.2s, background 0.2s, border-color 0.2s;
}
.scope-tab-btn:hover {
    color: var(--text-primary);
    background: var(--bg-secondary);
}
.scope-tab-btn.active {
    color: var(--primary);
    border-bottom-color: var(--primary);
    background: var(--bg-primary);
}
.scope-tab-panel {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    padding-bottom: var(--spacing-sm);
}
.scope-form-actions {
    margin-top: var(--spacing-sm);
    padding-top: var(--spacing-sm);
    border-top: 1px solid var(--border);
    flex-shrink: 0;
}

/* Scope modal: Content tab - filters and two-panel table */
.scope-content-tab-hint {
    margin-bottom: 6px;
    margin-top: 0;
    color: var(--text-secondary);
    font-size: var(--font-size-sm);
}
/* Reduce vertical gaps in Content tab so more rows fit */
#scope-panel-content .user-controls-row {
    margin-bottom: 6px;
}
#scope-panel-content .user-pagination-info {
    padding: 4px 8px;
    margin-bottom: 2px;
}
#scope-panel-content .user-pagination-info#scope-content-pagination-info-bottom {
    margin-top: 2px;
}
#scope-panel-content .scope-content-single-panel {
    margin-bottom: 6px;
}
#scope-panel-content .scope-panel-header {
    padding: 4px 8px;
}
#scope-panel-content .scope-content-table-wrapper {
    max-height: 420px;
    min-height: 180px;
}
#scope-panel-content .form-field.scope-selected-summary {
    margin-bottom: 0;
}
#scope-panel-content .scope-selected-summary .form-label {
    margin-bottom: 2px;
}
.scope-selected-header-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 4px;
}
.scope-selected-header-row .form-label {
    margin-bottom: 0;
}
.scope-selected-popout-btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 8px;
    font-size: var(--font-size-sm);
}
#scope-panel-content .scope-selected-table-wrapper,
#chatbot-form .scope-selected-table-wrapper {
    max-height: 220px;
    min-height: 80px;
}
.scope-selected-table-wrapper .scope-content-empty {
    padding: 8px;
    color: var(--text-secondary);
    font-style: italic;
}
.scope-content-filters-row {
    display: flex;
    flex-wrap: nowrap;
    gap: var(--spacing-sm);
    margin-bottom: var(--spacing-md);
    align-items: center;
}
.scope-content-filters-row .scope-content-search {
    min-width: 180px;
    flex: 1;
    max-width: 280px;
    padding: 8px 12px;
    font-size: var(--font-size-sm);
}
.scope-content-filters-row .scope-content-filter {
    min-width: 110px;
    max-width: 140px;
    padding: 8px 10px;
    font-size: var(--font-size-sm);
}
.scope-content-filters-row #scope-content-filter-filepath {
    min-width: 140px;
    max-width: 180px;
    padding: 8px 10px;
    font-size: var(--font-size-sm);
}
.scope-content-single-panel {
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--bg-primary);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    margin-bottom: var(--spacing-sm);
}
.scope-panel-header {
    padding: 6px 10px;
    border-bottom: 1px solid var(--border);
    font-weight: 600;
    font-size: var(--font-size-sm);
    color: var(--text-primary);
    flex-shrink: 0;
}
.scope-content-table-wrapper {
    overflow-x: auto;
    overflow-y: auto;
    flex: 1;
    min-height: 200px;
    max-height: 320px;
}
.scope-content-table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--font-size-sm);
}
.scope-content-table th,
.scope-content-table td {
    padding: 4px 6px;
    text-align: left;
    border-bottom: 1px solid var(--border);
    vertical-align: top;
    white-space: normal;
    word-wrap: break-word;
    overflow-wrap: break-word;
    line-height: 1.3;
}
.scope-content-table th {
    background: var(--bg-secondary);
    font-weight: 600;
    color: var(--text-secondary);
    font-size: 11px;
}
.scope-content-table th.hidden,
.scope-content-table td.hidden {
    display: none;
}
.scope-col-check {
    width: 44px;
    text-align: center;
    vertical-align: middle;
}
.scope-content-table tbody tr:hover {
    background: var(--primary-light);
}
.scope-cell-title {
    max-width: 280px;
    white-space: normal;
    word-wrap: break-word;
    overflow-wrap: break-word;
    color: var(--text-primary);
}
.scope-cell-id { width: 50px; color: var(--text-tertiary); white-space: normal; word-wrap: break-word; }
.scope-cell-filepath {
    max-width: 200px;
    white-space: normal;
    word-wrap: break-word;
    overflow-wrap: break-word;
    color: var(--text-secondary);
    font-size: var(--font-size-xs, 12px);
}
.scope-cell-source { width: 90px; color: var(--text-secondary); }
.scope-cell-dept { width: 100px; color: var(--text-secondary); }
.scope-cell-status { width: 88px; color: var(--text-secondary); }
.scope-content-empty,
.scope-content-loading,
.scope-content-error {
    padding: var(--spacing-md);
    color: var(--text-tertiary);
    font-size: var(--font-size-sm);
    font-style: italic;
    text-align: center;
}
.scope-content-error {
    color: var(--error);
    font-style: normal;
}
.scope-selected-summary {
    margin-bottom: 0;
}
.scope-selected-summary .form-label {
    margin-bottom: 4px;
}
.scope-selected-textarea {
    font-size: var(--font-size-sm);
    resize: vertical;
    min-height: 80px;
    background: var(--bg-secondary);
    color: var(--text-primary);
}

@media (max-width: 900px) {
    .scope-content-filters-row {
        flex-wrap: wrap;
    }
    .scope-content-filters-row .scope-content-filter {
        max-width: none;
    }
}

/* CodeGuide-style block-level error (showError) - red block + X icon */
.error-message-block {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    border-radius: 8px;
    background: #fef2f2;
    border: 1px solid #fecaca;
    padding: 16px;
    margin-bottom: var(--spacing-md);
}

[data-theme="dark"] .error-message-block {
    background: rgba(127, 29, 29, 0.3);
    border-color: #991b1b;
}

.error-message-block .error-message-icon {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    color: #f87171;
}

[data-theme="dark"] .error-message-block .error-message-icon {
    color: #fca5a5;
}

.error-message-block .error-message-text {
    font-size: 14px;
    font-weight: 500;
    color: #991b1b;
}

[data-theme="dark"] .error-message-block .error-message-text {
    color: #fecaca;
}

/* CodeGuide-style field-level error (showFieldError) - smaller red block + X icon */
.field-error-block {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-top: 4px;
    border-radius: 8px;
    background: #fef2f2;
    border: 1px solid #fecaca;
    padding: 8px;
}

[data-theme="dark"] .field-error-block {
    background: rgba(127, 29, 29, 0.3);
    border-color: #991b1b;
}

.field-error-block .field-error-icon {
    flex-shrink: 0;
    width: 16px;
    height: 16px;
    color: #f87171;
}

[data-theme="dark"] .field-error-block .field-error-icon {
    color: #fca5a5;
}

.field-error-block .field-error-text {
    font-size: 14px;
    font-weight: 500;
    color: #991b1b;
}

[data-theme="dark"] .field-error-block .field-error-text {
    color: #fecaca;
}

/* Error message styling */
.error {
    color: var(--error);
    background: rgba(239, 68, 68, 0.1);
    border: 1px solid var(--error);
    border-radius: 8px;
    padding: var(--spacing-md);
}

[data-theme="dark"] .error,
.dark-mode .error {
    background: rgba(239, 68, 68, 0.2);
}

/* Form field with error styling */
.form-field.has-error .form-label {
    color: var(--error);
}

.form-field.has-error .form-input {
    border-color: var(--error);
}

/* Confirmation Modal Styles */
#confirm-modal {
    z-index: 10000;
}

#confirm-modal .modal-content {
    animation: modalSlideIn 0.3s ease-out;
    max-height: calc(100vh - 24px);
    display: flex;
    flex-direction: column;
    min-height: 0;
}

#confirm-modal .modal-body {
    padding: var(--spacing-md) var(--spacing-lg);
    font-size: var(--font-size-base);
    line-height: 1.5;
    color: var(--text-primary);
    flex-shrink: 0;
}

#confirm-modal .modal-footer {
    display: flex;
    gap: 12px;
    justify-content: flex-end;
    padding: 16px 24px;
    border-top: 1px solid var(--border);
    background: var(--bg-secondary);
}

#confirm-modal .btn-danger {
    background: var(--error);
    color: white;
    border: none;
    padding: 10px 20px;
    border-radius: 6px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s;
}

#confirm-modal .btn-danger:hover {
    background: #dc2626;
}

#confirm-modal .btn-danger:active {
    background: #b91c1c;
}

/* Filter and Column modals - CodeGuide-style overlay and panel */
.filter-modal .modal-overlay,
.column-management-modal .modal-overlay {
    background: rgba(0, 0, 0, 0.5);
}

[data-theme="dark"] .filter-modal .modal-overlay,
[data-theme="dark"] .column-management-modal .modal-overlay {
    background: rgba(0, 0, 0, 0.7);
}

.filter-modal .modal-content,
.column-management-modal .modal-content {
    border-radius: 12px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    max-height: calc(100vh - 24px);
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.filter-modal .modal-body,
.column-management-modal .modal-body {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
}

[data-theme="dark"] .filter-modal .modal-content,
[data-theme="dark"] .column-management-modal .modal-content {
    background: var(--list-card-bg, var(--bg-primary));
}

.filter-modal .modal-close,
.column-management-modal .modal-close {
    background: none;
    border: none;
    padding: 10px;
    min-width: 44px;
    min-height: 44px;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    cursor: pointer;
    color: var(--text-secondary);
    transition: color 0.2s, background 0.2s;
}

.filter-modal .modal-close:hover,
.column-management-modal .modal-close:hover {
    background: var(--bg-secondary);
    color: var(--text-primary);
}

.filter-modal .modal-close svg,
.column-management-modal .modal-close svg {
    width: 24px;
    height: 24px;
}

/* Filters modal: grid layout fits fields without vertical scroll */
.filter-modal .filter-modal-body {
    align-items: start;
}
@media (max-width: 620px) {
    .filter-modal .filter-modal-body {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (max-width: 420px) {
    .filter-modal .filter-modal-body {
        grid-template-columns: 1fr;
    }
}

@keyframes modalSlideIn {
    from {
        opacity: 0;
        transform: translateY(-20px) scale(0.95);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

/* Chatbots Cards Grid */
.chatbots-cards-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-lg);
    padding: var(--spacing-sm);
    width: 100%;
    box-sizing: border-box;
}

/* Responsive grid for chatbots cards */
@media (max-width: 768px) {
    .chatbots-cards-grid {
        grid-template-columns: 1fr;
    }
}

@media (min-width: 769px) and (max-width: 1023px) {
    .chatbots-cards-grid {
        grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    }
}

@media (min-width: 1024px) {
    .chatbots-cards-grid {
        grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    }
}

@media (min-width: 1440px) {
    .chatbots-cards-grid {
        grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
    }
}

/* Chatbot Card Styles */
.chatbot-card {
    background: var(--bg-primary);
    border: 2px solid var(--border);
    border-radius: 8px;
    padding: var(--spacing-lg);
    transition: box-shadow 0.2s, transform 0.2s, border-color 0.2s;
    display: flex;
    flex-direction: column;
    height: 100%;
    box-sizing: border-box;
}

.chatbot-card:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    transform: translateY(-2px);
    border-color: var(--primary);
}

.chatbot-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--spacing-md);
    padding-bottom: var(--spacing-md);
    border-bottom: 1px solid var(--border);
}

.chatbot-header h3 {
    margin: 0;
    font-size: var(--font-size-lg);
    font-weight: 600;
    color: var(--text-primary);
    flex: 1;
}

.chatbot-body {
    flex: 1;
    margin-bottom: var(--spacing-md);
}

.chatbot-details {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
}

.chatbot-details .detail-item {
    font-size: var(--font-size-sm);
    color: var(--text-secondary);
}

.chatbot-details .detail-item strong {
    color: var(--text-primary);
    margin-right: var(--spacing-xs);
}

.chatbot-actions {
    display: flex;
    gap: var(--spacing-xs);
    flex-wrap: wrap;
    padding-top: var(--spacing-md);
    border-top: 1px solid var(--border);
    margin-top: auto;
}

.answer-quality-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--spacing-md);
}

.answer-quality-wide {
    grid-column: 1 / -1;
}

.answer-quality-advanced {
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: var(--spacing-md);
    margin: var(--spacing-md) 0;
    background: var(--bg-secondary);
}

.answer-quality-advanced summary {
    cursor: pointer;
    font-weight: 600;
    margin-bottom: var(--spacing-md);
}

.answer-quality-preview {
    font-family: var(--font-mono, Consolas, Monaco, monospace);
    font-size: 12px;
    line-height: 1.5;
    min-height: 180px;
}

.persona-builder-toolbar {
    display: grid;
    grid-template-columns: minmax(240px, 1fr) auto;
    align-items: end;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-md);
}

.persona-builder-panel {
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--bg-primary);
    padding: var(--spacing-md);
    margin-bottom: var(--spacing-md);
}

.persona-builder-panel-header {
    display: flex;
    justify-content: space-between;
    gap: var(--spacing-md);
    align-items: baseline;
    margin-bottom: var(--spacing-md);
    border-bottom: 1px solid var(--border);
    padding-bottom: var(--spacing-sm);
}

.persona-builder-panel-header h4 {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 800;
    color: var(--text-primary);
}

.persona-builder-panel-header span,
.persona-preview-status {
    color: var(--text-secondary);
    font-size: 0.78rem;
    font-weight: 700;
}

.persona-preview-status.is-warning {
    color: var(--warning);
}

.persona-builder-section {
    background: var(--bg-primary);
}

.language-overrides-table-wrap,
.router-route-row {
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--bg-primary);
}

.language-overrides-table-wrap {
    overflow-x: auto;
}

.language-overrides-table {
    width: 100%;
    min-width: 860px;
    border-collapse: collapse;
}

.language-overrides-table th,
.language-overrides-table td {
    padding: 10px;
    border-bottom: 1px solid var(--border);
    text-align: left;
    vertical-align: top;
}

.language-overrides-table th {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--text-secondary);
    background: var(--bg-secondary);
}

.language-overrides-table tr:last-child td {
    border-bottom: 0;
}

.language-override-toggle,
.router-route-enabled {
    display: inline-flex;
    gap: 8px;
    align-items: center;
    font-weight: 700;
    color: var(--text-primary);
}

.router-route-row {
    padding: var(--spacing-md);
    margin-bottom: var(--spacing-md);
}

.router-route-topline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-md);
}

.answer-quality-modal section {
    border-bottom: 1px solid var(--border);
    padding: 0 0 var(--spacing-lg);
    margin-bottom: var(--spacing-lg);
}

.answer-quality-modal section:last-child {
    border-bottom: 0;
}

.answer-quality-health-grid {
    margin: var(--spacing-md) 0;
}

.answer-quality-health-card .stat-value {
    font-size: 24px;
}

.answer-quality-failures {
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: var(--spacing-sm) var(--spacing-md);
    background: var(--bg-secondary);
}

.quality-run-row {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-md);
    align-items: center;
    padding: var(--spacing-sm) 0;
    border-bottom: 1px solid var(--border);
    font-size: var(--font-size-sm);
}

.answer-trace {
    margin-top: 10px;
    border-top: 1px solid var(--border);
    padding-top: 8px;
    font-size: 12px;
}

.answer-trace summary {
    cursor: pointer;
    font-weight: 600;
}

.answer-trace-table-wrap {
    max-width: 100%;
    overflow-x: auto;
    margin-top: 8px;
}

@media (max-width: 768px) {
    .answer-quality-grid {
        grid-template-columns: 1fr;
    }

    .persona-builder-toolbar,
    .persona-builder-panel-header {
        grid-template-columns: 1fr;
        display: grid;
    }
}

/* Chatbot Wizard Styles */
.wizard-progress {
    display: flex;
    justify-content: space-between;
    margin-bottom: var(--spacing-lg);
    padding: 0 var(--spacing-md);
    position: relative;
}

.wizard-progress::before {
    content: '';
    position: absolute;
    top: 20px;
    left: 10%;
    right: 10%;
    height: 2px;
    background: var(--border);
    z-index: 0;
}

.wizard-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
    z-index: 1;
    flex: 1;
}

.wizard-step-number {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--bg-secondary);
    border: 2px solid var(--border);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    color: var(--text-secondary);
    margin-bottom: var(--spacing-xs);
    transition: all 0.3s;
}

.wizard-step.active .wizard-step-number {
    background: var(--primary);
    border-color: var(--primary);
    color: white;
}

.wizard-step-label {
    font-size: var(--font-size-sm);
    color: var(--text-secondary);
    text-align: center;
}

.wizard-step.active .wizard-step-label {
    color: var(--text-primary);
    font-weight: 600;
}

.wizard-step-content {
    animation: fadeIn 0.3s ease-in;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.wizard-actions {
    display: flex;
    justify-content: space-between;
    gap: var(--spacing-sm);
    margin-top: var(--spacing-lg);
    padding-top: var(--spacing-lg);
    border-top: 1px solid var(--border);
}

.radio-option {
    transition: all 0.2s;
    color: var(--text-primary);
}

.radio-option:hover {
    background: var(--bg-secondary);
}

.radio-option input[type="radio"]:checked + div {
    color: var(--primary);
}

.review-summary {
    background: var(--bg-secondary);
    border-radius: 8px;
    padding: var(--spacing-lg);
}

.review-section {
    margin-bottom: var(--spacing-md);
    padding-bottom: var(--spacing-md);
    border-bottom: 1px solid var(--border);
}

.review-section:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

.form-checkbox-group {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-xs);
}

.checkbox-label {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    cursor: pointer;
    font-size: var(--font-size-base);
    color: var(--text-primary);
}

.checkbox-label input[type="checkbox"] {
    width: 18px;
    height: 18px;
    cursor: pointer;
}

.form-actions {
    display: flex;
    gap: var(--spacing-md);
    justify-content: flex-end;
    padding-top: var(--spacing-md);
    border-top: 1px solid var(--border);
}

/* Modal - CodeGuide-style overlay and panel; fit viewport, no page scroll */
.modal {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10000;
    padding: 12px;
    overflow: hidden;
}

[data-theme="dark"] .modal {
    background: rgba(0, 0, 0, 0.7);
}

.modal-content {
    background: var(--bg-primary);
    border-radius: 12px;
    max-width: 600px;
    width: 100%;
    max-height: calc(100vh - 24px);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    margin: auto;
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

[data-theme="dark"] .modal-content {
    background: var(--list-card-bg, var(--bg-primary));
}

.modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--spacing-md) var(--spacing-lg);
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
}

.modal-header h3 {
    margin: 0;
    font-size: var(--font-size-xl);
    font-weight: 600;
    color: var(--text-primary);
}

/* Modal close: min 44x44px touch target (WCAG 2.2 AAA) */
.modal-close {
    background: none;
    border: none;
    line-height: 1;
    color: var(--text-secondary);
    cursor: pointer;
    padding: 10px;
    min-width: 44px;
    min-height: 44px;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    transition: color 0.2s, background 0.2s;
}

.modal-close:hover {
    background: var(--bg-secondary);
    color: var(--text-primary);
}

.modal-close svg {
    width: 24px;
    height: 24px;
}

.modal-body {
    padding: var(--spacing-md) var(--spacing-lg);
    overflow-y: auto;
    overflow-x: hidden;
    flex: 1;
    min-height: 0;
}

/* Form modal (scope, department, etc.) - wider for tabbed scope form */
#form-modal .modal-content {
    max-width: 1200px;
    width: 95vw;
    max-height: calc(100vh - 24px);
}
#form-modal .modal-body {
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow-y: auto;
}

.modal-footer {
    display: flex;
    justify-content: flex-end;
    gap: var(--spacing-md);
    padding: var(--spacing-md) var(--spacing-lg);
    border-top: 1px solid var(--border);
    flex-shrink: 0;
}

/* Content Ingestion Modal - Optimized to fit on screen */
#content-ingestion-modal .modal-content {
    max-height: min(calc(100vh - 40px), 95vh);
    display: flex;
    flex-direction: column;
    min-height: 0;
}

#content-ingestion-modal .modal-header {
    padding: var(--spacing-sm) var(--spacing-lg);
    flex-shrink: 0;
}

#content-ingestion-modal .modal-body {
    padding: var(--spacing-sm) var(--spacing-lg);
    overflow-y: auto;
    overflow-x: hidden;
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

/* Fit form in viewport: avoid scroll when possible */
#content-ingestion-modal .modal-body .form-field:first-child {
    margin-bottom: var(--spacing-xs);
}

#content-ingestion-modal .modal-footer,
.content-ingestion-modal-footer {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-end;
    gap: var(--spacing-md);
    padding: var(--spacing-md) var(--spacing-lg);
    flex-shrink: 0;
    border-top: 1px solid var(--border);
}

#content-ingestion-modal .form-field {
    margin-bottom: var(--spacing-xs);
}

#content-ingestion-modal #content-ingestion-form .form-field {
    margin-bottom: var(--spacing-xs);
}

#content-ingestion-modal #content-ingestion-form .enhanced-form {
    display: flex;
    flex-direction: column;
    gap: 0;
}

#content-ingestion-modal .form-field:last-child {
    margin-bottom: 0;
}

#content-ingestion-modal .form-label {
    font-size: var(--font-size-sm);
    margin-bottom: 2px;
}

#content-ingestion-modal .form-hint {
    font-size: 11px;
    margin-top: 1px;
    line-height: 1.3;
}

#content-ingestion-modal .form-input {
    padding: 6px 10px;
    font-size: var(--font-size-sm);
    min-height: 34px;
}

/* Keep URLs textarea compact so modal fits without scroll */
#content-ingestion-modal .content-urls-textarea {
    min-height: 56px;
    max-height: 88px;
    resize: vertical;
}

/* Follow links: single row so modal fits without scroll */
#content-ingestion-modal .content-follow-links-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--spacing-sm) var(--spacing-md);
    margin-bottom: 2px;
}
#content-ingestion-modal .content-follow-links-row .form-checkbox-label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    white-space: nowrap;
}
#content-ingestion-modal .content-max-pages-label {
    margin: 0 4px 0 var(--spacing-sm);
    white-space: nowrap;
}
#content-ingestion-modal .content-max-pages-input {
    width: 72px;
    padding: 4px 8px;
    min-height: 28px;
}
#content-ingestion-modal .content-max-layers-label {
    margin: 0 4px 0 var(--spacing-sm);
    white-space: nowrap;
}
#content-ingestion-modal .content-max-layers-input {
    width: 48px;
    padding: 4px 8px;
    min-height: 28px;
}
#content-ingestion-modal .content-follow-links-field {
    margin-bottom: var(--spacing-xs);
}

.content-website-links-list .content-website-links-table,
.content-website-links-table-wrap .content-website-links-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
}
.content-website-links-table thead th {
    text-align: left;
    padding: 6px 8px;
    border-bottom: 1px solid var(--border);
    background: var(--bg-secondary);
    font-weight: 600;
}
.content-website-links-table tbody td {
    padding: 4px 8px;
    border-bottom: 1px solid var(--border);
}
.content-website-links-table tbody tr:hover {
    background: var(--bg-secondary);
}

#content-ingestion-modal .form-actions {
    margin-top: 2px;
    margin-bottom: 0;
    padding-top: var(--spacing-sm);
}

#content-ingestion-modal .content-follow-links-field .form-checkbox-group {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-md);
    margin-bottom: 6px;
}

#content-ingestion-modal .content-follow-checkboxes .form-checkbox-label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

#content-ingestion-modal .form-field-inline {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    margin-bottom: 4px;
}

#content-ingestion-modal .form-field-inline .form-label {
    margin-bottom: 0;
    white-space: nowrap;
}

#content-ingestion-modal .form-field-inline .form-input {
    max-width: 80px;
}

#content-ingestion-modal .form-actions {
    margin-top: var(--spacing-xs);
    margin-bottom: 0;
}

#content-ingestion-modal .upload-dropzone {
    padding: 24px 16px !important;
}

#content-ingestion-modal .upload-hint {
    margin-top: 12px !important;
    font-size: 12px !important;
}

#content-ingestion-modal .upload-area {
    margin-top: var(--spacing-sm);
}

/* View Details Modal Styles - Following UI/UX Standards */
.view-details-modal .modal-content {
    max-height: calc(100vh - 24px);
    display: flex;
    flex-direction: column;
    min-height: 0;
}
.view-details-modal .modal-header {
    background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
    color: white;
    border-bottom: none;
    padding: var(--spacing-lg) var(--spacing-xl);
}

.view-details-modal .modal-header h3 {
    color: white;
    font-size: var(--font-size-xl);
    font-weight: 600;
    margin: 0;
}

.view-details-modal .modal-close {
    color: white;
    opacity: 0.9;
}

.view-details-modal .modal-close:hover {
    background: rgba(255, 255, 255, 0.1);
    color: white;
    opacity: 1;
}

.view-details-modal .modal-body {
    padding: var(--spacing-md) var(--spacing-lg);
    background: var(--bg-primary);
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
}

.view-detail-row {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: var(--spacing-md);
    padding: var(--spacing-sm) 0;
    border-bottom: 1px solid var(--bg-secondary);
    align-items: center;
    transition: background-color 0.2s;
}

.view-detail-row:hover {
    background-color: var(--bg-secondary);
    margin: 0 calc(-1 * var(--spacing-xl));
    padding-left: var(--spacing-xl);
    padding-right: var(--spacing-xl);
    border-radius: 8px;
}

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

.view-detail-label {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    font-weight: 600;
    color: var(--text-secondary);
    font-size: var(--font-size-sm);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.view-detail-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--primary);
    flex-shrink: 0;
    width: 20px;
    height: 20px;
}

.view-detail-icon svg {
    width: 18px;
    height: 18px;
    stroke-width: 2;
}

.view-detail-label-text {
    flex: 1;
}

.view-detail-value {
    color: var(--text-primary);
    font-size: var(--font-size-base);
    font-weight: 400;
    word-break: break-word;
    line-height: 1.6;
}

.view-detail-link {
    color: var(--primary);
    text-decoration: none;
    transition: color 0.2s;
}

.view-detail-link:hover {
    color: var(--primary-hover);
    text-decoration: underline;
}

.view-details-modal .modal-footer {
    padding: var(--spacing-md) var(--spacing-lg);
    border-top: 1px solid var(--border);
    background: var(--bg-primary);
    display: flex;
    justify-content: flex-end;
}

.view-details-modal .modal-footer .btn {
    min-width: 100px;
}

/* View Source Document Modal (Content Management) */
.view-source-document-modal .modal-content {
    max-height: calc(100vh - 24px);
    display: flex;
    flex-direction: column;
    min-height: 0;
}
.view-source-document-modal .modal-body {
    padding: 0;
    background: var(--bg-secondary);
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
}
.view-source-document-modal .modal-body .view-source-message,
.view-source-document-modal .modal-body .view-source-hint,
.view-source-document-modal .modal-body .view-source-loading {
    padding: var(--spacing-md) var(--spacing-lg);
}

.view-source-iframe {
    width: 100%;
    flex: 1;
    min-height: 0;
    border: none;
    background: var(--bg-primary);
}

.view-source-pre {
    margin: 0;
    padding: var(--spacing-lg);
    font-size: var(--font-size-sm);
    white-space: pre-wrap;
    word-break: break-word;
    overflow: auto;
    flex: 1;
    min-height: 0;
    background: var(--bg-primary);
    color: var(--text-primary);
    border: none;
}

/* Markdown reader in View Source modal */
.view-source-markdown {
    padding: var(--spacing-lg);
    font-size: var(--font-size-sm);
    overflow: auto;
    flex: 1;
    min-height: 0;
    background: var(--bg-primary);
    color: var(--text-primary);
    line-height: 1.5;
}
.view-source-markdown h1 { font-size: 1.5em; margin: 0.75em 0 0.5em; }
.view-source-markdown h2 { font-size: 1.25em; margin: 0.75em 0 0.5em; }
.view-source-markdown h3 { font-size: 1.1em; margin: 0.5em 0 0.35em; }
.view-source-markdown p { margin: 0.5em 0; }
.view-source-markdown ul, .view-source-markdown ol { margin: 0.5em 0; padding-left: 1.5em; }
.view-source-markdown code {
    background: var(--bg-secondary);
    padding: 0.15em 0.4em;
    border-radius: 4px;
    font-size: 0.9em;
}
.view-source-markdown pre { margin: 0.5em 0; padding: var(--spacing-md); background: var(--bg-secondary); border-radius: 6px; overflow: auto; }
.view-source-markdown pre code { padding: 0; background: none; }
.view-source-markdown a { color: var(--primary); text-decoration: none; }
.view-source-markdown a:hover { text-decoration: underline; }
.view-source-markdown blockquote { margin: 0.5em 0; padding-left: 1em; border-left: 3px solid var(--border); color: var(--text-secondary); }

.view-source-loading,
.view-source-message {
    padding: var(--spacing-xl);
    color: var(--text-secondary);
}

.view-source-hint {
    margin-top: 0.5em;
    font-size: var(--font-size-sm);
    opacity: 0.9;
}

.view-source-link {
    color: var(--primary);
    text-decoration: underline;
    word-break: break-all;
}
.view-source-link:hover {
    text-decoration: none;
}

.modal-header h3 {
    margin: 0;
    font-size: var(--font-size-xl);
}

.modal-close {
    background: none;
    border: none;
    font-size: 24px;
    cursor: pointer;
    color: var(--text-secondary);
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
}

.modal-close:hover {
    background: var(--bg-secondary);
}

.modal-body {
    padding: var(--spacing-lg);
}

/* Embed Test Modal Styles */
#embed-test-modal .modal-content {
    max-width: 1400px;
    width: 95vw;
    max-height: calc(100vh - 24px);
    min-height: 75vh;
    display: flex;
    flex-direction: column;
    min-height: 0;
    margin: auto;
}

#embed-test-modal .modal-body {
    flex: 1;
    overflow: hidden;
    padding: var(--spacing-lg);
    display: flex;
    flex-direction: column;
}

/* Two-Column Layout */
.embed-test-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing-lg);
    height: 100%;
    min-height: 0;
}

/* Test Chatbot mode: only show chatbot, no code panel */
#embed-test-modal.embed-test-chat-only .embed-test-code-panel,
.embed-test-modal-content.embed-test-chat-only .embed-test-code-panel {
    display: none !important;
}
.embed-test-modal-content.embed-test-chat-only .embed-test-layout {
    grid-template-columns: 1fr;
}

/* Embed Code mode: only show code block, no preview panel */
.embed-test-modal-content.embed-test-code-only .embed-test-preview-panel {
    display: none !important;
}
.embed-test-modal-content.embed-test-code-only .embed-test-layout {
    grid-template-columns: 1fr;
}
/* In Test Chatbot mode: hide preview header/description, chat fills the space */
.embed-test-modal-content.embed-test-chat-only .embed-test-preview-header,
.embed-test-modal-content.embed-test-chat-only .embed-test-preview-description {
    display: none !important;
}
.embed-test-modal-content.embed-test-chat-only .embed-test-preview-panel {
    border: none;
    padding: 0;
    align-items: center;
    justify-content: center;
}
.embed-test-modal-content.embed-test-chat-only .embed-test-preview {
    border: none;
    align-items: center;
    justify-content: center;
    min-height: 560px;
    overflow: hidden;
    padding: var(--spacing-md);
}

.embed-test-modal-content.embed-test-chat-only #embed-test-chat-interface[data-position] {
    position: relative;
    inset: auto;
    width: min(520px, 100%);
    max-width: 100%;
    height: min(620px, calc(100vh - 230px));
    min-height: 420px;
    max-height: 100%;
    margin: 0 auto;
}

/* Panel Styling (Left: Code, Right: Preview) */
.embed-test-code-panel,
.embed-test-preview-panel {
    display: flex;
    flex-direction: column;
    background: var(--bg-primary);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: var(--spacing-lg);
    min-height: 0;
    overflow: hidden;
}

.embed-test-panel-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--spacing-sm);
    padding-bottom: var(--spacing-sm);
    border-bottom: 1px solid var(--border);
}

.embed-test-panel-header h4 {
    margin: 0;
    font-size: var(--font-size-lg);
    font-weight: 600;
    color: var(--text-primary);
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
}

.embed-test-panel-actions {
    display: flex;
    gap: var(--spacing-xs);
}
.embed-test-format-actions {
    flex-wrap: wrap;
    align-items: center;
}
.embed-test-format-label {
    font-size: var(--font-size-sm);
    color: var(--text-secondary);
    margin-right: var(--spacing-xs);
}
.embed-format-btn.active {
    background: var(--primary);
    color: white;
    border-color: var(--primary);
}

.embed-test-panel-description {
    margin: 0 0 var(--spacing-md) 0;
    font-size: var(--font-size-sm);
    color: var(--text-secondary);
    line-height: 1.5;
}

/* Embed Code Container */
.embed-test-code-container {
    position: relative;
    flex: 1;
    min-height: 280px;
    display: flex;
    flex-direction: column;
}

.embed-test-code-input {
    font-family: 'Consolas', 'Monaco', 'Courier New', monospace;
    font-size: 13px;
    line-height: 1.6;
    width: 100%;
    flex: 1;
    min-height: 260px;
    padding: var(--spacing-md);
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--bg-secondary);
    color: var(--text-primary);
    resize: vertical;
}

.embed-test-code-input:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
}

.embed-test-code-input::placeholder {
    color: var(--text-tertiary);
}

/* Preview Area */
.embed-test-preview-panel {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.embed-test-preview {
    border: 2px solid var(--border);
    border-radius: 12px;
    flex: 1;
    min-height: 0;
    background: var(--bg-primary);
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

/* Placeholder State */
.embed-test-placeholder {
    text-align: center;
    color: var(--text-tertiary);
    padding: var(--spacing-xxl);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    height: 100%;
    background: var(--bg-secondary);
}

.embed-test-placeholder-icon {
    font-size: 64px;
    margin-bottom: var(--spacing-lg);
    opacity: 0.6;
    animation: pulse 2s ease-in-out infinite;
}

@keyframes pulse {
    0%, 100% { opacity: 0.6; transform: scale(1); }
    50% { opacity: 0.8; transform: scale(1.05); }
}

.embed-test-placeholder-title {
    font-size: var(--font-size-xl);
    font-weight: 600;
    color: var(--text-primary);
    margin: 0 0 var(--spacing-sm) 0;
}

.embed-test-placeholder-text {
    font-size: var(--font-size-base);
    color: var(--text-secondary);
    margin: 0;
    max-width: 400px;
    line-height: 1.6;
}

/* Chat Interface */
.embed-test-chat-interface {
    display: none;
    flex-direction: column;
    height: 100%;
}

/* Test Chatbot: position as widget (bottom-right, bottom-left, top-right, top-left) to match Appearance */
#embed-test-chat-interface[data-position="bottom-right"] {
    position: absolute;
    bottom: 16px;
    right: 16px;
    width: 380px;
    max-width: calc(100% - 32px);
    height: 520px;
    max-height: calc(100% - 32px);
    border-radius: 12px;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.15);
    overflow: hidden;
}
#embed-test-chat-interface[data-position="bottom-left"] {
    position: absolute;
    bottom: 16px;
    left: 16px;
    width: 380px;
    max-width: calc(100% - 32px);
    height: 520px;
    max-height: calc(100% - 32px);
    border-radius: 12px;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.15);
    overflow: hidden;
}
#embed-test-chat-interface[data-position="top-right"] {
    position: absolute;
    top: 16px;
    right: 16px;
    width: 380px;
    max-width: calc(100% - 32px);
    height: 520px;
    max-height: calc(100% - 32px);
    border-radius: 12px;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.15);
    overflow: hidden;
}
#embed-test-chat-interface[data-position="top-left"] {
    position: absolute;
    top: 16px;
    left: 16px;
    width: 380px;
    max-width: calc(100% - 32px);
    height: 520px;
    max-height: calc(100% - 32px);
    border-radius: 12px;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.15);
    overflow: hidden;
}

/* Test Chatbot: apply light theme when config has theme "light" (match Appearance setup) */
#embed-test-chat-interface[data-theme="light"] {
    --bg-primary: #ffffff;
    --bg-secondary: #f3f4f6;
    --bg-tertiary: #e5e7eb;
    --text-primary: #111827;
    --text-secondary: #4b5563;
    --text-tertiary: #6b7280;
    --border: #e5e7eb;
    background: #f3f4f6;
}
#embed-test-chat-interface[data-theme="light"] .embed-test-messages,
#embed-test-chat-interface[data-theme="light"] .embed-test-welcome-message {
    background: #f3f4f6 !important;
    color: #111827 !important;
}
#embed-test-chat-interface[data-theme="light"] .embed-test-chat-input-container {
    background: #ffffff !important;
    border-color: #e5e7eb;
}
#embed-test-chat-interface[data-theme="light"] .embed-test-chat-input {
    background: #ffffff !important;
    color: #111827 !important;
    border-color: #e5e7eb;
}
#embed-test-chat-interface[data-theme="light"] .embed-test-welcome-title {
    color: #111827;
}
#embed-test-chat-interface[data-theme="light"] .embed-test-welcome-subtitle {
    color: #4b5563;
}

/* Test Chatbot: apply dark theme when config has theme "dark" */
#embed-test-chat-interface[data-theme="dark"] {
    --bg-primary: #1f2937;
    --bg-secondary: #374151;
    --bg-tertiary: #4b5563;
    --text-primary: #f9fafb;
    --text-secondary: #d1d5db;
    --text-tertiary: #9ca3af;
    --border: #374151;
}
#embed-test-chat-interface[data-theme="dark"] .embed-test-messages,
#embed-test-chat-interface[data-theme="dark"] .embed-test-welcome-message {
    background: var(--bg-secondary);
    color: var(--text-primary);
}
#embed-test-chat-interface[data-theme="dark"] .embed-test-chat-input-container {
    background: var(--bg-primary);
    border-color: var(--border);
}
#embed-test-chat-interface[data-theme="dark"] .embed-test-chat-input {
    background: var(--bg-secondary);
    color: var(--text-primary);
    border-color: var(--border);
}

.embed-test-chat-header {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    padding: var(--spacing-md) var(--spacing-lg);
    display: flex;
    justify-content: space-between;
    align-items: center;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.embed-test-chat-header-content {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

.embed-test-chat-header-icon {
    font-size: var(--font-size-lg);
}

.embed-test-chat-header-title {
    font-size: var(--font-size-lg);
    font-weight: 600;
    color: white;
    margin: 0;
}

.embed-test-reset-btn {
    background: rgba(255, 255, 255, 0.2);
    color: white;
    border: 1px solid rgba(255, 255, 255, 0.3);
    backdrop-filter: blur(10px);
}

.embed-test-reset-btn:hover {
    background: rgba(255, 255, 255, 0.3);
}

.embed-test-messages {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    padding: var(--spacing-lg);
    background: var(--bg-secondary);
    scroll-behavior: smooth;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
}

.embed-test-messages::-webkit-scrollbar {
    width: 6px;
}

.embed-test-messages::-webkit-scrollbar-track {
    background: transparent;
}

.embed-test-messages::-webkit-scrollbar-thumb {
    background: rgba(0, 0, 0, 0.2);
    border-radius: 3px;
}

.embed-test-messages::-webkit-scrollbar-thumb:hover {
    background: rgba(0, 0, 0, 0.3);
}

/* Chat Message Styles */
.chat-message {
    display: flex;
    margin-bottom: var(--spacing-sm);
    animation: messageSlideIn 0.3s ease-out;
    min-width: 0;
}

@keyframes messageSlideIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.chat-message-user {
    justify-content: flex-end;
}

.chat-message-assistant {
    justify-content: flex-start;
}

.chat-bubble {
    display: flex;
    align-items: flex-end;
    gap: var(--spacing-xs);
    max-width: min(88%, 100%);
    min-width: 120px;
}

.chat-bubble-user {
    flex-direction: row-reverse;
}

.chat-bubble-assistant {
    flex-direction: row;
}

.chat-avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    flex-shrink: 0;
    background: var(--bg-primary);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.chat-avatar-user {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

.chat-avatar-assistant {
    background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
}

.chat-content-wrapper {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.chat-content {
    padding: 12px 16px;
    border-radius: 18px;
    font-size: var(--font-size-base);
    line-height: 1.5;
    word-wrap: break-word;
    overflow-wrap: anywhere;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
    max-width: 100%;
    min-width: 0;
}

.chat-bubble-user .chat-content {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    border-bottom-right-radius: 4px;
}

.chat-bubble-assistant .chat-content {
    background: var(--bg-primary);
    color: var(--text-primary);
    border: 1px solid var(--border);
    border-bottom-left-radius: 4px;
}

.chat-text {
    margin: 0;
}

.chat-timestamp {
    font-size: 11px;
    color: var(--text-tertiary);
    padding: 0 4px;
    align-self: flex-end;
}

.chat-bubble-user .chat-timestamp {
    text-align: right;
}

.chat-bubble-assistant .chat-timestamp {
    text-align: left;
}

/* Typing Indicator */
.chat-typing-indicator {
    display: inline-flex;
    gap: 4px;
    align-items: center;
    margin-bottom: 8px;
}

.chat-typing-indicator span {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: currentColor;
    opacity: 0.6;
    animation: typingDot 1.4s infinite;
}

.chat-typing-indicator span:nth-child(2) {
    animation-delay: 0.2s;
}

.chat-typing-indicator span:nth-child(3) {
    animation-delay: 0.4s;
}

@keyframes typingDot {
    0%, 60%, 100% {
        opacity: 0.3;
        transform: scale(0.8);
    }
    30% {
        opacity: 1;
        transform: scale(1);
    }
}

/* Sources */
.chat-sources {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid rgba(255, 255, 255, 0.3);
    max-width: 100%;
    min-width: 0;
}

.chat-bubble-assistant .chat-sources {
    border-top-color: var(--border);
}

.chat-sources-header {
    font-size: 12px;
    font-weight: 600;
    margin-bottom: 6px;
    opacity: 0.9;
}

.chat-sources-list {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 6px;
}

.chat-source-number {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.3);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 11px;
    flex-shrink: 0;
    text-decoration: none;
}

.chat-bubble-assistant .chat-source-number {
    background: var(--border);
    color: var(--text-secondary);
}

.chat-source-link {
    cursor: pointer;
}

.chat-source-link:hover,
.chat-source-link:focus-visible {
    background: var(--primary) !important;
    color: var(--primary-ink) !important;
    outline: none;
}

.embed-test-welcome-message {
    text-align: center;
    color: var(--text-secondary);
    padding: var(--spacing-xl);
}

.embed-test-welcome-title {
    font-size: var(--font-size-lg);
    font-weight: 600;
    margin: 0 0 var(--spacing-sm) 0;
    color: var(--text-primary);
}

.embed-test-welcome-subtitle {
    font-size: var(--font-size-sm);
    margin: 0;
    color: var(--text-secondary);
}

.embed-test-chat-input-container {
    border-top: 1px solid var(--border);
    padding: var(--spacing-md) var(--spacing-lg);
    background: var(--bg-primary);
    display: flex;
    gap: var(--spacing-sm);
    align-items: center;
    box-shadow: 0 -2px 12px rgba(0, 0, 0, 0.08);
}

.embed-test-chat-input {
    flex: 1;
    min-width: 0;
    padding: 12px 18px;
    border: 2px solid var(--border);
    border-radius: 24px;
    font-size: var(--font-size-base);
    outline: none;
    transition: all 0.2s ease;
    background: var(--bg-secondary);
    color: var(--text-primary);
    resize: none;
    max-height: 120px;
    min-height: 44px;
}

.embed-test-chat-input:focus {
    border-color: var(--primary);
    background: var(--bg-primary);
    box-shadow: 0 0 0 3px var(--primary-light);
}

.embed-test-chat-input::placeholder {
    color: var(--text-tertiary);
}

.embed-test-send-btn {
    padding: 12px 24px;
    border-radius: 24px;
    font-weight: 600;
    white-space: nowrap;
    min-width: 80px;
    box-shadow: 0 2px 8px rgba(102, 126, 234, 0.3);
    transition: all 0.2s ease;
}

.embed-test-send-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(102, 126, 234, 0.4);
}

.embed-test-send-btn:active {
    transform: translateY(0);
}

/* Embed Test Modal Footer */
#embed-test-modal .modal-footer {
    padding: var(--spacing-lg) var(--spacing-xl);
    background: var(--bg-secondary);
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: var(--spacing-md);
    border-top: 1px solid var(--border);
}

/* Responsive: Stack on smaller screens */
@media (max-width: 1200px) {
    .embed-test-layout {
        grid-template-columns: 1fr;
        grid-template-rows: auto 1fr;
    }
    
    .embed-test-code-panel {
        max-height: 300px;
    }
    
    .embed-test-preview-panel {
        min-height: 500px;
    }
}

/* Notification container in modal */
.modal .notification-container {
    margin: 0 var(--spacing-lg) var(--spacing-md) var(--spacing-lg);
    padding-top: var(--spacing-md);
}

/* Notification Styles */
.notification-container {
    margin-bottom: var(--spacing-md);
}

.notification {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-md);
    border-radius: 8px;
    margin-bottom: var(--spacing-sm);
    border: 1px solid var(--border);
    background: var(--bg-primary);
    color: var(--text-primary);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    animation: slideIn 0.3s ease-out;
}

@keyframes slideIn {
    from {
        opacity: 0;
        transform: translateX(-10px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

.notification-icon {
    font-size: 13px;
    font-weight: bold;
    flex-shrink: 0;
}

.notification-message {
    flex: 1;
    font-size: var(--font-size-base);
    line-height: 1.5;
}

.notification-close {
    background: none;
    border: none;
    font-size: 24px;
    line-height: 1;
    color: var(--text-secondary);
    cursor: pointer;
    padding: 0;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    transition: all 0.2s;
    flex-shrink: 0;
}

.notification-close:hover {
    background: var(--bg-secondary);
    color: var(--text-primary);
}

/* CodeGuide-style: no vertical colored bar on notifications; use border and background only */
.notification-success {
    background: rgba(16, 185, 129, 0.1);
    border-color: var(--border);
    color: var(--text-primary);
}

[data-theme="dark"] .notification-success,
.dark-mode .notification-success {
    background: rgba(16, 185, 129, 0.2);
    border-color: var(--border);
}

.notification-error {
    background: rgba(239, 68, 68, 0.1);
    border-color: var(--border);
    color: var(--text-primary);
}

[data-theme="dark"] .notification-error,
.dark-mode .notification-error {
    background: rgba(239, 68, 68, 0.2);
    border-color: var(--border);
}

.notification-warning {
    background: rgba(245, 158, 11, 0.1);
    border-color: var(--border);
    color: var(--text-primary);
}

[data-theme="dark"] .notification-warning,
.dark-mode .notification-warning {
    background: rgba(245, 158, 11, 0.2);
    border-color: var(--border);
}

.notification-info {
    background: rgba(59, 130, 246, 0.1);
    border-color: var(--border);
    color: var(--text-primary);
}

[data-theme="dark"] .notification-info,
.dark-mode .notification-info {
    background: rgba(59, 130, 246, 0.2);
    border-color: var(--border);
}

/* Sections */
.ingestion-section {
    background: var(--bg-primary);
    border-radius: 8px;
    padding: var(--spacing-lg);
    margin-bottom: var(--spacing-lg);
    color: var(--text-primary);
}

.ingestion-section h2 {
    margin-bottom: var(--spacing-lg);
    font-size: var(--font-size-xl);
    color: var(--text-primary);
}

/* Collapsible Sections */
.collapsible-section {
    border: 1px solid var(--border);
    border-radius: 8px;
    overflow: hidden;
}

.collapsible-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--spacing-lg);
    background: var(--bg-secondary);
    cursor: pointer;
    user-select: none;
    transition: background 0.2s;
    gap: var(--spacing-md);
    color: var(--text-primary);
}

.collapsible-header:hover {
    background: var(--bg-tertiary);
}

.collapsible-header h2 {
    margin: 0;
    font-size: var(--font-size-xl);
    flex: 1;
    cursor: pointer;
    color: var(--text-primary);
}

.collapsible-header .btn,
.collapsible-header button:not(.collapse-toggle) {
    cursor: pointer;
    position: relative;
    z-index: 1;
}

.collapse-toggle {
    background: none;
    border: none;
    font-size: var(--font-size-lg);
    color: var(--text-primary);
    cursor: pointer;
    padding: var(--spacing-xs);
    transition: transform 0.3s, color 0.2s;
    min-width: 32px;
    min-height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.collapse-toggle:hover {
    color: var(--primary);
}

.collapsible-section.collapsed .collapse-toggle {
    transform: rotate(-90deg);
}

.collapsible-content {
    max-height: 10000px;
    overflow: hidden;
    transition: max-height 0.3s ease-out, padding 0.3s ease-out;
    padding: 0 var(--spacing-lg) var(--spacing-lg) var(--spacing-lg);
    background: var(--bg-primary);
    color: var(--text-primary);
}

.collapsible-section.collapsed .collapsible-content {
    max-height: 0;
    padding: 0 var(--spacing-lg);
    overflow: hidden;
}

/* Adjust ingestion section when collapsible */
.ingestion-section.collapsible-section {
    padding: 0;
}

.ingestion-section.collapsible-section .collapsible-content {
    padding-top: var(--spacing-lg);
}

.section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--spacing-lg);
    color: var(--text-primary);
}

.section-header h2 {
    color: var(--text-primary);
}

.section-header h2 {
    margin: 0;
    font-size: var(--font-size-xl);
}

.section-header .header-actions {
    display: flex;
    gap: var(--spacing-sm);
    align-items: center;
}

.departments-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--spacing-lg);
}

.departments-header h2 {
    margin: 0;
    font-size: var(--font-size-xl);
}

/* Lists */
.scopes-list,
.departments-list,
.websites-list,
.ingestion-list-section {
    margin-top: 2rem;
    padding-top: 2rem;
    border-top: 2px solid var(--border-color);
}

.ingestion-list-section .section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
}

.ingestion-list-section .section-header h2 {
    margin: 0;
    font-size: 1.5rem;
    color: var(--text-primary);
}

.job-card {
    background: var(--card-bg);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 1.5rem;
    margin-bottom: 1rem;
    transition: box-shadow 0.2s;
}

.job-card:hover {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.job-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 1rem;
    flex-wrap: wrap;
    gap: 1rem;
}

.job-title {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.job-meta {
    display: flex;
    gap: 1rem;
    font-size: 0.875rem;
    color: var(--text-secondary);
    flex-wrap: wrap;
}

.job-body {
    margin-top: 1rem;
}

.job-stat {
    margin-bottom: 0.5rem;
    color: var(--text-primary);
}

.job-error {
    margin-top: 1rem;
    padding: 0.75rem;
    background: rgba(239, 68, 68, 0.1);
    border-left: 3px solid var(--error);
    border-radius: 4px;
    color: var(--error);
}

[data-theme="dark"] .job-error,
.dark-mode .job-error {
    background: rgba(239, 68, 68, 0.2);
}

.jobs-list {
    display: grid;
    gap: var(--spacing-md);
}

.list-item {
    background: var(--bg-primary);
    border-radius: 8px;
    padding: var(--spacing-lg);
    border: 1px solid var(--border);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.list-item-content {
    flex: 1;
}

.list-item-actions {
    display: flex;
    gap: var(--spacing-sm);
}

.list-item-actions .action-icons {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Loading */
.loading {
    text-align: center;
    padding: var(--spacing-xl);
    color: var(--text-secondary);
}

/* User Management Page Styles */
.user-management-page {
    background: var(--bg-secondary);
    min-height: 100vh;
}

/* User Management Header */
.user-management-header {
    background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
    color: white;
    padding: var(--spacing-xl) var(--spacing-lg);
    margin-bottom: var(--spacing-lg);
}

[data-theme="dark"] .user-management-header,
.dark-mode .user-management-header {
    background: linear-gradient(135deg, #1e40af 0%, #1e3a8a 100%);
}

.user-header-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 1400px;
    margin: 0 auto;
}

.user-management-header h1 {
    font-size: 32px;
    font-weight: 700;
    margin: 0 0 4px 0;
    color: white;
}

.user-header-subtitle {
    font-size: var(--font-size-base);
    color: rgba(255, 255, 255, 0.9);
    margin: 0;
}

.btn-create-user {
    background: var(--bg-primary);
    color: #3b82f6;
    border: none;
    padding: 10px 20px;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 8px;
}

.btn-create-user:hover {
    background: var(--bg-secondary);
}

[data-theme="dark"] .btn-create-user,
.dark-mode .btn-create-user {
    color: #93c5fd;
}

/* Summary Cards */
.user-summary-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-lg);
    padding: 0 var(--spacing-lg);
    max-width: 1400px;
    margin-left: auto;
    margin-right: auto;
}

.summary-card {
    background: var(--bg-primary);
    border-radius: 8px;
    padding: var(--spacing-lg);
    border: 1px solid var(--border);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.summary-card-label {
    font-size: var(--font-size-sm);
    color: var(--text-secondary);
    margin-bottom: 8px;
}

.summary-card-value {
    font-size: 28px;
    font-weight: 700;
    color: #3b82f6;
}

[data-theme="dark"] .summary-card-value,
.dark-mode .summary-card-value {
    color: #93c5fd;
}

/* User Controls Section */
.user-controls-section {
    background: var(--bg-primary);
    border: 1px solid var(--border);
    border-radius: 8px;
    margin: 0 var(--spacing-lg) var(--spacing-lg);
    max-width: 1400px;
    margin-left: auto;
    margin-right: auto;
    overflow: hidden;
    /* Uses collapsible-section styles */
}

.user-controls-section .collapsible-content {
    padding: var(--spacing-lg);
}

.btn-text {
    background: none;
    border: none;
    color: var(--text-secondary);
    cursor: pointer;
    font-size: var(--font-size-sm);
    padding: 4px 8px;
    display: flex;
    align-items: center;
    gap: 4px;
}

.btn-text:hover {
    color: var(--primary);
}

.user-controls-content {
    padding: var(--spacing-md);
}

.user-controls-row {
    display: flex;
    gap: var(--spacing-md);
    align-items: center;
    margin-bottom: var(--spacing-md);
    flex-wrap: wrap;
}

.user-controls-row:last-child {
    margin-bottom: 0;
}

/* Single row layout for all controls */
.user-controls-section .collapsible-content > .user-controls-row:first-of-type {
    margin-bottom: 0;
}

.user-controls-section .collapsible-content > .user-controls-row:only-child {
    margin-bottom: 0;
}

.search-container {
    flex: 1;
    position: relative;
    display: flex;
    align-items: center;
}

.search-icon {
    position: absolute;
    left: 12px;
    color: var(--text-secondary);
    pointer-events: none;
}

.search-input {
    width: 100%;
    padding: 10px 12px 10px 36px;
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: var(--font-size-base);
    background: var(--bg-primary);
    color: var(--text-primary);
}

.search-input:focus {
    outline: none;
    border-color: var(--primary);
}

.view-toggle {
    display: flex;
    gap: 0;
    border: 1px solid var(--border);
    border-radius: 6px;
    overflow: hidden;
    background: var(--bg-primary);
}

.view-toggle-btn {
    padding: 8px 16px;
    border: none;
    background: transparent;
    color: var(--text-secondary);
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: var(--font-size-sm);
    border-right: 1px solid var(--border);
    transition: all 0.2s;
    font-weight: 500;
}

.view-toggle-btn:last-child {
    border-right: none;
}

.view-toggle-btn:hover {
    background: var(--bg-secondary);
    color: var(--text-primary);
}

.view-toggle-btn.active {
    background: #3b82f6;
    color: white;
    font-weight: 600;
}

[data-theme="dark"] .view-toggle-btn.active,
.dark-mode .view-toggle-btn.active {
    background: #2563eb;
}

.view-toggle-btn.active:hover {
    background: #2563eb;
    color: white;
}

[data-theme="dark"] .view-toggle-btn.active:hover,
.dark-mode .view-toggle-btn.active:hover {
    background: #1e40af;
}

.sort-container {
    display: flex;
    align-items: center;
    gap: 8px;
}

.sort-container label {
    font-size: var(--font-size-sm);
    color: var(--text-secondary);
    white-space: nowrap;
    font-weight: 500;
}

.sort-select {
    padding: 8px 32px 8px 12px;
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: var(--font-size-sm);
    background: var(--bg-primary);
    color: var(--text-primary);
    min-width: 150px;
    cursor: pointer;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 10px center;
    background-size: 12px;
}

.sort-select:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 3px var(--primary-light);
}

/* Content Cards Grid */
.content-cards-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-lg);
    padding: var(--spacing-sm);
    width: 100%;
    box-sizing: border-box;
}

/* Ensure cards are in rows, not stacked vertically */
@media (min-width: 768px) {
    .content-cards-grid {
        grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    }
}

@media (min-width: 1024px) {
    .content-cards-grid {
        grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    }
}

@media (min-width: 1440px) {
    .content-cards-grid {
        grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
    }
}

.content-card {
    background: var(--bg-primary);
    border: 2px solid var(--border);
    border-radius: 8px;
    padding: var(--spacing-lg);
    transition: box-shadow 0.2s, transform 0.2s, border-color 0.2s;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
    overflow: hidden;
    word-wrap: break-word;
    box-sizing: border-box;
}

.content-card:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    transform: translateY(-2px);
    border-color: var(--primary);
}

.content-card-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: var(--spacing-md);
    padding-bottom: var(--spacing-md);
    border-bottom: 1px solid var(--border);
    min-width: 0;
    gap: var(--spacing-sm);
}

.content-card-header .action-icons {
    flex-shrink: 0;
}

.content-card-title {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
    flex: 1;
    margin-right: var(--spacing-sm);
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    word-break: break-word;
}

.content-card-body {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
    min-width: 0;
    overflow: hidden;
}

.content-card-field {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    font-size: 14px;
    min-width: 0;
}

.content-card-label {
    font-weight: 500;
    color: var(--text-secondary);
    min-width: 100px;
    flex-shrink: 0;
}

.content-card-value {
    color: var(--text-primary);
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    word-break: break-word;
}

.content-card-field .source-badge,
.content-card-field .content-type-badge,
.content-card-field .document-type-badge,
.content-card-field .status-badge {
    flex-shrink: 1;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    display: inline-block;
}

/* Standardized List Controls - Reusable across all lists */
.standard-list-controls {
    background: var(--bg-primary);
    border: 1px solid var(--border);
    border-radius: 8px;
    margin-bottom: var(--spacing-lg);
    overflow: hidden;
}

.standard-list-controls .section-header {
    margin: 0;
    padding: var(--spacing-lg);
    background: var(--bg-secondary);
    border-bottom: 1px solid var(--border);
}

.standard-list-controls .collapsible-content {
    padding: var(--spacing-lg);
}

.standard-controls-row {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    flex-wrap: wrap;
    margin-bottom: var(--spacing-md);
}

.standard-controls-row:last-child {
    margin-bottom: 0;
}

.controls-row-top {
    margin-bottom: var(--spacing-lg);
    padding-bottom: var(--spacing-md);
    border-bottom: 1px solid var(--border);
}

.controls-row-bottom {
    margin-bottom: 0;
    margin-top: var(--spacing-md);
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    flex-wrap: nowrap;
}

.controls-row-bottom .view-toggle {
    flex-shrink: 0;
}

.controls-row-bottom .sort-container {
    flex-shrink: 0;
    margin-left: 0;
}

.controls-row-bottom .btn {
    flex-shrink: 0;
    white-space: nowrap;
}

.search-container {
    flex: 1;
    min-width: 250px;
    max-width: 500px;
    position: relative;
    display: flex;
    align-items: center;
}

.search-container .search-icon {
    position: absolute;
    left: 12px;
    color: var(--text-secondary);
    pointer-events: none;
}

.search-container .search-input {
    width: 100%;
    padding: 10px 14px 10px 40px;
    border: 1px solid var(--border);
    border-radius: 8px;
    font-size: var(--font-size-base);
    background: var(--bg-primary);
    color: var(--text-primary);
}

.search-container .search-input:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 3px var(--primary-light);
}

/* Pagination Info - Standardized */
.pagination-info {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--spacing-md) var(--spacing-lg);
    margin: var(--spacing-md) 0;
    background: var(--bg-secondary);
    border-radius: 8px;
    border: 1px solid var(--border);
}

/* User-specific pagination (keep for backward compatibility) */
.user-pagination-info {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--spacing-md) var(--spacing-lg);
    margin: 0 var(--spacing-lg) var(--spacing-md);
    max-width: 1400px;
    margin-left: auto;
    margin-right: auto;
    gap: var(--spacing-md);
    flex-wrap: wrap;
}

.pagination-left {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
}

.per-page-select {
    padding: 6px 10px;
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: var(--font-size-sm);
    background: var(--bg-primary);
    color: var(--text-primary);
}

.pagination-results {
    font-size: var(--font-size-sm);
    color: var(--text-secondary);
}

.pagination-controls {
    display: flex;
    align-items: center;
    gap: 4px;
}

.pagination-btn {
    padding: 6px 10px;
    border: 1px solid var(--border);
    background: var(--bg-primary);
    color: var(--text-primary);
    border-radius: 4px;
    cursor: pointer;
    font-size: var(--font-size-sm);
}

.pagination-btn:hover:not(:disabled) {
    background: var(--bg-secondary);
    border-color: var(--primary);
}

.pagination-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.pagination-page {
    padding: 6px 12px;
    font-weight: 600;
    color: #3b82f6;
    background: rgba(59, 130, 246, 0.1);
    border: 1px solid #3b82f6;
    border-radius: 4px;
    font-size: var(--font-size-sm);
}

[data-theme="dark"] .pagination-page,
.dark-mode .pagination-page {
    color: #93c5fd;
    background: rgba(59, 130, 246, 0.2);
    border-color: #3b82f6;
}

/* User Table - scrollbars for overflow */
.user-table-container {
    background: var(--bg-primary);
    border: 1px solid var(--border);
    border-radius: 8px;
    margin: 0 var(--spacing-lg) var(--spacing-lg);
    max-width: 1400px;
    margin-left: auto;
    margin-right: auto;
    overflow-x: auto;
    overflow-y: auto;
    max-height: calc(100vh - 260px);
    min-height: 280px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}

.user-table {
    width: 100%;
    min-width: 800px;
    border-collapse: collapse;
}

.user-table thead {
    background: var(--bg-secondary);
}

.user-table th {
    padding: 4px 6px;
    text-align: left;
    font-weight: 600;
    font-size: 11px;
    color: var(--text-secondary);
    border-bottom: 1px solid var(--border);
    white-space: normal;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

.user-table th.sortable {
    cursor: pointer;
    user-select: none;
    position: relative;
    padding-right: 24px;
}

.user-table th.sortable:hover {
    color: var(--primary);
}

.sort-icon {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    opacity: 0.5;
    transition: opacity 0.2s;
}

.user-table th.sortable:hover .sort-icon,
.documents-table th.sortable:hover .sort-icon {
    opacity: 1;
}

/* Sortable headers for all tables */
th.sortable {
    cursor: pointer;
    user-select: none;
    position: relative;
    padding-right: 24px;
    transition: color 0.2s;
}

th.sortable:hover {
    color: var(--primary);
    background-color: var(--bg-secondary);
}

th.sortable.sort-active {
    color: var(--primary);
    font-weight: 600;
}

th.sortable.sort-active .sort-icon {
    opacity: 1;
    color: var(--primary);
}

/* Dual-arrow sort indicator: ascending arrow highlighted */
th.sortable.sort-asc .sort-arrow-up { color: var(--primary); opacity: 1; }
th.sortable.sort-asc .sort-arrow-down { opacity: 0.3; }

/* Dual-arrow sort indicator: descending arrow highlighted */
th.sortable.sort-desc .sort-arrow-up { opacity: 0.3; }
th.sortable.sort-desc .sort-arrow-down { color: var(--primary); opacity: 1; }

.user-table td {
    padding: 4px 6px;
    border-bottom: 1px solid var(--border);
    vertical-align: top;
    color: var(--text-primary);
    background: var(--bg-primary);
    font-size: var(--font-size-sm);
    white-space: normal;
    word-wrap: break-word;
    overflow-wrap: break-word;
    line-height: 1.3;
}

.user-table tbody tr:hover {
    background: var(--bg-secondary);
}

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

/* User Info in Table */
.user-info {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.user-name {
    font-weight: 600;
    color: var(--text-primary);
    font-size: var(--font-size-base);
    margin-bottom: 4px;
}

.user-email-row {
    display: flex;
    align-items: center;
    gap: 8px;
}

.user-email-icon-large {
    width: 24px;
    height: 24px;
    color: var(--text-primary);
    opacity: 0.8;
    flex-shrink: 0;
}

.user-email-text {
    font-size: var(--font-size-sm);
    color: var(--text-secondary);
}

/* Role Text (plain text, not badge) */
.role-text {
    font-size: var(--font-size-base);
    color: var(--text-primary);
    font-weight: 500;
}

/* Action Menu Button (three dots) */
.action-menu-btn {
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px;
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-secondary);
    transition: all 0.2s;
}

.action-menu-btn:hover {
    background: var(--bg-secondary);
    color: var(--primary);
}

.action-menu-btn svg {
    width: 18px;
    height: 18px;
}

/* Action icons use the same classes as content management - no additional styles needed */

/* Action Menu Dropdown - ensure labels visible on background */
.action-menu-dropdown {
    position: fixed;
    background: var(--bg-primary);
    border: 1px solid var(--border);
    border-radius: 4px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
    z-index: 1000;
    padding: 4px;
    min-width: 150px;
    color: var(--text-primary);
}

.action-menu-dropdown * {
    color: var(--text-primary);
}

.action-menu-item {
    padding: 8px 12px;
    cursor: pointer;
    border-radius: 4px;
    font-size: var(--font-size-sm);
    color: var(--text-primary);
    transition: background-color 0.2s;
}

.action-menu-item:hover {
    background-color: var(--bg-secondary);
}

.action-menu-item:last-child {
    color: var(--error);
}

.action-menu-item:last-child:hover {
    background-color: rgba(239, 68, 68, 0.1);
}

[data-theme="dark"] .action-menu-item:last-child:hover,
.dark-mode .action-menu-item:last-child:hover {
    background-color: rgba(239, 68, 68, 0.2);
}

/* User Cards View */
.user-cards-container {
    margin-top: var(--spacing-lg);
}

.user-cards-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: var(--spacing-lg);
    padding: var(--spacing-md) 0;
}

.user-card {
    background: var(--bg-primary);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: var(--spacing-lg);
    transition: all 0.2s;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}

.user-card:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    border-color: var(--primary);
}

.user-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--spacing-md);
    padding-bottom: var(--spacing-md);
    border-bottom: 1px solid var(--border);
}

.user-card-name {
    font-size: var(--font-size-lg);
    font-weight: 600;
    color: var(--text-primary);
}

.user-card-body {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
}

.user-card-email,
.user-card-role,
.user-card-status,
.user-card-login {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    font-size: var(--font-size-sm);
    color: var(--text-secondary);
}

.user-card-email svg {
    width: 18px;
    height: 18px;
    color: var(--text-secondary);
}

.user-card-role .role-text {
    font-weight: 500;
    color: var(--text-primary);
}

.user-card-login {
    margin-top: var(--spacing-sm);
    padding-top: var(--spacing-sm);
    border-top: 1px solid var(--bg-secondary);
    font-size: var(--font-size-sm);
}

.no-results {
    text-align: center;
    padding: var(--spacing-xl);
    color: var(--text-secondary);
    font-size: var(--font-size-base);
}

/* Dropdown Menus - ensure text is never white on white */
.dropdown-menu {
    position: absolute;
    background: var(--bg-primary);
    border: 1px solid var(--border);
    border-radius: 4px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
    z-index: 1000;
    min-width: 200px;
    color: var(--text-primary);
}

.dropdown-menu *,
.dropdown-menu label,
.dropdown-checkbox-item,
.dropdown-checkbox-item label {
    color: var(--text-primary);
}

.dropdown-menu label {
    cursor: pointer;
    user-select: none;
}

.dropdown-menu input[type="checkbox"] {
    margin-right: 8px;
    cursor: pointer;
}

.dropdown-menu select {
    width: 100%;
    padding: 6px;
    border: 1px solid var(--border);
    border-radius: 4px;
    font-size: var(--font-size-sm);
    background: var(--bg-primary);
    color: var(--text-primary);
}

/* Responsive */
@media (max-width: 768px) {
    .admin-main {
        padding: var(--spacing-md);
    }
    
    .header-content {
        flex-direction: column;
        gap: var(--spacing-md);
        align-items: flex-start;
    }
    
    .navbar-content {
        padding: 0 var(--spacing-md);
        overflow-x: auto;
        flex-wrap: nowrap;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: thin;
    }
    
    .nav-link {
        padding: var(--spacing-sm) var(--spacing-md);
        font-size: var(--font-size-sm);
        min-width: fit-content;
    }
    
    .list-controls {
        flex-direction: column;
    }
    
    .documents-table-container,
    #content-table-container,
    #scopes-table-container,
    #chatbots-table-container,
    #code-table-container,
    #user-table-container {
        overflow-x: scroll;
        overflow-y: scroll;
        max-height: calc(100vh - 280px);
        min-height: 200px;
    }
    .user-table-container {
        overflow-x: scroll;
        overflow-y: scroll;
        max-height: calc(100vh - 280px);
        min-height: 200px;
    }
    
    .modal-content {
        max-width: 100%;
        max-height: calc(100vh - 24px);
        margin: var(--spacing-md);
    }
    
    .section-header {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--spacing-md);
    }
}

/* Scrollbar */
::-webkit-scrollbar {
    width: 8px;
    height: 10px;
}

/* Vertical and horizontal scrollbars for ALL list/table containers */
.documents-table-container::-webkit-scrollbar,
#content-table-container::-webkit-scrollbar,
#scopes-table-container::-webkit-scrollbar,
#chatbots-table-container::-webkit-scrollbar,
#code-table-container::-webkit-scrollbar,
.scope-content-table-wrapper::-webkit-scrollbar,
.user-table-container::-webkit-scrollbar {
    width: 10px;
    height: 12px;
}

::-webkit-scrollbar-track {
    background: var(--bg-secondary);
}

::-webkit-scrollbar-thumb {
    background: var(--border);
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--border-hover);
}

/* Dark mode: scrollbars use dark background so no grey vertical bar on the right */
[data-theme="dark"] ::-webkit-scrollbar-track,
[data-theme="dark"]::-webkit-scrollbar-track,
html.dark-mode ::-webkit-scrollbar-track,
html.dark-mode::-webkit-scrollbar-track,
:root.dark-mode ::-webkit-scrollbar-track,
:root.dark-mode::-webkit-scrollbar-track {
    background: var(--bg-primary) !important;
}

[data-theme="dark"] ::-webkit-scrollbar-thumb,
[data-theme="dark"]::-webkit-scrollbar-thumb,
html.dark-mode ::-webkit-scrollbar-thumb,
html.dark-mode::-webkit-scrollbar-thumb,
:root.dark-mode ::-webkit-scrollbar-thumb,
:root.dark-mode::-webkit-scrollbar-thumb {
    background: var(--border) !important;
    border-radius: 4px;
}

[data-theme="dark"] ::-webkit-scrollbar-thumb:hover,
html.dark-mode ::-webkit-scrollbar-thumb:hover,
:root.dark-mode ::-webkit-scrollbar-thumb:hover {
    background: var(--border-hover) !important;
}

[data-theme="dark"] .documents-table-container,
[data-theme="dark"] #content-table-container,
[data-theme="dark"] #scopes-table-container,
[data-theme="dark"] #chatbots-table-container,
[data-theme="dark"] .scope-content-table-wrapper,
[data-theme="dark"] .user-table-container,
html.dark-mode .documents-table-container,
html.dark-mode #content-table-container,
html.dark-mode #scopes-table-container,
html.dark-mode #chatbots-table-container,
html.dark-mode .scope-content-table-wrapper,
html.dark-mode .user-table-container {
    scrollbar-color: var(--border) var(--bg-primary);
}

/* Force dark scrollbar track on content table (the main vertical bar on the right) */
[data-theme="dark"] #content-table-container::-webkit-scrollbar-track,
[data-theme="dark"] .documents-table-container::-webkit-scrollbar-track,
html.dark-mode #content-table-container::-webkit-scrollbar-track,
html.dark-mode .documents-table-container::-webkit-scrollbar-track {
    background: var(--bg-primary) !important;
}
[data-theme="dark"] #content-table-container::-webkit-scrollbar-thumb,
[data-theme="dark"] .documents-table-container::-webkit-scrollbar-thumb,
html.dark-mode #content-table-container::-webkit-scrollbar-thumb,
html.dark-mode .documents-table-container::-webkit-scrollbar-thumb {
    background: var(--border) !important;
}

/* ============================================================================
   SageITSMSuite shell parity
   Source of truth: sibling SageITSMSuite authenticated app shell.
   ============================================================================ */
:root {
    --bg: #ffffff;
    --app-bg: #f8fafc;
    --panel: #ffffff;
    --subtle: #fbfcfe;
    --subtle-alt: #f7f7f8;
    --ink: #020817;
    --muted: #334155;
    --line: #cbd5e1;
    --soft-line: #e2e8f0;
    --primary: #1d4ed8;
    --primary-hover: #1e40af;
    --primary-dark: #1e40af;
    --primary-ink: #ffffff;
    --brand-pill: #eff6ff;
    --brand-pill-ink: #0f172a;
    --chip-bg: #eef3f8;
    --chip-ink: #344054;
    --health-bg: #e6f4ee;
    --role-bg: #eaf3ff;
    --role-ink: #175cd3;
    --danger-soft: #fff0ec;
    --good: #15803d;
    --warn: #a15c00;
    --bad: #b42318;
    --sidebar: #ffffff;
    --sidebar-ink: #172033;
    --sidebar-muted: #64748b;
    --sidebar-border: #d8e0eb;
    --sidebar-hover: #f4f7fb;
    --sidebar-active: #2563eb;
    --sidebar-active-ink: #ffffff;

    --bg-primary: var(--panel);
    --bg-secondary: var(--subtle);
    --bg-tertiary: var(--subtle-alt);
    --text-primary: var(--ink);
    --text-secondary: var(--muted);
    --border: var(--line);
    --border-hover: var(--line);
    --sidebar-bg: var(--sidebar);
    --sidebar-text: var(--sidebar-ink);
    --table-header-bg: var(--subtle-alt);
    --table-header-text: #172033;
    --suite-topbar-height: 0px;
}

:root[data-theme="dark"],
:root.dark,
:root.dark-mode {
    --bg: #111827;
    --app-bg: #0f172a;
    --panel: #111827;
    --subtle: #0f172a;
    --subtle-alt: #1f2937;
    --ink: #f8fafc;
    --muted: #cbd5e1;
    --line: #334155;
    --soft-line: #1f2937;
    --primary: #3b82f6;
    --primary-hover: #2563eb;
    --primary-dark: #1d4ed8;
    --primary-ink: #ffffff;
    --chip-bg: #1f2937;
    --chip-ink: #dbeafe;
    --health-bg: #064e3b;
    --role-bg: #1e3a8a;
    --role-ink: #bfdbfe;
    --sidebar: #111827;
    --sidebar-ink: #f8fafc;
    --sidebar-muted: #94a3b8;
    --sidebar-border: #334155;
    --sidebar-hover: #1f2937;
    --sidebar-active: #2563eb;
    --sidebar-active-ink: #ffffff;
    --table-header-bg: #1f2937;
    --table-header-text: #e2e8f0;
}

@media (prefers-color-scheme: dark) {
    :root[data-theme="system"] {
        --bg: #111827;
        --app-bg: #0f172a;
        --panel: #111827;
        --subtle: #0f172a;
        --subtle-alt: #1f2937;
        --ink: #f8fafc;
        --muted: #cbd5e1;
        --line: #334155;
        --soft-line: #1f2937;
        --primary: #3b82f6;
        --primary-hover: #2563eb;
        --primary-dark: #1d4ed8;
        --primary-ink: #ffffff;
        --chip-bg: #1f2937;
        --chip-ink: #dbeafe;
        --health-bg: #064e3b;
        --role-bg: #1e3a8a;
        --role-ink: #bfdbfe;
        --sidebar: #111827;
        --sidebar-ink: #f8fafc;
        --sidebar-muted: #94a3b8;
        --sidebar-border: #334155;
        --sidebar-hover: #1f2937;
        --sidebar-active: #2563eb;
        --sidebar-active-ink: #ffffff;
        --table-header-bg: #1f2937;
        --table-header-text: #e2e8f0;
    }
}

html,
body {
    background: var(--app-bg) !important;
    color: var(--ink) !important;
}

.suite-topbar {
    display: none !important;
}

.admin-container {
    display: block !important;
    min-height: 100vh !important;
    background: var(--app-bg) !important;
    padding: 0 !important;
}

.sidebar-nav {
    position: fixed !important;
    inset: 0 auto 0 0 !important;
    top: 0 !important;
    z-index: 40 !important;
    width: 230px !important;
    min-width: 230px !important;
    max-width: 230px !important;
    height: 100vh !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    background: var(--sidebar) !important;
    color: var(--sidebar-ink) !important;
    border-right: 1px solid var(--sidebar-border) !important;
    box-shadow: none !important;
    padding: 0 !important;
    transform: none !important;
}

.sidebar-branding {
    display: flex !important;
    gap: 0.75rem !important;
    align-items: center !important;
    min-height: 92px !important;
    padding: 1rem !important;
    margin: 0 !important;
    border-bottom: 1px solid var(--sidebar-border) !important;
    background: var(--sidebar) !important;
    position: relative !important;
}

.sidebar-logo {
    gap: 0.75rem !important;
    min-width: 0 !important;
}

.sidebar-branding .sidebar-home-link {
    display: flex !important;
    align-items: center !important;
    flex: 1 1 auto !important;
    align-self: stretch !important;
    width: auto !important;
    min-width: 0 !important;
    margin: -1rem !important;
    padding: 1rem !important;
    border-radius: 0 !important;
}

.sidebar-branding .sidebar-toggle-close {
    position: relative !important;
    z-index: 2 !important;
}

.logo-icon {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    border-radius: 7px !important;
    display: grid !important;
    place-items: center !important;
    background: #10b981 !important;
    color: #ffffff !important;
    font-size: 1rem !important;
    font-weight: 800 !important;
    box-shadow: none !important;
}

.logo-name {
    color: var(--sidebar-ink) !important;
    font-size: 0.9rem !important;
    font-weight: 800 !important;
    line-height: 1.15 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
}

.logo-tagline {
    display: block !important;
    color: var(--sidebar-muted) !important;
    margin-top: 0.2rem !important;
    font-size: 0.66rem !important;
    font-weight: 500 !important;
    letter-spacing: 0.06em !important;
}

.sidebar-toggle-close {
    display: none !important;
}

.sidebar-nav-menu {
    flex: 1 1 auto !important;
    overflow-y: auto !important;
    padding: 0.55rem 0.5rem 1rem !important;
    background: transparent !important;
}

.nav-menu-list {
    display: grid !important;
    align-content: start !important;
    gap: 0.18rem !important;
    padding: 0 !important;
    margin: 0 !important;
    list-style: none !important;
}

.nav-menu-link,
.sidebar-user-expandable-btn,
.sidebar-user-expandable-item {
    width: 100% !important;
    min-height: auto !important;
    text-align: left !important;
    background: transparent !important;
    color: var(--sidebar-ink) !important;
    border: 0 !important;
    border-radius: 7px !important;
    padding: 0.56rem 0.65rem !important;
    font-size: 0.88rem !important;
    font-weight: 600 !important;
    line-height: 1.25 !important;
    box-shadow: none !important;
    text-decoration: none !important;
}

.nav-menu-link:hover,
.sidebar-user-expandable-btn:hover,
.sidebar-user-expandable-item:hover {
    background: var(--sidebar-hover) !important;
    color: var(--sidebar-ink) !important;
}

.nav-menu-link.active,
.sidebar-user-expandable-item.active {
    background: var(--sidebar-active) !important;
    color: var(--sidebar-active-ink) !important;
}

.nav-icon,
.user-action-icon {
    display: none !important;
}

.nav-text {
    min-width: 0 !important;
}

.sidebar-user-section {
    margin-top: auto !important;
    border-top: 1px solid var(--sidebar-border) !important;
    padding: 0.55rem 0.75rem 0.8rem !important;
    background: color-mix(in srgb, var(--sidebar) 94%, var(--sidebar-hover)) !important;
}

.sidebar-divider {
    display: none !important;
}

.sidebar-user-profile.account-card {
    display: block !important;
    border: 0 !important;
    border-radius: 0 !important;
    padding: 0 !important;
    margin: 0.55rem 0 0 !important;
    background: transparent !important;
    color: var(--sidebar-ink) !important;
    box-shadow: none !important;
    font-size: 0.86rem !important;
}

.user-avatar {
    width: 42px !important;
    height: 42px !important;
    border-radius: 7px !important;
    background: var(--primary) !important;
    color: var(--primary-ink) !important;
    display: grid !important;
    place-items: center !important;
    font-weight: 800 !important;
}

.user-info {
    gap: 0.16rem !important;
    min-width: 0 !important;
}

.user-name {
    display: block !important;
    color: var(--sidebar-ink) !important;
    font-size: 0.86rem !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    margin: 0 0 0.2rem !important;
}

.user-email,
.user-role {
    display: block !important;
    color: var(--sidebar-muted) !important;
    font-size: 0.78rem !important;
    line-height: 1.25 !important;
}

.chips {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 0.25rem !important;
    margin-top: 0.35rem !important;
}

.chip {
    display: inline-flex !important;
    align-items: center !important;
    border-radius: 999px !important;
    padding: 0.14rem 0.42rem !important;
    background: var(--chip-bg) !important;
    color: var(--chip-ink) !important;
    font-size: 0.68rem !important;
    font-weight: 500 !important;
    line-height: 1.25 !important;
}

.sidebar-user-expandable {
    margin: 0 0 0.55rem !important;
}

.sidebar-user-expandable-content {
    margin: 0.1rem 0 0.35rem 0.55rem !important;
    padding-left: 0.7rem !important;
    border-left: 1px solid var(--sidebar-border) !important;
}

.sidebar-user-expandable:not(.expanded) .sidebar-user-expandable-content {
    display: none !important;
}

.nav-chevron {
    margin-left: auto !important;
    color: inherit !important;
    font-size: 0.72rem !important;
}

.theme-switcher {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 0.2rem !important;
    border: 1px solid var(--sidebar-border) !important;
    border-radius: 7px !important;
    padding: 0.18rem !important;
    margin: 0 0 0.55rem !important;
    background: var(--sidebar) !important;
}

.theme-switcher button {
    min-height: auto !important;
    border: 0 !important;
    border-radius: 5px !important;
    padding: 0.35rem 0.25rem !important;
    background: transparent !important;
    color: var(--sidebar-muted) !important;
    font-size: 0.72rem !important;
    font-weight: 600 !important;
}

.theme-switcher button.active {
    background: var(--sidebar-active) !important;
    color: var(--sidebar-active-ink) !important;
}

.sidebar-user-actions {
    margin-top: 0.45rem !important;
}

.user-action-btn-logout {
    width: auto !important;
    min-height: auto !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--primary) !important;
    padding: 0 !important;
    text-align: left !important;
    font-size: 0.82rem !important;
    font-weight: 500 !important;
    box-shadow: none !important;
}

.main-content-wrapper {
    height: 100vh !important;
    min-height: 100vh !important;
    overflow-y: auto !important;
    margin-left: 230px !important;
    width: auto !important;
    max-width: none !important;
    padding: 1.25rem !important;
    padding-top: 1.25rem !important;
    background: var(--app-bg) !important;
}

.main-content-header {
    position: static !important;
    inset: auto !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: auto !important;
    min-height: 92px !important;
    margin: 0 0 1rem !important;
    padding: 1rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 1rem !important;
    background: var(--panel) !important;
    border: 1px solid var(--line) !important;
    border-radius: 8px !important;
    box-shadow: none !important;
}

.sidebar-toggle-open {
    display: none !important;
}

.page-title-section {
    min-width: 0 !important;
    flex: 1 1 auto !important;
    width: auto !important;
    margin-left: 0 !important;
}

.page-title {
    color: var(--ink) !important;
    font-size: 1.25rem !important;
    line-height: 1.2 !important;
    font-weight: 800 !important;
    letter-spacing: 0 !important;
    margin: 0 0 0.35rem !important;
}

.page-breadcrumbs {
    color: var(--muted) !important;
    font-size: 0.88rem !important;
    line-height: 1.35 !important;
    margin: 0 !important;
}

.admin-main {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
}

.pages-container {
    width: 100% !important;
    max-width: none !important;
}

.stats-bar {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(160px, 1fr)) !important;
    gap: 0.75rem !important;
    margin: 0 0 1rem !important;
}

.stat-card,
.settings-section,
.content-list-section,
.documents-table-container,
.user-card,
.scope-card,
.chatbot-card,
.model-config-card,
.model-config-overall,
.model-config-models,
.list-controls-wrapper {
    background: var(--panel) !important;
    border: 1px solid var(--line) !important;
    border-radius: 8px !important;
    box-shadow: none !important;
}

.content-list-header,
.section-header {
    margin-bottom: 1rem !important;
}

.btn,
.btn-login,
.btn-register,
.pagination-btn,
.view-toggle-btn,
.admin-tab-btn,
.form-input,
.dropdown-menu,
.modal-content {
    border-radius: 7px !important;
}

.btn {
    min-height: 36px !important;
    padding: 0.55rem 0.85rem !important;
    font-size: 0.88rem !important;
    font-weight: 600 !important;
    box-shadow: none !important;
}

.btn-primary {
    background: var(--primary) !important;
    color: var(--primary-ink) !important;
    border: 1px solid var(--primary) !important;
}

.btn-primary:hover {
    background: var(--primary-hover) !important;
    border-color: var(--primary-hover) !important;
}

.btn-secondary,
.btn-icon,
.pagination-btn,
.view-toggle-btn,
.admin-tab-btn {
    background: var(--panel) !important;
    color: var(--ink) !important;
    border: 1px solid var(--line) !important;
}

.btn-secondary:hover,
.btn-icon:hover,
.pagination-btn:hover,
.view-toggle-btn:hover,
.admin-tab-btn:hover {
    background: var(--sidebar-hover) !important;
    color: var(--ink) !important;
    border-color: var(--line) !important;
}

.view-toggle-btn.active,
.admin-tab-btn.active,
.pagination-page.active {
    background: var(--primary) !important;
    color: var(--primary-ink) !important;
    border-color: var(--primary) !important;
}

.documents-table-container {
    overflow: auto !important;
}

.documents-table {
    background: var(--panel) !important;
}

.documents-table thead,
.documents-table thead th,
.documents-table th {
    background: var(--table-header-bg) !important;
    color: var(--table-header-text) !important;
    font-size: 0.75rem !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: 0 !important;
}

.documents-table td {
    color: var(--ink) !important;
    border-bottom: 1px solid var(--soft-line) !important;
}

.documents-table tbody tr:hover,
.documents-table tbody tr:hover td {
    background: var(--subtle) !important;
}

.badge,
.status-badge,
.source-badge,
.content-type-badge,
.document-type-badge,
.role-badge {
    border-radius: 999px !important;
    font-size: 0.75rem !important;
    font-weight: 600 !important;
}

@media (max-width: 1023px) {
    .sidebar-nav {
        transform: translateX(-100%) !important;
        top: 0 !important;
        height: 100vh !important;
    }

    .sidebar-nav.open {
        transform: translateX(0) !important;
    }

    .sidebar-toggle-close,
    .sidebar-toggle-open {
        display: inline-flex !important;
    }

    .main-content-wrapper {
        margin-left: 0 !important;
        width: 100% !important;
        padding: 1rem !important;
        padding-top: 1rem !important;
    }

    .main-content-header {
        min-height: 76px !important;
        margin-bottom: 1rem !important;
    }

    .stats-bar {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 640px) {
    .main-content-wrapper {
        padding: 0.75rem !important;
        padding-top: 0.75rem !important;
    }

    .main-content-header {
        min-height: auto !important;
        padding: 0.9rem !important;
        align-items: flex-start !important;
    }

    .page-title {
        white-space: normal !important;
        overflow: visible !important;
        text-overflow: clip !important;
        font-size: 1.15rem !important;
    }

    .stats-bar {
        grid-template-columns: 1fr !important;
    }

    .content-list-header,
    .section-header,
    .standard-controls-row,
    .controls-row-bottom,
    .user-pagination-info,
    .pagination-left {
        align-items: stretch !important;
        justify-content: flex-start !important;
        flex-wrap: wrap !important;
    }
}

/* ============================================================================
   Sage Suite UI/UX Standard - Commercial interaction layer
   Applies shared list, modal, message, action, and aggregate behavior.
   ============================================================================ */
:root {
    --sage-bg: var(--app-bg);
    --sage-surface: var(--panel);
    --sage-surface-muted: var(--subtle-alt);
    --sage-text: var(--ink);
    --sage-muted: var(--muted);
    --sage-border: var(--line);
    --sage-border-soft: var(--soft-line);
    --sage-primary: var(--primary);
    --sage-primary-hover: var(--primary-hover);
    --sage-focus-ring: rgba(37, 99, 235, 0.28);
    --sage-radius: 8px;
    --sage-radius-sm: 6px;
    --sage-shadow-menu: 0 16px 38px rgba(15, 23, 42, 0.16);
    --sage-shadow-modal: 0 24px 80px rgba(15, 23, 42, 0.24);
}

*:focus-visible {
    outline: 2px solid var(--sage-primary) !important;
    outline-offset: 2px !important;
    box-shadow: 0 0 0 4px var(--sage-focus-ring) !important;
}

.main-content-header {
    align-items: center !important;
    min-height: 82px !important;
}

.page-title {
    font-size: 1.22rem !important;
}

.page-breadcrumb-link {
    color: var(--sage-primary) !important;
    text-decoration: none !important;
}

.page-breadcrumb-link:hover {
    text-decoration: underline !important;
}

.stats-bar {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
    gap: 0.75rem !important;
}

.stat-card,
button.stat-card {
    min-height: 70px !important;
    padding: 0.9rem !important;
    display: flex !important;
    align-items: center !important;
    gap: 0.75rem !important;
    border-radius: var(--sage-radius) !important;
}

button.stat-card,
.sage-clickable-stat {
    width: 100% !important;
    appearance: none !important;
    cursor: pointer !important;
    text-align: left !important;
    color: var(--sage-text) !important;
    transition: border-color 0.16s ease, background 0.16s ease, transform 0.16s ease, box-shadow 0.16s ease !important;
}

.sage-clickable-stat:hover {
    border-color: color-mix(in srgb, var(--sage-primary) 42%, var(--sage-border)) !important;
    background: color-mix(in srgb, var(--sage-surface) 94%, var(--sage-primary)) !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 10px 22px rgba(15, 23, 42, 0.08) !important;
}

.stat-value {
    color: var(--sage-text) !important;
    font-size: 1.18rem !important;
    line-height: 1.1 !important;
    font-weight: 800 !important;
}

.stat-label {
    color: var(--sage-muted) !important;
    font-size: 0.78rem !important;
    line-height: 1.25 !important;
}

.content-list-header,
.section-header {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 0.5rem !important;
    flex-wrap: wrap !important;
}

.content-list-header .btn,
.section-header .btn,
.standard-controls-row .btn,
.controls-row-bottom .btn {
    white-space: nowrap !important;
}

.list-controls-wrapper,
#content-list-controls-content,
#chatbots-list-controls-content,
#scopes-list-controls-content,
#user-list-controls-content,
#model-management-list-controls-content,
#settings-list-controls-content {
    background: var(--sage-surface) !important;
    border: 1px solid var(--sage-border) !important;
    border-radius: var(--sage-radius) !important;
    padding: 0.7rem !important;
    margin-bottom: 0.75rem !important;
}

.standard-controls-row,
.controls-row-bottom,
.filter-row,
.search-row {
    gap: 0.55rem !important;
    align-items: center !important;
}

.search-container,
.user-search-container {
    min-width: min(360px, 100%) !important;
    flex: 1 1 300px !important;
}

.form-input,
.search-input,
.sort-select,
.per-page-select,
.filter-input,
.form-select,
select,
textarea {
    border-color: var(--sage-border) !important;
    border-radius: var(--sage-radius-sm) !important;
    color: var(--sage-text) !important;
    background: var(--sage-surface) !important;
    min-height: 36px !important;
}

.form-input:focus,
.search-input:focus,
.sort-select:focus,
.per-page-select:focus,
.filter-input:focus,
.form-select:focus,
select:focus,
textarea:focus {
    border-color: var(--sage-primary) !important;
    box-shadow: 0 0 0 4px var(--sage-focus-ring) !important;
}

.documents-table-container,
#chatbots-table-container,
#scopes-table-container,
.scope-content-table-wrapper,
.user-table-container,
.model-config-table-wrapper {
    border: 1px solid var(--sage-border) !important;
    border-radius: var(--sage-radius) !important;
    background: var(--sage-surface) !important;
    box-shadow: none !important;
    overflow: auto !important;
    max-height: min(680px, calc(100vh - 320px)) !important;
}

.documents-table,
#chatbots-table,
#scopes-table,
.scope-content-table,
.users-table,
.model-config-table {
    width: 100% !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
}

.documents-table thead th,
#chatbots-table thead th,
#scopes-table thead th,
.scope-content-table thead th,
.users-table thead th,
.model-config-table thead th {
    position: sticky !important;
    top: 0 !important;
    z-index: 3 !important;
    height: 34px !important;
    padding: 0.55rem 0.65rem !important;
    border-bottom: 1px solid var(--sage-border) !important;
    background: var(--table-header-bg) !important;
    color: var(--table-header-text) !important;
    font-size: 0.68rem !important;
    line-height: 1.15 !important;
    letter-spacing: 0 !important;
}

.documents-table td,
#chatbots-table td,
#scopes-table td,
.scope-content-table td,
.users-table td,
.model-config-table td {
    padding: 0.48rem 0.65rem !important;
    vertical-align: middle !important;
    border-bottom: 1px solid var(--sage-border-soft) !important;
    color: var(--sage-text) !important;
}

.documents-table tbody tr:hover,
#chatbots-table tbody tr:hover,
#scopes-table tbody tr:hover,
.scope-content-table tbody tr:hover,
.users-table tbody tr:hover,
.model-config-table tbody tr:hover {
    background: var(--subtle) !important;
}

.badge,
.status-badge,
.source-badge,
.content-type-badge,
.document-type-badge,
.role-badge,
.chip {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.25rem !important;
    min-height: 20px !important;
    padding: 0.12rem 0.46rem !important;
    border-radius: 999px !important;
    font-size: 0.68rem !important;
    line-height: 1.1 !important;
    font-weight: 700 !important;
}

.user-pagination-info,
.pagination-container,
.pagination-info {
    background: var(--sage-surface) !important;
    border: 1px solid var(--sage-border) !important;
    border-radius: var(--sage-radius) !important;
    padding: 0.65rem 0.75rem !important;
}

.pagination-controls,
.pagination-left,
.pagination-bulk-actions {
    gap: 0.4rem !important;
}

.pagination-btn,
.pagination-page {
    min-width: 34px !important;
    height: 34px !important;
    border-radius: var(--sage-radius-sm) !important;
}

.action-icons[data-sage-enhanced="menu"] {
    justify-content: flex-end !important;
    overflow: visible !important;
}

.sage-action-menu {
    position: relative !important;
    display: inline-flex !important;
    justify-content: flex-end !important;
}

.sage-action-menu-toggle {
    min-height: 34px !important;
    padding: 0 0.65rem !important;
    gap: 0.4rem !important;
}

.sage-action-menu-caret {
    font-size: 0.68rem !important;
    color: var(--sage-muted) !important;
}

.sage-action-menu-panel {
    display: none !important;
    position: fixed !important;
    right: auto !important;
    top: auto !important;
    z-index: 10050 !important;
    min-width: 190px !important;
    max-width: min(280px, calc(100vw - 16px)) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding: 0.35rem !important;
    border: 1px solid var(--sage-border) !important;
    border-radius: var(--sage-radius) !important;
    background: var(--sage-surface) !important;
    box-shadow: var(--sage-shadow-menu) !important;
}

.sage-action-menu.open .sage-action-menu-panel {
    display: grid !important;
    gap: 0.15rem !important;
}

/* Chatbot flow canvas: lightweight node authoring inside the standard task surface. */
.flow-canvas-card {
    gap: var(--spacing-md) !important;
}

.flow-canvas-preview {
    display: flex !important;
    align-items: stretch !important;
    gap: 0.5rem !important;
    padding: 0.75rem !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: var(--sage-radius) !important;
    background: linear-gradient(180deg, rgba(248, 250, 252, 0.92), rgba(241, 245, 249, 0.92)) !important;
    overflow-x: auto !important;
}

.flow-canvas-node {
    display: grid !important;
    grid-template-columns: auto 1fr !important;
    grid-template-areas:
        "step title"
        "step meta" !important;
    align-items: center !important;
    min-width: 176px !important;
    max-width: 220px !important;
    gap: 0.15rem 0.55rem !important;
    padding: 0.65rem 0.75rem !important;
    border: 1px solid #bfdbfe !important;
    border-left: 4px solid #2563eb !important;
    border-radius: var(--sage-radius) !important;
    background: #ffffff !important;
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.06) !important;
}

.flow-canvas-node-step {
    grid-area: step !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 28px !important;
    height: 28px !important;
    border-radius: 999px !important;
    background: #dbeafe !important;
    color: #1d4ed8 !important;
    font-weight: 800 !important;
}

.flow-canvas-node strong {
    grid-area: title !important;
    color: #0f172a !important;
    font-size: 0.88rem !important;
    line-height: 1.2 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.flow-canvas-node small {
    grid-area: meta !important;
    color: #64748b !important;
    font-size: 0.75rem !important;
}

.flow-canvas-node[data-flow-node-type="form_capture"] {
    border-left-color: #0f766e !important;
}

.flow-canvas-node[data-flow-node-type="tool"] {
    border-left-color: #7c3aed !important;
}

.flow-canvas-node[data-flow-node-type="handoff"] {
    border-left-color: #ea580c !important;
}

.flow-canvas-arrow {
    align-self: center !important;
    color: #64748b !important;
    font-weight: 800 !important;
    font-size: 1.1rem !important;
}

.flow-node-list {
    display: grid !important;
    gap: 0.75rem !important;
}

.flow-node-row {
    border: 1px solid #cbd5e1 !important;
    border-radius: var(--sage-radius) !important;
    background: #ffffff !important;
    padding: 0.75rem !important;
}

.flow-node-row-header {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 0.75rem !important;
    margin-bottom: 0.65rem !important;
}

.flow-node-row-grid {
    display: grid !important;
    grid-template-columns: minmax(160px, 0.75fr) minmax(220px, 1fr) minmax(220px, 1fr) !important;
    gap: 0.75rem !important;
}

.flow-node-wide {
    grid-column: 1 / -1 !important;
}

.flow-canvas-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 0.5rem !important;
}

@media (max-width: 900px) {
    .flow-node-row-grid {
        grid-template-columns: 1fr !important;
    }

    .flow-canvas-preview {
        align-items: flex-start !important;
    }
}

.form-grid.two-col {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.settings-fieldset {
    border: 1px solid var(--border-color, #cbd5e1);
    border-radius: 8px;
    margin: 1rem 0 0;
    padding: 1rem;
}

.settings-fieldset legend {
    color: var(--text-primary, #0f172a);
    font-weight: 700;
    padding: 0 0.35rem;
}

.toggle-row {
    display: flex;
    align-items: center;
    color: var(--text-primary, #0f172a);
    line-height: 1.4;
}

.settings-repeatable-list {
    display: grid;
    gap: 0.6rem;
}

.settings-repeatable-row {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) minmax(160px, 220px) auto;
    gap: 0.6rem;
    align-items: center;
}

.reports-analytics-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin: 1rem 0;
}

.reports-schedule-panel {
    margin: 1rem 0;
}

.reports-schedule-table-container {
    max-height: 320px;
    overflow: auto;
}

.reports-analytics-panel {
    background: var(--bg-primary, #fff);
    border: 1px solid var(--border-color, #cbd5e1);
    border-radius: 8px;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.05);
    padding: 1rem;
    min-height: 150px;
}

.reports-analytics-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.9rem;
}

.reports-analytics-header h3 {
    color: var(--text-primary, #0f172a);
    font-size: 0.95rem;
    margin: 0;
}

.reports-analytics-header span {
    color: var(--text-secondary, #475569);
    font-size: 0.78rem;
    font-weight: 700;
    white-space: nowrap;
}

.reports-metric-bar {
    display: grid;
    gap: 0.35rem;
    margin-bottom: 0.75rem;
}

.reports-metric-bar-label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    color: var(--text-secondary, #475569);
    font-size: 0.78rem;
}

.reports-metric-bar-label strong {
    color: var(--text-primary, #0f172a);
}

.reports-bar-track {
    background: var(--bg-secondary, #f1f5f9);
    border-radius: 999px;
    height: 8px;
    overflow: hidden;
}

.reports-bar-fill {
    display: block;
    height: 100%;
    min-width: 2px;
}

.reports-bar-primary { background: var(--primary, #2563eb); }
.reports-bar-success { background: var(--success, #10b981); }
.reports-bar-warning { background: var(--warning, #f59e0b); }
.reports-bar-danger { background: var(--danger, #ef4444); }

.reports-top-list {
    display: grid;
    gap: 0.55rem;
    list-style-position: inside;
    margin: 0;
    padding: 0;
}

.reports-top-list li {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.75rem;
    align-items: center;
    color: var(--text-secondary, #475569);
    font-size: 0.8rem;
}

.reports-top-list span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.reports-top-list strong {
    color: var(--text-primary, #0f172a);
}

.saml-status-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.75rem;
}

.saml-status-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.saml-status-grid code {
    display: block;
    margin-top: 0.25rem;
    overflow-wrap: anywhere;
    white-space: normal;
}

.saml-status-errors {
    margin: 0.75rem 0 0;
    padding-left: 1.25rem;
}

a.btn.disabled,
a.btn[aria-disabled="true"] {
    opacity: 0.55;
    pointer-events: none;
}

@media (max-width: 900px) {
    .form-grid.two-col,
    .saml-status-grid,
    .settings-repeatable-row,
    .reports-analytics-grid {
        grid-template-columns: 1fr;
    }
}

@media (min-width: 901px) and (max-width: 1400px) {
    .reports-analytics-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.sage-action-menu-panel .btn-icon,
.sage-action-menu-item {
    width: 100% !important;
    min-width: 0 !important;
    height: 34px !important;
    justify-content: flex-start !important;
    gap: 0.5rem !important;
    border: 0 !important;
    border-radius: var(--sage-radius-sm) !important;
    padding: 0 0.55rem !important;
    background: transparent !important;
    color: var(--sage-text) !important;
}

.sage-action-menu-panel .btn-icon:hover,
.sage-action-menu-item:hover {
    background: var(--sidebar-hover) !important;
}

.sage-action-label {
    display: inline-block !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    font-size: 0.78rem !important;
    font-weight: 600 !important;
}

.modal {
    padding: 1rem !important;
    align-items: center !important;
    justify-content: center !important;
    background: rgba(15, 23, 42, 0.46) !important;
}

.modal-content {
    max-height: min(90vh, 860px) !important;
    border: 1px solid var(--sage-border) !important;
    border-radius: var(--sage-radius) !important;
    background: var(--sage-surface) !important;
    box-shadow: var(--sage-shadow-modal) !important;
    overflow: hidden !important;
}

.modal-header {
    min-height: 58px !important;
    padding: 0.95rem 1.1rem !important;
    border-bottom: 1px solid var(--sage-border) !important;
    background: var(--sage-surface) !important;
}

.modal-header h2,
.modal-header h3 {
    font-size: 1rem !important;
    line-height: 1.25 !important;
    font-weight: 800 !important;
    color: var(--sage-text) !important;
}

.sage-modal-heading {
    display: grid !important;
    gap: 0.2rem !important;
    min-width: 0 !important;
}

.sage-modal-heading h2,
.sage-modal-heading h3 {
    margin: 0 !important;
}

.sage-modal-heading p {
    margin: 0 !important;
    max-width: 76ch !important;
    color: var(--sage-muted) !important;
    font-size: 0.78rem !important;
    line-height: 1.35 !important;
}

.sage-modal-intro {
    margin: 0 0 0.85rem !important;
    padding: 0.78rem 0.9rem !important;
    border: 1px solid #bfdbfe !important;
    border-radius: var(--sage-radius) !important;
    background: linear-gradient(180deg, #eff6ff 0%, #ffffff 100%) !important;
    color: #1e3a8a !important;
    font-size: 0.82rem !important;
    line-height: 1.45 !important;
}

.sage-modal-section {
    border: 1px solid var(--sage-border) !important;
    border-radius: var(--sage-radius) !important;
    background: var(--sage-surface) !important;
    padding: 0.9rem !important;
}

.sage-modal-section-title {
    margin: 0 0 0.65rem !important;
    color: var(--sage-text) !important;
    font-size: 0.86rem !important;
    font-weight: 850 !important;
}

.sage-modal-field-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.8rem 0.9rem !important;
}

.modal-body {
    padding: 1rem 1.1rem !important;
    overflow-y: auto !important;
}

.modal-footer,
.content-ingestion-modal-footer {
    padding: 0.8rem 1.1rem !important;
    border-top: 1px solid var(--sage-border) !important;
    background: var(--sage-surface-muted) !important;
    gap: 0.5rem !important;
}

.modal-close,
.modal-close-btn {
    border-radius: var(--sage-radius-sm) !important;
}

#form-modal .modal-content {
    width: min(1080px, calc(100vw - 2rem)) !important;
}

#content-ingestion-modal .modal-content,
.filter-modal .modal-content,
.column-management-modal .modal-content {
    width: min(760px, calc(100vw - 2rem)) !important;
}

#embed-test-modal .modal-content {
    width: min(1120px, calc(100vw - 2rem)) !important;
}

#confirm-modal .modal-content {
    width: min(460px, calc(100vw - 2rem)) !important;
}

#confirm-modal .modal-body {
    color: var(--sage-text) !important;
}

.sage-confirm-panel {
    display: grid !important;
    grid-template-columns: auto 1fr !important;
    gap: 0.75rem !important;
    align-items: start !important;
    padding: 0.85rem !important;
    border: 1px solid #fecaca !important;
    border-radius: var(--sage-radius) !important;
    background: #fff7f7 !important;
}

.sage-confirm-panel p {
    margin: 0 !important;
    color: var(--sage-text) !important;
    line-height: 1.45 !important;
}

.sage-confirm-icon {
    width: 30px !important;
    height: 30px !important;
    display: inline-grid !important;
    place-items: center !important;
    border-radius: 999px !important;
    background: #fee2e2 !important;
    color: #991b1b !important;
    font-weight: 900 !important;
}

.filter-modal,
.column-management-modal {
    position: fixed !important;
    inset: 0 !important;
    z-index: 10000 !important;
}

.filter-modal .modal-content,
.column-management-modal .modal-content {
    display: flex !important;
    flex-direction: column !important;
    max-height: calc(100vh - 2rem) !important;
    overflow: hidden !important;
}

.filter-modal .modal-body,
.column-management-modal .modal-body,
.filter-modal .filter-modal-body {
    overflow: auto !important;
    min-height: 0 !important;
}

.filter-modal .modal-footer,
.column-management-modal .modal-footer {
    flex: 0 0 auto !important;
}

.sage-column-layout {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.9rem !important;
}

.sage-column-section {
    border: 1px solid var(--sage-border) !important;
    border-radius: var(--sage-radius) !important;
    background: var(--sage-surface-muted) !important;
    padding: 0.85rem !important;
    min-height: 280px !important;
}

.sage-column-section h4 {
    margin: 0 0 0.65rem !important;
    color: var(--sage-text) !important;
    font-size: 0.84rem !important;
    font-weight: 850 !important;
}

.notification-container {
    display: grid !important;
    gap: 0.5rem !important;
    margin: 0.5rem 0 !important;
}

.notification,
.error-message-block,
.field-error-block {
    border-radius: var(--sage-radius) !important;
    border: 1px solid var(--sage-border) !important;
    box-shadow: none !important;
}

.notification {
    display: flex !important;
    align-items: flex-start !important;
    gap: 0.6rem !important;
    padding: 0.72rem 0.78rem !important;
}

.notification-icon {
    min-width: 24px !important;
    height: 24px !important;
    display: inline-grid !important;
    place-items: center !important;
    border-radius: 999px !important;
    font-size: 0.68rem !important;
    font-weight: 800 !important;
}

.notification-success .notification-icon,
.sage-toast-success .sage-toast-icon {
    background: #dcfce7 !important;
    color: #166534 !important;
}

.notification-warning .notification-icon,
.sage-toast-warning .sage-toast-icon {
    background: #fef3c7 !important;
    color: #92400e !important;
}

.notification-error .notification-icon,
.sage-toast-error .sage-toast-icon {
    background: #fee2e2 !important;
    color: #991b1b !important;
}

.notification-info .notification-icon,
.sage-toast-info .sage-toast-icon {
    background: #dbeafe !important;
    color: #1d4ed8 !important;
}

.notification-message {
    color: var(--sage-text) !important;
    line-height: 1.4 !important;
}

.sage-toast-region {
    position: fixed !important;
    right: 1rem !important;
    bottom: 1rem !important;
    z-index: 12000 !important;
    display: grid !important;
    gap: 0.5rem !important;
    width: min(420px, calc(100vw - 2rem)) !important;
    pointer-events: none !important;
}

.sage-toast {
    pointer-events: auto !important;
    display: grid !important;
    grid-template-columns: auto 1fr auto !important;
    gap: 0.65rem !important;
    align-items: start !important;
    padding: 0.75rem !important;
    border: 1px solid var(--sage-border) !important;
    border-radius: var(--sage-radius) !important;
    background: var(--sage-surface) !important;
    color: var(--sage-text) !important;
    box-shadow: var(--sage-shadow-menu) !important;
}

.sage-toast-icon {
    min-width: 24px !important;
    height: 24px !important;
    display: inline-grid !important;
    place-items: center !important;
    border-radius: 999px !important;
    font-size: 0.68rem !important;
    font-weight: 800 !important;
}

.sage-toast-message {
    line-height: 1.35 !important;
}

.sage-toast-close {
    width: 26px !important;
    height: 26px !important;
    display: inline-grid !important;
    place-items: center !important;
    border: 0 !important;
    border-radius: var(--sage-radius-sm) !important;
    background: transparent !important;
    color: var(--sage-muted) !important;
    cursor: pointer !important;
}

.sage-toast-close:hover {
    background: var(--sidebar-hover) !important;
    color: var(--sage-text) !important;
}

.empty-state,
.scope-content-empty,
.loading,
.scope-content-loading {
    border: 1px dashed var(--sage-border) !important;
    border-radius: var(--sage-radius) !important;
    background: color-mix(in srgb, var(--sage-surface) 94%, var(--sage-bg)) !important;
    color: var(--sage-muted) !important;
    padding: 1.5rem !important;
    text-align: center !important;
}

@media (max-width: 1023px) {
    .documents-table-container,
    #chatbots-table-container,
    #scopes-table-container,
    .scope-content-table-wrapper,
    .user-table-container,
    .model-config-table-wrapper {
        max-height: 62vh !important;
    }

    .sage-action-menu-panel {
        right: auto !important;
        left: 0 !important;
    }
}

@media (max-width: 640px) {
    .content-list-header,
    .section-header,
    .standard-controls-row,
    .controls-row-bottom {
        justify-content: stretch !important;
    }

    .content-list-header .btn,
    .section-header .btn,
    .standard-controls-row .btn,
    .controls-row-bottom .btn {
        flex: 1 1 auto !important;
    }

    .modal {
        padding: 0.5rem !important;
    }

    .modal-content,
    #form-modal .modal-content,
    #content-ingestion-modal .modal-content,
    #embed-test-modal .modal-content,
    #confirm-modal .modal-content {
        width: 100% !important;
        max-height: calc(100vh - 1rem) !important;
    }

    .modal-header,
    .modal-body,
    .modal-footer,
    .content-ingestion-modal-footer {
        padding-left: 0.85rem !important;
        padding-right: 0.85rem !important;
    }

    .sage-modal-field-grid,
    .filter-modal .filter-modal-body,
    .sage-column-layout {
        grid-template-columns: 1fr !important;
    }

    .sage-toast-region {
        left: 0.5rem !important;
        right: 0.5rem !important;
        bottom: 0.5rem !important;
        width: auto !important;
    }
}

/* Chatbot preview/message surface standardization */
.embed-test-modal-content.embed-test-chat-only .embed-test-preview {
    min-height: min(620px, calc(100vh - 190px)) !important;
    padding: 0.75rem !important;
    overflow: hidden !important;
}

.embed-test-modal-content.embed-test-chat-only #embed-test-chat-interface[data-position] {
    width: min(520px, calc(100vw - 4rem)) !important;
    height: min(620px, calc(100vh - 220px)) !important;
    min-height: min(420px, calc(100vh - 220px)) !important;
    border: 1px solid var(--sage-border) !important;
    border-radius: var(--sage-radius) !important;
    box-shadow: 0 18px 50px rgba(15, 23, 42, 0.16) !important;
}

.embed-test-chat-header,
.chat-bubble-user .chat-content,
.chat-avatar-user {
    background: linear-gradient(135deg, var(--sage-primary) 0%, #7c3aed 100%) !important;
}

.chat-content {
    border-radius: var(--sage-radius) !important;
    box-shadow: none !important;
}

.chat-sources {
    margin-top: 0.65rem !important;
    padding-top: 0.65rem !important;
}

.chat-sources-header {
    display: none !important;
}

.chat-source-number {
    width: 22px !important;
    height: 22px !important;
    background: #e0e7ff !important;
    color: var(--sage-primary) !important;
    font-weight: 800 !important;
}

.chat-source-link:hover,
.chat-source-link:focus-visible {
    background: var(--sage-primary) !important;
    color: var(--sage-primary-ink, #ffffff) !important;
}

@media (max-width: 640px) {
    .embed-test-modal-content.embed-test-chat-only #embed-test-chat-interface[data-position] {
        width: calc(100vw - 2rem) !important;
        height: calc(100vh - 160px) !important;
        min-height: 360px !important;
    }
}

/* ============================================================================
   Sage Suite UI/UX Standard - visible workbench refinement
   This layer makes the standard apparent to users, not only structurally valid.
   ============================================================================ */
.main-content-wrapper {
    padding: 0.85rem 0.95rem 1.5rem !important;
    background:
        linear-gradient(180deg, rgba(241, 245, 249, 0.96) 0%, rgba(248, 250, 252, 1) 260px),
        var(--sage-bg) !important;
}

.main-content-header {
    position: relative !important;
    min-height: 74px !important;
    margin-bottom: 1.15rem !important;
    padding: 0.9rem 1rem 0.9rem 1.15rem !important;
    overflow: hidden !important;
}

.main-content-header::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 auto 0 0 !important;
    width: 4px !important;
    background: var(--sage-primary) !important;
}

.page-title {
    font-size: 1.16rem !important;
    letter-spacing: 0 !important;
}

.page-breadcrumbs {
    font-size: 0.78rem !important;
}

.page-content.active {
    display: grid !important;
    gap: 0.85rem !important;
}

#content-list-content,
#chatbots-list-content,
#scopes-list-content,
#model-management-list-content,
#user-list-content,
#settings-page .settings-section {
    display: grid !important;
    gap: 0.7rem !important;
}

.stats-bar {
    gap: 0.65rem !important;
    margin: 0 !important;
}

.stat-card,
button.stat-card {
    position: relative !important;
    min-height: 72px !important;
    padding: 0.85rem 0.95rem !important;
    border-color: #cbd5e1 !important;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 1) 0%, rgba(248, 250, 252, 0.98) 100%) !important;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.05) !important;
    overflow: hidden !important;
}

.stat-card::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 auto 0 0 !important;
    width: 3px !important;
    background: var(--sage-primary) !important;
    opacity: 0.75 !important;
}

.stat-card .stat-icon {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    border-radius: 10px !important;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.5) !important;
}

.stat-info {
    display: grid !important;
    gap: 0.12rem !important;
}

.stat-action-hint {
    color: var(--sage-primary) !important;
    font-size: 0.68rem !important;
    line-height: 1.1 !important;
    font-weight: 700 !important;
    opacity: 0.9 !important;
}

.sage-clickable-stat:hover .stat-action-hint,
.sage-clickable-stat:focus-visible .stat-action-hint {
    text-decoration: underline !important;
}

.content-list-header,
.section-header {
    margin: 0 !important;
    padding: 0 !important;
    min-height: 38px !important;
}

.content-list-header .btn-primary {
    box-shadow: 0 8px 18px rgba(29, 78, 216, 0.16) !important;
}

.content-list-header .btn-primary:hover {
    transform: translateY(-1px) !important;
    box-shadow: 0 10px 24px rgba(29, 78, 216, 0.2) !important;
}

#content-list-controls-content,
#chatbots-list-controls-content,
#scopes-list-controls-content,
#user-list-controls-content,
#model-management-list-controls-content,
#settings-list-controls-content,
.list-controls-wrapper {
    padding: 0.6rem !important;
    background: color-mix(in srgb, var(--sage-surface) 82%, #f1f5f9) !important;
    border-color: #cbd5e1 !important;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.04) !important;
}

.user-controls-row,
.standard-controls-row,
.controls-row-bottom {
    gap: 0.55rem !important;
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
}

#content-list-controls-content .search-container,
#chatbots-list-controls-content .search-container,
#scopes-list-controls-content .search-container,
#user-list-controls-content .search-container,
#model-management-list-controls-content .search-container {
    flex: 1 1 300px !important;
    max-width: 440px !important;
}

.sort-select {
    max-width: 170px !important;
}

.sort-container,
.filter-container {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.45rem !important;
    min-width: 0 !important;
}

.sort-container label,
.filter-container label {
    margin: 0 !important;
    color: #475569 !important;
    font-size: 0.74rem !important;
    font-weight: 750 !important;
    white-space: nowrap !important;
}

.search-input,
.form-input,
.sort-select,
.per-page-select,
.form-select {
    border-color: #cbd5e1 !important;
}

.view-toggle {
    display: inline-flex !important;
    gap: 0.18rem !important;
    padding: 0.18rem !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: var(--sage-radius) !important;
    background: #ffffff !important;
}

.view-toggle .view-toggle-btn {
    border: 0 !important;
    min-height: 32px !important;
    background: transparent !important;
}

.view-toggle .view-toggle-btn.active {
    background: var(--sage-primary) !important;
    color: #ffffff !important;
}

.user-pagination-info,
.pagination-container,
.pagination-info {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    min-height: 52px !important;
    border-color: #cbd5e1 !important;
    background: #ffffff !important;
}

.documents-table-container,
#chatbots-table-container,
#scopes-table-container,
.scope-content-table-wrapper,
.user-table-container,
.model-config-table-wrapper {
    max-height: min(600px, calc(100vh - 330px)) !important;
    min-height: 0 !important;
    border-color: #cbd5e1 !important;
    box-shadow: 0 10px 26px rgba(15, 23, 42, 0.05) !important;
}

.documents-table thead th,
#chatbots-table thead th,
#scopes-table thead th,
.scope-content-table thead th,
.users-table thead th,
.model-config-table thead th {
    height: 32px !important;
    background: #f1f5f9 !important;
    color: #0f172a !important;
    border-bottom-color: #cbd5e1 !important;
}

.documents-table td,
#chatbots-table td,
#scopes-table td,
.scope-content-table td,
.users-table td,
.model-config-table td {
    height: 46px !important;
    padding-top: 0.42rem !important;
    padding-bottom: 0.42rem !important;
}

.documents-table tbody tr:nth-child(even),
#chatbots-table tbody tr:nth-child(even),
#scopes-table tbody tr:nth-child(even),
.scope-content-table tbody tr:nth-child(even),
.users-table tbody tr:nth-child(even),
.model-config-table tbody tr:nth-child(even) {
    background: rgba(248, 250, 252, 0.72) !important;
}

.action-icons .btn-icon {
    border-color: #cbd5e1 !important;
    background: #ffffff !important;
}

.action-icons .btn-icon:hover {
    border-color: var(--sage-primary) !important;
    background: #eff6ff !important;
}

.modal {
    backdrop-filter: blur(3px) !important;
}

.modal-content {
    border-color: #cbd5e1 !important;
}

.modal-header {
    min-height: 64px !important;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%) !important;
}

.modal-body {
    background: #f8fafc !important;
}

.modal-footer,
.content-ingestion-modal-footer {
    background: #ffffff !important;
}

#chatbot-form,
.enhanced-form {
    display: grid !important;
    gap: 0.8rem !important;
}

#chatbot-form .admin-tabs,
.scope-modal-tabs {
    display: flex !important;
    gap: 0.25rem !important;
    align-items: center !important;
    padding: 0.28rem !important;
    margin: 0 0 0.8rem !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: var(--sage-radius) !important;
    background: #eef2f7 !important;
    overflow-x: auto !important;
}

#chatbot-form .admin-tab-btn,
.scope-tab-btn {
    min-height: 36px !important;
    border: 0 !important;
    border-radius: 6px !important;
    background: transparent !important;
    color: #334155 !important;
    font-size: 0.8rem !important;
    font-weight: 750 !important;
    white-space: nowrap !important;
}

#chatbot-form .admin-tab-btn.active,
.scope-tab-btn.active {
    background: #ffffff !important;
    color: var(--sage-primary) !important;
    border: 1px solid #bfdbfe !important;
    box-shadow: 0 4px 10px rgba(37, 99, 235, 0.08) !important;
}

#chatbot-form .admin-tab-content.active,
.scope-tab-panel.active,
#scope-panel-details,
#scope-panel-content {
    background: #ffffff !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: var(--sage-radius) !important;
    padding: 1rem !important;
}

#chatbot-form .form-hint,
.pro-tip {
    margin: 0 0 0.85rem !important;
    padding: 0.6rem 0.75rem !important;
    border: 1px solid #dbeafe !important;
    border-left: 3px solid var(--sage-primary) !important;
    border-radius: var(--sage-radius-sm) !important;
    background: #eff6ff !important;
    color: #1e3a8a !important;
    font-size: 0.78rem !important;
}

#chatbot-form .form-label,
.enhanced-form .form-label {
    color: #0f172a !important;
    font-size: 0.76rem !important;
    font-weight: 800 !important;
    letter-spacing: 0 !important;
}

#chatbot-form .form-field,
.enhanced-form .form-field {
    margin-bottom: 0.7rem !important;
}

.chatbot-tab-intro {
    display: flex !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    gap: 1rem !important;
    margin: 0 0 0.85rem !important;
    padding: 0.85rem 0.95rem !important;
    border: 1px solid #bfdbfe !important;
    border-radius: var(--sage-radius) !important;
    background: linear-gradient(180deg, #eff6ff 0%, #ffffff 100%) !important;
}

.chatbot-tab-intro h4 {
    margin: 0 0 0.25rem !important;
    color: #0f172a !important;
    font-size: 0.95rem !important;
    font-weight: 850 !important;
}

.chatbot-tab-intro p {
    margin: 0 !important;
    color: #334155 !important;
    font-size: 0.82rem !important;
    line-height: 1.4 !important;
}

.chatbot-config-card {
    padding: 0.95rem !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: var(--sage-radius) !important;
    background: #ffffff !important;
}

.chatbot-field-note,
.chatbot-reporting-summary {
    border: 1px solid #dbeafe !important;
    border-radius: var(--sage-radius) !important;
    background: #f8fafc !important;
}

.chatbot-field-note {
    display: grid !important;
    gap: 0.2rem !important;
    padding: 0.8rem 0.9rem !important;
    color: #334155 !important;
}

.chatbot-field-note strong {
    color: #0f172a !important;
    font-size: 0.82rem !important;
}

.chatbot-field-note span {
    font-size: 0.78rem !important;
    line-height: 1.4 !important;
}

.sage-toggle-card {
    position: relative !important;
    display: grid !important;
    grid-template-columns: auto 1fr !important;
    gap: 0.8rem !important;
    align-items: center !important;
    min-height: 68px !important;
    padding: 0.85rem 0.95rem !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: var(--sage-radius) !important;
    background: #f8fafc !important;
    cursor: pointer !important;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease !important;
}

.sage-toggle-card:hover {
    border-color: #93c5fd !important;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.06) !important;
}

.sage-toggle-card input {
    position: absolute !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

.sage-toggle-visual {
    position: relative !important;
    width: 44px !important;
    height: 24px !important;
    border-radius: 999px !important;
    background: #cbd5e1 !important;
    box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.08) !important;
    transition: background 0.15s ease !important;
}

.sage-toggle-visual span {
    position: absolute !important;
    left: 3px !important;
    top: 3px !important;
    width: 18px !important;
    height: 18px !important;
    border-radius: 999px !important;
    background: #ffffff !important;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.25) !important;
    transition: transform 0.15s ease !important;
}

.sage-toggle-card input:checked + .sage-toggle-visual {
    background: var(--sage-primary) !important;
}

.sage-toggle-card input:checked + .sage-toggle-visual span {
    transform: translateX(20px) !important;
}

.sage-toggle-card input:focus-visible + .sage-toggle-visual {
    outline: 3px solid rgba(37, 99, 235, 0.28) !important;
    outline-offset: 3px !important;
}

.sage-toggle-copy {
    display: grid !important;
    gap: 0.15rem !important;
}

.sage-toggle-copy strong {
    color: #0f172a !important;
    font-size: 0.84rem !important;
}

.sage-toggle-copy small {
    color: #64748b !important;
    font-size: 0.76rem !important;
    line-height: 1.35 !important;
}

.chatbot-reporting-summary {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 0 !important;
    overflow: hidden !important;
}

.chatbot-reporting-summary div {
    display: grid !important;
    gap: 0.2rem !important;
    padding: 0.8rem !important;
    border-right: 1px solid #e2e8f0 !important;
}

.chatbot-reporting-summary div:last-child {
    border-right: 0 !important;
}

.chatbot-reporting-summary strong {
    color: #0f172a !important;
    font-size: 0.78rem !important;
}

.chatbot-reporting-summary span {
    color: #64748b !important;
    font-size: 0.74rem !important;
    line-height: 1.35 !important;
}

.widget-theme-panel {
    margin-top: 1rem !important;
    padding-top: 1rem !important;
    border-top: 1px solid #e2e8f0 !important;
}

.widget-color-toolbar {
    display: grid !important;
    grid-template-columns: minmax(220px, 320px) auto !important;
    gap: 0.75rem !important;
    align-items: end !important;
    margin: 0.85rem 0 !important;
}

.widget-color-preview {
    --preview-primary: #2563eb;
    --preview-secondary: #7c3aed;
    --preview-accent: #db2777;
    --preview-surface: #ffffff;
    --preview-messagesBg: #f8fafc;
    --preview-text: #333333;
    --preview-headerText: #ffffff;
    --preview-userText: #ffffff;
    --preview-sourceBg: rgba(37, 99, 235, 0.16);
    --preview-sourceText: #475569;
    width: min(360px, 100%) !important;
    margin: 0.4rem 0 0.9rem !important;
    overflow: hidden !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 8px !important;
    background: var(--preview-surface) !important;
    box-shadow: 0 10px 26px rgba(15, 23, 42, 0.08) !important;
}

.widget-color-preview-header {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 0.7rem 0.85rem !important;
    background: linear-gradient(135deg, var(--preview-primary), var(--preview-secondary)) !important;
    color: var(--preview-headerText) !important;
    font-weight: 760 !important;
}

.widget-color-preview-body {
    display: grid !important;
    gap: 0.55rem !important;
    padding: 0.9rem !important;
    min-height: 130px !important;
    background: var(--preview-messagesBg) !important;
}

.widget-color-preview-bubble {
    max-width: 82% !important;
    padding: 0.55rem 0.7rem !important;
    border-radius: 8px !important;
    font-size: 0.82rem !important;
    line-height: 1.35 !important;
}

.widget-color-preview-bubble.user {
    justify-self: end !important;
    background: linear-gradient(135deg, var(--preview-primary), var(--preview-secondary)) !important;
    color: var(--preview-userText) !important;
}

.widget-color-preview-bubble.bot {
    justify-self: start !important;
    background: var(--preview-surface) !important;
    color: var(--preview-text) !important;
    border: 1px solid #e2e8f0 !important;
}

.widget-color-preview-source {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 1.35rem !important;
    height: 1.35rem !important;
    border-radius: 999px !important;
    background: var(--preview-sourceBg) !important;
    color: var(--preview-sourceText) !important;
    font-size: 0.72rem !important;
    font-weight: 760 !important;
}

.widget-color-details {
    margin-top: 0.7rem !important;
}

.widget-color-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.widget-color-field .form-input {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace !important;
}

@media (max-width: 720px) {
    .chatbot-tab-intro {
        display: block !important;
    }

    .widget-color-toolbar,
    .widget-color-grid {
        grid-template-columns: 1fr !important;
    }

    .chatbot-reporting-summary {
        grid-template-columns: 1fr !important;
    }

    .chatbot-reporting-summary div {
        border-right: 0 !important;
        border-bottom: 1px solid #e2e8f0 !important;
    }

    .chatbot-reporting-summary div:last-child {
        border-bottom: 0 !important;
    }
}

.answer-quality-grid {
    gap: 0.75rem 0.9rem !important;
}

.answer-quality-advanced {
    margin: 0.75rem 0 !important;
    border-color: #cbd5e1 !important;
    background: #f8fafc !important;
}

.answer-quality-advanced summary {
    min-height: 42px !important;
    padding: 0.7rem 0.85rem !important;
    color: #0f172a !important;
}

.answer-quality-advanced[open] {
    padding-bottom: 0.85rem !important;
}

.answer-quality-advanced[open] .answer-quality-grid {
    padding: 0 0.85rem !important;
}

.answer-quality-preview {
    min-height: 170px !important;
    background: #0f172a !important;
    color: #e2e8f0 !important;
    border-color: #1e293b !important;
    font-size: 0.76rem !important;
}

#chatbot-form .form-actions,
.enhanced-form .form-actions {
    position: sticky !important;
    bottom: -1rem !important;
    z-index: 2 !important;
    margin: 0 -1rem -1rem !important;
    padding: 0.85rem 1rem !important;
    background: #ffffff !important;
    border-top: 1px solid #cbd5e1 !important;
    border-radius: 0 0 var(--sage-radius) var(--sage-radius) !important;
}

@media (max-width: 640px) {
    .main-content-wrapper {
        padding: 0.65rem !important;
    }

    .main-content-header {
        min-height: 68px !important;
    }

    .stats-bar {
        gap: 0.55rem !important;
    }

    .stat-card,
    button.stat-card {
        min-height: 66px !important;
    }

    .documents-table-container,
    #chatbots-table-container,
    #scopes-table-container,
    .scope-content-table-wrapper,
    .user-table-container,
    .model-config-table-wrapper {
        max-height: 58vh !important;
    }
}

@media (min-width: 1180px) {
    #content-list-controls-content .standard-controls-row,
    #chatbots-list-controls-content .standard-controls-row,
    #scopes-list-controls-content .standard-controls-row,
    #user-list-controls-content .user-controls-row,
    #model-management-list-controls-content .user-controls-row,
    #settings-list-controls-content .standard-controls-row {
        flex-wrap: nowrap !important;
        gap: 0.45rem !important;
    }

    #content-list-controls-content .search-container,
    #chatbots-list-controls-content .search-container,
    #scopes-list-controls-content .search-container,
    #user-list-controls-content .search-container,
    #model-management-list-controls-content .search-container {
        flex: 1 1 240px !important;
        min-width: 220px !important;
        max-width: 360px !important;
    }

    #content-list-controls-content .btn,
    #chatbots-list-controls-content .btn,
    #scopes-list-controls-content .btn,
    #user-list-controls-content .btn,
    #model-management-list-controls-content .btn,
    #settings-list-controls-content .btn,
    #content-list-controls-content .view-toggle-btn,
    #chatbots-list-controls-content .view-toggle-btn,
    #scopes-list-controls-content .view-toggle-btn {
        min-height: 36px !important;
        padding: 0.5rem 0.62rem !important;
        gap: 0.3rem !important;
        font-size: 0.8rem !important;
    }

    #content-list-controls-content .sort-select,
    #chatbots-list-controls-content .sort-select,
    #scopes-list-controls-content .sort-select,
    #user-list-controls-content .sort-select,
    #model-management-list-controls-content .sort-select {
        max-width: 140px !important;
    }

    #content-list-controls-content .sort-container,
    #chatbots-list-controls-content .sort-container,
    #scopes-list-controls-content .sort-container,
    #user-list-controls-content .sort-container,
    #model-management-list-controls-content .sort-container {
        flex: 0 0 auto !important;
    }
}

/* Content Management reference workbench: real row redesign, not a skin. */
#content-page #content-list-content {
    gap: 0.75rem !important;
}

#content-page .content-list-header {
    padding: 0.15rem 0 !important;
}

#content-page #content-list-controls-content {
    display: block !important;
    padding: 0.72rem !important;
}

#content-page #content-list-controls-content .user-controls-row {
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
}

#content-page #content-list-controls-content #add-content-btn {
    margin-left: auto !important;
    flex: 0 0 auto !important;
}

#content-page #content-list-controls-content #remove-duplicates-btn {
    flex: 0 0 auto !important;
    white-space: nowrap !important;
}

#content-page #content-table-container {
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: visible !important;
}

#content-page #content-table {
    width: 100% !important;
    table-layout: fixed !important;
    border-collapse: separate !important;
    border-spacing: 0 0.55rem !important;
    background: transparent !important;
}

#content-page #content-table thead th {
    padding-top: 0.6rem !important;
    padding-bottom: 0.6rem !important;
    border-top: 1px solid #cbd5e1 !important;
    border-bottom: 1px solid #cbd5e1 !important;
    background: #eef2f7 !important;
    color: #334155 !important;
    font-size: 0.71rem !important;
}

#content-page #content-table thead th:first-child {
    border-left: 1px solid #cbd5e1 !important;
    border-radius: 8px 0 0 8px !important;
}

#content-page #content-table thead th:last-child {
    border-right: 1px solid #cbd5e1 !important;
    border-radius: 0 8px 8px 0 !important;
}

#content-page #content-table tbody tr {
    border-radius: 8px !important;
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.045) !important;
}

#content-page #content-table tbody td {
    padding-top: 0.8rem !important;
    padding-bottom: 0.8rem !important;
    border-top: 1px solid #cbd5e1 !important;
    border-bottom: 1px solid #cbd5e1 !important;
    background: #ffffff !important;
    vertical-align: middle !important;
}

#content-page #content-table tbody td:first-child {
    border-left: 1px solid #cbd5e1 !important;
    border-radius: 8px 0 0 8px !important;
}

#content-page #content-table tbody td:last-child {
    border-right: 1px solid #cbd5e1 !important;
    border-radius: 0 8px 8px 0 !important;
}

#content-page #content-table tbody tr:hover td {
    background: #f8fbff !important;
    border-color: #93c5fd !important;
}

#content-page .content-id-cell {
    white-space: nowrap !important;
    width: 6rem !important;
}

.content-id-pill {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 3.6rem !important;
    min-height: 1.75rem !important;
    padding: 0.15rem 0.5rem !important;
    border: 1px solid #bfdbfe !important;
    border-radius: 999px !important;
    background: #eff6ff !important;
    color: #1d4ed8 !important;
    font-size: 0.78rem !important;
    font-weight: 800 !important;
}

#content-page .content-primary-cell {
    min-width: 28rem !important;
    max-width: none !important;
}

.content-title-stack {
    display: grid !important;
    gap: 0.36rem !important;
    min-width: 0 !important;
}

.content-title-line {
    color: #0f172a !important;
    font-size: 0.91rem !important;
    font-weight: 760 !important;
    line-height: 1.25 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.content-path-line {
    color: #475569 !important;
    font-size: 0.78rem !important;
    line-height: 1.3 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.content-path-line a {
    color: #1d4ed8 !important;
    text-decoration: none !important;
}

.content-path-line a:hover {
    text-decoration: underline !important;
}

.content-row-meta {
    display: flex !important;
    align-items: center !important;
    gap: 0.35rem !important;
    flex-wrap: wrap !important;
}

.content-row-chip {
    display: inline-flex !important;
    align-items: center !important;
    min-height: 1.35rem !important;
    padding: 0.12rem 0.45rem !important;
    border-radius: 999px !important;
    background: #f1f5f9 !important;
    color: #334155 !important;
    font-size: 0.68rem !important;
    font-weight: 720 !important;
}

#content-page .content-actions-cell {
    width: 9rem !important;
    text-align: right !important;
}

#content-page .sage-action-menu-toggle {
    min-width: 6.4rem !important;
    justify-content: center !important;
}

#content-page .user-pagination-info {
    background: #ffffff !important;
    border: 1px solid #cbd5e1 !important;
    box-shadow: 0 6px 16px rgba(15, 23, 42, 0.035) !important;
}

@media (max-width: 900px) {
    #content-page #content-table-container {
        overflow-x: auto !important;
    }

    #content-page #content-table {
        min-width: 760px !important;
    }

    #content-page .content-primary-cell {
        min-width: 22rem !important;
    }
}

/* ============================================================================
   Strict Sage Commercial Product Standard
   Final enforcement layer: tables remain semantic tables. Card-style summaries
   belong in card view only, not in default list/table view.
   ============================================================================ */
.admin-main,
.page-title-section {
    max-width: none !important;
}

.page-title-section {
    min-width: 0 !important;
}

#content-page #content-table-container,
.documents-table-container,
#chatbots-table-container,
#scopes-table-container,
#reports-table-container,
#user-table-container,
#model-management-table-container,
#code-table-container {
    width: 100% !important;
    max-width: 100% !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: var(--sage-radius) !important;
    background: #ffffff !important;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.05) !important;
    overflow: auto !important;
}

#content-page #content-table,
.documents-table {
    width: 100% !important;
    min-width: 1540px !important;
    table-layout: fixed !important;
    border-collapse: collapse !important;
    border-spacing: 0 !important;
    background: #ffffff !important;
}

#chatbots-table,
#scopes-table,
#reports-table,
#user-table,
#model-management-table,
#code-table {
    width: 100% !important;
    min-width: 900px !important;
    table-layout: fixed !important;
    border-collapse: collapse !important;
    border-spacing: 0 !important;
}

#chatbots-table,
#scopes-table {
    min-width: 1080px !important;
}

#reports-table {
    min-width: 1180px !important;
}

#model-management-table {
    min-width: 1580px !important;
    table-layout: fixed !important;
}

#model-management-table thead th {
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    line-height: 1.18 !important;
}

#model-management-table th[data-column="name"],
#model-management-table td[data-column="name"] {
    width: 220px !important;
}

#model-management-table th[data-column="llm-endpoint"],
#model-management-table td[data-column="llm-endpoint"] {
    width: 230px !important;
}

#model-management-table th[data-column="embedding-endpoint"],
#model-management-table td[data-column="embedding-endpoint"] {
    width: 230px !important;
}

#model-management-table th[data-column="llm-provider"],
#model-management-table td[data-column="llm-provider"] {
    width: 110px !important;
}

#model-management-table th[data-column="embedding-provider"],
#model-management-table td[data-column="embedding-provider"] {
    width: 140px !important;
}

#model-management-table th[data-column="llm-model"],
#model-management-table td[data-column="llm-model"] {
    width: 130px !important;
}

#model-management-table th[data-column="embedding-model"],
#model-management-table td[data-column="embedding-model"] {
    width: 180px !important;
}

#model-management-table th[data-column="credentials"],
#model-management-table td[data-column="credentials"] {
    width: 110px !important;
}

#model-management-table th[data-column="active"],
#model-management-table td[data-column="active"] {
    width: 76px !important;
}

#model-management-table th[data-column="actions"],
#model-management-table td[data-column="actions"] {
    width: 120px !important;
}

#content-page #content-table thead th,
.documents-table thead th {
    position: sticky !important;
    top: 0 !important;
    height: 36px !important;
    padding: 0.55rem 0.7rem !important;
    border: 0 !important;
    border-bottom: 1px solid #cbd5e1 !important;
    border-radius: 0 !important;
    background: #f1f5f9 !important;
    color: #0f172a !important;
    font-size: 0.69rem !important;
    line-height: 1.15 !important;
    letter-spacing: 0 !important;
    vertical-align: middle !important;
    white-space: nowrap !important;
}

#content-page #content-table tbody tr,
.documents-table tbody tr {
    box-shadow: none !important;
    border-radius: 0 !important;
}

#content-page #content-table tbody td,
.documents-table tbody td {
    height: 44px !important;
    padding: 0.48rem 0.7rem !important;
    border: 0 !important;
    border-bottom: 1px solid #e2e8f0 !important;
    border-radius: 0 !important;
    background: #ffffff !important;
    vertical-align: middle !important;
    white-space: nowrap !important;
}

#content-page #content-table tbody tr:hover td,
.documents-table tbody tr:hover td {
    background: #f8fbff !important;
    border-color: #dbeafe !important;
}

#content-table th:nth-child(1),
#content-table td:nth-child(1) {
    width: 36px !important;
    min-width: 36px !important;
    max-width: 36px !important;
}

#content-table th:nth-child(2),
#content-table td:nth-child(2) {
    width: 96px !important;
    min-width: 96px !important;
}

#content-table th:nth-child(3),
#content-table td:nth-child(3) {
    width: 320px !important;
    min-width: 320px !important;
}

#content-table th:nth-child(4),
#content-table td:nth-child(4),
#content-table th:nth-child(5),
#content-table td:nth-child(5),
#content-table th:nth-child(6),
#content-table td:nth-child(6) {
    width: 140px !important;
    min-width: 140px !important;
}

#content-table th:nth-child(7),
#content-table td:nth-child(7) {
    width: 340px !important;
    min-width: 340px !important;
}

#content-table th:nth-child(8),
#content-table td:nth-child(8) {
    width: 90px !important;
    min-width: 90px !important;
}

#content-table th:nth-child(9),
#content-table td:nth-child(9) {
    width: 120px !important;
    min-width: 120px !important;
}

#content-table th:nth-child(10),
#content-table td:nth-child(10) {
    width: 120px !important;
    min-width: 120px !important;
}

#content-table th:nth-child(11),
#content-table td:nth-child(11) {
    width: 140px !important;
    min-width: 140px !important;
}

.sage-table-primary-text,
.sage-table-link,
.file-path-cell,
.file-path-link,
#content-page .content-primary-cell,
#content-table td[data-column="source"],
#content-table td[data-column="content-type"],
#content-table td[data-column="document-type"] {
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.sage-table-primary-text,
.sage-table-link,
.file-path-link {
    display: inline-block !important;
}

.sage-table-link {
    color: var(--sage-primary) !important;
    text-decoration: none !important;
}

.sage-table-link:hover,
.sage-table-link:focus-visible {
    text-decoration: underline !important;
}

#content-page .content-primary-cell {
    width: 320px !important;
    min-width: 320px !important;
}

#content-page .content-actions-cell,
.content-actions-cell {
    width: 140px !important;
    min-width: 140px !important;
    text-align: right !important;
    overflow: visible !important;
}

#content-table .source-badge,
#content-table .content-type-badge,
#content-table .document-type-badge,
#content-table .status-badge {
    max-width: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

#content-table .content-title-stack,
#content-table .content-path-line,
#content-table .content-row-meta {
    display: none !important;
}

@media (max-width: 900px) {
    #content-page #content-table,
    .documents-table {
        min-width: 1440px !important;
    }
}

/* Full-screen task surfaces for complex configuration flows. */
.sage-task-surface-modal {
    align-items: stretch !important;
    justify-content: stretch !important;
    padding: 16px !important;
}

.sage-task-surface-modal .modal-content {
    width: min(1440px, calc(100vw - 32px)) !important;
    max-width: none !important;
    height: calc(100vh - 32px) !important;
    max-height: calc(100vh - 32px) !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
}

.sage-task-surface-modal .modal-header {
    flex: 0 0 auto !important;
}

.sage-task-surface-modal .notification-container {
    flex: 0 0 auto !important;
}

.sage-task-surface-modal .modal-body,
.sage-task-surface-modal .model-config-modal-body {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow: auto !important;
}

.sage-task-surface-modal .modal-footer {
    flex: 0 0 auto !important;
    position: sticky !important;
    bottom: 0 !important;
    z-index: 3 !important;
}

.sage-standard-modal .modal-content {
    width: min(880px, calc(100vw - 32px)) !important;
    max-height: calc(100vh - 32px) !important;
    display: flex !important;
    flex-direction: column !important;
}

#content-ingestion-modal.sage-standard-modal .modal-content,
#content-ingestion-modal .modal-content {
    max-height: min(calc(100vh - 40px), 95vh) !important;
}

.sage-standard-modal .modal-body {
    min-height: 0 !important;
    overflow: auto !important;
}

/* Scope editor: bounded task modal with visible content filters. */
#form-modal.scope-editor-modal {
    align-items: center !important;
    justify-content: center !important;
    padding: 16px !important;
}

#form-modal.scope-editor-modal .modal-content {
    width: min(1240px, calc(100vw - 32px)) !important;
    max-width: none !important;
    height: 80vh !important;
    max-height: 80vh !important;
    min-height: min(640px, 80vh) !important;
    overflow: hidden !important;
}

#form-modal.scope-editor-modal .modal-body {
    display: flex !important;
    flex-direction: column !important;
    min-height: 0 !important;
    overflow: hidden !important;
}

#form-modal.scope-editor-modal .scope-form-tabbed {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
}

#form-modal.scope-editor-modal .scope-tab-panel {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow: auto !important;
}

#form-modal.scope-editor-modal #scope-panel-content {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.5rem !important;
}

#form-modal.scope-editor-modal #scope-panel-content[hidden] {
    display: none !important;
}

#form-modal.scope-editor-modal .scope-content-command-row {
    position: sticky !important;
    top: 0 !important;
    z-index: 5 !important;
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 0.55rem !important;
    margin-bottom: 0 !important;
    padding: 0.55rem !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: var(--sage-radius) !important;
    background: color-mix(in srgb, var(--sage-surface) 88%, #f8fafc) !important;
    box-shadow: 0 6px 14px rgba(15, 23, 42, 0.04) !important;
}

#form-modal.scope-editor-modal .scope-content-command-row .search-container {
    flex: 1 1 320px !important;
    max-width: none !important;
}

/* ============================================================================
   2026-05-25 QA pass: compact commercial workbench + consistent list semantics.
   Keep default management screens dense enough for 10-row desktop review while
   preserving one field per column.
   ============================================================================ */
:root {
    --header-height: 72px;
}

.main-content-header {
    min-height: var(--header-height) !important;
    padding: 0.75rem 1.25rem !important;
    margin-bottom: 0.45rem !important;
}

.main-content-wrapper {
    padding: 0.5rem 0.7rem 0.8rem !important;
}

.page-title {
    margin-bottom: 0.15rem !important;
    line-height: 1.2 !important;
}

.admin-main {
    padding: 0.65rem 0.9rem 0.9rem !important;
}

.stats-bar {
    gap: 0.55rem !important;
    margin: 0 0 0.55rem !important;
}

button.stat-card,
.stat-card {
    min-height: 56px !important;
    padding: 0.58rem 0.75rem !important;
}

.stat-card .stat-icon {
    width: 34px !important;
    height: 34px !important;
}

.stat-card .stat-value {
    font-size: 1rem !important;
    line-height: 1.05 !important;
}

.stat-card .stat-label {
    font-size: 0.76rem !important;
    line-height: 1.15 !important;
}

#content-list-controls-content,
#chatbots-list-controls-content,
#scopes-list-controls-content,
#reports-list-controls-content,
#user-list-controls-content,
#model-management-list-controls-content,
#connectors-list-controls-content,
#webhooks-list-controls-content {
    margin-bottom: 0.5rem !important;
    padding: 0.5rem !important;
}

.user-controls-row,
.standard-controls-row,
.controls-row-bottom {
    margin-bottom: 0 !important;
}

.notification-container {
    margin: 0 0 0.35rem !important;
}

.search-input,
.sort-select,
.per-page-select,
.form-select {
    min-height: 34px !important;
    padding-top: 0.4rem !important;
    padding-bottom: 0.4rem !important;
}

.btn,
.view-toggle .view-toggle-btn {
    min-height: 34px !important;
}

.user-pagination-info,
.pagination-container,
.pagination-info {
    min-height: 42px !important;
    padding: 0.45rem 0.65rem !important;
    margin: 0 0 0.5rem !important;
}

.pagination-left {
    gap: 0.45rem !important;
}

.documents-table-container,
#chatbots-table-container,
#scopes-table-container,
#content-page #content-table-container,
#reports-table-container,
#user-table-container,
#model-management-table-container,
#code-table-container {
    max-height: min(560px, calc(100vh - 270px)) !important;
}

#content-page #content-table thead th,
.documents-table thead th,
#chatbots-table thead th,
#scopes-table thead th {
    height: 30px !important;
    padding: 0.42rem 0.55rem !important;
}

#content-page #content-table tbody td,
.documents-table tbody td,
#chatbots-table tbody td,
#scopes-table tbody td {
    height: 38px !important;
    padding: 0.32rem 0.55rem !important;
    line-height: 1.2 !important;
}

.content-id-pill,
.scope-id-pill,
.chatbot-id-pill {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 3.4rem !important;
    min-height: 1.55rem !important;
    padding: 0.1rem 0.48rem !important;
    border: 1px solid #bfdbfe !important;
    border-radius: 999px !important;
    background: #eff6ff !important;
    color: #1d4ed8 !important;
    font-size: 0.76rem !important;
    font-weight: 800 !important;
}

.scope-metric-link {
    display: inline-flex !important;
    flex-direction: row !important;
    align-items: baseline !important;
    gap: 0.28rem !important;
    min-width: 0 !important;
    min-height: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: #0f172a !important;
}

.scope-metric-link:hover,
.scope-metric-link:focus-visible {
    border-color: transparent !important;
    box-shadow: none !important;
    color: var(--sage-primary) !important;
    text-decoration: underline !important;
    text-underline-offset: 2px !important;
}

.scope-metric-link strong {
    font-size: 0.86rem !important;
    line-height: 1 !important;
}

.scope-metric-link span {
    color: #475569 !important;
    font-size: 0.72rem !important;
    text-transform: lowercase !important;
}

#chatbots-table {
    min-width: 1160px !important;
}

#chatbots-table th:nth-child(1),
#chatbots-table td:nth-child(1) {
    width: 36px !important;
    min-width: 36px !important;
    max-width: 36px !important;
}

#chatbots-table th:nth-child(2),
#chatbots-table td:nth-child(2) {
    width: 96px !important;
    min-width: 96px !important;
}

#chatbots-table th:nth-child(3),
#chatbots-table td:nth-child(3) {
    width: 260px !important;
    min-width: 260px !important;
}

#chatbots-table th:nth-child(4),
#chatbots-table td:nth-child(4) {
    width: 110px !important;
    min-width: 110px !important;
}

#chatbots-table th:nth-child(5),
#chatbots-table td:nth-child(5) {
    width: 240px !important;
    min-width: 240px !important;
}

#chatbots-table th:nth-child(6),
#chatbots-table td:nth-child(6),
#chatbots-table th:nth-child(7),
#chatbots-table td:nth-child(7) {
    width: 120px !important;
    min-width: 120px !important;
}

#chatbots-table th:nth-child(8),
#chatbots-table td:nth-child(8) {
    width: 120px !important;
    min-width: 120px !important;
}

#chatbots-table th:nth-child(9),
#chatbots-table td:nth-child(9) {
    width: 140px !important;
    min-width: 140px !important;
}

#chatbots-table td:nth-child(3),
#scopes-table td:nth-child(3) {
    font-weight: 700 !important;
}

#form-modal.scope-editor-modal .scope-content-command-row .sort-container {
    flex: 0 1 auto !important;
}

#form-modal.scope-editor-modal .scope-content-command-row .btn,
#form-modal.scope-editor-modal .scope-content-command-row .sort-select {
    min-height: 36px !important;
}

#form-modal.scope-editor-modal .scope-content-single-panel {
    flex: 1 1 260px !important;
    min-height: 220px !important;
}

#form-modal.scope-editor-modal #scope-panel-content .scope-content-table-wrapper {
    max-height: none !important;
}

#form-modal.scope-editor-modal .scope-selected-table-wrapper {
    max-height: 160px !important;
    min-height: 72px !important;
}

/* ============================================================================
   2026-05-25 commercial list standardization pass.
   Every admin workbench uses one compact table rhythm, visible ID columns, and
   aligned actions. This block intentionally sits late in the cascade.
   ============================================================================ */
#content-page.page-content.active,
#scopes-page.page-content.active,
#chatbots-page.page-content.active,
#users-page.page-content.active,
#model-management-page.page-content.active,
#connectors-page.page-content.active,
#webhooks-page.page-content.active,
#audit-log-page.page-content.active,
#reports-page.page-content.active,
#code-management-page.page-content.active {
    gap: 0.45rem !important;
}

.page-content > .notification-container:empty {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

#content-list-content,
#scopes-list-content,
#chatbots-list-content,
#user-list-content,
#model-management-list-content,
#reports-list-content,
#code-management-list-content {
    gap: 0.45rem !important;
}

#content-list-controls-content,
#scopes-list-controls-content,
#chatbots-list-controls-content,
#user-list-controls-content,
#model-management-list-controls-content,
#reports-list-controls-content,
#code-management-list-controls-content,
#connectors-list-controls-content,
#webhooks-list-controls-content,
#audit-log-list-controls-content {
    margin: 0 0 0.45rem !important;
    padding: 0.45rem !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: var(--sage-radius) !important;
    background: #ffffff !important;
}

.documents-table-container,
#content-table-container,
#scopes-table-container,
#chatbots-table-container,
#user-table-container,
#model-management-table-container,
#reports-table-container,
#code-table-container {
    margin: 0 !important;
    max-height: min(572px, calc(100vh - 252px)) !important;
    overflow: auto !important;
}

.documents-table {
    border-collapse: collapse !important;
    border-spacing: 0 !important;
    table-layout: fixed !important;
}

.documents-table thead th,
.documents-table tbody td {
    box-sizing: border-box !important;
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.documents-table thead th {
    height: 30px !important;
    padding: 0.36rem 0.52rem !important;
    white-space: nowrap !important;
}

.documents-table tbody td {
    height: 37px !important;
    padding: 0.31rem 0.52rem !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
}

.content-id-pill,
.scope-id-pill,
.chatbot-id-pill,
.sage-id-pill {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 3.2rem !important;
    min-height: 1.45rem !important;
    padding: 0.08rem 0.46rem !important;
    border: 1px solid #bfdbfe !important;
    border-radius: 999px !important;
    background: #eff6ff !important;
    color: #1d4ed8 !important;
    font-size: 0.74rem !important;
    font-weight: 800 !important;
    line-height: 1 !important;
}

.documents-table th[data-column="actions"],
.documents-table td[data-column="actions"],
#user-table th[data-column="actions"],
#user-table td[data-column="actions"],
#connectors-table th[data-column="actions"],
#connectors-table td[data-column="actions"],
#webhooks-table th[data-column="actions"],
#webhooks-table td[data-column="actions"],
#reports-schedule-table th[data-column="actions"],
#reports-schedule-table td[data-column="actions"] {
    width: 132px !important;
    min-width: 132px !important;
    max-width: 132px !important;
    text-align: right !important;
    overflow: visible !important;
}

.documents-table td[data-column="actions"] .action-icons,
#user-table td[data-column="actions"] .action-icons,
#connectors-table td[data-column="actions"] .action-icons,
#webhooks-table td[data-column="actions"] .action-icons,
#reports-schedule-table td[data-column="actions"] .action-icons {
    justify-content: flex-end !important;
    width: 100% !important;
    overflow: visible !important;
}

.sage-force-action-menu .sage-action-menu-toggle,
.sage-action-menu-toggle {
    min-width: 6.25rem !important;
    justify-content: center !important;
}

#chatbots-table {
    min-width: 1260px !important;
}

#chatbots-table th:nth-child(1),
#chatbots-table td:nth-child(1) { width: 36px !important; }
#chatbots-table th[data-column="id"],
#chatbots-table td[data-column="id"] { width: 96px !important; }
#chatbots-table th[data-column="name"],
#chatbots-table td[data-column="name"] { width: 300px !important; }
#chatbots-table th[data-column="status"],
#chatbots-table td[data-column="status"] { width: 110px !important; }
#chatbots-table th[data-column="scope"],
#chatbots-table td[data-column="scope"] { width: 260px !important; }
#chatbots-table th[data-column="theme"],
#chatbots-table td[data-column="theme"],
#chatbots-table th[data-column="position"],
#chatbots-table td[data-column="position"],
#chatbots-table th[data-column="created"],
#chatbots-table td[data-column="created"] { width: 125px !important; }

#user-table {
    min-width: 1228px !important;
}

#user-table th[data-column="id"],
#user-table td[data-column="id"] { width: 96px !important; }
#user-table th[data-column="user"],
#user-table td[data-column="user"] { width: 260px !important; }
#user-table th[data-column="email"],
#user-table td[data-column="email"] { width: 260px !important; }
#user-table th[data-column="role"],
#user-table td[data-column="role"] { width: 150px !important; }
#user-table th[data-column="status"],
#user-table td[data-column="status"] { width: 120px !important; }
#user-table th[data-column="last_login"],
#user-table td[data-column="last_login"] { width: 150px !important; }

#model-management-table {
    min-width: 1460px !important;
}

#model-management-table th[data-column="id"],
#model-management-table td[data-column="id"] {
    width: 130px !important;
}
#model-management-table th[data-column="name"],
#model-management-table td[data-column="name"] { width: 180px !important; }
#model-management-table th[data-column="llm-provider"],
#model-management-table td[data-column="llm-provider"] { width: 96px !important; }
#model-management-table th[data-column="llm-model"],
#model-management-table td[data-column="llm-model"] { width: 112px !important; }
#model-management-table th[data-column="llm-endpoint"],
#model-management-table td[data-column="llm-endpoint"] { width: 176px !important; }
#model-management-table th[data-column="embedding-provider"],
#model-management-table td[data-column="embedding-provider"] { width: 116px !important; }
#model-management-table th[data-column="embedding-model"],
#model-management-table td[data-column="embedding-model"] { width: 160px !important; }
#model-management-table th[data-column="embedding-endpoint"],
#model-management-table td[data-column="embedding-endpoint"] { width: 176px !important; }
#model-management-table th[data-column="credentials"],
#model-management-table td[data-column="credentials"] { width: 110px !important; }
#model-management-table th[data-column="active"],
#model-management-table td[data-column="active"] { width: 76px !important; }

#connectors-table {
    min-width: 1320px !important;
}

#connectors-table th:nth-child(1),
#connectors-table td:nth-child(1) { width: 110px !important; }
#connectors-table th:nth-child(2),
#connectors-table td:nth-child(2) { width: 220px !important; }
#connectors-table th:nth-child(3),
#connectors-table td:nth-child(3) { width: 190px !important; }
#connectors-table th:nth-child(4),
#connectors-table td:nth-child(4),
#connectors-table th:nth-child(5),
#connectors-table td:nth-child(5),
#connectors-table th:nth-child(6),
#connectors-table td:nth-child(6),
#connectors-table th:nth-child(8),
#connectors-table td:nth-child(8) { width: 120px !important; }
#connectors-table th:nth-child(7),
#connectors-table td:nth-child(7) { width: 190px !important; }
#connectors-table th:nth-child(9),
#connectors-table td:nth-child(9) { width: 140px !important; }

#webhooks-table {
    min-width: 1280px !important;
}

#webhooks-table th:nth-child(1),
#webhooks-table td:nth-child(1) { width: 104px !important; }
#webhooks-table th:nth-child(2),
#webhooks-table td:nth-child(2) { width: 210px !important; }
#webhooks-table th:nth-child(3),
#webhooks-table td:nth-child(3) { width: 330px !important; }
#webhooks-table th:nth-child(4),
#webhooks-table td:nth-child(4) { width: 220px !important; }
#webhooks-table th:nth-child(5),
#webhooks-table td:nth-child(5),
#webhooks-table th:nth-child(6),
#webhooks-table td:nth-child(6),
#webhooks-table th:nth-child(7),
#webhooks-table td:nth-child(7) { width: 120px !important; }
#webhooks-table th:nth-child(8),
#webhooks-table td:nth-child(8) { width: 140px !important; }

#webhook-deliveries-table {
    min-width: 1120px !important;
}

#webhook-deliveries-table th:nth-child(1),
#webhook-deliveries-table td:nth-child(1) { width: 104px !important; }
#webhook-deliveries-table th:nth-child(2),
#webhook-deliveries-table td:nth-child(2) { width: 170px !important; }
#webhook-deliveries-table th:nth-child(3),
#webhook-deliveries-table td:nth-child(3),
#webhook-deliveries-table th:nth-child(5),
#webhook-deliveries-table td:nth-child(5),
#webhook-deliveries-table th:nth-child(6),
#webhook-deliveries-table td:nth-child(6),
#webhook-deliveries-table th:nth-child(7),
#webhook-deliveries-table td:nth-child(7) { width: 120px !important; }
#webhook-deliveries-table th:nth-child(4),
#webhook-deliveries-table td:nth-child(4) { width: 250px !important; }
#webhook-deliveries-table th:nth-child(8),
#webhook-deliveries-table td:nth-child(8) { width: 240px !important; }

#audit-log-table {
    min-width: 1260px !important;
}

#audit-log-table th:nth-child(1),
#audit-log-table td:nth-child(1) { width: 110px !important; }
#audit-log-table th:nth-child(2),
#audit-log-table td:nth-child(2) { width: 180px !important; }
#audit-log-table th:nth-child(3),
#audit-log-table td:nth-child(3) { width: 160px !important; }
#audit-log-table th:nth-child(4),
#audit-log-table td:nth-child(4) { width: 300px !important; }
#audit-log-table th:nth-child(5),
#audit-log-table td:nth-child(5) { width: 180px !important; }
#audit-log-table th:nth-child(6),
#audit-log-table td:nth-child(6) { width: 110px !important; }
#audit-log-table th:nth-child(7),
#audit-log-table td:nth-child(7) { width: 300px !important; }
#audit-log-table .audit-metadata-cell code {
    display: inline-block !important;
    max-width: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    vertical-align: middle !important;
}

#reports-schedule-table {
    min-width: 1180px !important;
}

#reports-schedule-table th:nth-child(1),
#reports-schedule-table td:nth-child(1) { width: 108px !important; }
#reports-schedule-table th:nth-child(2),
#reports-schedule-table td:nth-child(2) { width: 230px !important; }
#reports-schedule-table th:nth-child(3),
#reports-schedule-table td:nth-child(3) { width: 190px !important; }
#reports-schedule-table th:nth-child(4),
#reports-schedule-table td:nth-child(4),
#reports-schedule-table th:nth-child(5),
#reports-schedule-table td:nth-child(5),
#reports-schedule-table th:nth-child(6),
#reports-schedule-table td:nth-child(6),
#reports-schedule-table th:nth-child(7),
#reports-schedule-table td:nth-child(7),
#reports-schedule-table th:nth-child(8),
#reports-schedule-table td:nth-child(8) { width: 120px !important; }

#code-table {
    min-width: 980px !important;
}

#code-table th:nth-child(1),
#code-table td:nth-child(1) { width: 40px !important; }
#code-table th[data-column="id"],
#code-table td[data-column="id"] { width: 96px !important; }
#code-table th[data-column="name"],
#code-table td[data-column="name"] { width: 220px !important; }
#code-table th[data-column="type"],
#code-table td[data-column="type"] { width: 140px !important; }
#code-table th[data-column="description"],
#code-table td[data-column="description"] { width: 260px !important; }
#code-table th[data-column="status"],
#code-table td[data-column="status"],
#code-table th[data-column="created"],
#code-table td[data-column="created"] { width: 120px !important; }

#confirm-modal .modal-content {
    border-top: 4px solid #dc2626 !important;
}

#confirm-modal-confirm {
    min-width: 130px !important;
}

#reports-list-content,
#code-management-list-content,
#model-management-list-content {
    display: grid !important;
    gap: 0.75rem !important;
}

#reports-cards-grid,
#code-cards-grid {
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) !important;
    gap: 0.75rem !important;
}

#reports-table td,
#model-management-table td,
#code-table td,
#chatbots-table td,
#scopes-table td {
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

/* Action columns must align with their controls, and action menus must escape
   scrollable table containers instead of being clipped. */
.documents-table th[data-column="actions"],
.documents-table td[data-column="actions"],
#content-table th[data-column="actions"],
#content-table td[data-column="actions"],
#model-management-table th[data-column="actions"],
#model-management-table td[data-column="actions"],
#reports-table th[data-column="actions"],
#reports-table td[data-column="actions"],
#code-table th[data-column="actions"],
#code-table td[data-column="actions"],
#chatbots-table th[data-column="actions"],
#chatbots-table td[data-column="actions"],
#scopes-table th[data-column="actions"],
#scopes-table td[data-column="actions"] {
    text-align: right !important;
    overflow: visible !important;
}

.documents-table td[data-column="actions"] .action-icons,
#content-table td[data-column="actions"] .action-icons,
#model-management-table td[data-column="actions"] .action-icons,
#reports-table td[data-column="actions"] .action-icons,
#code-table td[data-column="actions"] .action-icons,
#chatbots-table td[data-column="actions"] .action-icons,
#scopes-table td[data-column="actions"] .action-icons {
    justify-content: flex-end !important;
    align-items: center !important;
    width: 100% !important;
    overflow: visible !important;
}

.sage-action-menu.open {
    z-index: 10051 !important;
}

.sage-action-menu.open .sage-action-menu-panel {
    display: grid !important;
    gap: 0.15rem !important;
}

/* 2026-05-25 final QA override: the core management workbenches must fit a
   10-row review comfortably at 1920x900 and share identical table semantics. */
#content-page.page-content.active,
#scopes-page.page-content.active,
#chatbots-page.page-content.active {
    gap: 0.4rem !important;
}

#content-page > .notification-container:empty,
#scopes-page > .notification-container:empty,
#chatbots-page > .notification-container:empty {
    display: none !important;
    margin: 0 !important;
}

#content-list-content,
#scopes-list-content,
#chatbots-list-content {
    gap: 0.42rem !important;
}

#content-page #content-list-controls-content,
#scopes-page #scopes-list-controls-content,
#chatbots-page #chatbots-list-controls-content {
    padding: 0.42rem !important;
    margin-bottom: 0 !important;
}

#content-page #content-list-controls-content .user-controls-row,
#scopes-page #scopes-list-controls-content .user-controls-row,
#chatbots-page #chatbots-list-controls-content .user-controls-row {
    flex-wrap: nowrap !important;
    gap: 0.45rem !important;
}

#content-page #content-list-controls-content .search-input,
#scopes-page #scopes-list-controls-content .search-input,
#chatbots-page #chatbots-list-controls-content .search-input,
#content-page #content-list-controls-content .sort-select,
#scopes-page #scopes-list-controls-content .sort-select,
#chatbots-page #chatbots-list-controls-content .sort-select,
#content-page #content-list-controls-content .btn,
#scopes-page #scopes-list-controls-content .btn,
#chatbots-page #chatbots-list-controls-content .btn,
#content-page #content-list-controls-content .view-toggle-btn,
#scopes-page #scopes-list-controls-content .view-toggle-btn,
#chatbots-page #chatbots-list-controls-content .view-toggle-btn {
    min-height: 32px !important;
}

#content-page .user-pagination-info,
#scopes-page .user-pagination-info,
#chatbots-page .user-pagination-info {
    min-height: 40px !important;
    padding: 0.42rem 0.6rem !important;
    margin: 0 !important;
}

#content-page #content-table thead th,
#scopes-page #scopes-table thead th,
#chatbots-page #chatbots-table thead th {
    height: 28px !important;
    padding: 0.34rem 0.5rem !important;
}

#content-page #content-table tbody td,
#scopes-page #scopes-table tbody td,
#chatbots-page #chatbots-table tbody td {
    height: 36px !important;
    padding: 0.3rem 0.5rem !important;
}

#content-page #content-table-container,
#scopes-page #scopes-table-container,
#chatbots-page #chatbots-table-container {
    max-height: min(570px, calc(100vh - 252px)) !important;
}

#scopes-page .scope-metric-link {
    display: inline-flex !important;
    align-items: baseline !important;
    gap: 0.28rem !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

/* Final cross-screen alignment guardrail. Keep this as the last table rule. */
#users-page.page-content.active,
#model-management-page.page-content.active,
#connectors-page.page-content.active,
#webhooks-page.page-content.active,
#audit-log-page.page-content.active,
#reports-page.page-content.active {
    gap: 0.4rem !important;
}

#users-page .user-pagination-info,
#model-management-page .user-pagination-info,
#connectors-page .user-pagination-info,
#webhooks-page .user-pagination-info,
#audit-log-page .user-pagination-info,
#reports-page .user-pagination-info {
    min-height: 40px !important;
    padding: 0.42rem 0.6rem !important;
    margin: 0 0 0.45rem !important;
}

#chatbots-table th[data-column="actions"],
#chatbots-table td[data-column="actions"],
#user-table th[data-column="actions"],
#user-table td[data-column="actions"],
#model-management-table th[data-column="actions"],
#model-management-table td[data-column="actions"],
#connectors-table th[data-column="actions"],
#connectors-table td[data-column="actions"],
#webhooks-table th[data-column="actions"],
#webhooks-table td[data-column="actions"],
#reports-schedule-table th[data-column="actions"],
#reports-schedule-table td[data-column="actions"] {
    width: 132px !important;
    min-width: 132px !important;
    max-width: 132px !important;
    text-align: right !important;
    overflow: visible !important;
}

#audit-log-table th,
#audit-log-table td,
#connectors-table th,
#connectors-table td,
#webhooks-table th,
#webhooks-table td,
#webhook-deliveries-table th,
#webhook-deliveries-table td,
#reports-schedule-table th,
#reports-schedule-table td,
#user-table th,
#user-table td {
    vertical-align: middle !important;
}

/* 2026-05-25 dark-mode recovery guardrail.
   Late list-standardization rules above intentionally use strong selectors for
   commercial density; this block restores theme-token colors so those density
   overrides do not pin the app to light-mode surfaces. */
html.dark-mode,
html.dark,
:root[data-theme="dark"] {
    --sage-id-bg: color-mix(in srgb, var(--sage-primary) 18%, var(--sage-surface)) !important;
    --sage-id-border: color-mix(in srgb, var(--sage-primary) 48%, var(--sage-border)) !important;
    --sage-id-text: #bfdbfe !important;
    --sage-row-hover: color-mix(in srgb, var(--sage-surface-muted) 82%, var(--sage-primary)) !important;
    --sage-row-even: color-mix(in srgb, var(--sage-surface) 92%, var(--sage-surface-muted)) !important;
}

html.dark-mode body,
html.dark body,
:root[data-theme="dark"] body,
html.dark-mode .main-content-wrapper,
html.dark .main-content-wrapper,
:root[data-theme="dark"] .main-content-wrapper,
html.dark-mode .admin-main,
html.dark .admin-main,
:root[data-theme="dark"] .admin-main,
html.dark-mode .page-content,
html.dark .page-content,
:root[data-theme="dark"] .page-content {
    background: var(--sage-bg) !important;
    color: var(--sage-text) !important;
}

html.dark-mode .main-content-header,
html.dark .main-content-header,
:root[data-theme="dark"] .main-content-header,
html.dark-mode .stat-card,
html.dark .stat-card,
:root[data-theme="dark"] .stat-card,
html.dark-mode button.stat-card,
html.dark button.stat-card,
:root[data-theme="dark"] button.stat-card,
html.dark-mode #content-list-controls-content,
html.dark-mode #scopes-list-controls-content,
html.dark-mode #chatbots-list-controls-content,
html.dark-mode #user-list-controls-content,
html.dark-mode #model-management-list-controls-content,
html.dark-mode #reports-list-controls-content,
html.dark-mode #code-management-list-content,
html.dark-mode #connectors-list-controls-content,
html.dark-mode #webhooks-list-controls-content,
html.dark-mode #audit-log-list-controls-content,
html.dark #content-list-controls-content,
html.dark #scopes-list-controls-content,
html.dark #chatbots-list-controls-content,
html.dark #user-list-controls-content,
html.dark #model-management-list-controls-content,
html.dark #reports-list-controls-content,
html.dark #code-management-list-content,
html.dark #connectors-list-controls-content,
html.dark #webhooks-list-controls-content,
html.dark #audit-log-list-controls-content,
:root[data-theme="dark"] #content-list-controls-content,
:root[data-theme="dark"] #scopes-list-controls-content,
:root[data-theme="dark"] #chatbots-list-controls-content,
:root[data-theme="dark"] #user-list-controls-content,
:root[data-theme="dark"] #model-management-list-controls-content,
:root[data-theme="dark"] #reports-list-controls-content,
:root[data-theme="dark"] #code-management-list-content,
:root[data-theme="dark"] #connectors-list-controls-content,
:root[data-theme="dark"] #webhooks-list-controls-content,
:root[data-theme="dark"] #audit-log-list-controls-content,
html.dark-mode .user-pagination-info,
html.dark .user-pagination-info,
:root[data-theme="dark"] .user-pagination-info,
html.dark-mode .pagination-container,
html.dark .pagination-container,
:root[data-theme="dark"] .pagination-container,
html.dark-mode .pagination-info,
html.dark .pagination-info,
:root[data-theme="dark"] .pagination-info {
    background: var(--sage-surface) !important;
    border-color: var(--sage-border) !important;
    color: var(--sage-text) !important;
}

html.dark-mode .documents-table-container,
html.dark-mode #content-table-container,
html.dark-mode #scopes-table-container,
html.dark-mode #chatbots-table-container,
html.dark-mode #user-table-container,
html.dark-mode #model-management-table-container,
html.dark-mode #reports-table-container,
html.dark-mode #code-table-container,
html.dark .documents-table-container,
html.dark #content-table-container,
html.dark #scopes-table-container,
html.dark #chatbots-table-container,
html.dark #user-table-container,
html.dark #model-management-table-container,
html.dark #reports-table-container,
html.dark #code-table-container,
:root[data-theme="dark"] .documents-table-container,
:root[data-theme="dark"] #content-table-container,
:root[data-theme="dark"] #scopes-table-container,
:root[data-theme="dark"] #chatbots-table-container,
:root[data-theme="dark"] #user-table-container,
:root[data-theme="dark"] #model-management-table-container,
:root[data-theme="dark"] #reports-table-container,
:root[data-theme="dark"] #code-table-container {
    background: var(--sage-surface) !important;
    border-color: var(--sage-border) !important;
}

html.dark-mode .documents-table thead th,
html.dark-mode #content-page #content-table thead th,
html.dark-mode #scopes-page #scopes-table thead th,
html.dark-mode #chatbots-page #chatbots-table thead th,
html.dark-mode #user-table thead th,
html.dark-mode #model-management-table thead th,
html.dark-mode #audit-log-table thead th,
html.dark-mode #connectors-table thead th,
html.dark-mode #webhooks-table thead th,
html.dark-mode #webhook-deliveries-table thead th,
html.dark-mode #reports-schedule-table thead th,
html.dark .documents-table thead th,
html.dark #content-page #content-table thead th,
html.dark #scopes-page #scopes-table thead th,
html.dark #chatbots-page #chatbots-table thead th,
html.dark #user-table thead th,
html.dark #model-management-table thead th,
html.dark #audit-log-table thead th,
html.dark #connectors-table thead th,
html.dark #webhooks-table thead th,
html.dark #webhook-deliveries-table thead th,
html.dark #reports-schedule-table thead th,
:root[data-theme="dark"] .documents-table thead th,
:root[data-theme="dark"] #content-page #content-table thead th,
:root[data-theme="dark"] #scopes-page #scopes-table thead th,
:root[data-theme="dark"] #chatbots-page #chatbots-table thead th,
:root[data-theme="dark"] #user-table thead th,
:root[data-theme="dark"] #model-management-table thead th,
:root[data-theme="dark"] #audit-log-table thead th,
:root[data-theme="dark"] #connectors-table thead th,
:root[data-theme="dark"] #webhooks-table thead th,
:root[data-theme="dark"] #webhook-deliveries-table thead th,
:root[data-theme="dark"] #reports-schedule-table thead th {
    background: var(--table-header-bg) !important;
    color: var(--table-header-text) !important;
    border-color: var(--sage-border) !important;
}

html.dark-mode .documents-table tbody td,
html.dark-mode #content-page #content-table tbody td,
html.dark-mode #scopes-page #scopes-table tbody td,
html.dark-mode #chatbots-page #chatbots-table tbody td,
html.dark-mode #user-table tbody td,
html.dark-mode #model-management-table tbody td,
html.dark-mode #audit-log-table tbody td,
html.dark-mode #connectors-table tbody td,
html.dark-mode #webhooks-table tbody td,
html.dark-mode #webhook-deliveries-table tbody td,
html.dark-mode #reports-schedule-table tbody td,
html.dark .documents-table tbody td,
html.dark #content-page #content-table tbody td,
html.dark #scopes-page #scopes-table tbody td,
html.dark #chatbots-page #chatbots-table tbody td,
html.dark #user-table tbody td,
html.dark #model-management-table tbody td,
html.dark #audit-log-table tbody td,
html.dark #connectors-table tbody td,
html.dark #webhooks-table tbody td,
html.dark #webhook-deliveries-table tbody td,
html.dark #reports-schedule-table tbody td,
:root[data-theme="dark"] .documents-table tbody td,
:root[data-theme="dark"] #content-page #content-table tbody td,
:root[data-theme="dark"] #scopes-page #scopes-table tbody td,
:root[data-theme="dark"] #chatbots-page #chatbots-table tbody td,
:root[data-theme="dark"] #user-table tbody td,
:root[data-theme="dark"] #model-management-table tbody td,
:root[data-theme="dark"] #audit-log-table tbody td,
:root[data-theme="dark"] #connectors-table tbody td,
:root[data-theme="dark"] #webhooks-table tbody td,
:root[data-theme="dark"] #webhook-deliveries-table tbody td,
:root[data-theme="dark"] #reports-schedule-table tbody td {
    background: var(--sage-surface) !important;
    color: var(--sage-text) !important;
    border-color: var(--sage-border-soft) !important;
}

html.dark-mode .documents-table tbody tr:nth-child(even) td,
html.dark-mode #content-page #content-table tbody tr:nth-child(even) td,
html.dark-mode #scopes-page #scopes-table tbody tr:nth-child(even) td,
html.dark-mode #chatbots-page #chatbots-table tbody tr:nth-child(even) td,
html.dark #content-page #content-table tbody tr:nth-child(even) td,
html.dark #scopes-page #scopes-table tbody tr:nth-child(even) td,
html.dark #chatbots-page #chatbots-table tbody tr:nth-child(even) td,
:root[data-theme="dark"] #content-page #content-table tbody tr:nth-child(even) td,
:root[data-theme="dark"] #scopes-page #scopes-table tbody tr:nth-child(even) td,
:root[data-theme="dark"] #chatbots-page #chatbots-table tbody tr:nth-child(even) td {
    background: var(--sage-row-even) !important;
}

html.dark-mode .documents-table tbody tr:hover td,
html.dark-mode #content-page #content-table tbody tr:hover td,
html.dark-mode #scopes-page #scopes-table tbody tr:hover td,
html.dark-mode #chatbots-page #chatbots-table tbody tr:hover td,
html.dark-mode #user-table tbody tr:hover td,
html.dark-mode #model-management-table tbody tr:hover td,
html.dark-mode #audit-log-table tbody tr:hover td,
html.dark .documents-table tbody tr:hover td,
html.dark #content-page #content-table tbody tr:hover td,
html.dark #scopes-page #scopes-table tbody tr:hover td,
html.dark #chatbots-page #chatbots-table tbody tr:hover td,
html.dark #user-table tbody tr:hover td,
html.dark #model-management-table tbody tr:hover td,
html.dark #audit-log-table tbody tr:hover td,
:root[data-theme="dark"] .documents-table tbody tr:hover td,
:root[data-theme="dark"] #content-page #content-table tbody tr:hover td,
:root[data-theme="dark"] #scopes-page #scopes-table tbody tr:hover td,
:root[data-theme="dark"] #chatbots-page #chatbots-table tbody tr:hover td,
:root[data-theme="dark"] #user-table tbody tr:hover td,
:root[data-theme="dark"] #model-management-table tbody tr:hover td,
:root[data-theme="dark"] #audit-log-table tbody tr:hover td {
    background: var(--sage-row-hover) !important;
    border-color: var(--sage-border) !important;
}

html.dark-mode .content-id-pill,
html.dark-mode .scope-id-pill,
html.dark-mode .chatbot-id-pill,
html.dark-mode .sage-id-pill,
html.dark .content-id-pill,
html.dark .scope-id-pill,
html.dark .chatbot-id-pill,
html.dark .sage-id-pill,
:root[data-theme="dark"] .content-id-pill,
:root[data-theme="dark"] .scope-id-pill,
:root[data-theme="dark"] .chatbot-id-pill,
:root[data-theme="dark"] .sage-id-pill {
    background: var(--sage-id-bg) !important;
    border-color: var(--sage-id-border) !important;
    color: var(--sage-id-text) !important;
}

html.dark-mode .scope-metric-link,
html.dark .scope-metric-link,
:root[data-theme="dark"] .scope-metric-link {
    color: var(--sage-text) !important;
}

html.dark-mode .scope-metric-link span,
html.dark .scope-metric-link span,
:root[data-theme="dark"] .scope-metric-link span,
html.dark-mode .table-link,
html.dark .table-link,
:root[data-theme="dark"] .table-link {
    color: var(--sage-muted) !important;
}

/* Dark-mode specificity repair for compact workbench overrides with page IDs. */
html.dark-mode #content-page .user-pagination-info,
html.dark-mode #scopes-page .user-pagination-info,
html.dark-mode #chatbots-page .user-pagination-info,
html.dark-mode #users-page .user-pagination-info,
html.dark-mode #model-management-page .user-pagination-info,
html.dark-mode #connectors-page .user-pagination-info,
html.dark-mode #webhooks-page .user-pagination-info,
html.dark-mode #audit-log-page .user-pagination-info,
html.dark-mode #reports-page .user-pagination-info,
html.dark #content-page .user-pagination-info,
html.dark #scopes-page .user-pagination-info,
html.dark #chatbots-page .user-pagination-info,
html.dark #users-page .user-pagination-info,
html.dark #model-management-page .user-pagination-info,
html.dark #connectors-page .user-pagination-info,
html.dark #webhooks-page .user-pagination-info,
html.dark #audit-log-page .user-pagination-info,
html.dark #reports-page .user-pagination-info,
:root[data-theme="dark"] #content-page .user-pagination-info,
:root[data-theme="dark"] #scopes-page .user-pagination-info,
:root[data-theme="dark"] #chatbots-page .user-pagination-info,
:root[data-theme="dark"] #users-page .user-pagination-info,
:root[data-theme="dark"] #model-management-page .user-pagination-info,
:root[data-theme="dark"] #connectors-page .user-pagination-info,
:root[data-theme="dark"] #webhooks-page .user-pagination-info,
:root[data-theme="dark"] #audit-log-page .user-pagination-info,
:root[data-theme="dark"] #reports-page .user-pagination-info,
html.dark-mode #content-page #content-table-container,
html.dark-mode #scopes-page #scopes-table-container,
html.dark-mode #chatbots-page #chatbots-table-container,
html.dark-mode #users-page #user-table-container,
html.dark-mode #model-management-page #model-management-table-container,
html.dark-mode #reports-page #reports-table-container,
html.dark-mode #code-management-page #code-table-container,
html.dark #content-page #content-table-container,
html.dark #scopes-page #scopes-table-container,
html.dark #chatbots-page #chatbots-table-container,
html.dark #users-page #user-table-container,
html.dark #model-management-page #model-management-table-container,
html.dark #reports-page #reports-table-container,
html.dark #code-management-page #code-table-container,
:root[data-theme="dark"] #content-page #content-table-container,
:root[data-theme="dark"] #scopes-page #scopes-table-container,
:root[data-theme="dark"] #chatbots-page #chatbots-table-container,
:root[data-theme="dark"] #users-page #user-table-container,
:root[data-theme="dark"] #model-management-page #model-management-table-container,
:root[data-theme="dark"] #reports-page #reports-table-container,
:root[data-theme="dark"] #code-management-page #code-table-container {
    background: var(--panel) !important;
    border-color: var(--line) !important;
    color: var(--ink) !important;
}

html.dark-mode .view-toggle,
html.dark .view-toggle,
:root[data-theme="dark"] .view-toggle {
    background: var(--panel) !important;
    border-color: var(--line) !important;
    box-shadow: inset 0 0 0 1px rgba(148, 163, 184, 0.08) !important;
}

html.dark-mode .view-toggle .view-toggle-btn,
html.dark .view-toggle .view-toggle-btn,
:root[data-theme="dark"] .view-toggle .view-toggle-btn {
    background: transparent !important;
    color: var(--muted) !important;
    opacity: 1 !important;
}

html.dark-mode .view-toggle .view-toggle-btn svg,
html.dark .view-toggle .view-toggle-btn svg,
:root[data-theme="dark"] .view-toggle .view-toggle-btn svg {
    color: inherit !important;
    stroke: currentColor !important;
    opacity: 1 !important;
}

html.dark-mode .view-toggle .view-toggle-btn:not(.active):hover,
html.dark-mode .view-toggle .view-toggle-btn:not(.active):focus-visible,
html.dark .view-toggle .view-toggle-btn:not(.active):hover,
html.dark .view-toggle .view-toggle-btn:not(.active):focus-visible,
:root[data-theme="dark"] .view-toggle .view-toggle-btn:not(.active):hover,
:root[data-theme="dark"] .view-toggle .view-toggle-btn:not(.active):focus-visible {
    background: var(--subtle-alt) !important;
    color: var(--ink) !important;
}

html.dark-mode .view-toggle .view-toggle-btn.active,
html.dark .view-toggle .view-toggle-btn.active,
:root[data-theme="dark"] .view-toggle .view-toggle-btn.active {
    background: var(--primary) !important;
    color: var(--primary-ink) !important;
    border-color: var(--primary) !important;
    box-shadow: 0 0 0 1px rgba(147, 197, 253, 0.35) !important;
}

/* Dark-mode completion pass for generated admin pages, modals, action menus, and controls. */
.sidebar-user-expandable-item.active,
.sidebar-user-expandable-content .sidebar-user-expandable-item.active {
    background: var(--primary, #2563eb) !important;
    border-color: var(--primary, #2563eb) !important;
    color: var(--primary-ink, #ffffff) !important;
}

.sidebar-user-expandable-item.active *,
.sidebar-user-expandable-content .sidebar-user-expandable-item.active * {
    color: var(--primary-ink, #ffffff) !important;
}

html.dark-mode .sidebar-user-expandable-item.active,
html.dark .sidebar-user-expandable-item.active,
:root[data-theme="dark"] .sidebar-user-expandable-item.active {
    background: var(--primary, #2563eb) !important;
    border-color: var(--primary, #2563eb) !important;
    color: var(--primary-ink, #ffffff) !important;
}

html.dark-mode .sidebar-user-expandable-item.active *,
html.dark .sidebar-user-expandable-item.active *,
:root[data-theme="dark"] .sidebar-user-expandable-item.active * {
    color: var(--primary-ink, #ffffff) !important;
}

html.dark-mode .sage-action-menu-panel,
html.dark-mode .action-menu-dropdown,
html.dark .sage-action-menu-panel,
html.dark .action-menu-dropdown,
:root[data-theme="dark"] .sage-action-menu-panel,
:root[data-theme="dark"] .action-menu-dropdown {
    background: var(--panel, #111827) !important;
    border: 1px solid var(--line, #334155) !important;
    box-shadow: 0 18px 36px rgba(0, 0, 0, 0.45) !important;
}

html.dark-mode .sage-action-menu-item,
html.dark-mode .sage-action-menu-item span,
html.dark-mode .action-menu-item,
html.dark-mode .action-menu-dropdown *,
html.dark .sage-action-menu-item,
html.dark .sage-action-menu-item span,
html.dark .action-menu-item,
html.dark .action-menu-dropdown *,
:root[data-theme="dark"] .sage-action-menu-item,
:root[data-theme="dark"] .sage-action-menu-item span,
:root[data-theme="dark"] .action-menu-item,
:root[data-theme="dark"] .action-menu-dropdown * {
    background: transparent !important;
    color: var(--ink, #f8fafc) !important;
    opacity: 1 !important;
}

html.dark-mode .sage-action-menu-item svg,
html.dark .sage-action-menu-item svg,
:root[data-theme="dark"] .sage-action-menu-item svg {
    color: currentColor !important;
    stroke: currentColor !important;
    opacity: 1 !important;
}

html.dark-mode .sage-action-menu-item:hover,
html.dark-mode .sage-action-menu-item:focus-visible,
html.dark-mode .action-menu-item:hover,
html.dark-mode .action-menu-item:focus-visible,
html.dark .sage-action-menu-item:hover,
html.dark .sage-action-menu-item:focus-visible,
html.dark .action-menu-item:hover,
html.dark .action-menu-item:focus-visible,
:root[data-theme="dark"] .sage-action-menu-item:hover,
:root[data-theme="dark"] .sage-action-menu-item:focus-visible,
:root[data-theme="dark"] .action-menu-item:hover,
:root[data-theme="dark"] .action-menu-item:focus-visible {
    background: var(--subtle-alt, #1e293b) !important;
    color: var(--ink, #f8fafc) !important;
}

html.dark-mode .sage-action-menu-item[disabled],
html.dark-mode .sage-action-menu-item:disabled,
html.dark .sage-action-menu-item[disabled],
html.dark .sage-action-menu-item:disabled,
:root[data-theme="dark"] .sage-action-menu-item[disabled],
:root[data-theme="dark"] .sage-action-menu-item:disabled {
    color: var(--muted, #94a3b8) !important;
    opacity: 0.72 !important;
}

html.dark-mode .stat-icon,
html.dark .stat-icon,
:root[data-theme="dark"] .stat-icon {
    background: #dbeafe !important;
    color: #1d4ed8 !important;
    opacity: 1 !important;
}

html.dark-mode .stat-icon.primary,
html.dark .stat-icon.primary,
:root[data-theme="dark"] .stat-icon.primary {
    background: #dbeafe !important;
    color: #1d4ed8 !important;
}

html.dark-mode .stat-icon.success,
html.dark .stat-icon.success,
:root[data-theme="dark"] .stat-icon.success {
    background: #dcfce7 !important;
    color: #047857 !important;
}

html.dark-mode .stat-icon.warning,
html.dark .stat-icon.warning,
:root[data-theme="dark"] .stat-icon.warning {
    background: #fef3c7 !important;
    color: #b45309 !important;
}

html.dark-mode .stat-icon.error,
html.dark .stat-icon.error,
:root[data-theme="dark"] .stat-icon.error {
    background: #fee2e2 !important;
    color: #dc2626 !important;
}

html.dark-mode .stat-icon.info,
html.dark .stat-icon.info,
:root[data-theme="dark"] .stat-icon.info {
    background: #e0f2fe !important;
    color: #0284c7 !important;
}

html.dark-mode .stat-icon svg,
html.dark .stat-icon svg,
:root[data-theme="dark"] .stat-icon svg {
    color: currentColor !important;
    stroke: currentColor !important;
    opacity: 1 !important;
}

html.dark-mode #connectors-page,
html.dark-mode #webhooks-page,
html.dark-mode #audit-log-page,
html.dark-mode #model-management-page,
html.dark-mode #users-page,
html.dark #connectors-page,
html.dark #webhooks-page,
html.dark #audit-log-page,
html.dark #model-management-page,
html.dark #users-page,
:root[data-theme="dark"] #connectors-page,
:root[data-theme="dark"] #webhooks-page,
:root[data-theme="dark"] #audit-log-page,
:root[data-theme="dark"] #model-management-page,
:root[data-theme="dark"] #users-page {
    background: var(--bg, #0f172a) !important;
    color: var(--ink, #f8fafc) !important;
}

html.dark-mode .sage-panel,
html.dark-mode .sage-panel-header,
html.dark-mode .sage-grid > *,
html.dark-mode .settings-section,
html.dark-mode .form-section,
html.dark-mode .connector-card,
html.dark-mode .webhook-card,
html.dark-mode .channel-setup-card,
html.dark-mode fieldset,
html.dark .sage-panel,
html.dark .sage-panel-header,
html.dark .sage-grid > *,
html.dark .settings-section,
html.dark .form-section,
html.dark .connector-card,
html.dark .webhook-card,
html.dark .channel-setup-card,
html.dark fieldset,
:root[data-theme="dark"] .sage-panel,
:root[data-theme="dark"] .sage-panel-header,
:root[data-theme="dark"] .sage-grid > *,
:root[data-theme="dark"] .settings-section,
:root[data-theme="dark"] .form-section,
:root[data-theme="dark"] .connector-card,
:root[data-theme="dark"] .webhook-card,
:root[data-theme="dark"] .channel-setup-card,
:root[data-theme="dark"] fieldset {
    background: var(--panel, #111827) !important;
    border-color: var(--line, #334155) !important;
    color: var(--ink, #f8fafc) !important;
}

html.dark-mode .sage-panel h1,
html.dark-mode .sage-panel h2,
html.dark-mode .sage-panel h3,
html.dark-mode .sage-panel h4,
html.dark-mode .settings-section h1,
html.dark-mode .settings-section h2,
html.dark-mode .settings-section h3,
html.dark-mode label,
html.dark-mode legend,
html.dark .sage-panel h1,
html.dark .sage-panel h2,
html.dark .sage-panel h3,
html.dark .sage-panel h4,
html.dark .settings-section h1,
html.dark .settings-section h2,
html.dark .settings-section h3,
html.dark label,
html.dark legend,
:root[data-theme="dark"] .sage-panel h1,
:root[data-theme="dark"] .sage-panel h2,
:root[data-theme="dark"] .sage-panel h3,
:root[data-theme="dark"] .sage-panel h4,
:root[data-theme="dark"] .settings-section h1,
:root[data-theme="dark"] .settings-section h2,
:root[data-theme="dark"] .settings-section h3,
:root[data-theme="dark"] label,
:root[data-theme="dark"] legend {
    color: var(--ink, #f8fafc) !important;
}

html.dark-mode .sage-panel p,
html.dark-mode .sage-panel small,
html.dark-mode .form-hint,
html.dark-mode .help-text,
html.dark .sage-panel p,
html.dark .sage-panel small,
html.dark .form-hint,
html.dark .help-text,
:root[data-theme="dark"] .sage-panel p,
:root[data-theme="dark"] .sage-panel small,
:root[data-theme="dark"] .form-hint,
:root[data-theme="dark"] .help-text {
    color: var(--muted, #94a3b8) !important;
}

html.dark-mode .modal .modal-content,
html.dark-mode .modal-content,
html.dark-mode .modal-header,
html.dark-mode .modal-body,
html.dark-mode .column-management-modal .modal-content,
html.dark-mode .column-management-modal .modal-header,
html.dark-mode .column-management-modal .modal-body,
html.dark .modal .modal-content,
html.dark .modal-content,
html.dark .modal-header,
html.dark .modal-body,
html.dark .column-management-modal .modal-content,
html.dark .column-management-modal .modal-header,
html.dark .column-management-modal .modal-body,
:root[data-theme="dark"] .modal .modal-content,
:root[data-theme="dark"] .modal-content,
:root[data-theme="dark"] .modal-header,
:root[data-theme="dark"] .modal-body,
:root[data-theme="dark"] .column-management-modal .modal-content,
:root[data-theme="dark"] .column-management-modal .modal-header,
:root[data-theme="dark"] .column-management-modal .modal-body {
    background: var(--panel, #111827) !important;
    border-color: var(--line, #334155) !important;
    color: var(--ink, #f8fafc) !important;
}

html.dark-mode .modal-footer,
html.dark-mode .column-management-modal .modal-footer,
html.dark .modal-footer,
html.dark .column-management-modal .modal-footer,
:root[data-theme="dark"] .modal-footer,
:root[data-theme="dark"] .column-management-modal .modal-footer {
    background: var(--subtle, #0f172a) !important;
    border-color: var(--line, #334155) !important;
    color: var(--ink, #f8fafc) !important;
}

html.dark-mode .modal h1,
html.dark-mode .modal h2,
html.dark-mode .modal h3,
html.dark-mode .modal h4,
html.dark-mode .modal label,
html.dark-mode .modal legend,
html.dark-mode .sage-modal-heading h1,
html.dark-mode .sage-modal-heading h2,
html.dark-mode .sage-modal-heading h3,
html.dark .modal h1,
html.dark .modal h2,
html.dark .modal h3,
html.dark .modal h4,
html.dark .modal label,
html.dark .modal legend,
html.dark .sage-modal-heading h1,
html.dark .sage-modal-heading h2,
html.dark .sage-modal-heading h3,
:root[data-theme="dark"] .modal h1,
:root[data-theme="dark"] .modal h2,
:root[data-theme="dark"] .modal h3,
:root[data-theme="dark"] .modal h4,
:root[data-theme="dark"] .modal label,
:root[data-theme="dark"] .modal legend,
:root[data-theme="dark"] .sage-modal-heading h1,
:root[data-theme="dark"] .sage-modal-heading h2,
:root[data-theme="dark"] .sage-modal-heading h3 {
    color: var(--ink, #f8fafc) !important;
}

html.dark-mode .modal p,
html.dark-mode .modal small,
html.dark-mode .modal .help-text,
html.dark-mode .sage-modal-heading p,
html.dark .modal p,
html.dark .modal small,
html.dark .modal .help-text,
html.dark .sage-modal-heading p,
:root[data-theme="dark"] .modal p,
:root[data-theme="dark"] .modal small,
:root[data-theme="dark"] .modal .help-text,
:root[data-theme="dark"] .sage-modal-heading p {
    color: var(--muted, #94a3b8) !important;
}

html.dark-mode .modal input,
html.dark-mode .modal select,
html.dark-mode .modal textarea,
html.dark-mode .modal .form-input,
html.dark-mode .modal .form-control,
html.dark-mode .column-management-modal input,
html.dark-mode .column-management-modal select,
html.dark-mode .column-management-modal textarea,
html.dark .modal input,
html.dark .modal select,
html.dark .modal textarea,
html.dark .modal .form-input,
html.dark .modal .form-control,
html.dark .column-management-modal input,
html.dark .column-management-modal select,
html.dark .column-management-modal textarea,
:root[data-theme="dark"] .modal input,
:root[data-theme="dark"] .modal select,
:root[data-theme="dark"] .modal textarea,
:root[data-theme="dark"] .modal .form-input,
:root[data-theme="dark"] .modal .form-control,
:root[data-theme="dark"] .column-management-modal input,
:root[data-theme="dark"] .column-management-modal select,
:root[data-theme="dark"] .column-management-modal textarea {
    background: var(--field, #0f172a) !important;
    border-color: var(--line-strong, #475569) !important;
    color: var(--ink, #f8fafc) !important;
}

html.dark-mode .modal input::placeholder,
html.dark-mode .modal textarea::placeholder,
html.dark .modal input::placeholder,
html.dark .modal textarea::placeholder,
:root[data-theme="dark"] .modal input::placeholder,
:root[data-theme="dark"] .modal textarea::placeholder {
    color: var(--muted, #94a3b8) !important;
    opacity: 1 !important;
}

html.dark-mode input:-webkit-autofill,
html.dark-mode textarea:-webkit-autofill,
html.dark-mode select:-webkit-autofill,
html.dark input:-webkit-autofill,
html.dark textarea:-webkit-autofill,
html.dark select:-webkit-autofill,
:root[data-theme="dark"] input:-webkit-autofill,
:root[data-theme="dark"] textarea:-webkit-autofill,
:root[data-theme="dark"] select:-webkit-autofill {
    -webkit-box-shadow: 0 0 0 1000px var(--field, #0f172a) inset !important;
    -webkit-text-fill-color: var(--ink, #f8fafc) !important;
    caret-color: var(--ink, #f8fafc) !important;
}

html.dark-mode .modal-close,
html.dark-mode .close-btn,
html.dark .modal-close,
html.dark .close-btn,
:root[data-theme="dark"] .modal-close,
:root[data-theme="dark"] .close-btn {
    color: var(--ink, #f8fafc) !important;
    opacity: 1 !important;
}

html.dark-mode .modal-close svg,
html.dark-mode .close-btn svg,
html.dark .modal-close svg,
html.dark .close-btn svg,
:root[data-theme="dark"] .modal-close svg,
:root[data-theme="dark"] .close-btn svg {
    stroke: currentColor !important;
    color: currentColor !important;
}

html.dark-mode .sage-column-section,
html.dark-mode .column-item,
html.dark .sage-column-section,
html.dark .column-item,
:root[data-theme="dark"] .sage-column-section,
:root[data-theme="dark"] .column-item {
    background: var(--panel, #111827) !important;
    border-color: var(--line, #334155) !important;
    color: var(--ink, #f8fafc) !important;
}

html.dark-mode .sage-column-section h4,
html.dark-mode .column-item,
html.dark-mode .column-item span,
html.dark .sage-column-section h4,
html.dark .column-item,
html.dark .column-item span,
:root[data-theme="dark"] .sage-column-section h4,
:root[data-theme="dark"] .column-item,
:root[data-theme="dark"] .column-item span {
    color: var(--ink, #f8fafc) !important;
}

html.dark-mode #confirm-modal .sage-confirm-panel,
html.dark-mode #confirm-modal .warning-panel,
html.dark-mode .error-panel,
html.dark .warning-panel,
html.dark .error-panel,
:root[data-theme="dark"] #confirm-modal .sage-confirm-panel,
:root[data-theme="dark"] #confirm-modal .warning-panel,
:root[data-theme="dark"] .error-panel {
    background: rgba(127, 29, 29, 0.28) !important;
    border-color: rgba(248, 113, 113, 0.72) !important;
    color: var(--ink, #f8fafc) !important;
}

html.dark-mode #confirm-modal-message,
html.dark-mode .error-message-text,
html.dark-mode .notification-message,
html.dark-mode .sage-message-bar,
html.dark #confirm-modal-message,
html.dark .error-message-text,
html.dark .notification-message,
html.dark .sage-message-bar,
:root[data-theme="dark"] #confirm-modal-message,
:root[data-theme="dark"] .error-message-text,
:root[data-theme="dark"] .notification-message,
:root[data-theme="dark"] .sage-message-bar {
    color: var(--ink, #f8fafc) !important;
}
