/* ═══════════════════════════════════════════════════════════════
   AGENT BUILDER — ULTRA PRO / MINIMALIST OVERRIDE — v1.0
   AlphaVault AI — même design system que checkout.css
   À charger APRÈS common.css + agent-builder.css + tous les autres
   ═══════════════════════════════════════════════════════════════ */

   :root {
    --cx-ink:         #0a0a0a;
    --cx-ink-soft:    #404040;
    --cx-text-muted:  #737373;
    --cx-text-faint:  #a3a3a3;
    --cx-border:      #e5e5e5;
    --cx-border-soft: #f5f5f5;
    --cx-bg:          #ffffff;
    --cx-bg-subtle:   #fafafa;
    --cx-success:     #16a34a;
    --cx-success-bg:  #f0fdf4;
    --cx-danger:      #dc2626;
    --cx-danger-bg:   #fef2f2;
    --cx-warning:     #d97706;
    --cx-warning-bg:  #fffbeb;
    --cx-radius-sm:   4px;
    --cx-radius:      8px;
    --cx-radius-lg:   12px;
}

body.ab-page.dark-mode {
    --cx-ink:         #fafafa;
    --cx-ink-soft:    #d4d4d4;
    --cx-text-muted:  #a3a3a3;
    --cx-text-faint:  #737373;
    --cx-border:      #262626;
    --cx-border-soft: #171717;
    --cx-bg:          #0a0a0a;
    --cx-bg-subtle:   #141414;
    --cx-success-bg:  rgba(22, 163, 74, 0.12);
    --cx-danger-bg:   rgba(220, 38, 38, 0.12);
    --cx-warning-bg:  rgba(217, 119, 6, 0.12);
}

/* ── Reset global ─────────────────────────────────────────── */

body.ab-page,
body.ab-page * {
    box-sizing: border-box !important;
}

body.ab-page {
    background: var(--cx-bg-subtle) !important;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif !important;
    color: var(--cx-ink) !important;
}

body.ab-page * {
    box-shadow: none !important;
    text-shadow: none !important;
}

/* Neutralise tous les dégradés violets/bleus résiduels sur fonds */
body.ab-page .ab-sidebar,
body.ab-page .ab-header,
body.ab-page .ab-main,
body.ab-page #abContent,
body.ab-page .ab-view {
    background: var(--cx-bg) !important;
    background-image: none !important;
}

body.ab-page #abContent,
body.ab-page .ab-main.mcp-main {
    background: var(--cx-bg-subtle) !important;
}

/* ═══════════════════════════════════════════════════════════════
   SIDEBAR
   ═══════════════════════════════════════════════════════════════ */

body.ab-page .ab-sidebar {
    border-right: 1px solid var(--cx-border) !important;
    box-shadow: none !important;
}

body.ab-page .ab-sidebar-logo-wrap {
    border-bottom: 1px solid var(--cx-border-soft) !important;
}

body.ab-page .ab-new-btn {
    background: var(--cx-ink) !important;
    color: var(--cx-bg) !important;
    border: none !important;
    border-radius: var(--cx-radius-sm) !important;
    font-weight: 600 !important;
    transition: opacity .15s ease !important;
}
body.ab-page .ab-new-btn:hover { opacity: .85 !important; transform: none !important; }

body.ab-page .ab-nav-label {
    color: var(--cx-text-faint) !important;
    font-weight: 700 !important;
    letter-spacing: .06em !important;
    text-transform: uppercase !important;
    font-size: 10px !important;
}

body.ab-page .ab-nav-item {
    border-radius: var(--cx-radius-sm) !important;
    color: var(--cx-ink-soft) !important;
    transition: background .12s ease !important;
}
body.ab-page .ab-nav-item:hover {
    background: var(--cx-border-soft) !important;
    color: var(--cx-ink) !important;
}
body.ab-page .ab-nav-item.ab-nav-item-active {
    background: var(--cx-border-soft) !important;
    color: var(--cx-ink) !important;
    border-left: 2px solid var(--cx-ink) !important;
    font-weight: 700 !important;
}
body.ab-page .ab-nav-item-icon i,
body.ab-page .ab-nav-item-icon {
    color: var(--cx-ink-soft) !important;
}
/* Neutralise les icônes colorées (violet/cyan/amber/etc.) → gris uniforme */
body.ab-page .ab-icon-cyan,
body.ab-page .ab-icon-amber,
body.ab-page .ab-icon-violet,
body.ab-page .ab-icon-emerald,
body.ab-page .ab-icon-indigo,
body.ab-page .ab-icon-orange,
body.ab-page .ab-icon-slate,
body.ab-page .ab-icon-red,
body.ab-page .ab-icon-blue {
    color: var(--cx-text-muted) !important;
}
body.ab-page .ab-nav-item.ab-nav-item-active .ab-icon-cyan,
body.ab-page .ab-nav-item.ab-nav-item-active .ab-icon-amber,
body.ab-page .ab-nav-item.ab-nav-item-active .ab-icon-violet,
body.ab-page .ab-nav-item.ab-nav-item-active .ab-icon-emerald,
body.ab-page .ab-nav-item.ab-nav-item-active .ab-icon-indigo,
body.ab-page .ab-nav-item.ab-nav-item-active .ab-icon-orange {
    color: var(--cx-ink) !important;
}

body.ab-page .ab-nav-badge {
    border-radius: 999px !important;
    font-weight: 700 !important;
    font-size: 9px !important;
}
body.ab-page .ab-badge-live {
    background: var(--cx-success-bg) !important;
    color: var(--cx-success) !important;
}
body.ab-page .ab-badge-new {
    background: var(--cx-ink) !important;
    color: var(--cx-bg) !important;
}
body.ab-page .ab-badge-static {
    background: var(--cx-border-soft) !important;
    color: var(--cx-text-muted) !important;
    border: 1px solid var(--cx-border) !important;
}

body.ab-page .ab-sidebar-footer {
    border-top: 1px solid var(--cx-border-soft) !important;
}
body.ab-page .ab-sidebar-user-trigger:hover {
    background: var(--cx-border-soft) !important;
}
body.ab-page .ab-user-plan {
    background: var(--cx-ink) !important;
    color: var(--cx-bg) !important;
    border-radius: var(--cx-radius-sm) !important;
    font-weight: 700 !important;
}
body.ab-page .ab-sidebar-user-dropdown {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius) !important;
}
body.ab-page .ab-sidebar-dropdown-link:hover,
body.ab-page .ab-sidebar-dropdown-logout:hover {
    background: var(--cx-border-soft) !important;
}
body.ab-page .ab-sidebar-toggle {
    border-top: 1px solid var(--cx-border-soft) !important;
    color: var(--cx-text-muted) !important;
}

/* Tri-logo Claude/OpenAI/Gemini : garder net, sans glow */
body.ab-page .ab-tri-logo-img { filter: none !important; }

/* ═══════════════════════════════════════════════════════════════
   HEADER
   ═══════════════════════════════════════════════════════════════ */

body.ab-page .ab-header {
    border-bottom: 1px solid var(--cx-border) !important;
}

body.ab-page .mcp-mode-selector,
body.ab-page .abu-provider-tabs {
    background: var(--cx-border-soft) !important;
    border-radius: var(--cx-radius-sm) !important;
    border: 1px solid var(--cx-border) !important;
    padding: 3px !important;
}
body.ab-page .mcp-mode-btn {
    border-radius: var(--cx-radius-sm) !important;
    color: var(--cx-text-muted) !important;
    font-weight: 600 !important;
    background: transparent !important;
    transition: background .12s ease, color .12s ease !important;
}
body.ab-page .mcp-mode-btn:hover { color: var(--cx-ink) !important; }
body.ab-page .mcp-mode-btn.active {
    background: var(--cx-bg) !important;
    color: var(--cx-ink) !important;
    border: 1px solid var(--cx-border) !important;
}

body.ab-page .ab-cmd-trigger {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
    color: var(--cx-ink) !important;
    font-weight: 600 !important;
}
body.ab-page .ab-cmd-trigger:hover { border-color: var(--cx-ink-soft) !important; }
body.ab-page .ab-cmd-dropdown {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius) !important;
}
body.ab-page .ab-cmd-provider {
    border-radius: var(--cx-radius-sm) !important;
    color: var(--cx-text-muted) !important;
    font-weight: 600 !important;
}
body.ab-page .ab-cmd-provider.active {
    background: var(--cx-border-soft) !important;
    color: var(--cx-ink) !important;
}
body.ab-page .ab-cmd-model {
    border-radius: var(--cx-radius-sm) !important;
    color: var(--cx-ink-soft) !important;
}
body.ab-page .ab-cmd-model:hover { background: var(--cx-border-soft) !important; }
body.ab-page .ab-cmd-model.active {
    background: var(--cx-ink) !important;
    color: var(--cx-bg) !important;
}

body.ab-page .mcp-agent-indicator {
    background: var(--cx-border-soft) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
    color: var(--cx-ink) !important;
}

body.ab-page .ab-header-btn {
    border-radius: var(--cx-radius-sm) !important;
    color: var(--cx-ink-soft) !important;
    transition: background .12s ease !important;
}
body.ab-page .ab-header-btn:hover { background: var(--cx-border-soft) !important; }
body.ab-page .ab-header-btn-icon {
    background: transparent !important;
    border: 1px solid var(--cx-border) !important;
}
body.ab-page .ab-header-btn-primary {
    background: var(--cx-ink) !important;
    color: var(--cx-bg) !important;
    border: none !important;
    font-weight: 600 !important;
}
body.ab-page .ab-header-btn-primary:hover { opacity: .85 !important; }

body.ab-page .ab-avatar-circle {
    background: var(--cx-ink) !important;
    color: var(--cx-bg) !important;
    border-radius: 50% !important;
    font-weight: 700 !important;
}

body.ab-page .ab-user-menu {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius) !important;
}
body.ab-page .ab-user-menu-item:hover { background: var(--cx-border-soft) !important; }
body.ab-page .ab-user-menu-danger { color: var(--cx-danger) !important; }

body.ab-page .ab-metrics-bar {
    background: var(--cx-bg) !important;
    border-bottom: 1px solid var(--cx-border) !important;
}
body.ab-page .ab-metric-val { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .ab-metric-label { color: var(--cx-text-muted) !important; }

/* ═══════════════════════════════════════════════════════════════
   CHAT / WELCOME / MESSAGES
   ═══════════════════════════════════════════════════════════════ */

body.ab-page .ab-ambient-bg,
body.ab-page .ab-ambient-blob,
body.ab-page .ab-ambient-grid {
    display: none !important;
}

body.ab-page .ab-welcome-logo-img { filter: none !important; }
body.ab-page .ab-welcome-title {
    color: var(--cx-ink) !important;
    font-weight: 700 !important;
    letter-spacing: -0.01em !important;
}
body.ab-page .ab-welcome-sub { color: var(--cx-text-muted) !important; }

body.ab-page .ab-quick-btn {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius) !important;
    transition: border-color .15s ease !important;
}
body.ab-page .ab-quick-btn:hover {
    border-color: var(--cx-ink) !important;
    transform: none !important;
}
body.ab-page .ab-quick-btn i { color: var(--cx-ink-soft) !important; }
body.ab-page .ab-quick-btn-label { color: var(--cx-ink) !important; font-weight: 600 !important; }
body.ab-page .ab-quick-btn-desc { color: var(--cx-text-muted) !important; }

body.ab-page .ab-welcome-stats { border-top: 1px solid var(--cx-border-soft) !important; }
body.ab-page .ab-welcome-stat-val {
    color: var(--cx-ink) !important;
    background: none !important;
    -webkit-text-fill-color: var(--cx-ink) !important;
    font-weight: 700 !important;
}
body.ab-page .ab-welcome-stat-label { color: var(--cx-text-muted) !important; }

body.ab-page .ab-message-avatar {
    border-radius: 50% !important;
    background: var(--cx-border-soft) !important;
    border: 1px solid var(--cx-border) !important;
}
body.ab-page .ab-message-avatar-user {
    background: var(--cx-ink) !important;
    color: var(--cx-bg) !important;
}
body.ab-page .ab-message-author { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .ab-message-time { color: var(--cx-text-faint) !important; }
body.ab-page .ab-message-content-user {
    background: var(--cx-border-soft) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius) !important;
    color: var(--cx-ink) !important;
}
body.ab-page .ab-message-content {
    color: var(--cx-ink-soft) !important;
    line-height: 1.7 !important;
}
body.ab-page .ab-message-content pre {
    background: var(--cx-ink) !important;
    border-radius: var(--cx-radius-sm) !important;
    border: none !important;
}
body.ab-page .ab-message-content code {
    background: var(--cx-border-soft) !important;
    color: var(--cx-ink) !important;
    border-radius: 3px !important;
}
body.ab-page .ab-message-content pre code { background: transparent !important; color: #e5e5e5 !important; }

body.ab-page .ab-tool-chips { gap: 6px !important; }
body.ab-page .ab-tool-chip {
    background: var(--cx-border-soft) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: 999px !important;
    color: var(--cx-text-muted) !important;
    font-weight: 600 !important;
}
body.ab-page .ab-msg-action-btn {
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
    color: var(--cx-text-muted) !important;
    background: var(--cx-bg) !important;
}
body.ab-page .ab-msg-action-btn:hover {
    border-color: var(--cx-ink) !important;
    color: var(--cx-ink) !important;
}

body.ab-page .ab-think {
    background: var(--cx-border-soft) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .ab-think-label { color: var(--cx-text-muted) !important; font-weight: 600 !important; }
body.ab-page .ab-think-text { color: var(--cx-text-muted) !important; }

body.ab-page .ab-react-bar {
    background: var(--cx-bg) !important;
    border-bottom: 1px solid var(--cx-border) !important;
}
body.ab-page .ab-react-progress { background: var(--cx-border) !important; }
body.ab-page .ab-react-progress-fill { background: var(--cx-ink) !important; }
body.ab-page .ab-react-step,
body.ab-page .ab-react-tool { color: var(--cx-ink-soft) !important; }

body.ab-page .ab-error-block {
    background: var(--cx-danger-bg) !important;
    border: 1px solid var(--cx-danger) !important;
    border-radius: var(--cx-radius-sm) !important;
    color: var(--cx-danger) !important;
}

/* ═══════════════════════════════════════════════════════════════
   INPUT BAR
   ═══════════════════════════════════════════════════════════════ */

body.ab-page .ab-input-section { border-top: 1px solid var(--cx-border) !important; background: var(--cx-bg) !important; }

body.ab-page .mcp-input-wrapper,
body.ab-page .ab-input-wrapper {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius) !important;
    transition: border-color .15s ease !important;
}
body.ab-page .mcp-input-wrapper:focus-within { border-color: var(--cx-ink) !important; }

body.ab-page .ab-chat-input {
    color: var(--cx-ink) !important;
    background: transparent !important;
}
body.ab-page .ab-chat-input::placeholder { color: var(--cx-text-faint) !important; }

body.ab-page .ab-attach-btn {
    border-radius: var(--cx-radius-sm) !important;
    color: var(--cx-text-muted) !important;
    background: transparent !important;
    border: 1px solid transparent !important;
    transition: background .12s ease, border-color .12s ease !important;
}
body.ab-page .ab-attach-btn:hover {
    background: var(--cx-border-soft) !important;
    border-color: var(--cx-border) !important;
}
body.ab-page .ab-attach-btn.ab-attach-btn-active {
    background: var(--cx-ink) !important;
    color: var(--cx-bg) !important;
}
body.ab-page .ab-deep-search-indicator {
    background: var(--cx-success-bg) !important;
    color: var(--cx-success) !important;
    border-radius: 999px !important;
}

body.ab-page .ab-char-count { color: var(--cx-text-faint) !important; }
body.ab-page .ab-clear-btn {
    color: var(--cx-text-muted) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .ab-clear-btn:hover { color: var(--cx-danger) !important; background: var(--cx-danger-bg) !important; }

body.ab-page .ab-send-btn {
    background: var(--cx-ink) !important;
    color: var(--cx-bg) !important;
    border-radius: var(--cx-radius-sm) !important;
    transition: opacity .15s ease !important;
}
body.ab-page .ab-send-btn:hover { opacity: .85 !important; transform: none !important; }

body.ab-page .ab-input-footer { color: var(--cx-text-faint) !important; }
body.ab-page .ab-input-hint kbd,
body.ab-page .ug-kbd {
    background: var(--cx-border-soft) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: 4px !important;
    color: var(--cx-ink) !important;
    box-shadow: none !important;
}

/* ═══════════════════════════════════════════════════════════════
   VIEW HEADERS / TOOLBARS (shared across all views)
   ═══════════════════════════════════════════════════════════════ */

body.ab-page .ab-view-header { border-bottom: 1px solid var(--cx-border) !important; }
body.ab-page .ab-view-title {
    color: var(--cx-ink) !important;
    font-weight: 700 !important;
}
body.ab-page .ab-view-title i { color: var(--cx-ink-soft) !important; }
body.ab-page .ab-view-title-badge {
    background: var(--cx-ink) !important;
    color: var(--cx-bg) !important;
    border-radius: 999px !important;
    font-weight: 700 !important;
}
body.ab-page .ab-view-description { color: var(--cx-text-muted) !important; }

body.ab-page .ab-btn {
    border-radius: var(--cx-radius-sm) !important;
    font-weight: 600 !important;
    transition: opacity .15s ease, border-color .15s ease !important;
}
body.ab-page .ab-btn-primary {
    background: var(--cx-ink) !important;
    color: var(--cx-bg) !important;
    border: none !important;
}
body.ab-page .ab-btn-primary:hover { opacity: .85 !important; }
body.ab-page .ab-btn-secondary {
    background: var(--cx-border-soft) !important;
    color: var(--cx-ink) !important;
    border: 1px solid var(--cx-border) !important;
}
body.ab-page .ab-btn-ghost {
    background: transparent !important;
    color: var(--cx-ink-soft) !important;
    border: 1px solid var(--cx-border) !important;
}
body.ab-page .ab-btn-ghost:hover { border-color: var(--cx-ink) !important; color: var(--cx-ink) !important; }
body.ab-page .ab-btn-danger { color: var(--cx-danger) !important; border-color: var(--cx-danger) !important; }

body.ab-page .ab-filter-tabs {
    background: var(--cx-border-soft) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .ab-filter-tab {
    color: var(--cx-text-muted) !important;
    border-radius: var(--cx-radius-sm) !important;
    font-weight: 600 !important;
}
body.ab-page .ab-filter-tab.ab-filter-tab-active {
    background: var(--cx-bg) !important;
    color: var(--cx-ink) !important;
    border: 1px solid var(--cx-border) !important;
}

body.ab-page .ab-view-search input,
body.ab-page .ab-tools-search-input,
body.ab-page input[type="text"],
body.ab-page input[type="email"],
body.ab-page input[type="number"] {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
    color: var(--cx-ink) !important;
}
body.ab-page .ab-view-search input:focus,
body.ab-page .ab-tools-search-input:focus {
    border-color: var(--cx-ink) !important;
    outline: none !important;
}

body.ab-page .ab-loading-state { color: var(--cx-text-muted) !important; }
body.ab-page .ab-spinner-ring {
    border: 2px solid var(--cx-border) !important;
    border-top-color: var(--cx-ink) !important;
}
body.ab-page .ab-empty-state,
body.ab-page .abu-empty {
    color: var(--cx-text-muted) !important;
}
body.ab-page .ab-empty-state i,
body.ab-page .abu-empty i { color: var(--cx-text-faint) !important; opacity: 1 !important; }

/* ═══════════════════════════════════════════════════════════════
   TOOLS BROWSER
   ═══════════════════════════════════════════════════════════════ */

body.ab-page .ab-tools-stats-bar {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius) !important;
}
body.ab-page .ab-tools-stat-val {
    color: var(--cx-ink) !important;
    background: none !important;
    -webkit-text-fill-color: var(--cx-ink) !important;
    font-weight: 700 !important;
}
body.ab-page .ab-tools-stat-label { color: var(--cx-text-muted) !important; }

body.ab-page .ab-tool-category-card {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius) !important;
    transition: border-color .15s ease !important;
}
body.ab-page .ab-tool-category-card:hover { border-color: var(--cx-ink-soft) !important; }
body.ab-page .ab-tool-cat-name { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .ab-tool-cat-count { color: var(--cx-text-muted) !important; }
body.ab-page .ab-tool-chip-item {
    background: var(--cx-border-soft) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: 999px !important;
    color: var(--cx-text-muted) !important;
    transition: border-color .12s ease, color .12s ease !important;
}
body.ab-page .ab-tool-chip-item:hover {
    border-color: var(--cx-ink) !important;
    color: var(--cx-ink) !important;
}
/* Icônes catégories : neutralise les couleurs vives */
body.ab-page .ab-tool-cat-icon[data-color] {
    background: var(--cx-border-soft) !important;
    color: var(--cx-ink-soft) !important;
}

/* ═══════════════════════════════════════════════════════════════
   AGENTS GRID / CARDS
   ═══════════════════════════════════════════════════════════════ */

body.ab-page .ab-agent-stats-bar,
body.ab-page .abu-stats-bar {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius) !important;
}
body.ab-page .ab-agent-stat-val,
body.ab-page .abu-stat-val {
    color: var(--cx-ink) !important;
    background: none !important;
    -webkit-text-fill-color: var(--cx-ink) !important;
    font-weight: 700 !important;
}
body.ab-page .ab-agent-stat-label,
body.ab-page .abu-stat-lbl { color: var(--cx-text-muted) !important; }

body.ab-page .ab-agent-card,
body.ab-page .abu-agent-card {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius) !important;
    transition: border-color .15s ease !important;
}
body.ab-page .ab-agent-card:hover,
body.ab-page .abu-agent-card:hover {
    border-color: var(--cx-ink-soft) !important;
    transform: none !important;
}
body.ab-page .ab-agent-card-icon,
body.ab-page .abu-agent-card-icon {
    background: var(--cx-border-soft) !important;
    color: var(--cx-ink-soft) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .ab-agent-card-name,
body.ab-page .abu-agent-card-name { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .ab-agent-card-cat,
body.ab-page .abu-agent-card-cat { color: var(--cx-text-muted) !important; font-weight: 600 !important; }
body.ab-page .ab-agent-card-desc,
body.ab-page .abu-agent-card-desc { color: var(--cx-text-muted) !important; }
body.ab-page .ab-agent-card-meta span,
body.ab-page .ab-tpl-meta span {
    background: var(--cx-border-soft) !important;
    color: var(--cx-text-muted) !important;
    border-radius: 999px !important;
}
body.ab-page .ab-agent-badge,
body.ab-page .abu-agent-badge {
    border-radius: 999px !important;
    font-weight: 700 !important;
}
body.ab-page .ab-badge-tpl,
body.ab-page .ab-badge-team,
body.ab-page .ab-badge-personal {
    background: var(--cx-border-soft) !important;
    color: var(--cx-ink-soft) !important;
    border: 1px solid var(--cx-border) !important;
}
body.ab-page .ab-agent-card-run,
body.ab-page .abu-agent-card-run {
    background: var(--cx-ink) !important;
    color: var(--cx-bg) !important;
    border-radius: var(--cx-radius-sm) !important;
    font-weight: 600 !important;
}
body.ab-page .ab-agent-card-run:hover { opacity: .85 !important; }
body.ab-page .ab-icon-btn,
body.ab-page .abu-icon-btn {
    color: var(--cx-text-muted) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .ab-icon-btn:hover,
body.ab-page .abu-icon-btn:hover { background: var(--cx-border-soft) !important; color: var(--cx-ink) !important; }
body.ab-page .ab-icon-danger:hover,
body.ab-page .abu-icon-danger:hover { color: var(--cx-danger) !important; background: var(--cx-danger-bg) !important; }

/* Swarm folders */
body.ab-page .sw-agent-folder {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius) !important;
}
body.ab-page .sw-agent-folder-icon { background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; }
body.ab-page .sw-agent-folder-name { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .sw-agent-folder-meta { color: var(--cx-text-muted) !important; }

/* ═══════════════════════════════════════════════════════════════
   TEMPLATES
   ═══════════════════════════════════════════════════════════════ */

body.ab-page .ab-tpl-cat-btn,
body.ab-page .abu-tpl-cat {
    background: var(--cx-border-soft) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: 999px !important;
    color: var(--cx-text-muted) !important;
    font-weight: 600 !important;
}
body.ab-page .ab-tpl-cat-btn.ab-tpl-cat-btn-active,
body.ab-page .abu-tpl-cat.active {
    background: var(--cx-ink) !important;
    color: var(--cx-bg) !important;
    border-color: var(--cx-ink) !important;
}
body.ab-page .ab-tpl-card,
body.ab-page .abu-tpl-card {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius) !important;
    transition: border-color .15s ease !important;
}
body.ab-page .ab-tpl-card:hover,
body.ab-page .abu-tpl-card:hover {
    border-color: var(--cx-ink) !important;
    transform: none !important;
}
body.ab-page .ab-tpl-card-icon,
body.ab-page .abu-tpl-card-icon {
    background: var(--cx-border-soft) !important;
    color: var(--cx-ink-soft) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .ab-tpl-badge,
body.ab-page .abu-tpl-badge {
    background: var(--cx-border-soft) !important;
    color: var(--cx-ink-soft) !important;
    border-radius: 999px !important;
    font-weight: 700 !important;
}
body.ab-page .ab-tpl-name,
body.ab-page .abu-tpl-name { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .ab-tpl-desc,
body.ab-page .abu-tpl-desc { color: var(--cx-text-muted) !important; }
body.ab-page .ab-tpl-use-btn,
body.ab-page .abu-tpl-use-btn {
    color: var(--cx-ink) !important;
    border-top: 1px solid var(--cx-border-soft) !important;
    font-weight: 700 !important;
}

/* ═══════════════════════════════════════════════════════════════
   AGENT BUILDER PANEL (abu-*)
   ═══════════════════════════════════════════════════════════════ */

body.ab-page .abu-overlay { background: rgba(10,10,10,.5) !important; backdrop-filter: blur(4px) !important; }
body.ab-page .abu-panel {
    background: var(--cx-bg) !important;
    box-shadow: -8px 0 24px rgba(0,0,0,.08) !important;
}
body.ab-page .abu-header {
    background: var(--cx-bg) !important;
    border-bottom: 1px solid var(--cx-border) !important;
}
body.ab-page .abu-header-title { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .abu-header-sub { color: var(--cx-text-muted) !important; }
body.ab-page .abu-header-btn {
    background: var(--cx-ink) !important;
    color: var(--cx-bg) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .abu-close-btn:hover { color: var(--cx-ink) !important; }

body.ab-page .abu-breadcrumb {
    background: var(--cx-bg-subtle) !important;
    border-bottom: 1px solid var(--cx-border) !important;
}
body.ab-page .abu-crumb-link { color: var(--cx-ink-soft) !important; font-weight: 600 !important; }
body.ab-page .abu-crumb-active { color: var(--cx-ink) !important; font-weight: 700 !important; }

body.ab-page .abu-tri-logo-banner {
    background: var(--cx-border-soft) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius) !important;
}
body.ab-page .abu-tri-logo-banner-text { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .abu-tri-logo-banner-sub { color: var(--cx-text-muted) !important; }

body.ab-page .abu-cta-btn { border-radius: var(--cx-radius-sm) !important; font-weight: 600 !important; }
body.ab-page .abu-cta-primary { background: var(--cx-ink) !important; color: var(--cx-bg) !important; }
body.ab-page .abu-cta-primary:hover { opacity: .85 !important; }
body.ab-page .abu-cta-secondary {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    color: var(--cx-ink-soft) !important;
}
body.ab-page .abu-cta-secondary:hover { border-color: var(--cx-ink) !important; color: var(--cx-ink) !important; }

body.ab-page .abu-section-label { color: var(--cx-text-faint) !important; font-weight: 700 !important; }

/* Form */
body.ab-page .abu-form-section { border-bottom: 1px solid var(--cx-border) !important; }
body.ab-page .abu-form-section-title { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .abu-label { color: var(--cx-ink-soft) !important; font-weight: 600 !important; }
body.ab-page .abu-hint,
body.ab-page .abu-hint-inline { color: var(--cx-text-muted) !important; }
body.ab-page .abu-required::after { color: var(--cx-danger) !important; }
body.ab-page .abu-input {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
    color: var(--cx-ink) !important;
}
body.ab-page .abu-input:focus { border-color: var(--cx-ink) !important; }
body.ab-page .abu-char-badge { color: var(--cx-text-faint) !important; }
body.ab-page .abu-prompt-tool {
    background: var(--cx-border-soft) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
    color: var(--cx-text-muted) !important;
}
body.ab-page .abu-prompt-tool:hover { border-color: var(--cx-ink) !important; color: var(--cx-ink) !important; }

body.ab-page .abu-icon-picker {
    background: var(--cx-border-soft) !important;
    border: 1px solid var(--cx-border) !important;
}
body.ab-page .abu-icon-opt { background: var(--cx-bg) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .abu-icon-opt:hover { border-color: var(--cx-ink-soft) !important; }
body.ab-page .abu-icon-opt.selected { border-color: var(--cx-ink) !important; background: var(--cx-border-soft) !important; }

body.ab-page .abu-toggle-track { background: var(--cx-border) !important; }
body.ab-page .abu-toggle-switch input:checked + .abu-toggle-track { background: var(--cx-ink) !important; }
body.ab-page .abu-toggle-label { color: var(--cx-ink-soft) !important; }

body.ab-page .abu-cap-card {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius) !important;
}
body.ab-page .abu-cap-card.active { border-color: var(--cx-ink) !important; background: var(--cx-border-soft) !important; }
body.ab-page .abu-cap-icon { background: var(--cx-ink) !important; color: var(--cx-bg) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .abu-cap-label { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .abu-cap-desc { color: var(--cx-text-muted) !important; }

body.ab-page .abu-temp-btn {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .abu-temp-btn.active { border-color: var(--cx-ink) !important; background: var(--cx-border-soft) !important; }
body.ab-page .abu-temp-lbl { color: var(--cx-ink) !important; }
body.ab-page .abu-temp-val { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .abu-temp-desc { color: var(--cx-text-faint) !important; }

body.ab-page .abu-tools-count {
    background: var(--cx-border-soft) !important;
    color: var(--cx-ink) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: 999px !important;
    font-weight: 700 !important;
}
body.ab-page .abu-outline-btn {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
    color: var(--cx-ink-soft) !important;
    font-weight: 600 !important;
}
body.ab-page .abu-outline-btn:hover { border-color: var(--cx-ink) !important; color: var(--cx-ink) !important; }

body.ab-page .abu-btn-primary {
    background: var(--cx-ink) !important;
    color: var(--cx-bg) !important;
    border-radius: var(--cx-radius-sm) !important;
    font-weight: 700 !important;
}
body.ab-page .abu-btn-primary:hover:not(:disabled) { opacity: .85 !important; }
body.ab-page .abu-btn-ghost {
    background: transparent !important;
    border: 1px solid var(--cx-border) !important;
    color: var(--cx-ink-soft) !important;
    border-radius: var(--cx-radius-sm) !important;
    font-weight: 600 !important;
}
body.ab-page .abu-btn-ghost:hover { border-color: var(--cx-ink) !important; color: var(--cx-ink) !important; }
body.ab-page .abu-save-bar { border-top: 1px solid var(--cx-border) !important; }

/* Provider tabs in form */
body.ab-page .abu-provider-tab {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
    color: var(--cx-ink-soft) !important;
}
body.ab-page .abu-provider-tab.active {
    background: var(--cx-ink) !important;
    color: var(--cx-bg) !important;
    border-color: var(--cx-ink) !important;
}

/* Custom fields rows */
body.ab-page .abu-cf-req { color: var(--cx-text-muted) !important; }

/* Tool selector */
body.ab-page .abu-tool-sel-count { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .abu-tool-cat {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius) !important;
}
body.ab-page .abu-tool-cat-header { background: var(--cx-border-soft) !important; }
body.ab-page .abu-tool-cat-toggle { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .abu-tool-cat-count { color: var(--cx-text-muted) !important; }
body.ab-page .abu-tool-cb-label {
    background: var(--cx-border-soft) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: 999px !important;
    color: var(--cx-ink-soft) !important;
}

/* KB manager */
body.ab-page .abu-kb-tabs {
    background: var(--cx-border-soft) !important;
    border-radius: var(--cx-radius) !important;
}
body.ab-page .abu-kb-tab { color: var(--cx-text-muted) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .abu-kb-tab-active { background: var(--cx-bg) !important; color: var(--cx-ink) !important; border: 1px solid var(--cx-border) !important; }
body.ab-page .abu-kb-item,
body.ab-page .abu-r2-pick-item {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .abu-kb-item-name,
body.ab-page .abu-r2-pick-name { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .abu-kb-item-meta,
body.ab-page .abu-r2-pick-meta { color: var(--cx-text-muted) !important; }
body.ab-page .abu-kb-upload-hint {
    background: var(--cx-border-soft) !important;
    border: 1px solid var(--cx-border) !important;
    color: var(--cx-text-muted) !important;
}
body.ab-page .abu-r2-pick-attach-btn {
    background: var(--cx-ink) !important;
    color: var(--cx-bg) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .abu-kb-attached-badge,
body.ab-page .abu-r2-pick-attached-badge { color: var(--cx-success) !important; background: var(--cx-success-bg) !important; }

/* Team sharing */
body.ab-page .abu-share-promote {
    background: var(--cx-border-soft) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius) !important;
}
body.ab-page .abu-share-promote-icon { background: var(--cx-ink) !important; color: var(--cx-bg) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .abu-share-promote-title { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .abu-share-member {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .abu-share-member-avatar { background: var(--cx-ink) !important; color: var(--cx-bg) !important; }
body.ab-page .abu-share-member-name { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .abu-share-member-email { color: var(--cx-text-muted) !important; }
body.ab-page .abu-member-pick-row:hover { background: var(--cx-border-soft) !important; }
body.ab-page .abu-member-pick-avatar { background: var(--cx-ink) !important; color: var(--cx-bg) !important; }

/* External MCP accordion */
body.ab-page .abu-mcp-acc-item {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius) !important;
}
body.ab-page .abu-mcp-acc-item.open { border-color: var(--cx-ink) !important; }
body.ab-page .abu-mcp-acc-header:hover { background: var(--cx-border-soft) !important; }
body.ab-page .abu-mcp-acc-name { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .mcp-total-count {
    background: var(--cx-border-soft) !important;
    color: var(--cx-ink) !important;
    border: 1px solid var(--cx-border) !important;
}
body.ab-page .mcp-dot-on { background: var(--cx-success) !important; box-shadow: 0 0 0 3px var(--cx-success-bg) !important; }
body.ab-page .mcp-dot-off { background: var(--cx-border) !important; }

/* Data Quality / Schema hints */
body.ab-page .abu-dq-info-hint,
body.ab-page .abu-schema-active-hint {
    background: var(--cx-border-soft) !important;
    border: 1px solid var(--cx-border) !important;
    color: var(--cx-text-muted) !important;
}
body.ab-page .dq-badge-verified   { background: var(--cx-success-bg) !important; color: var(--cx-success) !important; }
body.ab-page .dq-badge-reviewed   { background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; }
body.ab-page .dq-badge-low        { background: var(--cx-warning-bg) !important; color: var(--cx-warning) !important; }
body.ab-page .dq-badge-unreliable { background: var(--cx-danger-bg) !important; color: var(--cx-danger) !important; }

/* ═══════════════════════════════════════════════════════════════
   TOOL DETAIL MODAL
   ═══════════════════════════════════════════════════════════════ */

body.ab-page .ab-tool-modal-overlay { background: rgba(10,10,10,.5) !important; }
body.ab-page .ab-tool-modal {
    background: var(--cx-bg) !important;
    border-radius: var(--cx-radius-lg) !important;
    border: 1px solid var(--cx-border) !important;
}
body.ab-page .ab-tool-modal-header { border-bottom: 1px solid var(--cx-border) !important; }
body.ab-page .ab-tool-modal-category-badge {
    background: var(--cx-border-soft) !important;
    color: var(--cx-ink-soft) !important;
    border-radius: 999px !important;
}
body.ab-page .ab-tool-modal-title { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .ab-tool-modal-desc { color: var(--cx-text-muted) !important; }
body.ab-page .ab-tool-modal-pre {
    background: var(--cx-ink) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .ab-tool-modal-btn-primary {
    background: var(--cx-ink) !important;
    color: var(--cx-bg) !important;
    border-radius: var(--cx-radius-sm) !important;
    font-weight: 600 !important;
}
body.ab-page .ab-tool-modal-btn-secondary {
    background: var(--cx-border-soft) !important;
    color: var(--cx-ink-soft) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
}

/* ═══════════════════════════════════════════════════════════════
   ANALYTICS VIEW (aan-*)
   ═══════════════════════════════════════════════════════════════ */

body.ab-page .aan-kpi-card,
body.ab-page .aan-chart-card,
body.ab-page .aan-table-card,
body.ab-page .aan-insights-panel {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius) !important;
}
body.ab-page .aan-kpi-icon {
    background: var(--cx-border-soft) !important;
    color: var(--cx-ink-soft) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .aan-kpi-val { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .aan-kpi-label { color: var(--cx-text-muted) !important; }
body.ab-page .aan-chart-title { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .aan-period-selector {
    background: var(--cx-border-soft) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .aan-period-btn { color: var(--cx-text-muted) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .aan-period-btn.aan-period-btn-active {
    background: var(--cx-bg) !important;
    color: var(--cx-ink) !important;
    border: 1px solid var(--cx-border) !important;
}
body.ab-page .aan-table th {
    background: var(--cx-border-soft) !important;
    color: var(--cx-text-muted) !important;
    border-bottom: 1px solid var(--cx-border) !important;
}
body.ab-page .aan-table td { border-bottom: 1px solid var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; }
body.ab-page .aan-table-search {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
}

/* ═══════════════════════════════════════════════════════════════
   GUIDE VIEW (ug-*)
   ═══════════════════════════════════════════════════════════════ */

body.ab-page .ug-toc { background: var(--cx-bg) !important; border-right: 1px solid var(--cx-border) !important; }
body.ab-page .ug-toc-header { border-bottom: 1px solid var(--cx-border-soft) !important; }
body.ab-page .ug-toc-logo-icon { background: var(--cx-ink) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .ug-toc-logo-title { color: var(--cx-ink) !important; }
body.ab-page .ug-toc-search {
    background: var(--cx-border-soft) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .ug-toc-item { color: var(--cx-text-muted) !important; }
body.ab-page .ug-toc-item:hover,
body.ab-page .ug-toc-item.ug-active {
    color: var(--cx-ink) !important;
    background: var(--cx-border-soft) !important;
    border-left-color: var(--cx-ink) !important;
}
body.ab-page .ug-toc-progress-bar { background: var(--cx-border) !important; }
body.ab-page .ug-toc-progress-fill { background: var(--cx-ink) !important; }

body.ab-page .ug-hero {
    background: var(--cx-ink) !important;
    border-radius: var(--cx-radius-lg) !important;
}
body.ab-page .ug-hero::before { display: none !important; }

body.ab-page .ug-quick-card {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius) !important;
}
body.ab-page .ug-quick-card:hover { border-color: var(--cx-ink) !important; transform: none !important; }
body.ab-page .ug-section-header { border-bottom: 2px solid var(--cx-border) !important; }
body.ab-page .ug-section-title { color: var(--cx-ink) !important; }
body.ab-page .ug-section-icon { background: var(--cx-border-soft) !important; color: var(--cx-ink) !important; }
body.ab-page .ug-feature-block {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius) !important;
}
body.ab-page .ug-feature-block-header { background: var(--cx-border-soft) !important; border-bottom: 1px solid var(--cx-border) !important; }
body.ab-page .ug-table th { background: var(--cx-border-soft) !important; }
body.ab-page .ug-table td { border-bottom: 1px solid var(--cx-border-soft) !important; }
body.ab-page .ug-callout-tip   { background: var(--cx-success-bg) !important; border-color: var(--cx-success) !important; }
body.ab-page .ug-callout-warn  { background: var(--cx-warning-bg) !important; border-color: var(--cx-warning) !important; }
body.ab-page .ug-callout-info  { background: var(--cx-border-soft) !important; border-color: var(--cx-border) !important; }
body.ab-page .ug-callout-power { background: var(--cx-border-soft) !important; border-color: var(--cx-border) !important; }

/* ═══════════════════════════════════════════════════════════════
   TOASTS
   ═══════════════════════════════════════════════════════════════ */

body.ab-page .ab-toast {
    background: var(--cx-ink) !important;
    color: var(--cx-bg) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .ab-toast-success { background: var(--cx-success) !important; }
body.ab-page .ab-toast-error   { background: var(--cx-danger) !important; }
body.ab-page .ab-toast-warning { background: var(--cx-warning) !important; }

/* ═══════════════════════════════════════════════════════════════
   DARK MODE — force ink/bg swap everywhere via variables already
   redefined above under body.ab-page.dark-mode
   ═══════════════════════════════════════════════════════════════ */

body.ab-page.dark-mode .ab-message-content pre code { color: #e5e5e5 !important; }

/* ═══════════════════════════════════════════════════════════════
   SCROLLBARS — minimalist
   ═══════════════════════════════════════════════════════════════ */

body.ab-page ::-webkit-scrollbar { width: 6px !important; height: 6px !important; }
body.ab-page ::-webkit-scrollbar-track { background: transparent !important; }
body.ab-page ::-webkit-scrollbar-thumb {
    background: var(--cx-border) !important;
    border-radius: 3px !important;
}
body.ab-page ::-webkit-scrollbar-thumb:hover { background: var(--cx-text-faint) !important; }

/* ═══════════════════════════════════════════════════════════════
   ACCESSIBILITY
   ═══════════════════════════════════════════════════════════════ */

body.ab-page button:focus-visible,
body.ab-page input:focus-visible,
body.ab-page textarea:focus-visible,
body.ab-page select:focus-visible {
    outline: 2px solid var(--cx-ink) !important;
    outline-offset: 2px !important;
}

@media (prefers-reduced-motion: reduce) {
    body.ab-page *, body.ab-page *::before, body.ab-page *::after {
        animation-duration: 0.01ms !important;
        transition-duration: 0.01ms !important;
    }
}

/* ═══════════════════════════════════════════════════════════════
   AGENT BUILDER — ULTRA PRO OVERRIDE — PART 2
   Fix: sidebar active nav = glass gray
   Extends style to: A2A · Analytics · DataQuality · Decision ·
   Debate · DeepSearch · DocGen modules
   ═══════════════════════════════════════════════════════════════ */

/* ── FIX: Sidebar active nav item — Glass Gray ─────────────────── */
body.ab-page .ab-nav-item.ab-nav-item-active {
    background: rgba(120,120,130,.10) !important;
    backdrop-filter: blur(8px) saturate(120%) !important;
    -webkit-backdrop-filter: blur(8px) saturate(120%) !important;
    border: 1px solid rgba(120,120,130,.16) !important;
    border-left: 2px solid var(--cx-ink) !important;
    color: var(--cx-ink) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.4), 0 1px 3px rgba(0,0,0,.04) !important;
}
body.ab-page.dark-mode .ab-nav-item.ab-nav-item-active {
    background: rgba(255,255,255,.06) !important;
    border: 1px solid rgba(255,255,255,.08) !important;
    border-left: 2px solid var(--cx-ink) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.05), 0 1px 3px rgba(0,0,0,.2) !important;
}
body.ab-page .ab-nav-item.ab-nav-item-active .ab-nav-item-icon i {
    color: var(--cx-ink) !important;
}
body.ab-page .ab-nav-item:hover:not(.ab-nav-item-active) {
    background: rgba(120,120,130,.06) !important;
    backdrop-filter: blur(4px) !important;
}

/* Mode selector (top header) — même traitement glass gray pour le tab actif */
body.ab-page .mcp-mode-btn.active {
    background: rgba(120,120,130,.10) !important;
    backdrop-filter: blur(6px) saturate(120%) !important;
    border: 1px solid rgba(120,120,130,.16) !important;
    color: var(--cx-ink) !important;
}
body.ab-page.dark-mode .mcp-mode-btn.active {
    background: rgba(255,255,255,.06) !important;
    border-color: rgba(255,255,255,.08) !important;
}

/* Filter tabs actives (agents/history/templates) — cohérence glass gray */
body.ab-page .ab-filter-tab.ab-filter-tab-active,
body.ab-page .aan-period-btn.aan-period-btn-active,
body.ab-page .db-tab.active,
body.ab-page .a2a-tab.active {
    background: rgba(120,120,130,.10) !important;
    backdrop-filter: blur(6px) !important;
    border: 1px solid rgba(120,120,130,.16) !important;
}
body.ab-page.dark-mode .ab-filter-tab.ab-filter-tab-active,
body.ab-page.dark-mode .aan-period-btn.aan-period-btn-active,
body.ab-page.dark-mode .db-tab.active,
body.ab-page.dark-mode .a2a-tab.active {
    background: rgba(255,255,255,.06) !important;
    border-color: rgba(255,255,255,.08) !important;
}

/* ═══════════════════════════════════════════════════════════════
   A2A PROTOCOL MODULE (a2a-*)
   ═══════════════════════════════════════════════════════════════ */

body.ab-page .a2a-registry-wrap { color: var(--cx-ink) !important; }
body.ab-page .a2a-section-divider-line { background: var(--cx-border) !important; }
body.ab-page .a2a-section-divider-label { color: var(--cx-text-muted) !important; font-weight: 700 !important; }

body.ab-page .a2a-registry-header {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius) !important;
}
body.ab-page .a2a-registry-icon {
    background: var(--cx-ink) !important; color: var(--cx-bg) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .a2a-registry-title { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .a2a-registry-sub { color: var(--cx-text-muted) !important; }
body.ab-page .a2a-protocol-badge {
    background: var(--cx-ink) !important; color: var(--cx-bg) !important;
    border-radius: 999px !important; font-weight: 700 !important;
}

body.ab-page .a2a-tabs {
    background: var(--cx-border-soft) !important; border-radius: var(--cx-radius-sm) !important;
    border: 1px solid var(--cx-border) !important;
}
body.ab-page .a2a-tab { color: var(--cx-text-muted) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .a2a-tab-count {
    background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important;
    border-radius: 999px !important;
}

body.ab-page .a2a-btn { border-radius: var(--cx-radius-sm) !important; font-weight: 600 !important; }
body.ab-page .a2a-btn-primary { background: var(--cx-ink) !important; color: var(--cx-bg) !important; border: none !important; }
body.ab-page .a2a-btn-primary:hover { opacity: .85 !important; }
body.ab-page .a2a-btn-ghost { background: transparent !important; border: 1px solid var(--cx-border) !important; color: var(--cx-ink-soft) !important; }
body.ab-page .a2a-btn-ghost:hover { border-color: var(--cx-ink) !important; color: var(--cx-ink) !important; }
body.ab-page .a2a-btn-outline { background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; color: var(--cx-ink-soft) !important; }
body.ab-page .a2a-btn-danger { color: var(--cx-danger) !important; }

body.ab-page .a2a-section-label { color: var(--cx-text-faint) !important; font-weight: 700 !important; }
body.ab-page .a2a-section-action { color: var(--cx-ink-soft) !important; }
body.ab-page .a2a-conn-group-label { color: var(--cx-text-muted) !important; font-weight: 700 !important; }

body.ab-page .a2a-preset-card,
body.ab-page .a2a-conn-card {
    background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius) !important;
}
body.ab-page .a2a-conn-card:hover { border-color: var(--cx-ink-soft) !important; }
body.ab-page .a2a-preset-icon,
body.ab-page .a2a-conn-icon {
    background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .a2a-preset-name,
body.ab-page .a2a-conn-name { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .a2a-preset-desc,
body.ab-page .a2a-conn-desc { color: var(--cx-text-muted) !important; }
body.ab-page .a2a-cap-pill {
    background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important;
    border: 1px solid var(--cx-border) !important; border-radius: 999px !important;
}
body.ab-page .a2a-verified-badge { background: var(--cx-success-bg) !important; color: var(--cx-success) !important; border-radius: 999px !important; }
body.ab-page .a2a-expose-badge { background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; border-radius: 999px !important; }
body.ab-page .a2a-type-badge { border-radius: 999px !important; font-weight: 700 !important; background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; border: 1px solid var(--cx-border) !important; }
body.ab-page .a2a-conn-endpoint { color: var(--cx-text-muted) !important; }
body.ab-page .a2a-conn-meta { color: var(--cx-text-muted) !important; }
body.ab-page .a2a-conn-action-btn {
    background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important;
    color: var(--cx-ink-soft) !important; border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .a2a-conn-action-btn:hover { border-color: var(--cx-ink) !important; color: var(--cx-ink) !important; }
body.ab-page .a2a-action-delete:hover { color: var(--cx-danger) !important; border-color: var(--cx-danger) !important; }
body.ab-page .a2a-health-active { background: var(--cx-success) !important; }
body.ab-page .a2a-health-error { background: var(--cx-danger) !important; }
body.ab-page .a2a-health-pending,
body.ab-page .a2a-health-inactive { background: var(--cx-text-faint) !important; }

body.ab-page .a2a-empty-state { color: var(--cx-text-muted) !important; }
body.ab-page .a2a-empty-icon { color: var(--cx-text-faint) !important; }

body.ab-page .a2a-calls-table th {
    background: var(--cx-border-soft) !important; color: var(--cx-text-muted) !important;
    border-bottom: 1px solid var(--cx-border) !important;
}
body.ab-page .a2a-calls-table td { border-bottom: 1px solid var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; }
body.ab-page .a2a-call-status-badge { border-radius: 999px !important; font-weight: 700 !important; }
body.ab-page .a2a-status-completed { background: var(--cx-success-bg) !important; color: var(--cx-success) !important; }
body.ab-page .a2a-status-failed { background: var(--cx-danger-bg) !important; color: var(--cx-danger) !important; }
body.ab-page .a2a-status-working,
body.ab-page .a2a-status-pending { background: var(--cx-warning-bg) !important; color: var(--cx-warning) !important; }
body.ab-page .a2a-mode-badge { background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; border-radius: 999px !important; }
body.ab-page .a2a-calls-search-wrap,
body.ab-page .a2a-filter-select {
    background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important; color: var(--cx-ink) !important;
}

body.ab-page .a2a-stats-kpi {
    background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius) !important;
}
body.ab-page .a2a-stats-kpi-icon { background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .a2a-stats-kpi-val { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .a2a-stats-kpi-label { color: var(--cx-text-muted) !important; }
body.ab-page .a2a-stats-card {
    background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius) !important;
}
body.ab-page .a2a-bar-track { background: var(--cx-border) !important; border-radius: 4px !important; }
body.ab-page .a2a-bar-fill { background: var(--cx-ink) !important; }
body.ab-page .a2a-rank-num { background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; }

body.ab-page .a2a-wizard-modal,
body.ab-page .a2a-agent-picker-inner,
body.ab-page .a2a-result-modal-inner {
    background: var(--cx-bg) !important; border-radius: var(--cx-radius-lg) !important;
    border: 1px solid var(--cx-border) !important;
}
body.ab-page .a2a-wizard-header,
body.ab-page .a2a-agent-picker-header { border-bottom: 1px solid var(--cx-border) !important; }
body.ab-page .a2a-form-input {
    background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important; color: var(--cx-ink) !important;
}
body.ab-page .a2a-type-btn {
    background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important;
    color: var(--cx-ink-soft) !important; border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .a2a-type-btn.active { background: var(--cx-ink) !important; color: var(--cx-bg) !important; border-color: var(--cx-ink) !important; }
body.ab-page .a2a-endpoint-quick-btn {
    background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important;
    color: var(--cx-ink-soft) !important; border-radius: 999px !important;
}
body.ab-page .a2a-disc-banner { border-radius: var(--cx-radius-sm) !important; }
body.ab-page .a2a-disc-ok { background: var(--cx-success-bg) !important; color: var(--cx-success) !important; }
body.ab-page .a2a-disc-error { background: var(--cx-danger-bg) !important; color: var(--cx-danger) !important; }
body.ab-page .a2a-disc-warning { background: var(--cx-warning-bg) !important; color: var(--cx-warning) !important; }
body.ab-page .a2a-wizard-summary { background: var(--cx-border-soft) !important; border-radius: var(--cx-radius) !important; }
body.ab-page .a2a-summary-row { border-bottom: 1px solid var(--cx-border) !important; }

/* ═══════════════════════════════════════════════════════════════
   AGENT ANALYTICS MODULE (aan-*)
   ═══════════════════════════════════════════════════════════════ */

body.ab-page .aan-kpi-card,
body.ab-page .aan-chart-card,
body.ab-page .aan-table-card,
body.ab-page .aan-insights-panel {
    background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius) !important;
}
body.ab-page .aan-kpi-icon { background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .aan-kpi-val { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .aan-kpi-label { color: var(--cx-text-muted) !important; }
body.ab-page .aan-kpi-delta.positive { color: var(--cx-success) !important; }
body.ab-page .aan-kpi-delta.negative { color: var(--cx-danger) !important; }
body.ab-page .aan-chart-title { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .aan-period-selector { background: var(--cx-border-soft) !important; border-radius: var(--cx-radius-sm) !important; border: 1px solid var(--cx-border) !important; }
body.ab-page .aan-period-btn { color: var(--cx-text-muted) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .aan-agent-stat-row,
body.ab-page .aan-rank-item { border-bottom: 1px solid var(--cx-border-soft) !important; }
body.ab-page .aan-rank-num { background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; }
body.ab-page .aan-rank-num.gold { background: var(--cx-ink) !important; color: var(--cx-bg) !important; }
body.ab-page .aan-rank-name { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .aan-rank-meta { color: var(--cx-text-muted) !important; }
body.ab-page .aan-rank-bar-wrap { background: var(--cx-border) !important; border-radius: 4px !important; }
body.ab-page .aan-rank-bar-fill { background: var(--cx-ink) !important; }
body.ab-page .aan-tool-usage-bar { background: var(--cx-border) !important; }
body.ab-page .aan-tool-usage-bar-fill { background: var(--cx-ink-soft) !important; }
body.ab-page .aan-table th {
    background: var(--cx-border-soft) !important; color: var(--cx-text-muted) !important;
    border-bottom: 1px solid var(--cx-border) !important;
}
body.ab-page .aan-table td { border-bottom: 1px solid var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; }
body.ab-page .aan-table-search {
    background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .aan-status-badge { border-radius: 999px !important; font-weight: 700 !important; }
body.ab-page .aan-status-success { background: var(--cx-success-bg) !important; color: var(--cx-success) !important; }
body.ab-page .aan-status-running { background: var(--cx-warning-bg) !important; color: var(--cx-warning) !important; }
body.ab-page .aan-status-error { background: var(--cx-danger-bg) !important; color: var(--cx-danger) !important; }
body.ab-page .aan-page-btn { background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; border-radius: var(--cx-radius-sm) !important; color: var(--cx-ink-soft) !important; }
body.ab-page .aan-page-btn-active { background: var(--cx-ink) !important; color: var(--cx-bg) !important; border-color: var(--cx-ink) !important; }
body.ab-page .aan-insight-card { background: var(--cx-border-soft) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .aan-insight-icon { border-radius: var(--cx-radius-sm) !important; }
body.ab-page .aan-insight-title { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .aan-insight-text { color: var(--cx-text-muted) !important; }
body.ab-page .aan-insights-badge { background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; border-radius: 999px !important; }
body.ab-page .aan-search-stat-row { border-bottom: 1px solid var(--cx-border-soft) !important; }
body.ab-page .aan-search-stat-label { color: var(--cx-text-muted) !important; }
body.ab-page .aan-search-stat-val { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .aan-agent-cell-icon { background: var(--cx-border-soft) !important; }

/* ═══════════════════════════════════════════════════════════════
   DATA QUALITY LAYER BADGES (dq-*)
   ═══════════════════════════════════════════════════════════════ */

body.ab-page .dq-quality-badge { border-radius: 999px !important; font-weight: 700 !important; border: 1px solid var(--cx-border) !important; }
body.ab-page .dq-badge-verified { background: var(--cx-success-bg) !important; color: var(--cx-success) !important; }
body.ab-page .dq-badge-reviewed { background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; }
body.ab-page .dq-badge-low { background: var(--cx-warning-bg) !important; color: var(--cx-warning) !important; }
body.ab-page .dq-badge-unreliable { background: var(--cx-danger-bg) !important; color: var(--cx-danger) !important; }
body.ab-page .ab-tool-chip-dq { background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; border-radius: 999px !important; }

/* ═══════════════════════════════════════════════════════════════
   DECISION ENGINE MODULE (de-*)
   ═══════════════════════════════════════════════════════════════ */

body.ab-page .de-btn { border-radius: var(--cx-radius-sm) !important; font-weight: 600 !important; }
body.ab-page .de-btn-primary { background: var(--cx-ink) !important; color: var(--cx-bg) !important; }
body.ab-page .de-btn-ghost { background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important; color: var(--cx-ink-soft) !important; }
body.ab-page .de-btn-secondary { background: var(--cx-border-soft) !important; color: var(--cx-ink) !important; border: 1px solid var(--cx-border) !important; }
body.ab-page .de-icon-btn { color: var(--cx-text-muted) !important; }
body.ab-page .de-icon-btn:hover { background: var(--cx-border-soft) !important; color: var(--cx-ink) !important; }
body.ab-page .de-icon-btn--danger:hover { color: var(--cx-danger) !important; }
body.ab-page .de-back-btn { background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important; color: var(--cx-ink-soft) !important; border-radius: var(--cx-radius-sm) !important; }

body.ab-page .de-stats-strip {
    background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius) !important;
}
body.ab-page .de-stat-pill { background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; }
body.ab-page .de-stat-pill__val { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .de-stat-pill__label { color: var(--cx-text-muted) !important; }
body.ab-page .de-strategy-select {
    background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important; color: var(--cx-ink) !important;
}
body.ab-page .de-section-label { color: var(--cx-text-faint) !important; font-weight: 700 !important; }
body.ab-page .de-count-badge { background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; border-radius: 999px !important; }

body.ab-page .de-history-card {
    background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .de-history-card:hover { border-color: var(--cx-ink-soft) !important; }
body.ab-page .de-history-card__score { border-color: var(--cx-border) !important; }
body.ab-page .de-history-card__company { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .de-history-card__meta { color: var(--cx-text-muted) !important; }
body.ab-page .de-verdict-chip { border-radius: 999px !important; font-weight: 700 !important; }
body.ab-page .de-override-chip { background: var(--cx-warning-bg) !important; color: var(--cx-warning) !important; border-radius: 999px !important; }

body.ab-page .de-live-phases,
body.ab-page .de-phase-item { border-radius: var(--cx-radius-sm) !important; }
body.ab-page .de-phase-item { background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important; }
body.ab-page .de-phase-item.de-phase--active { border-color: var(--cx-ink) !important; background: var(--cx-bg) !important; }
body.ab-page .de-phase-icon { background: var(--cx-ink) !important; }
body.ab-page .de-phase--done .de-phase-icon { background: var(--cx-success) !important; }
body.ab-page .de-phase-name { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .de-phase-desc { color: var(--cx-text-muted) !important; }

body.ab-page .de-section-card {
    background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius) !important;
}
body.ab-page .de-section-card__title { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .de-completeness-bar { background: var(--cx-border) !important; }
body.ab-page .de-wf-header { border-bottom: 1px solid var(--cx-border) !important; }
body.ab-page .de-wf-col-label { color: var(--cx-text-faint) !important; }
body.ab-page .de-wf-label { color: var(--cx-ink-soft) !important; }
body.ab-page .de-wf-bar-track { background: var(--cx-border) !important; }
body.ab-page .de-key-insight { background: var(--cx-warning-bg) !important; border: 1px solid var(--cx-border) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .de-key-insight__text { color: var(--cx-ink-soft) !important; }

body.ab-page .de-ic-tab-btns { background: var(--cx-border-soft) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .de-ic-tab-btn { color: var(--cx-text-muted) !important; }
body.ab-page .de-ic-tab-btn--active { background: var(--cx-bg) !important; color: var(--cx-ink) !important; }
body.ab-page .de-tab-count { background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; border-radius: 999px !important; }
body.ab-page .de-case-item { background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .de-case-empty { background: var(--cx-border-soft) !important; color: var(--cx-text-muted) !important; }

body.ab-page .de-flags-panel--ko { background: var(--cx-danger-bg) !important; border: 1px solid var(--cx-border) !important; }
body.ab-page .de-flags-panel--escalate { background: var(--cx-warning-bg) !important; border: 1px solid var(--cx-border) !important; }
body.ab-page .de-flag-item { background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .de-flag-item__label { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .de-flag-severity { background: var(--cx-danger-bg) !important; color: var(--cx-danger) !important; }
body.ab-page .de-flag-weight { background: var(--cx-warning-bg) !important; color: var(--cx-warning) !important; }

body.ab-page .de-override-select { background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .de-mifid-bar { background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important; color: var(--cx-text-muted) !important; }
body.ab-page .de-response-badge { border: 1px solid var(--cx-border) !important; background: var(--cx-border-soft) !important; border-radius: var(--cx-radius-sm) !important; }

/* ═══════════════════════════════════════════════════════════════
   DEBATE ARENA MODULE (db-*)
   ═══════════════════════════════════════════════════════════════ */

body.ab-page .db-btn { border-radius: var(--cx-radius-sm) !important; font-weight: 600 !important; }
body.ab-page .db-btn-primary { background: var(--cx-ink) !important; color: var(--cx-bg) !important; }
body.ab-page .db-btn-ghost { background: transparent !important; border: 1px solid var(--cx-border) !important; color: var(--cx-ink-soft) !important; }
body.ab-page .db-btn-danger-sm { background: var(--cx-danger-bg) !important; color: var(--cx-danger) !important; }
body.ab-page .db-back-btn { background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important; color: var(--cx-ink-soft) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .db-section-title { color: var(--cx-text-faint) !important; font-weight: 700 !important; }

body.ab-page .db-lib-stat__val { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .db-lib-stat__label { color: var(--cx-text-muted) !important; }
body.ab-page .db-mode-card,
body.ab-page .db-history-card {
    background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius) !important;
}
body.ab-page .db-mode-card:hover,
body.ab-page .db-history-card:hover { border-color: var(--cx-ink-soft) !important; }
body.ab-page .db-mode-card__icon { background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .db-mode-card__name { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .db-mode-card__desc { color: var(--cx-text-muted) !important; }
body.ab-page .db-agent-chip { background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; border-radius: 999px !important; }
body.ab-page .db-mode-card__btn { background: var(--cx-ink) !important; color: var(--cx-bg) !important; }
body.ab-page .db-history-card__icon { background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .db-history-card__topic { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .db-history-card__meta,
body.ab-page .db-history-card__mode,
body.ab-page .db-history-card__score,
body.ab-page .db-history-card__date { color: var(--cx-text-muted) !important; }
body.ab-page .db-verdict-chip { border-radius: 999px !important; font-weight: 700 !important; }

body.ab-page .db-selected-mode-banner { background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important; }
body.ab-page .db-agent-pill { border: 1px solid var(--cx-border) !important; color: var(--cx-ink-soft) !important; }
body.ab-page .db-form-textarea,
body.ab-page .db-form-select {
    background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important; color: var(--cx-ink) !important;
}
body.ab-page .db-advanced-details { background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important; }

body.ab-page .db-live-header { background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important; }
body.ab-page .db-live-label { color: var(--cx-ink) !important; }
body.ab-page .db-round-step__dot { background: var(--cx-border) !important; border-color: var(--cx-border) !important; }
body.ab-page .db-round-step--active .db-round-step__dot { background: var(--cx-ink) !important; box-shadow: 0 0 0 4px rgba(0,0,0,.08) !important; }
body.ab-page .db-round-step--done .db-round-step__dot { background: var(--cx-success) !important; }
body.ab-page .db-round-step__line { background: var(--cx-border) !important; }
body.ab-page .db-round-step--done .db-round-step__line { background: var(--cx-success) !important; }
body.ab-page .db-round-step__label { color: var(--cx-text-muted) !important; }
body.ab-page .db-round-step--active .db-round-step__label { color: var(--cx-ink) !important; }
body.ab-page .db-token-bar { background: var(--cx-border) !important; }
body.ab-page .db-token-bar__fill { background: var(--cx-ink) !important; }

body.ab-page .db-agent-slot { background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; border-radius: var(--cx-radius) !important; }
body.ab-page .db-slot--running { border-color: var(--cx-ink-soft) !important; box-shadow: 0 0 0 3px rgba(0,0,0,.05) !important; }
body.ab-page .db-slot--done { border-color: var(--cx-success) !important; }
body.ab-page .db-agent-slot__header { background: var(--cx-border-soft) !important; border-bottom: 1px solid var(--cx-border) !important; }
body.ab-page .db-agent-slot__name { color: var(--cx-ink) !important; }
body.ab-page .db-agent-slot__status { color: var(--cx-text-muted) !important; }

body.ab-page .db-verdict-hero { border: 1px solid var(--cx-border) !important; background: var(--cx-ink) !important; color: var(--cx-bg) !important; }
body.ab-page .db-consensus-col { background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important; }
body.ab-page .db-agreement-item { background: var(--cx-success-bg) !important; }
body.ab-page .db-disagreement-item { background: var(--cx-danger-bg) !important; }
body.ab-page .db-judge-details,
body.ab-page .db-agents-details {
    background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important;
}
body.ab-page .db-agent-result-card { background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .db-mifid-disclaimer { background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important; color: var(--cx-text-muted) !important; }

body.ab-page .db-modal { background: var(--cx-bg) !important; border-radius: var(--cx-radius-lg) !important; }
body.ab-page .db-modal__header { border-bottom: 1px solid var(--cx-border) !important; background: var(--cx-border-soft) !important; }
body.ab-page .db-modal-mode-body { background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important; }
body.ab-page .db-modal-mode-option input:checked + .db-modal-mode-body { border-color: var(--cx-ink) !important; background: var(--cx-border-soft) !important; }

/* db-think blocks (streaming thinking) */
body.ab-page .db-think { background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; }
body.ab-page .db-think-label { color: var(--cx-ink-soft) !important; }
body.ab-page .db-think-text { color: var(--cx-text-muted) !important; border-top: 1px solid var(--cx-border-soft) !important; }

/* ═══════════════════════════════════════════════════════════════
   DEEP SEARCH MODULE (ds-*)
   ═══════════════════════════════════════════════════════════════ */

body.ab-page .ds-panel-header { background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important; }
body.ab-page .ds-panel-icon { background: var(--cx-ink) !important; color: var(--cx-bg) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .ds-panel-title { color: var(--cx-ink) !important; }
body.ab-page .ds-panel-sub { color: var(--cx-text-muted) !important; }
body.ab-page .ds-live-badge { background: var(--cx-success) !important; }
body.ab-page .ds-input-inner { background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; border-radius: var(--cx-radius) !important; }
body.ab-page .ds-input-inner:focus-within { border-color: var(--cx-ink) !important; }
body.ab-page .ds-query-input { color: var(--cx-ink) !important; }
body.ab-page .ds-search-btn { background: var(--cx-ink) !important; color: var(--cx-bg) !important; }
body.ab-page .ds-template-btn {
    background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important;
    color: var(--cx-ink-soft) !important; border-radius: 999px !important;
}
body.ab-page .ds-template-btn:hover { border-color: var(--cx-ink) !important; color: var(--cx-ink) !important; }
body.ab-page .ds-progress-fill { background: var(--cx-ink) !important; }
body.ab-page .ds-results-wrap { background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important; border-radius: var(--cx-radius) !important; }
body.ab-page .ds-results-header { background: var(--cx-bg) !important; border-bottom: 1px solid var(--cx-border) !important; }
body.ab-page .ds-action-btn { background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; color: var(--cx-ink-soft) !important; }
body.ab-page .ds-source-item { border-bottom: 1px solid var(--cx-border) !important; }
body.ab-page .ds-source-num { background: var(--cx-ink) !important; color: var(--cx-bg) !important; }
body.ab-page .ds-source-title { color: var(--cx-ink) !important; }
body.ab-page .ds-result-card { background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important; }
body.ab-page .ds-result-icon { background: var(--cx-ink) !important; color: var(--cx-bg) !important; }
body.ab-page .ds-result-badge { background: var(--cx-success) !important; }
body.ab-page .ds-source-chip { background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important; color: var(--cx-ink-soft) !important; }
body.ab-page .ds-citation-tag { background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important; color: var(--cx-ink-soft) !important; }
body.ab-page .ds-error-block { background: var(--cx-danger-bg) !important; border: 1px solid var(--cx-border) !important; color: var(--cx-danger) !important; }
body.ab-page .ds-history-item:hover { background: var(--cx-bg) !important; }

/* ═══════════════════════════════════════════════════════════════
   DOCGEN MODULE (dg-*)
   ═══════════════════════════════════════════════════════════════ */

body.ab-page .dg-view { color: var(--cx-ink) !important; }
body.ab-page .dg-library-panel { background: var(--cx-bg) !important; border-right: 1px solid var(--cx-border) !important; }
body.ab-page .dg-library-title { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .dg-new-btn { background: var(--cx-ink) !important; color: var(--cx-bg) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .dg-lib-tab {
    background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important;
    color: var(--cx-text-muted) !important; border-radius: 999px !important;
}
body.ab-page .dg-lib-tab.active { background: var(--cx-ink) !important; color: var(--cx-bg) !important; }
body.ab-page .dg-lib-item {
    background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .dg-lib-item.active,
body.ab-page .dg-lib-item:hover { border-color: var(--cx-ink) !important; background: var(--cx-border-soft) !important; }
body.ab-page .dg-lib-item-icon { background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .dg-lib-item-title { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .dg-lib-item-meta { color: var(--cx-text-muted) !important; }
body.ab-page .dg-empty-state { color: var(--cx-text-muted) !important; }
body.ab-page .dg-btn-primary { background: var(--cx-ink) !important; color: var(--cx-bg) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .dg-btn-ghost { background: transparent !important; border: 1px solid var(--cx-border) !important; color: var(--cx-ink-soft) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .dg-wizard { background: var(--cx-bg) !important; }
body.ab-page .dg-wizard-header { border-bottom: 1px solid var(--cx-border) !important; }
body.ab-page .dg-wizard-step { color: var(--cx-text-muted) !important; }
body.ab-page .dg-wizard-step.active { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .dg-wizard-step-num { background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; border-radius: 50% !important; }
body.ab-page .dg-wizard-step.active .dg-wizard-step-num { background: var(--cx-ink) !important; color: var(--cx-bg) !important; }
body.ab-page .dg-type-card {
    background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius) !important;
}
body.ab-page .dg-type-card.selected,
body.ab-page .dg-type-card:hover { border-color: var(--cx-ink) !important; }
body.ab-page .dg-type-card-label { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .dg-type-card-desc,
body.ab-page .dg-type-card-audience,
body.ab-page .dg-type-card-sections { color: var(--cx-text-muted) !important; }
body.ab-page .dg-meta-input {
    background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important; color: var(--cx-ink) !important;
}
body.ab-page .dg-meta-label { color: var(--cx-ink-soft) !important; font-weight: 600 !important; }
body.ab-page .dg-btn-ghost-sm {
    background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important;
    color: var(--cx-ink-soft) !important; border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .dg-generating-title { color: var(--cx-ink) !important; }
body.ab-page .dg-generating-sub { color: var(--cx-text-muted) !important; }
body.ab-page .dg-generating-progress { background: var(--cx-border) !important; }
body.ab-page .dg-generating-bar { background: var(--cx-ink) !important; }
body.ab-page .dg-export-btn {
    background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important;
    color: var(--cx-ink-soft) !important; border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .dg-export-btn:hover { border-color: var(--cx-ink) !important; color: var(--cx-ink) !important; }
body.ab-page .dg-preview-doc-icon { background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .dg-preview-doc-title { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .dg-preview-doc-meta { color: var(--cx-text-muted) !important; }
body.ab-page .dg-conv-picker-item:hover { background: var(--cx-border-soft) !important; }
body.ab-page .dg-inline-btn {
    background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important;
    color: var(--cx-ink-soft) !important; border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .dg-inline-type-picker { background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .dg-inline-type-opt:hover { background: var(--cx-border-soft) !important; }
body.ab-page .dg-think { background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; }
body.ab-page .dg-think-label { color: var(--cx-ink-soft) !important; }
body.ab-page .dg-think-text { color: var(--cx-text-muted) !important; border-top: 1px solid var(--cx-border-soft) !important; }

/* ═══════════════════════════════════════════════════════════════
   AGENT BUILDER PANEL — DocGen / A2A / Spawning sub-panels
   (reuse abu-* classes already styled in Part 1, just extra fixes)
   ═══════════════════════════════════════════════════════════════ */

body.ab-page .dg-type-pick-btn {
    background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important;
    color: var(--cx-ink-soft) !important; border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .dg-type-pick-btn.active { background: var(--cx-ink) !important; color: var(--cx-bg) !important; border-color: var(--cx-ink) !important; }

body.ab-page .hitl-autonomy-option {
    background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important; color: var(--cx-ink-soft) !important;
}
body.ab-page .hitl-autonomy-option.selected { border-color: var(--cx-ink) !important; background: var(--cx-bg) !important; }

/* ── Universal spinner color fix (all namespaces) ────────────── */
body.ab-page .ab-spinner-ring,
body.ab-page .a2a-spinner,
body.ab-page .aan-loading .ab-spinner-ring,
body.ab-page .de-spinner-sm,
body.ab-page .db-spinner-inline,
body.ab-page .ds-progress-fill {
    border-color: var(--cx-border) !important;
}
body.ab-page .ab-spinner-ring,
body.ab-page .a2a-spinner,
body.ab-page .de-spinner-sm,
body.ab-page .db-spinner-inline {
    border-top-color: var(--cx-ink) !important;
}

/* ═══════════════════════════════════════════════════════════════
   FIX — SUPPRESSION DE LA BARRE VERTICALE NOIRE SIDEBAR
   ═══════════════════════════════════════════════════════════════ */

   body.ab-page .ab-nav-item.ab-nav-item-active {
    border-left: none !important;
    box-shadow: inset 3px 0 0 var(--cx-ink) !important;
}

/* ═══════════════════════════════════════════════════════════════
   AGENT FILE PROCESSOR — afp-*, chat-file-badge*
   ═══════════════════════════════════════════════════════════════ */

body.ab-page .afp-dropzone {
    border: 2px dashed var(--cx-border) !important;
    border-radius: var(--cx-radius) !important;
    background: var(--cx-bg-subtle) !important;
}
body.ab-page .afp-dropzone.afp-dz-dragging {
    border-color: var(--cx-ink) !important;
    background: var(--cx-border-soft) !important;
    transform: none !important;
}
body.ab-page .afp-dz-icon {
    background: var(--cx-ink) !important;
    color: var(--cx-bg) !important;
    box-shadow: none !important;
    border-radius: var(--cx-radius) !important;
}
body.ab-page .afp-dz-label { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .afp-dz-types {
    background: var(--cx-border-soft) !important;
    color: var(--cx-text-muted) !important;
    border-radius: 999px !important;
}
body.ab-page .afp-dz-size-hint { color: var(--cx-text-faint) !important; }
body.ab-page .afp-dz-browse-btn {
    background: var(--cx-ink) !important;
    color: var(--cx-bg) !important;
    border-radius: var(--cx-radius-sm) !important;
    font-weight: 700 !important;
}
body.ab-page .afp-dz-browse-btn:hover { opacity: .85 !important; }
body.ab-page .afp-file-item {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .afp-file-item.afp-file-success { border-color: var(--cx-success) !important; background: var(--cx-success-bg) !important; }
body.ab-page .afp-file-item.afp-file-error   { border-color: var(--cx-danger)  !important; background: var(--cx-danger-bg)  !important; }
body.ab-page .afp-icon-success { color: var(--cx-success) !important; }
body.ab-page .afp-icon-error   { color: var(--cx-danger)  !important; }
body.ab-page .afp-file-name { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .afp-file-size { color: var(--cx-text-muted) !important; }
body.ab-page .afp-error-msg { color: var(--cx-danger) !important; }
body.ab-page .afp-status-ok  { color: var(--cx-success) !important; }
body.ab-page .afp-status-err { color: var(--cx-danger)  !important; }
body.ab-page .afp-dz-progress { background: var(--cx-border-soft) !important; border-top: 1px solid var(--cx-border) !important; }
body.ab-page .afp-dz-progress-bar  { background: var(--cx-border) !important; }
body.ab-page .afp-dz-progress-fill { background: var(--cx-ink) !important; }
body.ab-page .afp-dz-progress-label { color: var(--cx-text-muted) !important; }

body.ab-page .chat-file-badges-container {
    background: var(--cx-border-soft) !important;
    border-top: 1px solid var(--cx-border) !important;
}
body.ab-page .chat-file-badge {
    border-radius: 999px !important;
    font-weight: 700 !important;
    box-shadow: none !important;
}
body.ab-page .chat-file-badge-processing { background: var(--cx-border-soft) !important; border-color: var(--cx-border) !important; color: var(--cx-ink-soft) !important; }
body.ab-page .chat-file-badge-ready      { background: var(--cx-success-bg) !important; border-color: var(--cx-success) !important; color: var(--cx-success) !important; }
body.ab-page .chat-file-badge-error      { background: var(--cx-danger-bg)  !important; border-color: var(--cx-danger)  !important; color: var(--cx-danger)  !important; }
body.ab-page .chat-badge-name { color: var(--cx-ink) !important; }
body.ab-page .chat-badge-meta {
    background: var(--cx-border-soft) !important;
    color: var(--cx-success) !important;
}
body.ab-page .chat-badge-remove { background: var(--cx-border-soft) !important; color: var(--cx-text-muted) !important; }
body.ab-page .chat-badge-remove:hover { background: var(--cx-danger-bg) !important; color: var(--cx-danger) !important; }
body.ab-page .chat-drag-over::after {
    background: rgba(10,10,10,.08) !important;
    color: var(--cx-ink) !important;
    border: 4px dashed var(--cx-ink) !important;
}

/* ═══════════════════════════════════════════════════════════════
   GUARDRAILS — guard-*
   ═══════════════════════════════════════════════════════════════ */

body.ab-page .guard-presets { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
body.ab-page .guard-preset-btn {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
    color: var(--cx-ink-soft) !important;
    font-weight: 700 !important;
    padding: 8px 14px !important;
    display: flex; align-items: center; gap: 6px;
}
body.ab-page .guard-preset-btn.active { color: #fff !important; border-color: transparent !important; }
body.ab-page .guard-active-bar {
    display: flex; flex-wrap: wrap; gap: 8px; padding: 12px;
    background: var(--cx-border-soft) !important;
    border-radius: var(--cx-radius-sm) !important;
    margin-bottom: 14px;
}
body.ab-page .guard-active-pill {
    display: flex; align-items: center; gap: 6px;
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: 999px !important;
    padding: 4px 10px !important;
    font-size: 11px; font-weight: 700; color: var(--cx-ink) !important;
}
body.ab-page .guard-no-rules { color: var(--cx-text-muted) !important; font-size: 12px; }
body.ab-page .guard-rules-group { margin-bottom: 12px; }
body.ab-page .guard-section-toggle {
    display: flex; align-items: center; justify-content: space-between;
    padding: 10px 14px; cursor: pointer;
    background: var(--cx-border-soft) !important;
    border-radius: var(--cx-radius-sm) !important;
    color: var(--cx-ink) !important; font-weight: 700; font-size: 12px;
}
body.ab-page .guard-section-chevron { transition: transform .2s; }
body.ab-page .guard-section-chevron.open { transform: rotate(90deg); }
body.ab-page .guard-rules-list { display: flex; flex-direction: column; gap: 8px; margin-top: 8px; }
body.ab-page .guard-rule-card {
    display: flex; align-items: flex-start; gap: 12px;
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius) !important;
    padding: 12px 14px !important;
}
body.ab-page .guard-rule-card.rule-enabled { border-color: var(--cx-ink) !important; box-shadow: 0 0 0 1px var(--cx-ink) inset !important; }
body.ab-page .guard-rule-icon {
    width: 34px; height: 34px; border-radius: var(--cx-radius-sm) !important;
    display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
body.ab-page .guard-rule-label { font-weight: 700; color: var(--cx-ink) !important; display: block; font-size: 13px; }
body.ab-page .guard-rule-desc { color: var(--cx-text-muted) !important; font-size: 11px; }
body.ab-page .guard-rule-toggle { margin-left: auto; flex-shrink: 0; }
body.ab-page .guard-rule-extra { margin-top: 8px; }
body.ab-page .guard-extra-label { font-size: 11px; font-weight: 700; color: var(--cx-ink-soft) !important; display: block; margin-bottom: 4px; }
body.ab-page .guard-disclaimer-ta, body.ab-page .guard-num-input {
    width: 100%; padding: 8px 10px !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
    background: var(--cx-bg) !important; color: var(--cx-ink) !important;
    font-size: 12px;
}
body.ab-page .guard-tag-wrap {
    display: flex; flex-wrap: wrap; gap: 6px; padding: 8px;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
    background: var(--cx-bg) !important; cursor: text;
}
body.ab-page .guard-tag {
    background: var(--cx-border-soft) !important;
    color: var(--cx-ink) !important;
    border-radius: 999px !important;
    padding: 3px 8px !important; font-size: 11px; display: flex; align-items: center; gap: 4px;
}
body.ab-page .guard-tag-rm { background: none; border: none; color: var(--cx-danger) !important; cursor: pointer; }
body.ab-page .guard-tag-input-field { border: none; background: transparent; outline: none; font-size: 12px; color: var(--cx-ink) !important; flex: 1; min-width: 80px; }
body.ab-page .guard-test-wrap {
    margin-top: 16px; padding: 14px;
    background: var(--cx-border-soft) !important;
    border-radius: var(--cx-radius) !important;
    border: 1px dashed var(--cx-border) !important;
}
body.ab-page .guard-test-header { font-weight: 700; color: var(--cx-ink) !important; margin-bottom: 8px; font-size: 12px; }
body.ab-page .guard-test-input {
    width: 100%; padding: 9px 12px !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
    background: var(--cx-bg) !important; color: var(--cx-ink) !important; font-size: 12px;
}
body.ab-page .guard-test-btn {
    margin-top: 8px; background: var(--cx-ink) !important; color: var(--cx-bg) !important;
    border: none !important; border-radius: var(--cx-radius-sm) !important;
    padding: 8px 16px !important; font-weight: 700; font-size: 12px; cursor: pointer;
}
body.ab-page .guard-test-results { margin-top: 10px; }
body.ab-page .guard-test-pass { color: var(--cx-success) !important; font-size: 12px; font-weight: 700; }
body.ab-page .guard-violation-item {
    display: flex; gap: 10px; padding: 10px; margin-bottom: 6px;
    border-radius: var(--cx-radius-sm) !important; background: var(--cx-bg) !important;
    border-left: 3px solid var(--cx-border) !important;
}
body.ab-page .guard-violation-item.sev-high   { border-left-color: var(--cx-danger)  !important; }
body.ab-page .guard-violation-item.sev-medium { border-left-color: var(--cx-warning) !important; }
body.ab-page .guard-violation-label { font-weight: 700; color: var(--cx-ink) !important; font-size: 12px; }
body.ab-page .guard-violation-detail { color: var(--cx-text-muted) !important; font-size: 11px; }
body.ab-page .guard-blocked-banner {
    display: flex; gap: 10px; align-items: center; padding: 12px 16px;
    background: var(--cx-danger-bg) !important; border: 1px solid var(--cx-danger) !important;
    border-radius: var(--cx-radius) !important; color: var(--cx-danger) !important; margin: 10px 0;
}
body.ab-page .guard-badge {
    display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px;
    border-radius: 999px !important; font-size: 11px; font-weight: 700; margin-top: 6px;
    background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; cursor: pointer;
}
body.ab-page .guard-badge.danger { background: var(--cx-danger-bg) !important; color: var(--cx-danger) !important; }
body.ab-page .guard-badge.warn   { background: var(--cx-warning-bg) !important; color: var(--cx-warning) !important; }

/* ═══════════════════════════════════════════════════════════════
   HITL — hitl-*
   ═══════════════════════════════════════════════════════════════ */

body.ab-page .hitl-bar {
    display: flex; align-items: center; gap: 12px; padding: 10px 20px;
    background: var(--cx-border-soft) !important;
    border-bottom: 1px solid var(--cx-border) !important;
    flex-wrap: wrap;
}
body.ab-page .hitl-bar-agent { display: flex; align-items: center; gap: 8px; }
body.ab-page .hitl-running-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--cx-success) !important; }
body.ab-page .hitl-running-dot.paused { background: var(--cx-warning) !important; }
body.ab-page .hitl-bar-icon {
    width: 26px; height: 26px; border-radius: var(--cx-radius-sm) !important;
    display: flex; align-items: center; justify-content: center;
    background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important;
}
body.ab-page .hitl-bar-name { font-weight: 700; color: var(--cx-ink) !important; font-size: 12px; }
body.ab-page .hitl-level-pill {
    padding: 4px 10px; border-radius: 999px !important; font-size: 11px; font-weight: 700; cursor: pointer;
    background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; color: var(--cx-ink) !important;
}
body.ab-page .hitl-level-supervised { color: var(--cx-danger)  !important; }
body.ab-page .hitl-level-assisted   { color: var(--cx-warning) !important; }
body.ab-page .hitl-level-autonomous { color: var(--cx-success) !important; }
body.ab-page .hitl-step-badge {
    background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important;
    border-radius: 999px !important; padding: 4px 10px !important; font-size: 11px; color: var(--cx-text-muted) !important;
}
body.ab-page .hitl-bar-actions { display: flex; gap: 8px; margin-left: auto; }
body.ab-page .hitl-bar-btn {
    background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important; padding: 6px 12px !important;
    font-size: 11px; font-weight: 700; color: var(--cx-ink-soft) !important; cursor: pointer;
}
body.ab-page .hitl-bar-btn:hover { border-color: var(--cx-ink) !important; color: var(--cx-ink) !important; }
body.ab-page .hitl-btn-pause.active { background: var(--cx-warning-bg) !important; color: var(--cx-warning) !important; border-color: var(--cx-warning) !important; }
body.ab-page .hitl-btn-stop { color: var(--cx-danger) !important; border-color: var(--cx-danger) !important; }

body.ab-page .hitl-overlay { position: fixed; inset: 0; z-index: 15000; background: rgba(10,10,10,.5); display: flex; align-items: center; justify-content: center; opacity: 0; pointer-events: none; transition: opacity .2s; }
body.ab-page .hitl-overlay.hitl-open { opacity: 1; pointer-events: auto; }
body.ab-page .hitl-modal { background: var(--cx-bg) !important; border-radius: var(--cx-radius-lg) !important; width: 92vw; max-width: 560px; max-height: 88vh; overflow-y: auto; border: 1px solid var(--cx-border) !important; }
body.ab-page .hitl-modal-header { display: flex; align-items: center; gap: 12px; padding: 18px 20px; border-bottom: 1px solid var(--cx-border) !important; }
body.ab-page .hitl-modal-icon { width: 40px; height: 40px; border-radius: var(--cx-radius-sm) !important; display: flex; align-items: center; justify-content: center; }
body.ab-page .hitl-modal-title { font-weight: 700; color: var(--cx-ink) !important; display: block; font-size: 14px; }
body.ab-page .hitl-modal-sub { font-size: 11px; color: var(--cx-text-muted) !important; }
body.ab-page .hitl-risk-badge { margin-left: auto; padding: 4px 10px !important; border-radius: 999px !important; font-size: 10px; font-weight: 800; }
body.ab-page .hitl-risk-low  { background: var(--cx-success-bg) !important; color: var(--cx-success) !important; }
body.ab-page .hitl-risk-high { background: var(--cx-danger-bg)  !important; color: var(--cx-danger)  !important; }
body.ab-page .hitl-modal-body { padding: 20px; }
body.ab-page .hitl-tool-card { background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important; border-radius: var(--cx-radius) !important; padding: 14px !important; }
body.ab-page .hitl-tool-card-header { display: flex; justify-content: space-between; margin-bottom: 10px; }
body.ab-page .hitl-tool-name { font-weight: 700; color: var(--cx-ink) !important; }
body.ab-page .hitl-tool-category { font-size: 11px; color: var(--cx-text-muted) !important; }
body.ab-page .hitl-params-label { font-size: 10px; font-weight: 700; text-transform: uppercase; color: var(--cx-text-faint) !important; display: block; margin-bottom: 6px; }
body.ab-page .hitl-params-display { background: var(--cx-bg) !important; border-radius: var(--cx-radius-sm) !important; padding: 10px !important; font-family: monospace; font-size: 11px; color: var(--cx-ink-soft) !important; border: 1px solid var(--cx-border) !important; }
body.ab-page .hitl-param-key { color: var(--cx-ink) !important; font-weight: 700; }
body.ab-page .hitl-param-val { color: var(--cx-text-muted) !important; }
body.ab-page .hitl-modify-area { display: none; margin-top: 14px; }
body.ab-page .hitl-modify-area.visible { display: block; }
body.ab-page .hitl-modify-label { font-size: 11px; font-weight: 700; color: var(--cx-ink) !important; margin-bottom: 6px; }
body.ab-page .hitl-modify-ta { width: 100%; padding: 10px !important; border: 1px solid var(--cx-border) !important; border-radius: var(--cx-radius-sm) !important; background: var(--cx-bg) !important; color: var(--cx-ink) !important; font-family: monospace; font-size: 11px; }
body.ab-page .hitl-dec-approve-mod { display: none; margin-top: 8px; background: var(--cx-ink) !important; color: var(--cx-bg) !important; border: none !important; border-radius: var(--cx-radius-sm) !important; padding: 8px 14px !important; font-weight: 700; cursor: pointer; }
body.ab-page .hitl-dec-approve-mod.visible { display: inline-flex; }
body.ab-page .hitl-log-wrap { max-height: 100px; overflow-y: auto; }
body.ab-page .hitl-log-item { display: flex; gap: 8px; font-size: 11px; padding: 4px 0; color: var(--cx-text-muted) !important; }
body.ab-page .hitl-log-step { color: var(--cx-ink-soft) !important; font-weight: 700; }
body.ab-page .hitl-log-dec { margin-left: auto; font-weight: 700; }
body.ab-page .hitl-log-dec.approve { color: var(--cx-success) !important; }
body.ab-page .hitl-log-dec.stop, body.ab-page .hitl-log-dec.skip { color: var(--cx-danger) !important; }
body.ab-page .hitl-decisions { display: flex; flex-direction: column; gap: 8px; padding: 0 20px 20px; }
body.ab-page .hitl-decision-btn {
    padding: 10px !important; border-radius: var(--cx-radius-sm) !important; font-weight: 700; font-size: 12px;
    cursor: pointer; border: 1px solid var(--cx-border) !important; background: var(--cx-bg) !important; color: var(--cx-ink) !important;
}
body.ab-page .hitl-dec-approve { background: var(--cx-ink) !important; color: var(--cx-bg) !important; border: none !important; }
body.ab-page .hitl-dec-stop    { color: var(--cx-danger) !important; border-color: var(--cx-danger) !important; }
body.ab-page .hitl-dec-modify.active { border-color: var(--cx-ink) !important; }

body.ab-page .hitl-redirect-overlay { position: fixed; inset: 0; z-index: 15000; background: rgba(10,10,10,.5); display: flex; align-items: center; justify-content: center; opacity: 0; pointer-events: none; transition: opacity .2s; }
body.ab-page .hitl-redirect-overlay.open { opacity: 1; pointer-events: auto; }
body.ab-page .hitl-redirect-panel { background: var(--cx-bg) !important; border-radius: var(--cx-radius-lg) !important; width: 92vw; max-width: 480px; border: 1px solid var(--cx-border) !important; }
body.ab-page .hitl-redirect-header { display: flex; align-items: center; gap: 10px; padding: 16px 18px; border-bottom: 1px solid var(--cx-border) !important; }
body.ab-page .hitl-redirect-title { font-weight: 700; color: var(--cx-ink) !important; }
body.ab-page .hitl-redirect-close { margin-left: auto; background: none; border: none; color: var(--cx-text-muted) !important; cursor: pointer; }
body.ab-page .hitl-redirect-body { padding: 18px; display: flex; flex-direction: column; gap: 10px; }
body.ab-page .hitl-redirect-hint { font-size: 11px; color: var(--cx-text-muted) !important; background: var(--cx-border-soft) !important; padding: 10px !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .hitl-redirect-ta { padding: 10px !important; border: 1px solid var(--cx-border) !important; border-radius: var(--cx-radius-sm) !important; background: var(--cx-bg) !important; color: var(--cx-ink) !important; font-size: 12px; min-height: 90px; }
body.ab-page .hitl-redirect-apply { background: var(--cx-ink) !important; color: var(--cx-bg) !important; border: none !important; border-radius: var(--cx-radius-sm) !important; padding: 10px !important; font-weight: 700; cursor: pointer; }

/* ═══════════════════════════════════════════════════════════════
   KNOWLEDGE GRAPH — akg-*
   ═══════════════════════════════════════════════════════════════ */

body.ab-page .akg-stats-bar { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 14px; }
body.ab-page .akg-stat { display: flex; align-items: center; gap: 10px; background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; border-radius: var(--cx-radius) !important; padding: 10px 14px !important; }
body.ab-page .akg-stat-icon { width: 32px; height: 32px; border-radius: var(--cx-radius-sm) !important; display: flex; align-items: center; justify-content: center; }
body.ab-page .akg-stat-val { font-weight: 800; color: var(--cx-ink) !important; display: block; }
body.ab-page .akg-stat-lbl { font-size: 10px; color: var(--cx-text-muted) !important; }
body.ab-page .akg-search-bar { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; }
body.ab-page .akg-search-wrap { flex: 1; display: flex; align-items: center; gap: 8px; background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; border-radius: var(--cx-radius-sm) !important; padding: 8px 12px !important; }
body.ab-page .akg-search-input { border: none; background: transparent; outline: none; color: var(--cx-ink) !important; font-size: 12px; flex: 1; }
body.ab-page .akg-filter-chips { display: flex; gap: 6px; flex-wrap: wrap; }
body.ab-page .akg-filter-chip { background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; border-radius: 999px !important; padding: 5px 12px !important; font-size: 11px; font-weight: 700; color: var(--cx-text-muted) !important; cursor: pointer; }
body.ab-page .akg-filter-chip.active { background: var(--cx-ink) !important; color: var(--cx-bg) !important; border-color: var(--cx-ink) !important; }
body.ab-page .akg-filter-chip-dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; margin-right: 4px; background: var(--akg-chip-color, currentColor); }

body.ab-page .akg-main { display: flex; gap: 14px; margin-bottom: 20px; }
body.ab-page .akg-graph-pane { flex: 1; display: flex; flex-direction: column; background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; border-radius: var(--cx-radius) !important; overflow: hidden; }
body.ab-page .akg-graph-toolbar { display: flex; justify-content: space-between; padding: 10px 14px; border-bottom: 1px solid var(--cx-border) !important; flex-wrap: wrap; gap: 8px; }
body.ab-page .akg-toolbar-btn { background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; border-radius: var(--cx-radius-sm) !important; padding: 6px 12px !important; font-size: 11px; font-weight: 700; color: var(--cx-ink-soft) !important; cursor: pointer; display: flex; align-items: center; gap: 6px; }
body.ab-page .akg-toolbar-btn:hover { border-color: var(--cx-ink) !important; color: var(--cx-ink) !important; }
body.ab-page .akg-toolbar-btn.danger { color: var(--cx-danger) !important; }
body.ab-page .akg-canvas-wrap { flex: 1; min-height: 420px; background: var(--cx-bg-subtle) !important; position: relative; }
body.ab-page .akg-canvas-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; color: var(--cx-text-muted) !important; gap: 10px; }
body.ab-page .akg-canvas-empty-icon { font-size: 32px; opacity: .3; }
body.ab-page .akg-canvas-empty-title { font-weight: 700; color: var(--cx-ink) !important; }
body.ab-page .akg-btn-primary { background: var(--cx-ink) !important; color: var(--cx-bg) !important; border: none !important; border-radius: var(--cx-radius-sm) !important; padding: 8px 14px !important; font-weight: 700; cursor: pointer; }
body.ab-page .akg-btn-ghost { background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; border-radius: var(--cx-radius-sm) !important; padding: 8px 14px !important; color: var(--cx-ink-soft) !important; cursor: pointer; }

body.ab-page .akg-detail-panel { width: 280px; flex-shrink: 0; background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; border-radius: var(--cx-radius) !important; padding: 14px !important; overflow-y: auto; max-height: 500px; }
body.ab-page .akg-detail-header { font-weight: 700; color: var(--cx-ink) !important; margin-bottom: 10px; display: flex; align-items: center; gap: 8px; font-size: 12px; }
body.ab-page .akg-detail-empty { text-align: center; color: var(--cx-text-muted) !important; padding: 30px 10px; }
body.ab-page .akg-node-detail-icon { width: 48px; height: 48px; border-radius: var(--cx-radius) !important; display: flex; align-items: center; justify-content: center; margin: 0 auto 8px; font-size: 20px; }
body.ab-page .akg-node-detail-name { font-weight: 800; color: var(--cx-ink) !important; text-align: center; margin-bottom: 4px; }
body.ab-page .akg-node-detail-type { display: inline-block; margin: 0 auto 10px; padding: 3px 10px !important; border-radius: 999px !important; font-size: 10px; font-weight: 700; }
body.ab-page .akg-source-badge { font-size: 10px; padding: 2px 8px !important; border-radius: 999px !important; background: var(--cx-border-soft) !important; color: var(--cx-text-muted) !important; }
body.ab-page .akg-detail-prop { display: flex; justify-content: space-between; padding: 6px 0; border-bottom: 1px solid var(--cx-border-soft) !important; font-size: 11px; }
body.ab-page .akg-detail-prop-key { color: var(--cx-text-muted) !important; }
body.ab-page .akg-detail-prop-val { color: var(--cx-ink) !important; font-weight: 700; }
body.ab-page .akg-detail-relations-title { font-weight: 700; font-size: 11px; color: var(--cx-ink) !important; margin: 12px 0 8px; }
body.ab-page .akg-relation-item { display: flex; gap: 6px; align-items: center; padding: 6px; border-radius: var(--cx-radius-sm) !important; cursor: pointer; font-size: 11px; }
body.ab-page .akg-relation-item:hover { background: var(--cx-border-soft) !important; }
body.ab-page .akg-relation-target { color: var(--cx-ink) !important; margin-left: auto; }
body.ab-page .akg-detail-actions { display: flex; gap: 6px; margin-top: 12px; }
body.ab-page .akg-detail-action-btn { flex: 1; background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; border-radius: var(--cx-radius-sm) !important; padding: 7px !important; font-size: 10px; cursor: pointer; color: var(--cx-ink-soft) !important; }
body.ab-page .akg-detail-action-btn.danger { color: var(--cx-danger) !important; }

body.ab-page .akg-query-section, body.ab-page .akg-entity-section { background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; border-radius: var(--cx-radius) !important; padding: 16px !important; margin-bottom: 14px; }
body.ab-page .akg-query-header { display: flex; gap: 10px; margin-bottom: 12px; }
body.ab-page .akg-query-icon { width: 34px; height: 34px; border-radius: var(--cx-radius-sm) !important; background: var(--cx-border-soft) !important; display: flex; align-items: center; justify-content: center; }
body.ab-page .akg-query-title { font-weight: 700; color: var(--cx-ink) !important; font-size: 13px; }
body.ab-page .akg-query-sub { font-size: 11px; color: var(--cx-text-muted) !important; }
body.ab-page .akg-query-examples { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 10px; }
body.ab-page .akg-query-example { background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important; border-radius: 999px !important; padding: 5px 10px !important; font-size: 10px; color: var(--cx-ink-soft) !important; cursor: pointer; }
body.ab-page .akg-query-row { display: flex; gap: 10px; }
body.ab-page .akg-query-input-wrap { flex: 1; display: flex; align-items: center; gap: 8px; background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; border-radius: var(--cx-radius-sm) !important; padding: 8px 12px !important; }
body.ab-page .akg-query-nl-input { border: none; background: transparent; outline: none; flex: 1; color: var(--cx-ink) !important; font-size: 12px; }
body.ab-page .akg-query-submit-btn { background: var(--cx-ink) !important; color: var(--cx-bg) !important; border: none !important; border-radius: var(--cx-radius-sm) !important; padding: 8px 16px !important; font-weight: 700; cursor: pointer; }
body.ab-page .akg-query-result { margin-top: 12px; padding: 12px !important; border-radius: var(--cx-radius-sm) !important; background: var(--cx-border-soft) !important; display: none; }
body.ab-page .akg-query-result.visible { display: block; }
body.ab-page .akg-query-result-header { display: flex; align-items: center; gap: 8px; font-weight: 700; color: var(--cx-ink) !important; margin-bottom: 8px; font-size: 12px; }

body.ab-page .akg-entity-section-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; flex-wrap: wrap; gap: 8px; }
body.ab-page .akg-entity-section-title { font-weight: 700; color: var(--cx-ink) !important; display: flex; align-items: center; gap: 8px; }
body.ab-page .akg-entity-card { background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; border-radius: var(--cx-radius-sm) !important; padding: 10px !important; display: flex; gap: 8px; align-items: center; cursor: pointer; }
body.ab-page .akg-entity-card:hover { border-color: var(--cx-ink-soft) !important; }
body.ab-page .akg-entity-card-icon { width: 30px; height: 30px; border-radius: var(--cx-radius-sm) !important; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
body.ab-page .akg-entity-card-name { font-weight: 700; color: var(--cx-ink) !important; font-size: 12px; }
body.ab-page .akg-entity-card-type { font-size: 10px; color: var(--cx-text-muted) !important; }
body.ab-page .akg-entity-empty { text-align: center; color: var(--cx-text-muted) !important; padding: 30px; grid-column: 1/-1; }
body.ab-page .akg-tooltip { position: absolute; background: var(--cx-ink) !important; color: var(--cx-bg) !important; padding: 8px 10px !important; border-radius: var(--cx-radius-sm) !important; font-size: 11px; pointer-events: none; z-index: 10; }
body.ab-page .akg-tooltip-name { font-weight: 700; }
body.ab-page .akg-tooltip-prop { opacity: .85; }

body.ab-page .akg-modal-overlay { position: fixed; inset: 0; z-index: 15000; background: rgba(10,10,10,.5); opacity: 0; pointer-events: none; display: flex; align-items: center; justify-content: center; transition: opacity .2s; }
body.ab-page .akg-modal-overlay.akg-modal-open { opacity: 1; pointer-events: auto; }
body.ab-page .akg-modal { background: var(--cx-bg) !important; border-radius: var(--cx-radius-lg) !important; width: 92vw; max-width: 500px; border: 1px solid var(--cx-border) !important; max-height: 88vh; overflow-y: auto; }
body.ab-page .akg-modal-header { display: flex; align-items: center; gap: 10px; padding: 16px 18px; border-bottom: 1px solid var(--cx-border) !important; }
body.ab-page .akg-modal-icon { width: 34px; height: 34px; border-radius: var(--cx-radius-sm) !important; background: var(--cx-border-soft) !important; display: flex; align-items: center; justify-content: center; }
body.ab-page .akg-modal-title { font-weight: 700; color: var(--cx-ink) !important; flex: 1; }
body.ab-page .akg-modal-close { background: none; border: none; color: var(--cx-text-muted) !important; cursor: pointer; }
body.ab-page .akg-modal-body { padding: 16px 18px; }
body.ab-page .akg-modal-footer { display: flex; justify-content: flex-end; gap: 8px; padding: 14px 18px; border-top: 1px solid var(--cx-border) !important; }
body.ab-page .akg-form-row { display: flex; flex-direction: column; gap: 6px; margin-bottom: 12px; }
body.ab-page .akg-form-label { font-size: 11px; font-weight: 700; color: var(--cx-ink-soft) !important; }
body.ab-page .akg-form-label.required::after { content: ' *'; color: var(--cx-danger) !important; }
body.ab-page .akg-form-input, body.ab-page .akg-form-select { padding: 8px 10px !important; border: 1px solid var(--cx-border) !important; border-radius: var(--cx-radius-sm) !important; background: var(--cx-bg) !important; color: var(--cx-ink) !important; font-size: 12px; }
body.ab-page .akg-form-two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
body.ab-page .akg-type-opt.selected { border-color: var(--cx-ink) !important; }

/* ═══════════════════════════════════════════════════════════════
   MEMORY — mem-*
   ═══════════════════════════════════════════════════════════════ */

body.ab-page .mem-tier-card, body.ab-page .mem-entity-card, body.ab-page .mem-episode-item, body.ab-page .mem-settings-card {
    background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; border-radius: var(--cx-radius) !important;
}
body.ab-page .mem-tier-icon { background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .mem-tier-count { color: var(--cx-ink) !important; font-weight: 800; }
body.ab-page .mem-tier-label { color: var(--cx-ink) !important; font-weight: 700; }
body.ab-page .mem-tier-sub { color: var(--cx-text-muted) !important; }
body.ab-page .mem-tier-ttl { color: var(--cx-text-faint) !important; }
body.ab-page .mem-tier-action { color: var(--cx-ink-soft) !important; border-top: 1px solid var(--cx-border-soft) !important; }
body.ab-page .mem-search-wrap { display: flex; align-items: center; gap: 8px; background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; border-radius: var(--cx-radius-sm) !important; padding: 8px 12px !important; }
body.ab-page .mem-search-input { border: none; background: transparent; outline: none; flex: 1; color: var(--cx-ink) !important; }
body.ab-page .mem-section-label { color: var(--cx-ink) !important; font-weight: 700; }
body.ab-page .mem-section-count { background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; border-radius: 999px !important; padding: 2px 8px; font-size: 10px; }
body.ab-page .mem-section-action { color: var(--cx-ink-soft) !important; background: var(--cx-border-soft) !important; border-radius: var(--cx-radius-sm) !important; padding: 5px 10px; font-size: 11px; }
body.ab-page .mem-working-entity { background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important; border-radius: 999px !important; color: var(--cx-ink) !important; padding: 4px 10px; font-size: 11px; }
body.ab-page .mem-working-entity-remove { color: var(--cx-danger) !important; }
body.ab-page .mem-entity-type-badge { border-radius: 999px !important; padding: 2px 8px; font-size: 10px; font-weight: 700; }
body.ab-page .mem-type-company { background: rgba(0,0,0,.06) !important; color: var(--cx-ink) !important; }
body.ab-page .mem-type-person  { background: rgba(0,0,0,.06) !important; color: var(--cx-ink) !important; }
body.ab-page .mem-entity-mentions { color: var(--cx-text-faint) !important; }
body.ab-page .mem-entity-name { color: var(--cx-ink) !important; font-weight: 700; }
body.ab-page .mem-entity-fact-key { color: var(--cx-text-muted) !important; }
body.ab-page .mem-entity-source { color: var(--cx-text-faint) !important; }
body.ab-page .mem-entity-action-btn { background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .mem-entity-action-btn.danger { color: var(--cx-danger) !important; }
body.ab-page .mem-episode-icon { background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .mem-episode-title { color: var(--cx-ink) !important; font-weight: 700; }
body.ab-page .mem-episode-time { color: var(--cx-text-faint) !important; }
body.ab-page .mem-episode-summary { color: var(--cx-ink-soft) !important; }
body.ab-page .mem-episode-tag { background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; border-radius: 999px !important; }
body.ab-page .mem-episode-lesson { background: var(--cx-warning-bg) !important; color: var(--cx-warning) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .mem-episode-meta { color: var(--cx-text-muted) !important; }
body.ab-page .mem-episode-delete { color: var(--cx-danger) !important; }
body.ab-page .mem-settings-title { color: var(--cx-ink) !important; font-weight: 700; }
body.ab-page .mem-setting-row { border-bottom: 1px solid var(--cx-border-soft) !important; }
body.ab-page .mem-setting-label { color: var(--cx-ink) !important; }
body.ab-page .mem-setting-hint { color: var(--cx-text-muted) !important; }
body.ab-page .mem-danger-zone { border-top: 1px solid var(--cx-border) !important; }
body.ab-page .mem-danger-title { color: var(--cx-danger) !important; }
body.ab-page .mem-danger-btn { background: var(--cx-danger-bg) !important; color: var(--cx-danger) !important; border: 1px solid var(--cx-danger) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .mem-context-bar { background: var(--cx-border-soft) !important; border-bottom: 1px solid var(--cx-border) !important; }
body.ab-page .mem-context-chip { background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; border-radius: 999px !important; color: var(--cx-ink-soft) !important; }
body.ab-page .mem-context-bar-clear { color: var(--cx-danger) !important; }
body.ab-page .mem-header-badge { background: var(--cx-ink) !important; color: var(--cx-bg) !important; border-radius: 999px !important; }
body.ab-page .mem-panel { background: var(--cx-bg) !important; border-left: 1px solid var(--cx-border) !important; }
body.ab-page .mem-panel-header { border-bottom: 1px solid var(--cx-border) !important; }
body.ab-page .mem-panel-icon { background: var(--cx-ink) !important; color: var(--cx-bg) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .mem-panel-footer-btn.primary { background: var(--cx-ink) !important; color: var(--cx-bg) !important; }
body.ab-page .mem-panel-footer-btn.ghost { background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; }
body.ab-page .mem-remember-btn.mem-saved { color: var(--cx-success) !important; }

/* ═══════════════════════════════════════════════════════════════
   REFLEXION — rfx-*
   ═══════════════════════════════════════════════════════════════ */

body.ab-page .rfx-badge { border-radius: 999px !important; font-weight: 700; }
body.ab-page .rfx-badge-verified  { background: var(--cx-success-bg) !important; color: var(--cx-success) !important; border: 1px solid var(--cx-success) !important; }
body.ab-page .rfx-badge-corrected { background: var(--cx-border-soft) !important; color: var(--cx-ink) !important; border: 1px solid var(--cx-border) !important; }
body.ab-page .rfx-status { background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important; border-radius: var(--cx-radius) !important; color: var(--cx-ink-soft) !important; }
body.ab-page .rfx-status-dots span { background: currentColor !important; }
body.ab-page .rfx-stats-header { background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important; }
body.ab-page .rfx-stats-header-icon { background: var(--cx-ink) !important; color: var(--cx-bg) !important; }
body.ab-page .rfx-stats-kpi { background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; border-radius: var(--cx-radius) !important; }
body.ab-page .rfx-stats-kpi-icon { border-radius: var(--cx-radius-sm) !important; }
body.ab-page .rfx-stats-table-wrap { border: 1px solid var(--cx-border) !important; border-radius: var(--cx-radius) !important; }
body.ab-page .rfx-stats-table th { background: var(--cx-border-soft) !important; color: var(--cx-text-muted) !important; }
body.ab-page .rfx-tbl-verified  { background: var(--cx-success-bg) !important; color: var(--cx-success) !important; }
body.ab-page .rfx-tbl-corrected { background: var(--cx-border-soft) !important; color: var(--cx-ink) !important; }
body.ab-page .rfx-stats-empty i { color: var(--cx-text-faint) !important; }

/* ═══════════════════════════════════════════════════════════════
   RELIABILITY — force le rel-* dans la palette noir/blanc
   ═══════════════════════════════════════════════════════════════ */

body.ab-page .rel-badge { border-radius: 999px !important; }
body.ab-page .rel-badge--verified       { background: var(--cx-success-bg) !important; color: var(--cx-success) !important; border-color: var(--cx-success) !important; }
body.ab-page .rel-badge--reviewed       { background: var(--cx-border-soft) !important; color: var(--cx-ink) !important; border-color: var(--cx-border) !important; }
body.ab-page .rel-badge--low-confidence { background: var(--cx-warning-bg) !important; color: var(--cx-warning) !important; border-color: var(--cx-warning) !important; }
body.ab-page .rel-badge--unreliable     { background: var(--cx-danger-bg)  !important; color: var(--cx-danger)  !important; border-color: var(--cx-danger)  !important; }
body.ab-page .rel-panel-container { background: var(--cx-bg) !important; }
body.ab-page .rel-panel__header { background: var(--cx-border-soft) !important; }
body.ab-page .rel-check-row { background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; }
body.ab-page .rel-panel__section { border: 1px solid var(--cx-border) !important; }
body.ab-page .rel-override-btn { background: var(--cx-ink) !important; }

/* ═══════════════════════════════════════════════════════════════
   AGENT RUNTIME — as-*, rt-*
   ═══════════════════════════════════════════════════════════════ */

body.ab-page .as-modal { background: var(--cx-bg) !important; border-radius: var(--cx-radius-lg) !important; }
body.ab-page .as-modal-header { background: var(--cx-border-soft) !important; border-bottom: 1px solid var(--cx-border) !important; }
body.ab-page .as-modal-icon { background: var(--cx-ink) !important; color: var(--cx-bg) !important; border-radius: var(--cx-radius) !important; }
body.ab-page .as-modal-title { color: var(--cx-ink) !important; }
body.ab-page .as-modal-sub { color: var(--cx-text-muted) !important; }
body.ab-page .as-search-wrap { background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .as-cat-filter { background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; border-radius: var(--cx-radius-sm) !important; color: var(--cx-ink) !important; }
body.ab-page .as-tabs { background: var(--cx-border-soft) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .as-tab.active { background: var(--cx-bg) !important; color: var(--cx-ink) !important; }
body.ab-page .as-agent-card { background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; border-radius: var(--cx-radius) !important; }
body.ab-page .as-agent-card:hover { border-color: var(--cx-ink) !important; background: var(--cx-border-soft) !important; }
body.ab-page .as-agent-name { color: var(--cx-ink) !important; }
body.ab-page .as-badge-personal { background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; }
body.ab-page .as-badge-team { background: var(--cx-success-bg) !important; color: var(--cx-success) !important; }
body.ab-page .as-badge-tpl { background: var(--cx-warning-bg) !important; color: var(--cx-warning) !important; }
body.ab-page .as-agent-cat { color: var(--cx-text-muted) !important; }
body.ab-page .as-agent-desc { color: var(--cx-ink-soft) !important; }
body.ab-page .as-agent-meta span { color: var(--cx-text-muted) !important; }
body.ab-page .as-create-btn, body.ab-page .as-start-btn { background: var(--cx-ink) !important; color: var(--cx-bg) !important; border-radius: var(--cx-radius-sm) !important; box-shadow: none !important; }
body.ab-page .as-back-btn { background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; }
body.ab-page .as-no-fields { background: var(--cx-success-bg) !important; color: var(--cx-success) !important; border: 1px solid var(--cx-success) !important; }

body.ab-page .rt-agent-bar { background: var(--cx-border-soft) !important; border-bottom: 1px solid var(--cx-border) !important; }
body.ab-page .rt-agent-bar-icon { background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .rt-agent-bar-name { color: var(--cx-ink) !important; }
body.ab-page .rt-agent-bar-cat { color: var(--cx-text-muted) !important; }
body.ab-page .rt-agent-bar-stat { color: var(--cx-text-muted) !important; }
body.ab-page .rt-agent-bar-end { color: var(--cx-danger) !important; border-color: var(--cx-danger) !important; background: var(--cx-danger-bg) !important; }
body.ab-page .rt-session-context { background: var(--cx-border-soft) !important; border-left: 3px solid var(--cx-ink) !important; color: var(--cx-ink-soft) !important; }
body.ab-page .rt-recent-item, body.ab-page .ab-recent-item { border-radius: var(--cx-radius-sm) !important; }
body.ab-page .ab-recent-item:hover { background: var(--cx-border-soft) !important; }
body.ab-page .ab-recent-item-icon { background: var(--cx-border-soft) !important; }
body.ab-page .ab-recent-item-icon.ab-recent-agent { background: var(--cx-border-soft) !important; color: var(--cx-ink) !important; }
body.ab-page .ab-recent-item-title { color: var(--cx-ink-soft) !important; }
body.ab-page .ab-recent-item-date { color: var(--cx-text-faint) !important; }
body.ab-page .rt-model-badge { background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important; color: var(--cx-ink-soft) !important; }
body.ab-page .rt-field-label { color: var(--cx-ink-soft) !important; }
body.ab-page .rt-field-input { background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; color: var(--cx-ink) !important; }
body.ab-page .rt-field-input:focus { border-color: var(--cx-ink) !important; }
body.ab-page .rt-field-error { border-color: var(--cx-danger) !important; }

/* ═══════════════════════════════════════════════════════════════
   AGENT BUILDER — MODULES OVERRIDE (Sandbox / Schema / Skills /
   Spawning / Swarm) — ULTRA PRO / MINIMALIST — v1.0
   Réutilise les tokens --cx-* déjà définis dans le fichier précédent.
   À charger APRÈS agent-builder-pro-override.css
   ═══════════════════════════════════════════════════════════════ */

   body.ab-page * {
    box-shadow: none !important;
}

/* ═══════════════════════════════════════════════════════════════
   CODE SANDBOX (sb-*)
   ═══════════════════════════════════════════════════════════════ */

body.ab-page .sb-panel { background: var(--cx-bg) !important; }
body.ab-page .sb-panel-header {
    background: var(--cx-bg) !important;
    border-bottom: 1px solid var(--cx-border) !important;
}
body.ab-page .sb-panel-icon {
    background: var(--cx-ink) !important;
    color: var(--cx-bg) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .sb-panel-title { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .sb-panel-sub { color: var(--cx-text-muted) !important; }
body.ab-page .sb-status-badge {
    background: var(--cx-border-soft) !important;
    color: var(--cx-text-muted) !important;
    border-radius: 999px !important;
    font-weight: 700 !important;
}
body.ab-page .sb-status-badge.running {
    background: rgba(99,102,241,.1) !important;
    color: #6366f1 !important;
}
body.ab-page .sb-badge-dot-ready { background: var(--cx-success) !important; }
body.ab-page .sb-badge-dot-running { background: #6366f1 !important; }
body.ab-page .sb-tool-btn {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
    color: var(--cx-ink-soft) !important;
}
body.ab-page .sb-tool-btn:hover { border-color: var(--cx-ink) !important; color: var(--cx-ink) !important; }

body.ab-page .sb-lang-tabs {
    background: var(--cx-border-soft) !important;
    border-bottom: 1px solid var(--cx-border) !important;
}
body.ab-page .sb-lang-tab { color: var(--cx-text-muted) !important; font-weight: 600 !important; }
body.ab-page .sb-lang-tab.sb-lang-tab-active {
    background: var(--cx-bg) !important;
    color: var(--cx-ink) !important;
    border-bottom: 2px solid var(--cx-ink) !important;
}
body.ab-page .sb-lang-tab-icon { color: inherit !important; }

body.ab-page .sb-template-bar {
    background: var(--cx-bg) !important;
    border-bottom: 1px solid var(--cx-border) !important;
}
body.ab-page .sb-template-bar-label { color: var(--cx-text-muted) !important; }
body.ab-page .sb-template-pill {
    background: var(--cx-border-soft) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: 999px !important;
    color: var(--cx-ink-soft) !important;
}
body.ab-page .sb-template-pill:hover { border-color: var(--cx-ink) !important; color: var(--cx-ink) !important; }

body.ab-page .sb-editor-toolbar {
    background: var(--cx-bg-subtle) !important;
    border-bottom: 1px solid var(--cx-border) !important;
}
body.ab-page .sb-editor-lang-indicator { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .sb-editor-hint { color: var(--cx-text-faint) !important; }
body.ab-page .sb-editor-wrap { background: var(--cx-bg) !important; }
body.ab-page .sb-line-numbers {
    background: var(--cx-border-soft) !important;
    color: var(--cx-text-faint) !important;
    border-right: 1px solid var(--cx-border) !important;
}
body.ab-page .sb-code-editor { color: var(--cx-ink) !important; background: var(--cx-bg) !important; }

body.ab-page .sb-run-toolbar {
    background: var(--cx-bg) !important;
    border-top: 1px solid var(--cx-border) !important;
}
body.ab-page .sb-run-primary-btn {
    background: var(--cx-ink) !important;
    color: var(--cx-bg) !important;
    border-radius: var(--cx-radius-sm) !important;
    font-weight: 700 !important;
}
body.ab-page .sb-run-primary-btn:hover { opacity: .85 !important; }
body.ab-page .sb-stop-btn {
    background: var(--cx-danger-bg) !important;
    color: var(--cx-danger) !important;
    border: 1px solid var(--cx-danger) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .sb-run-info { color: var(--cx-text-muted) !important; }

body.ab-page .sb-output-panel { background: var(--cx-bg) !important; }
body.ab-page .sb-output-toolbar {
    background: var(--cx-bg-subtle) !important;
    border-bottom: 1px solid var(--cx-border) !important;
}
body.ab-page .sb-output-title { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .sb-output-count { color: var(--cx-text-faint) !important; }
body.ab-page .sb-output-area { background: var(--cx-bg) !important; }
body.ab-page .sb-output-placeholder { color: var(--cx-text-faint) !important; }
body.ab-page .sb-out-line { color: var(--cx-ink-soft) !important; }
body.ab-page .sb-out-stdout { color: var(--cx-ink-soft) !important; }
body.ab-page .sb-out-stderr { color: var(--cx-warning) !important; }
body.ab-page .sb-out-error {
    background: var(--cx-danger-bg) !important;
    color: var(--cx-danger) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .sb-out-result { color: var(--cx-ink) !important; font-weight: 600 !important; }
body.ab-page .sb-out-result-arrow { color: var(--cx-ink) !important; }
body.ab-page .sb-out-empty { color: var(--cx-text-muted) !important; }
body.ab-page .sb-out-duration { color: var(--cx-text-faint) !important; }

body.ab-page .sb-out-table-wrap { border: 1px solid var(--cx-border) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .sb-out-table-meta { background: var(--cx-border-soft) !important; color: var(--cx-text-muted) !important; }
body.ab-page .sb-out-table th {
    background: var(--cx-border-soft) !important;
    color: var(--cx-text-muted) !important;
    border-bottom: 1px solid var(--cx-border) !important;
}
body.ab-page .sb-out-table td { border-bottom: 1px solid var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; }

body.ab-page .sb-out-chart { border: 1px solid var(--cx-border) !important; border-radius: var(--cx-radius-sm) !important; background: var(--cx-bg) !important; }
body.ab-page .sb-out-chart-label { color: var(--cx-text-muted) !important; }
body.ab-page .sb-out-iframe-bar {
    background: var(--cx-border-soft) !important;
    border: 1px solid var(--cx-border) !important;
    color: var(--cx-ink-soft) !important;
}

body.ab-page .sb-run-bar {
    background: var(--cx-border-soft) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius) !important;
}
body.ab-page .sb-run-lang-badge { border-radius: 999px !important; font-weight: 700 !important; }
body.ab-page .sb-run-agent-label { color: var(--cx-text-muted) !important; }
body.ab-page .sb-run-icon-btn {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
    color: var(--cx-ink-soft) !important;
}
body.ab-page .sb-run-btn {
    background: var(--cx-ink) !important;
    color: var(--cx-bg) !important;
    border-radius: var(--cx-radius-sm) !important;
    font-weight: 700 !important;
}
body.ab-page .sb-inline-output {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .sb-inline-output-header { background: var(--cx-border-soft) !important; }
body.ab-page .sb-inline-loading { color: var(--cx-text-muted) !important; }

body.ab-page .sb-history-section { background: var(--cx-bg) !important; border-top: 1px solid var(--cx-border) !important; }
body.ab-page .sb-history-item {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .sb-history-lang { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .sb-history-code { color: var(--cx-text-muted) !important; }
body.ab-page .sb-history-stat.ok { color: var(--cx-success) !important; }
body.ab-page .sb-history-stat.err { color: var(--cx-danger) !important; }

/* ═══════════════════════════════════════════════════════════════
   SCHEMA ENFORCER (se-*)
   ═══════════════════════════════════════════════════════════════ */

body.ab-page .se-schema-badge {
    border-radius: 999px !important;
    font-weight: 700 !important;
}
body.ab-page .se-badge-full { background: var(--cx-success-bg) !important; color: var(--cx-success) !important; border-color: var(--cx-success) !important; }
body.ab-page .se-badge-partial { background: var(--cx-warning-bg) !important; color: var(--cx-warning) !important; border-color: var(--cx-warning) !important; }
body.ab-page .se-badge-minimal { background: var(--cx-warning-bg) !important; color: var(--cx-warning) !important; border-color: var(--cx-warning) !important; }
body.ab-page .se-badge-invalid { background: var(--cx-danger-bg) !important; color: var(--cx-danger) !important; border-color: var(--cx-danger) !important; }
body.ab-page .se-schema-badge-new { background: var(--cx-ink) !important; color: var(--cx-bg) !important; }

body.ab-page .se-structured-block {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius) !important;
}
body.ab-page .se-structured-header { background: var(--cx-border-soft) !important; border-bottom: 1px solid var(--cx-border) !important; }
body.ab-page .se-structured-title { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .se-field-row { border-bottom: 1px solid var(--cx-border-soft) !important; }
body.ab-page .se-field-row:hover { background: var(--cx-border-soft) !important; }
body.ab-page .se-field-name { color: var(--cx-text-muted) !important; }
body.ab-page .se-field-required .se-field-name { color: var(--cx-ink) !important; }
body.ab-page .se-field-value { color: var(--cx-ink-soft) !important; }
body.ab-page .se-positive { color: var(--cx-success) !important; }
body.ab-page .se-negative { color: var(--cx-danger) !important; }
body.ab-page .se-currency, body.ab-page .se-number { color: var(--cx-ink) !important; }
body.ab-page .se-enum-val { background: var(--cx-border-soft) !important; color: var(--cx-ink) !important; border-radius: 999px !important; }
body.ab-page .se-ticker { background: var(--cx-border-soft) !important; color: var(--cx-ink) !important; }
body.ab-page .se-date { color: var(--cx-ink) !important; }
body.ab-page .se-null { color: var(--cx-text-faint) !important; }
body.ab-page .se-bool-true { color: var(--cx-success) !important; }
body.ab-page .se-bool-false { color: var(--cx-danger) !important; }
body.ab-page .se-missing-fields { background: var(--cx-warning-bg) !important; color: var(--cx-warning) !important; }
body.ab-page .se-raw-json-wrap { background: var(--cx-border-soft) !important; border-top: 1px solid var(--cx-border) !important; }
body.ab-page .se-raw-json { color: var(--cx-ink-soft) !important; }
body.ab-page .se-copy-json-btn, body.ab-page .se-expand-btn {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    color: var(--cx-text-muted) !important;
    border-radius: var(--cx-radius-sm) !important;
}

body.ab-page .se-schema-select {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
    color: var(--cx-ink) !important;
}
body.ab-page .se-schema-preview-card {
    border: 1px solid var(--cx-border) !important;
    background: var(--cx-bg) !important;
    border-radius: var(--cx-radius) !important;
}
body.ab-page .se-preview-name { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .se-preview-usecases, .se-preview-desc { color: var(--cx-text-muted) !important; }
body.ab-page .se-field-req { background: var(--cx-border-soft) !important; color: var(--cx-ink) !important; }
body.ab-page .se-field-opt { background: var(--cx-border-soft) !important; color: var(--cx-text-muted) !important; }

/* ═══════════════════════════════════════════════════════════════
   SKILLS LIBRARY (sk-*)
   ═══════════════════════════════════════════════════════════════ */

body.ab-page .sk-lib-stat-pill {
    background: var(--cx-border-soft) !important;
    border: 1px solid var(--cx-border) !important;
    color: var(--cx-text-muted) !important;
    border-radius: 999px !important;
    font-weight: 600 !important;
}
body.ab-page .sk-lib-stat-pill.active { border-width: 1px !important; }
body.ab-page .sk-clear-filter { background: var(--cx-ink) !important; color: var(--cx-bg) !important; }
body.ab-page .sk-stat-count { background: rgba(0,0,0,.08) !important; border-radius: 999px !important; }

body.ab-page .sk-lib-search-wrap {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .sk-lib-search { color: var(--cx-ink) !important; background: transparent !important; }
body.ab-page .sk-lib-sort-select {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
    color: var(--cx-ink) !important;
}
body.ab-page .sk-lib-create-btn {
    background: var(--cx-ink) !important;
    color: var(--cx-bg) !important;
    border-radius: var(--cx-radius-sm) !important;
    font-weight: 700 !important;
}

body.ab-page .sk-card {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius) !important;
    transition: border-color .15s ease !important;
}
body.ab-page .sk-card:hover { border-color: var(--cx-ink-soft) !important; }
body.ab-page .sk-card-icon { background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; }
body.ab-page .sk-card-type-badge { background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; border-radius: 999px !important; }
body.ab-page .sk-card-name { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .sk-card-desc { color: var(--cx-text-muted) !important; }
body.ab-page .sk-card-rate-bar { background: var(--cx-border) !important; }
body.ab-page .sk-card-meta span { color: var(--cx-text-muted) !important; }
body.ab-page .sk-tag { background: var(--cx-border-soft) !important; color: var(--cx-text-muted) !important; border-radius: 999px !important; }
body.ab-page .sk-card-attach-btn {
    background: var(--cx-border-soft) !important;
    border: 1px solid var(--cx-border) !important;
    color: var(--cx-ink) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .sk-card-btn { color: var(--cx-text-muted) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .sk-card-btn:hover { background: var(--cx-border-soft) !important; color: var(--cx-ink) !important; }
body.ab-page .sk-card-btn-danger:hover { color: var(--cx-danger) !important; background: var(--cx-danger-bg) !important; }

body.ab-page .sk-lib-empty { color: var(--cx-text-muted) !important; }
body.ab-page .sk-outline-btn, .sk-create-first-btn {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    color: var(--cx-ink) !important;
    border-radius: var(--cx-radius-sm) !important;
}

body.ab-page .sk-modal {
    background: var(--cx-bg) !important;
    border-radius: var(--cx-radius-lg) !important;
}
body.ab-page .sk-modal-overlay { background: rgba(10,10,10,.5) !important; }
body.ab-page .sk-modal-header { border-bottom: 1px solid var(--cx-border) !important; }
body.ab-page .sk-modal-title { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .sk-modal-sub { color: var(--cx-text-muted) !important; }
body.ab-page .sk-modal-footer { border-top: 1px solid var(--cx-border) !important; }
body.ab-page .sk-modal-btn-primary { background: var(--cx-ink) !important; color: var(--cx-bg) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .sk-modal-btn-ghost { background: transparent !important; border: 1px solid var(--cx-border) !important; color: var(--cx-ink-soft) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .sk-form-label { color: var(--cx-ink-soft) !important; font-weight: 600 !important; }
body.ab-page .sk-form-input {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
    color: var(--cx-ink) !important;
}

body.ab-page .sk-attacher-item {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .sk-attacher-item-name { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .sk-attacher-item-type { color: var(--cx-text-muted) !important; }
body.ab-page .sk-attacher-empty { color: var(--cx-text-muted) !important; }
body.ab-page .sk-attacher-add-btn { background: var(--cx-ink) !important; color: var(--cx-bg) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .sk-attach-agent-row {
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .sk-attach-agent-row:hover { border-color: var(--cx-ink) !important; }
body.ab-page .sk-attach-agent-name { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .sk-attach-agent-cat { color: var(--cx-text-muted) !important; }

/* ═══════════════════════════════════════════════════════════════
   SPAWNING (sp-*)
   ═══════════════════════════════════════════════════════════════ */

body.ab-page .sp-swarm-bar {
    background: var(--cx-border-soft) !important;
    border-top: 1px solid var(--cx-border) !important;
    border-bottom: 1px solid var(--cx-border) !important;
}
body.ab-page .sp-swarm-bar[data-swarm-status="done"] { background: var(--cx-success-bg) !important; border-color: var(--cx-success) !important; }
body.ab-page .sp-swarm-bar[data-swarm-status="error"] { background: var(--cx-danger-bg) !important; border-color: var(--cx-danger) !important; }
body.ab-page .sp-swarm-lead-icon { background: var(--cx-ink) !important; color: var(--cx-bg) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .sp-lead-name { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .sp-lead-sub { color: var(--cx-text-muted) !important; }
body.ab-page .sp-count { background: var(--cx-border-soft) !important; color: var(--cx-ink) !important; border: 1px solid var(--cx-border) !important; }
body.ab-page .sp-global-bar { background: var(--cx-border) !important; }
body.ab-page .sp-global-fill { background: var(--cx-ink) !important; animation: none !important; }
body.ab-page .sp-swarm-bar[data-swarm-status="done"] .sp-global-fill { background: var(--cx-success) !important; }
body.ab-page .sp-child-pill {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
}
body.ab-page .sp-child-pill[data-status="running"] { border-color: var(--cx-ink) !important; background: var(--cx-border-soft) !important; animation: none !important; }
body.ab-page .sp-child-pill[data-status="done"] { border-color: var(--cx-success) !important; background: var(--cx-success-bg) !important; }
body.ab-page .sp-child-pill[data-status="error"] { border-color: var(--cx-danger) !important; background: var(--cx-danger-bg) !important; }
body.ab-page .sp-child-label { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .sp-child-role-name { color: var(--cx-text-muted) !important; }
body.ab-page .sp-dot-waiting { background: var(--cx-border) !important; }
body.ab-page .sp-dot-running { background: var(--cx-ink) !important; }
body.ab-page .sp-dot-done { background: var(--cx-success) !important; }
body.ab-page .sp-dot-error { background: var(--cx-danger) !important; }

body.ab-page .sp-sub-role-badge { border-radius: 999px !important; font-weight: 700 !important; }
body.ab-page .sp-sub-badge { background: var(--cx-border-soft) !important; color: var(--cx-text-muted) !important; }
body.ab-page .sp-sub-content { border-left: 2px solid var(--cx-border) !important; }

body.ab-page .sp-config-badge { background: var(--cx-border-soft) !important; color: var(--cx-text-muted) !important; }
body.ab-page .sp-slider { accent-color: var(--cx-ink) !important; background: var(--cx-border) !important; }
body.ab-page .sp-slider-val { color: var(--cx-ink) !important; }
body.ab-page .sp-mode-option {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .sp-mode-option:hover, .sp-mode-option.selected { border-color: var(--cx-ink) !important; background: var(--cx-border-soft) !important; }
body.ab-page .sp-mode-label { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .sp-mode-desc { color: var(--cx-text-faint) !important; }
body.ab-page .sp-preview-badge { background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important; color: var(--cx-ink) !important; }

body.ab-page .sp-log-item {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius) !important;
}
body.ab-page .sp-log-item-name { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .sp-mode-tag { background: var(--cx-border-soft) !important; color: var(--cx-ink) !important; border-radius: 999px !important; }
body.ab-page .sp-log-child-tag { background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important; color: var(--cx-ink-soft) !important; }
body.ab-page .sp-log-item-stats span { color: var(--cx-text-muted) !important; }
body.ab-page .sp-log-badge { background: var(--cx-border-soft) !important; color: var(--cx-ink) !important; }

/* ═══════════════════════════════════════════════════════════════
   SWARM CANVAS (sw-*)
   ═══════════════════════════════════════════════════════════════ */

body.ab-page .sw-toolbar {
    background: var(--cx-bg) !important;
    border-bottom: 1px solid var(--cx-border) !important;
}
body.ab-page .sw-palette-btn {
    background: var(--cx-bg) !important;
    color: var(--cx-ink-soft) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .sw-palette-btn:hover { border-color: var(--cx-ink) !important; }
body.ab-page .sw-tool-btn {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    color: var(--cx-ink-soft) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .sw-tool-btn:hover { border-color: var(--cx-ink) !important; color: var(--cx-ink) !important; }
body.ab-page .sw-tool-btn-active { background: var(--cx-ink) !important; color: var(--cx-bg) !important; }
body.ab-page .sw-swarm-name-wrap {
    background: var(--cx-border-soft) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .sw-swarm-name-input { color: var(--cx-ink) !important; background: transparent !important; }
body.ab-page .sw-dirty-dot { color: var(--cx-warning) !important; }
body.ab-page .sw-btn-validate { color: var(--cx-ink) !important; }
body.ab-page .sw-zoom-group {
    background: var(--cx-border-soft) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .sw-zoom-btn { color: var(--cx-ink-soft) !important; }
body.ab-page .sw-zoom-level { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .sw-run-btn {
    background: var(--cx-ink) !important;
    color: var(--cx-bg) !important;
    border-radius: var(--cx-radius-sm) !important;
    font-weight: 700 !important;
}
body.ab-page .sw-stop-btn { background: var(--cx-danger) !important; }
body.ab-page .sw-pause-btn { background: var(--cx-warning) !important; }

body.ab-page .sw-canvas-container { background: var(--cx-bg-subtle) !important; }
body.ab-page .sw-svg { background: var(--cx-bg-subtle) !important; }

body.ab-page .sw-inspector-panel {
    background: var(--cx-bg) !important;
    border-left: 1px solid var(--cx-border) !important;
}
body.ab-page .sw-inspector-header { border-bottom: 1px solid var(--cx-border) !important; }
body.ab-page .sw-inspector-title { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .sw-inspector-empty-title { color: var(--cx-ink) !important; }
body.ab-page .sw-inspector-empty-sub { color: var(--cx-text-muted) !important; }
body.ab-page .sw-inspector-tip { color: var(--cx-text-muted) !important; }
body.ab-page .sw-inspector-node-header { border-bottom: 1px solid var(--cx-border) !important; }
body.ab-page .sw-inspector-node-type { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .sw-inspector-node-id { color: var(--cx-text-faint) !important; }
body.ab-page .sw-inspector-label { color: var(--cx-ink-soft) !important; font-weight: 600 !important; }
body.ab-page .sw-inspector-input {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
    color: var(--cx-ink) !important;
}
body.ab-page .sw-inspector-hint { color: var(--cx-text-faint) !important; }
body.ab-page .sw-inspector-apply-btn { background: var(--cx-ink) !important; color: var(--cx-bg) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .sw-inspector-delete-btn { color: var(--cx-danger) !important; }
body.ab-page .sw-inspector-summary { color: var(--cx-ink-soft) !important; }
body.ab-page .sw-inspector-cond-preview { border-radius: 999px !important; font-weight: 700 !important; }

body.ab-page .sw-agent-pick-item {
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .sw-agent-pick-item:hover { background: var(--cx-border-soft) !important; }
body.ab-page .sw-agent-pick-name { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .sw-agent-pick-cat { color: var(--cx-text-muted) !important; }

body.ab-page .sw-output-header { background: var(--cx-border-soft) !important; border-bottom: 1px solid var(--cx-border) !important; }
body.ab-page .sw-output-title { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .sw-output-body { background: var(--cx-bg) !important; }
body.ab-page .sw-status-bar { background: var(--cx-border-soft) !important; border-top: 1px solid var(--cx-border) !important; }
body.ab-page .sw-status-item { color: var(--cx-text-muted) !important; }

body.ab-page .sw-lib-modal, .sw-tpl-modal, .sw-run-modal, .sw-hitl-modal {
    background: var(--cx-bg) !important;
    border-radius: var(--cx-radius-lg) !important;
}
body.ab-page .sw-lib-header, .sw-tpl-header, .sw-run-modal-header, .sw-hitl-header {
    border-bottom: 1px solid var(--cx-border) !important;
}
body.ab-page .sw-lib-title, .sw-tpl-title, .sw-run-modal-title, .sw-hitl-title {
    color: var(--cx-ink) !important; font-weight: 700 !important;
}
body.ab-page .sw-lib-item {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .sw-lib-item-name { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .sw-lib-item-meta { color: var(--cx-text-muted) !important; }
body.ab-page .sw-lib-load-btn { background: var(--cx-ink) !important; color: var(--cx-bg) !important; border-radius: var(--cx-radius-sm) !important; }

body.ab-page .sw-tpl-card {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius) !important;
}
body.ab-page .sw-tpl-card:hover { border-color: var(--cx-ink) !important; }
body.ab-page .sw-tpl-card-name { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .sw-tpl-card-desc { color: var(--cx-text-muted) !important; }
body.ab-page .sw-tpl-tag { background: var(--cx-border-soft) !important; color: var(--cx-text-muted) !important; border-radius: 999px !important; }
body.ab-page .sw-tpl-card-use { color: var(--cx-ink) !important; font-weight: 700 !important; }

body.ab-page .sw-hitl-message, .sw-hitl-context { background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important; }
body.ab-page .sw-hitl-approve-btn { background: var(--cx-ink) !important; color: var(--cx-bg) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .sw-hitl-reject-btn { background: var(--cx-danger-bg) !important; color: var(--cx-danger) !important; border-radius: var(--cx-radius-sm) !important; }

body.ab-page .sw-history-panel { background: var(--cx-bg) !important; border-right: 1px solid var(--cx-border) !important; }
body.ab-page .sw-history-item {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .sw-history-item-name { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .sw-history-item-badge.success { background: var(--cx-success-bg) !important; color: var(--cx-success) !important; }
body.ab-page .sw-history-item-badge.error { background: var(--cx-danger-bg) !important; color: var(--cx-danger) !important; }

body.ab-page .sw-chat-redirect-banner {
    background: var(--cx-border-soft) !important;
    border: 1px solid var(--cx-border) !important;
}
body.ab-page .sw-chat-redirect-btn { background: var(--cx-ink) !important; color: var(--cx-bg) !important; border-radius: var(--cx-radius-sm) !important; }

/* Neutralise couleurs vives des nodes (garde juste un contour distinctif fin) */
body.ab-page .sw-node-g rect,
body.ab-page .sw-node-g polygon {
    filter: none !important;
}

/* ═══════════════════════════════════════════════════════════════
   AGENT BUILDER — ULTRA PRO OVERRIDE — PART 2
   Covers: Testing Studio (at-*) · Time-Travel (att-*) ·
           Voice Engine (av-*) · Workflow Engine (wf-*)
   À charger APRÈS agent-builder-pro-override.css
   ═══════════════════════════════════════════════════════════════ */

   body.ab-page {
    --cx-ink:         #0a0a0a;
    --cx-ink-soft:    #404040;
    --cx-text-muted:  #737373;
    --cx-text-faint:  #a3a3a3;
    --cx-border:      #e5e5e5;
    --cx-border-soft: #f5f5f5;
    --cx-bg:          #ffffff;
    --cx-bg-subtle:   #fafafa;
    --cx-success:     #16a34a;
    --cx-success-bg:  #f0fdf4;
    --cx-danger:      #dc2626;
    --cx-danger-bg:   #fef2f2;
    --cx-warning:     #d97706;
    --cx-warning-bg:  #fffbeb;
    --cx-radius-sm:   4px;
    --cx-radius:      8px;
    --cx-radius-lg:   12px;
}

/* ═══════════════════════════════════════════════════════════════
   TESTING STUDIO (at-*)
   ═══════════════════════════════════════════════════════════════ */

body.ab-page .at-tab-bar { background: var(--cx-bg) !important; border-bottom: 1px solid var(--cx-border) !important; }
body.ab-page .at-tab { color: var(--cx-text-muted) !important; font-weight: 600 !important; }
body.ab-page .at-tab:hover { color: var(--cx-ink) !important; }
body.ab-page .at-tab.at-tab-active { color: var(--cx-ink) !important; border-bottom-color: var(--cx-ink) !important; }
body.ab-page .at-tab-badge { background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; border: 1px solid var(--cx-border) !important; }

body.ab-page .at-section-title { color: var(--cx-ink) !important; }
body.ab-page .at-section-title i { color: var(--cx-ink-soft) !important; }
body.ab-page .at-count-badge { background: var(--cx-border-soft) !important; color: var(--cx-ink) !important; border: 1px solid var(--cx-border) !important; }

body.ab-page .at-btn { border-radius: var(--cx-radius-sm) !important; font-weight: 600 !important; }
body.ab-page .at-btn-primary { background: var(--cx-ink) !important; color: var(--cx-bg) !important; border-color: var(--cx-ink) !important; box-shadow: none !important; }
body.ab-page .at-btn-primary:hover:not(:disabled) { opacity: .85 !important; transform: none !important; box-shadow: none !important; }
body.ab-page .at-btn-secondary { background: var(--cx-border-soft) !important; border-color: var(--cx-border) !important; color: var(--cx-ink) !important; }
body.ab-page .at-btn-ghost { color: var(--cx-text-muted) !important; }
body.ab-page .at-btn-ghost:hover:not(:disabled) { background: var(--cx-border-soft) !important; border-color: var(--cx-border) !important; color: var(--cx-ink) !important; }
body.ab-page .at-btn-danger:hover:not(:disabled) { border-color: var(--cx-danger) !important; color: var(--cx-danger) !important; background: var(--cx-danger-bg) !important; }

body.ab-page .at-input { background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; border-radius: var(--cx-radius-sm) !important; color: var(--cx-ink) !important; }
body.ab-page .at-input:focus { border-color: var(--cx-ink) !important; }
body.ab-page .at-label { color: var(--cx-ink-soft) !important; }
body.ab-page .at-hint, body.ab-page .at-hint-inline { color: var(--cx-text-muted) !important; }
body.ab-page .at-required::after { color: var(--cx-danger) !important; }

body.ab-page .at-toggle-track { background: var(--cx-border) !important; }
body.ab-page .at-toggle-switch input:checked + .at-toggle-track { background: var(--cx-ink) !important; }

body.ab-page .at-search-wrap { background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; }
body.ab-page .at-search-wrap:focus-within { border-color: var(--cx-ink) !important; }

body.ab-page .at-suite-card,
body.ab-page .at-ab-card,
body.ab-page .at-adv-category-block,
body.ab-page .at-adv-summary,
body.ab-page .at-adv-cat-result,
body.ab-page .at-history-card,
body.ab-page .at-kpi-card,
body.ab-page .at-results-table,
body.ab-page .at-case-table,
body.ab-page .at-modal,
body.ab-page .at-ab-live-col,
body.ab-page .at-adv-live-panel {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    box-shadow: none !important;
}
body.ab-page .at-suite-card:hover,
body.ab-page .at-history-card:hover { border-color: var(--cx-ink-soft) !important; box-shadow: none !important; transform: none !important; }

body.ab-page .at-suite-icon { background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; }
body.ab-page .at-suite-name, body.ab-page .at-history-card-suite { color: var(--cx-ink) !important; }
body.ab-page .at-suite-desc, body.ab-page .at-history-card-meta span { color: var(--cx-text-muted) !important; }
body.ab-page .at-suite-meta-item, body.ab-page .at-history-type-badge { background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; }

body.ab-page .at-case-table thead th,
body.ab-page .at-results-table thead th { background: var(--cx-border-soft) !important; color: var(--cx-text-muted) !important; border-bottom: 1px solid var(--cx-border) !important; }
body.ab-page .at-case-table tbody tr:hover,
body.ab-page .at-results-table tbody tr:hover { background: var(--cx-border-soft) !important; }
body.ab-page .at-case-name, body.ab-page .at-result-name { color: var(--cx-ink) !important; }
body.ab-page .at-tag, body.ab-page .at-format-badge { background: var(--cx-border-soft) !important; color: var(--cx-text-muted) !important; border-color: var(--cx-border) !important; }
body.ab-page .at-kw-chip { background: var(--cx-border-soft) !important; color: var(--cx-ink) !important; }

body.ab-page .at-status-badge { border-radius: 999px !important; }
body.ab-page .at-status-pass    { background: var(--cx-success-bg) !important; color: var(--cx-success) !important; }
body.ab-page .at-status-fail    { background: var(--cx-danger-bg) !important;  color: var(--cx-danger) !important; }
body.ab-page .at-status-error,
body.ab-page .at-status-running { background: var(--cx-warning-bg) !important; color: var(--cx-warning) !important; }
body.ab-page .at-status-pending { background: var(--cx-border-soft) !important; color: var(--cx-text-muted) !important; }

body.ab-page .at-icon-btn { color: var(--cx-text-muted) !important; }
body.ab-page .at-icon-btn:hover { background: var(--cx-border-soft) !important; color: var(--cx-ink) !important; }

body.ab-page .at-kpi-grade,
body.ab-page .at-kpi-val { -webkit-text-fill-color: var(--cx-ink) !important; background: none !important; }
body.ab-page .at-kpi-pass  { -webkit-text-fill-color: var(--cx-success) !important; }
body.ab-page .at-kpi-fail  { -webkit-text-fill-color: var(--cx-danger) !important; }
body.ab-page .at-kpi-error { -webkit-text-fill-color: var(--cx-warning) !important; }
body.ab-page .at-kpi-label { color: var(--cx-text-muted) !important; }

body.ab-page .at-progress-track { background: var(--cx-border) !important; }
body.ab-page .at-progress-fill { background: var(--cx-ink) !important; }
body.ab-page .at-score-bar { background: var(--cx-ink) !important; }
body.ab-page .at-check-pass { background: var(--cx-success-bg) !important; color: var(--cx-success) !important; }
body.ab-page .at-check-fail { background: var(--cx-danger-bg) !important;  color: var(--cx-danger) !important; }

body.ab-page .at-sev-low      { background: var(--cx-border-soft) !important; color: var(--cx-text-muted) !important; }
body.ab-page .at-sev-medium   { background: var(--cx-warning-bg) !important; color: var(--cx-warning) !important; }
body.ab-page .at-sev-high,
body.ab-page .at-sev-critical { background: var(--cx-danger-bg) !important; color: var(--cx-danger) !important; }

body.ab-page .at-adv-info-banner { background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important; color: var(--cx-text-muted) !important; }
body.ab-page .at-adv-info-banner i { color: var(--cx-ink-soft) !important; }
body.ab-page .at-adv-critical-alert { background: var(--cx-danger-bg) !important; border-color: var(--cx-danger) !important; color: var(--cx-danger) !important; }
body.ab-page .at-adv-pass-alert { background: var(--cx-success-bg) !important; border-color: var(--cx-success) !important; color: var(--cx-success) !important; }
body.ab-page .at-adv-grade { border-color: var(--cx-ink) !important; color: var(--cx-ink) !important; }

body.ab-page .at-modal-header { border-bottom: 1px solid var(--cx-border) !important; }
body.ab-page .at-modal-footer { background: var(--cx-border-soft) !important; border-top: 1px solid var(--cx-border) !important; }
body.ab-page .at-modal-title { color: var(--cx-ink) !important; }

body.ab-page .at-history-passrate-bar { background: var(--cx-border) !important; }
body.ab-page .at-history-card-grade { border-color: var(--cx-ink) !important; color: var(--cx-ink) !important; }

body.ab-page .at-ab-badge-a { background: var(--cx-ink) !important; }
body.ab-page .at-ab-badge-b { background: var(--cx-ink-soft) !important; }
body.ab-page .at-winner-a, body.ab-page .at-winner-b { background: var(--cx-border-soft) !important; color: var(--cx-ink) !important; }
body.ab-page .at-winner-tie { background: var(--cx-border-soft) !important; color: var(--cx-text-muted) !important; }
body.ab-page .at-ab-output-win { background: var(--cx-border-soft) !important; }

/* Thinking blocks — neutralise glow violet */
body.ab-page .at-think { background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; }
body.ab-page .at-think-label { color: var(--cx-text-muted) !important; }
body.ab-page .at-think-ring { border-color: var(--cx-border) !important; border-top-color: var(--cx-ink) !important; }
body.ab-page .at-logo-white-bg { background: var(--cx-bg) !important; }

body.ab-page .at-spin-ring-sm, body.ab-page .at-spinner-ring {
    border-color: var(--cx-border) !important;
    border-top-color: var(--cx-ink) !important;
}

/* ═══════════════════════════════════════════════════════════════
   TIME-TRAVEL DEBUGGER (att-*)
   ═══════════════════════════════════════════════════════════════ */

body.ab-page .att-trigger-btn {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    color: var(--cx-ink-soft) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .att-trigger-btn:hover { border-color: var(--cx-ink) !important; color: var(--cx-ink) !important; }
body.ab-page .att-trigger-badge { background: var(--cx-ink) !important; color: var(--cx-bg) !important; }

body.ab-page .att-panel { background: var(--cx-bg) !important; }
body.ab-page .att-header { border-bottom: 1px solid var(--cx-border) !important; background: var(--cx-bg) !important; }
body.ab-page .att-header-icon { background: var(--cx-ink) !important; color: var(--cx-bg) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .att-header-title { color: var(--cx-ink) !important; }
body.ab-page .att-header-sub { color: var(--cx-text-muted) !important; }
body.ab-page .att-tab-btn { color: var(--cx-text-muted) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .att-tab-btn.active { background: var(--cx-border-soft) !important; color: var(--cx-ink) !important; }
body.ab-page .att-header-close { color: var(--cx-text-muted) !important; }
body.ab-page .att-header-close:hover { color: var(--cx-ink) !important; }

body.ab-page .att-session-badge { background: var(--cx-border-soft) !important; color: var(--cx-text-muted) !important; border: 1px solid var(--cx-border) !important; }
body.ab-page .att-section-title { color: var(--cx-ink) !important; }
body.ab-page .att-step-count-badge { background: var(--cx-border-soft) !important; color: var(--cx-ink) !important; }

/* Step nodes — neutralise couleurs vives */
body.ab-page .att-step-node {
    background: var(--cx-border-soft) !important;
    color: var(--cx-ink-soft) !important;
    border: 1px solid var(--cx-border) !important;
}
body.ab-page .att-step-node.att-selected,
body.ab-page .att-step-node.att-current {
    border-color: var(--cx-ink) !important;
    background: var(--cx-ink) !important;
    color: var(--cx-bg) !important;
}
body.ab-page .att-connector { background: var(--cx-border) !important; }
body.ab-page .att-step-label, body.ab-page .att-step-sublabel { color: var(--cx-text-muted) !important; }

body.ab-page .att-inspector { background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; }
body.ab-page .att-inspector-icon { background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; }
body.ab-page .att-inspector-title { color: var(--cx-ink) !important; }
body.ab-page .att-type-badge { background: var(--cx-border-soft) !important; color: var(--cx-ink) !important; }
body.ab-page .att-err-badge { background: var(--cx-danger-bg) !important; color: var(--cx-danger) !important; }
body.ab-page .att-prop-label { color: var(--cx-text-muted) !important; }
body.ab-page .att-code-block { background: var(--cx-ink) !important; color: #e5e5e5 !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .att-reason-text { color: var(--cx-text-muted) !important; }

body.ab-page .att-action-btn { border-radius: var(--cx-radius-sm) !important; border: 1px solid var(--cx-border) !important; color: var(--cx-ink-soft) !important; background: var(--cx-bg) !important; }
body.ab-page .att-action-btn:hover { border-color: var(--cx-ink) !important; color: var(--cx-ink) !important; }

body.ab-page .att-whatif-section { background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important; }
body.ab-page .att-whatif-input { background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; }
body.ab-page .att-whatif-btn { background: var(--cx-ink) !important; color: var(--cx-bg) !important; border-radius: var(--cx-radius-sm) !important; }

body.ab-page .att-branch-item { background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; }
body.ab-page .att-branch-name { color: var(--cx-ink) !important; }
body.ab-page .att-branch-meta { color: var(--cx-text-muted) !important; }
body.ab-page .att-branch-btn { border: 1px solid var(--cx-border) !important; color: var(--cx-text-muted) !important; }

body.ab-page .att-footer { border-top: 1px solid var(--cx-border) !important; background: var(--cx-bg) !important; }
body.ab-page .att-btn-ghost { border: 1px solid var(--cx-border) !important; color: var(--cx-ink-soft) !important; background: var(--cx-bg) !important; }
body.ab-page .att-btn-ghost:hover { border-color: var(--cx-ink) !important; color: var(--cx-ink) !important; }
body.ab-page .att-btn-ghost.att-btn-danger:hover { border-color: var(--cx-danger) !important; color: var(--cx-danger) !important; }
body.ab-page .att-btn-primary { background: var(--cx-ink) !important; color: var(--cx-bg) !important; border-radius: var(--cx-radius-sm) !important; }

body.ab-page .att-compare-col-header.att-col-main   { background: var(--cx-border-soft) !important; color: var(--cx-ink) !important; }
body.ab-page .att-compare-col-header.att-col-branch { background: var(--cx-border-soft) !important; color: var(--cx-ink) !important; }
body.ab-page .att-compare-step { background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; }
body.ab-page .att-cmp-icon { background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; }
body.ab-page .att-compare-fork-marker { background: var(--cx-border-soft) !important; color: var(--cx-text-muted) !important; }

body.ab-page .att-session-item { background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; }
body.ab-page .att-session-item:hover { border-color: var(--cx-ink) !important; }
body.ab-page .att-spinner { border-color: var(--cx-border) !important; border-top-color: var(--cx-ink) !important; }

/* ═══════════════════════════════════════════════════════════════
   VOICE ENGINE (av-*)
   ═══════════════════════════════════════════════════════════════ */

body.ab-page .av-voice-btn.av-vb-listening  { background: var(--cx-ink) !important; color: var(--cx-bg) !important; }
body.ab-page .av-voice-btn.av-vb-speaking   { background: var(--cx-border-soft) !important; color: var(--cx-ink) !important; }
body.ab-page .av-voice-btn.av-vb-processing { background: var(--cx-border-soft) !important; color: var(--cx-text-muted) !important; }
body.ab-page .av-voice-btn.av-vb-error      { background: var(--cx-danger-bg) !important; color: var(--cx-danger) !important; }

body.ab-page .av-hf-indicator { background: var(--cx-ink) !important; color: var(--cx-bg) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .av-hf-dot { background: var(--cx-bg) !important; }
body.ab-page .av-hf-stop-btn { color: var(--cx-bg) !important; }

body.ab-page .av-transcript-preview { background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important; color: var(--cx-ink-soft) !important; }
body.ab-page .av-tp-mic.av-tp-ok { color: var(--cx-success) !important; }

body.ab-page .av-sp-panel { background: var(--cx-bg) !important; }
body.ab-page .av-sp-header { border-bottom: 1px solid var(--cx-border) !important; background: var(--cx-bg) !important; }
body.ab-page .av-sp-header-icon { background: var(--cx-ink) !important; color: var(--cx-bg) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .av-sp-title { color: var(--cx-ink) !important; }
body.ab-page .av-sp-sub { color: var(--cx-text-muted) !important; }
body.ab-page .av-sp-close { color: var(--cx-text-muted) !important; }
body.ab-page .av-sp-support.av-sp-support-ok   { background: var(--cx-success-bg) !important; color: var(--cx-success) !important; }
body.ab-page .av-sp-support.av-sp-support-warn { background: var(--cx-warning-bg) !important; color: var(--cx-warning) !important; }

body.ab-page .av-sp-icon { background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; }
body.ab-page .av-sp-label { color: var(--cx-ink) !important; }
body.ab-page .av-sp-desc { color: var(--cx-text-muted) !important; }
body.ab-page .av-sp-select { background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; }
body.ab-page .av-toggle-track { background: var(--cx-border) !important; }
body.ab-page .av-toggle-sw input:checked + .av-toggle-track { background: var(--cx-ink) !important; }

body.ab-page .av-slider { accent-color: var(--cx-ink) !important; }
body.ab-page .av-speed-chip { border: 1px solid var(--cx-border) !important; color: var(--cx-text-muted) !important; }
body.ab-page .av-speed-chip.active { background: var(--cx-ink) !important; color: var(--cx-bg) !important; border-color: var(--cx-ink) !important; }
body.ab-page .av-sp-test-btn { background: var(--cx-ink) !important; color: var(--cx-bg) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .av-sp-badge-exp { background: var(--cx-warning-bg) !important; color: var(--cx-warning) !important; }

body.ab-page .av-sp-shortcuts { border-top: 1px solid var(--cx-border) !important; color: var(--cx-text-muted) !important; }
body.ab-page .av-sp-shortcuts kbd { background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important; }
body.ab-page .av-sp-footer { border-top: 1px solid var(--cx-border) !important; background: var(--cx-border-soft) !important; }
body.ab-page .av-sp-btn-primary { background: var(--cx-ink) !important; color: var(--cx-bg) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .av-sp-btn-ghost { border: 1px solid var(--cx-border) !important; color: var(--cx-ink-soft) !important; }

/* ═══════════════════════════════════════════════════════════════
   WORKFLOW ENGINE (wf-*)
   ═══════════════════════════════════════════════════════════════ */

body.ab-page .wf-tabs { background: var(--cx-border-soft) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .wf-tab { color: var(--cx-text-muted) !important; }
body.ab-page .wf-tab.active { background: var(--cx-bg) !important; color: var(--cx-ink) !important; }
body.ab-page .wf-tab-badge { background: var(--cx-border-soft) !important; color: var(--cx-ink) !important; }

body.ab-page .wf-tpl-card,
body.ab-page .wf-mine-card,
body.ab-page .wf-runner-card,
body.ab-page .wf-chat-runner,
body.ab-page .wf-hitl-panel,
body.ab-page .wf-modal,
body.ab-page .wf-builder-step,
body.ab-page .wf-step-type-card,
body.ab-page .wf-new-section,
body.ab-page .wf-agent-picker-panel {
    background: var(--cx-bg) !important;
    border-color: var(--cx-border) !important;
    box-shadow: none !important;
}
body.ab-page .wf-tpl-card:hover,
body.ab-page .wf-mine-card:hover,
body.ab-page .wf-builder-step:hover,
body.ab-page .wf-step-type-card:hover { border-color: var(--cx-ink-soft) !important; box-shadow: none !important; transform: none !important; }

body.ab-page .wf-tpl-icon, body.ab-page .wf-mine-icon, body.ab-page .wf-bs-type-icon,
body.ab-page .wf-stc-icon, body.ab-page .wf-modal-icon {
    background: var(--cx-border-soft) !important;
    color: var(--cx-ink-soft) !important;
}
body.ab-page .wf-tpl-cat-badge, body.ab-page .wf-tpl-tag, body.ab-page .wf-tpl-step-chip,
body.ab-page .wf-bs-type-badge, body.ab-page .wf-mine-meta span {
    background: var(--cx-border-soft) !important;
    color: var(--cx-ink-soft) !important;
    border-color: var(--cx-border) !important;
}
body.ab-page .wf-tpl-name, body.ab-page .wf-mine-name, body.ab-page .wf-bs-label,
body.ab-page .wf-stc-label, body.ab-page .wf-modal-title, body.ab-page .wf-new-header { color: var(--cx-ink) !important; }
body.ab-page .wf-tpl-desc, body.ab-page .wf-mine-desc, body.ab-page .wf-stc-desc,
body.ab-page .wf-modal-sub, body.ab-page .wf-bs-summary { color: var(--cx-text-muted) !important; }

body.ab-page .wf-tpl-btn-run, body.ab-page .wf-mine-run-btn,
body.ab-page .wf-hitl-approve-btn, body.ab-page .ab-btn-primary.wf-btn,
body.ab-page .wf-view-report-btn { background: var(--cx-ink) !important; color: var(--cx-bg) !important; border: none !important; box-shadow: none !important; }
body.ab-page .wf-tpl-btn-run:hover, body.ab-page .wf-mine-run-btn:hover { opacity: .85 !important; }
body.ab-page .wf-tpl-btn-save { background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important; color: var(--cx-text-muted) !important; }

body.ab-page .wf-runner-badge.running   { background: var(--cx-border-soft) !important; color: var(--cx-ink) !important; }
body.ab-page .wf-runner-badge.paused    { background: var(--cx-warning-bg) !important; color: var(--cx-warning) !important; }
body.ab-page .wf-runner-badge.completed { background: var(--cx-success-bg) !important; color: var(--cx-success) !important; }
body.ab-page .wf-runner-badge.failed    { background: var(--cx-danger-bg) !important; color: var(--cx-danger) !important; }
body.ab-page .wf-runner-card { border: 1px solid var(--cx-border) !important; animation: none !important; }
body.ab-page .wf-runner-progress-track { background: var(--cx-border) !important; }
body.ab-page .wf-runner-progress-fill { background: var(--cx-ink) !important; }
body.ab-page .wf-runner-step { background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important; color: var(--cx-text-muted) !important; }
body.ab-page .wf-rs-success { background: var(--cx-success-bg) !important; border-color: var(--cx-success) !important; color: var(--cx-success) !important; }
body.ab-page .wf-rs-failed  { background: var(--cx-danger-bg) !important; border-color: var(--cx-danger) !important; color: var(--cx-danger) !important; }
body.ab-page .wf-rs-running { background: var(--cx-border-soft) !important; border-color: var(--cx-ink) !important; color: var(--cx-ink) !important; }

body.ab-page .wf-pause-btn  { background: var(--cx-warning-bg) !important; border-color: var(--cx-warning) !important; color: var(--cx-warning) !important; }
body.ab-page .wf-resume-btn { background: var(--cx-success-bg) !important; border-color: var(--cx-success) !important; color: var(--cx-success) !important; }
body.ab-page .wf-abort-btn  { background: var(--cx-danger-bg) !important; border-color: var(--cx-danger) !important; color: var(--cx-danger) !important; }

body.ab-page .wf-hitl-icon { background: var(--cx-ink) !important; }
body.ab-page .wf-hitl-context { background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important; }
body.ab-page .wf-hitl-hint { background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important; color: var(--cx-text-muted) !important; }
body.ab-page .wf-hitl-reject-btn { border-color: var(--cx-danger) !important; color: var(--cx-danger) !important; background: var(--cx-danger-bg) !important; }

body.ab-page .wf-history-table th { background: var(--cx-border-soft) !important; color: var(--cx-text-muted) !important; border-bottom: 1px solid var(--cx-border) !important; }
body.ab-page .wf-history-row:hover td { background: var(--cx-border-soft) !important; }
body.ab-page .wf-status-ok     { background: var(--cx-success-bg) !important; color: var(--cx-success) !important; }
body.ab-page .wf-status-err    { background: var(--cx-danger-bg) !important;  color: var(--cx-danger) !important; }
body.ab-page .wf-status-run    { background: var(--cx-border-soft) !important; color: var(--cx-ink) !important; }
body.ab-page .wf-status-paused { background: var(--cx-warning-bg) !important; color: var(--cx-warning) !important; }
body.ab-page .wf-status-cancel { background: var(--cx-border-soft) !important; color: var(--cx-text-muted) !important; }
body.ab-page .wf-history-detail { background: var(--cx-border-soft) !important; }
body.ab-page .wf-hd-step { background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; }
body.ab-page .wf-hd-output { background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important; }
body.ab-page .wf-hd-output-label { color: var(--cx-ink) !important; }

body.ab-page .wf-new-hint, body.ab-page .wf-se-info { background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important; color: var(--cx-text-muted) !important; }
body.ab-page .wf-new-input, body.ab-page .abu-input.wf-new-input { background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; color: var(--cx-ink) !important; }
body.ab-page .wf-new-input:focus { border-color: var(--cx-ink) !important; }
body.ab-page .wf-add-step-btn { border: 1px solid var(--cx-border) !important; color: var(--cx-text-muted) !important; background: var(--cx-bg) !important; }
body.ab-page .wf-add-step-btn:hover { border-color: var(--cx-ink) !important; color: var(--cx-ink) !important; }
body.ab-page .wf-new-steps-list { background: var(--cx-border-soft) !important; border: 1.5px dashed var(--cx-border) !important; }

body.ab-page .wf-step-picker-panel, body.ab-page .wf-step-editor-panel { border-radius: var(--cx-radius-lg) !important; }
body.ab-page .wf-step-type-custom { border-color: var(--cx-ink-soft) !important; background: var(--cx-border-soft) !important; }
body.ab-page .wf-se-section-title { color: var(--cx-text-muted) !important; border-bottom: 1px solid var(--cx-border) !important; }
body.ab-page .wf-se-label { color: var(--cx-ink-soft) !important; }
body.ab-page .wf-se-tool-grid, body.ab-page .wf-se-tool-cat-toggle,
body.ab-page .wf-se-tool-chip-label, body.ab-page .wf-se-check-item { background: var(--cx-border-soft) !important; border-color: var(--cx-border) !important; color: var(--cx-ink-soft) !important; }
body.ab-page .wf-se-tool-chip-label:has(input:checked) { border-color: var(--cx-ink) !important; background: var(--cx-border-soft) !important; color: var(--cx-ink) !important; }
body.ab-page .wf-se-toggle-track { background: var(--cx-border) !important; }
body.ab-page .wf-se-toggle input:checked + .wf-se-toggle-track { background: var(--cx-ink) !important; }
body.ab-page .wf-se-advanced { background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important; }
body.ab-page .wf-se-advanced summary { color: var(--cx-text-muted) !important; }
body.ab-page .wf-se-advanced[open] summary { color: var(--cx-ink) !important; }

body.ab-page #wfn-agent-picker-btn { background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important; }
body.ab-page .wf-agent-pick-row:hover { background: var(--cx-border-soft) !important; }
body.ab-page .wf-agent-pick-icon { background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; }
body.ab-page .wf-agent-pick-name { color: var(--cx-ink) !important; }
body.ab-page .wf-agent-pick-desc { color: var(--cx-text-muted) !important; }
body.ab-page .wf-agent-search-wrap { background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important; }

body.ab-page .wf-chat-header { background: var(--cx-border-soft) !important; border-bottom: 1px solid var(--cx-border) !important; }
body.ab-page .wf-chat-icon { background: var(--cx-ink) !important; }
body.ab-page .wf-cstep-status.pending   { background: var(--cx-border-soft) !important; color: var(--cx-text-muted) !important; }
body.ab-page .wf-cstep-status.running   { background: var(--cx-border-soft) !important; color: var(--cx-ink) !important; }
body.ab-page .wf-cstep-status.success   { background: var(--cx-success-bg) !important; color: var(--cx-success) !important; }
body.ab-page .wf-cstep-status.failed    { background: var(--cx-danger-bg) !important; color: var(--cx-danger) !important; }
body.ab-page .wf-result-header { background: var(--cx-success-bg) !important; border: 1px solid var(--cx-success) !important; }

/* ── Dark mode variable overrides for part 2 ─────────────────────── */
body.ab-page.dark-mode {
    --cx-ink:         #fafafa;
    --cx-ink-soft:    #d4d4d4;
    --cx-text-muted:  #a3a3a3;
    --cx-text-faint:  #737373;
    --cx-border:      #262626;
    --cx-border-soft: #171717;
    --cx-bg:          #0a0a0a;
    --cx-bg-subtle:   #141414;
    --cx-success-bg:  rgba(22, 163, 74, 0.12);
    --cx-danger-bg:   rgba(220, 38, 38, 0.12);
    --cx-warning-bg:  rgba(217, 119, 6, 0.12);
}

/* ── Scrollbars everywhere ────────────────────────────────────────── */
body.ab-page .at-live-results::-webkit-scrollbar,
body.ab-page .att-timeline-scroll::-webkit-scrollbar,
body.ab-page .wf-history-table-wrap::-webkit-scrollbar { height: 6px; width: 6px; }
body.ab-page .at-live-results::-webkit-scrollbar-thumb,
body.ab-page .att-timeline-scroll::-webkit-scrollbar-thumb,
body.ab-page .wf-history-table-wrap::-webkit-scrollbar-thumb { background: var(--cx-border) !important; border-radius: 3px; }

body.ab-page .mem-tier-ttl { color: var(--cx-text-faint) !important; }

body.ab-page .mem-panel-stats-row {
    display: flex;
    gap: 8px;
    margin-bottom: 4px;
}
body.ab-page .mem-panel-stat {
    flex: 1;
    text-align: center;
    padding: 8px;
    border-radius: var(--cx-radius-sm) !important;
    background: var(--cx-border-soft) !important;
    border: 1px solid var(--cx-border) !important;
}
body.ab-page .mem-panel-stat-val {
    font-size: 18px;
    font-weight: 900;
    color: var(--cx-ink) !important;
}
body.ab-page .mem-panel-stat-label {
    font-size: 10px;
    font-weight: 700;
    color: var(--cx-text-muted) !important;
}

/* ═══════════════════════════════════════════════════════════════
   SWARM — FIX SEARCH BAR + MODALS/CARDS ALIGNMENT (à ajouter après
   les blocs SWARM CANVAS (sw-*) déjà présents)
   ═══════════════════════════════════════════════════════════════ */

/* ── Search bar : UN SEUL cadre (le wrapper), input transparent ── */
body.ab-page .sw-agent-picker-search-wrap {
    position: relative;
    display: flex;
    align-items: center;
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
    padding: 0 10px !important;
    transition: border-color .15s ease !important;
}
body.ab-page .sw-agent-picker-search-wrap:focus-within {
    border-color: var(--cx-ink) !important;
}
body.ab-page .sw-agent-picker-search-icon {
    color: var(--cx-text-faint) !important;
    font-size: 12px !important;
    flex-shrink: 0;
}
body.ab-page .sw-agent-picker-input {
    flex: 1;
    background: transparent !important;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    padding: 9px 8px !important;
    font-size: 12.5px !important;
    color: var(--cx-ink) !important;
}
body.ab-page .sw-agent-picker-input::placeholder {
    color: var(--cx-text-faint) !important;
}
body.ab-page .sw-agent-picker-list {
    max-height: 220px;
    overflow-y: auto;
    margin-top: 6px;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
    background: var(--cx-bg) !important;
}

/* ── Même correctif générique pour toute autre search-wrap swarm ── */
body.ab-page .sw-toolbar-search-wrap,
body.ab-page .a2a-calls-search-wrap {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .sw-toolbar-search-wrap input,
body.ab-page .a2a-calls-search-wrap input {
    border: none !important;
    background: transparent !important;
    outline: none !important;
}

/* ── RUN MODAL (sw-run-modal-*) ── */
body.ab-page .sw-run-modal-overlay { background: rgba(10,10,10,.5) !important; }
body.ab-page .sw-run-modal {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-lg) !important;
}
body.ab-page .sw-run-modal-header { border-bottom: 1px solid var(--cx-border) !important; }
body.ab-page .sw-run-modal-icon {
    background: var(--cx-ink) !important;
    color: var(--cx-bg) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .sw-run-modal-title { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .sw-run-modal-sub { color: var(--cx-text-muted) !important; }
body.ab-page .sw-run-modal-close { color: var(--cx-text-muted) !important; }
body.ab-page .sw-run-modal-close:hover { color: var(--cx-ink) !important; }
body.ab-page .sw-run-modal-label { color: var(--cx-ink-soft) !important; font-weight: 600 !important; }
body.ab-page .sw-run-modal-input {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
    color: var(--cx-ink) !important;
}
body.ab-page .sw-run-modal-input:focus { border-color: var(--cx-ink) !important; }
body.ab-page .sw-run-modal-hint {
    background: var(--cx-border-soft) !important;
    color: var(--cx-text-muted) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .sw-run-modal-actions { border-top: 1px solid var(--cx-border) !important; }
body.ab-page .sw-run-modal-cancel {
    background: var(--cx-border-soft) !important;
    border: 1px solid var(--cx-border) !important;
    color: var(--cx-ink-soft) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .sw-run-modal-run {
    background: var(--cx-ink) !important;
    color: var(--cx-bg) !important;
    border: none !important;
    border-radius: var(--cx-radius-sm) !important;
    font-weight: 700 !important;
}
body.ab-page .sw-run-modal-run:hover { opacity: .85 !important; }

/* ── HITL MODAL (sw-hitl-*) ── */
body.ab-page .sw-hitl-overlay { background: rgba(10,10,10,.5) !important; }
body.ab-page .sw-hitl-modal {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-lg) !important;
}
body.ab-page .sw-hitl-header { border-bottom: 1px solid var(--cx-border) !important; }
body.ab-page .sw-hitl-icon {
    background: var(--cx-border-soft) !important;
    color: var(--cx-ink-soft) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .sw-hitl-title { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .sw-hitl-sub { color: var(--cx-text-muted) !important; }
body.ab-page .sw-hitl-message {
    background: var(--cx-border-soft) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
    color: var(--cx-ink-soft) !important;
}
body.ab-page .sw-hitl-context {
    background: var(--cx-border-soft) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .sw-hitl-context-label { color: var(--cx-text-muted) !important; font-weight: 700 !important; }
body.ab-page .sw-hitl-context-text { color: var(--cx-ink-soft) !important; }
body.ab-page .sw-hitl-redirect-label { color: var(--cx-ink-soft) !important; font-weight: 600 !important; }
body.ab-page .sw-hitl-redirect-input {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
    color: var(--cx-ink) !important;
}
body.ab-page .sw-hitl-redirect-input:focus { border-color: var(--cx-ink) !important; }
body.ab-page .sw-hitl-countdown { color: var(--cx-text-muted) !important; }
body.ab-page .sw-hitl-actions { border-top: 1px solid var(--cx-border) !important; }
body.ab-page .sw-hitl-reject-btn {
    background: var(--cx-danger-bg) !important;
    color: var(--cx-danger) !important;
    border: 1px solid var(--cx-danger) !important;
    border-radius: var(--cx-radius-sm) !important;
    font-weight: 700 !important;
}
body.ab-page .sw-hitl-approve-btn {
    background: var(--cx-ink) !important;
    color: var(--cx-bg) !important;
    border: none !important;
    border-radius: var(--cx-radius-sm) !important;
    font-weight: 700 !important;
}
body.ab-page .sw-hitl-approve-btn:hover { opacity: .85 !important; }
body.ab-page .sw-hitl-redirect-overlay { background: rgba(10,10,10,.5) !important; }
body.ab-page .sw-hitl-redirect-panel {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-lg) !important;
}

/* ── TEMPLATES MODAL (sw-tpl-*) ── */
body.ab-page .sw-tpl-overlay { background: rgba(10,10,10,.5) !important; }
body.ab-page .sw-tpl-modal {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-lg) !important;
}
body.ab-page .sw-tpl-header { border-bottom: 1px solid var(--cx-border) !important; }
body.ab-page .sw-tpl-header-icon {
    background: var(--cx-ink) !important;
    color: var(--cx-bg) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .sw-tpl-title { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .sw-tpl-close { color: var(--cx-text-muted) !important; }
body.ab-page .sw-tpl-card {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius) !important;
    transition: border-color .15s ease !important;
}
body.ab-page .sw-tpl-card:hover {
    border-color: var(--cx-ink) !important;
    transform: none !important;
    box-shadow: none !important;
}
body.ab-page .sw-tpl-card-icon {
    background: var(--cx-border-soft) !important;
    color: var(--cx-ink-soft) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .sw-tpl-card-name { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .sw-tpl-card-desc { color: var(--cx-text-muted) !important; }
body.ab-page .sw-tpl-tag {
    background: var(--cx-border-soft) !important;
    border: 1px solid var(--cx-border) !important;
    color: var(--cx-text-muted) !important;
    border-radius: 999px !important;
}
body.ab-page .sw-tpl-card-use { color: var(--cx-ink) !important; font-weight: 700 !important; }

/* ── LIBRARY MODAL (sw-lib-*) ── */
body.ab-page .sw-lib-overlay { background: rgba(10,10,10,.5) !important; }
body.ab-page .sw-lib-modal {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-lg) !important;
}
body.ab-page .sw-lib-header { border-bottom: 1px solid var(--cx-border) !important; }
body.ab-page .sw-lib-header-icon {
    background: var(--cx-ink) !important;
    color: var(--cx-bg) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .sw-lib-title { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .sw-lib-close { color: var(--cx-text-muted) !important; }
body.ab-page .sw-lib-item {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .sw-lib-item-icon {
    background: var(--cx-border-soft) !important;
    color: var(--cx-ink-soft) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .sw-lib-item-name { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .sw-lib-item-meta { color: var(--cx-text-muted) !important; }
body.ab-page .sw-lib-load-btn {
    background: var(--cx-ink) !important;
    color: var(--cx-bg) !important;
    border: none !important;
    border-radius: var(--cx-radius-sm) !important;
    font-weight: 700 !important;
}
body.ab-page .sw-lib-dup-btn,
body.ab-page .sw-lib-del-btn {
    background: var(--cx-border-soft) !important;
    border: 1px solid var(--cx-border) !important;
    color: var(--cx-ink-soft) !important;
    border-radius: var(--cx-radius-sm) !important;
}
body.ab-page .sw-lib-del-btn:hover { color: var(--cx-danger) !important; border-color: var(--cx-danger) !important; }
body.ab-page .sw-lib-empty,
body.ab-page .sw-lib-loading { color: var(--cx-text-muted) !important; }

/* ── Agent pick list rows (search results) ── */
body.ab-page .sw-agent-pick-item { border-radius: var(--cx-radius-sm) !important; padding: 8px !important; cursor: pointer; }
body.ab-page .sw-agent-pick-item:hover,
body.ab-page .sw-agent-pick-active { background: var(--cx-border-soft) !important; }
body.ab-page .sw-agent-pick-name { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .sw-agent-pick-cat { color: var(--cx-text-muted) !important; font-size: 11px !important; }
body.ab-page .sw-agent-pick-dot { border-radius: 50% !important; }
body.ab-page .sw-agent-pick-empty { color: var(--cx-text-muted) !important; padding: 14px !important; text-align: center; }

/* ── Status/mode tags & chips restants ── */
body.ab-page .sw-mode-tag,
body.ab-page .sw-log-child-tag,
body.ab-page .sw-preview-badge,
body.ab-page .sw-log-badge {
    background: var(--cx-border-soft) !important;
    border: 1px solid var(--cx-border) !important;
    color: var(--cx-ink-soft) !important;
    border-radius: 999px !important;
}

/* ── Toolbar: neutralise le bouton "Save" en surbrillance vive ── */
body.ab-page .sw-btn-save {
    background: var(--cx-ink) !important;
    color: var(--cx-bg) !important;
    border: none !important;
}
body.ab-page .sw-btn-save:hover { opacity: .85 !important; }

/* ═══════════════════════════════════════════════════════════════
   AGENT DOCGEN — ULTRA PRO / MINIMALIST OVERRIDE (dg-*)
   Réutilise les tokens --cx-* déjà définis.
   À charger APRÈS agent-builder-pro-override.css
   ═══════════════════════════════════════════════════════════════ */

/* ── Fix double-cadre : conversation picker dropdown ── */
body.ab-page .dg-conv-picker-dropdown {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius) !important;
    box-shadow: 0 12px 32px rgba(0,0,0,.12) !important;
}
body.dark-mode .dg-conv-picker-dropdown {
    box-shadow: 0 12px 32px rgba(0,0,0,.4) !important;
}
body.ab-page .dg-conv-picker-search-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
    background: var(--cx-border-soft) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
    padding: 0 10px !important;
    margin-bottom: 6px;
}
body.ab-page .dg-conv-picker-search-wrap:focus-within {
    border-color: var(--cx-ink) !important;
}
body.ab-page .dg-conv-picker-search-icon {
    color: var(--cx-text-faint) !important;
    font-size: 11px !important;
}
body.ab-page .dg-conv-picker-search-input {
    flex: 1;
    background: transparent !important;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    padding: 8px 0 !important;
    font-size: 12px !important;
    color: var(--cx-ink) !important;
}
body.ab-page .dg-conv-picker-search-input::placeholder { color: var(--cx-text-faint) !important; }
body.ab-page .dg-conv-picker-loading { padding: 20px; text-align: center; color: var(--cx-text-muted) !important; font-size: 12px; }
body.ab-page .dg-conv-picker-item:hover { background: var(--cx-border-soft) !important; }

/* ── Panel: Agent Builder DocGen config (dg-builder-panel) ── */
body.ab-page .dg-builder-panel { color: var(--cx-ink) !important; }
body.ab-page .dg-type-picker { display: flex; flex-wrap: wrap; gap: 8px; }
body.ab-page .dg-type-pick-btn {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    color: var(--cx-ink-soft) !important;
    border-radius: var(--cx-radius-sm) !important;
    padding: 8px 12px !important;
    display: flex; align-items: center; gap: 6px;
}
body.ab-page .dg-type-pick-btn.active {
    background: var(--cx-ink) !important;
    color: var(--cx-bg) !important;
    border-color: var(--cx-ink) !important;
}
body.ab-page .dg-type-pick-icon { font-size: 12px; }

/* ── DocGen View shell ── */
body.ab-page .dg-view { display: flex; height: 100%; background: var(--cx-bg-subtle) !important; }
body.ab-page .dg-library-panel {
    background: var(--cx-bg) !important;
    border-right: 1px solid var(--cx-border) !important;
}
body.ab-page .dg-library-header { border-bottom: 1px solid var(--cx-border) !important; }
body.ab-page .dg-library-title { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .dg-new-btn {
    background: var(--cx-ink) !important;
    color: var(--cx-bg) !important;
    border-radius: var(--cx-radius-sm) !important;
    font-weight: 700 !important;
    border: none !important;
}
body.ab-page .dg-new-btn:hover { opacity: .85 !important; }

body.ab-page .dg-lib-tabs { display: flex; flex-wrap: wrap; gap: 6px; padding: 10px 14px; border-bottom: 1px solid var(--cx-border) !important; }
body.ab-page .dg-lib-tab {
    background: var(--cx-border-soft) !important;
    border: 1px solid var(--cx-border) !important;
    color: var(--cx-text-muted) !important;
    border-radius: 999px !important;
    font-weight: 600 !important;
    padding: 5px 12px !important;
    font-size: 11px !important;
}
body.ab-page .dg-lib-tab.active {
    background: var(--cx-ink) !important;
    color: var(--cx-bg) !important;
    border-color: var(--cx-ink) !important;
}

body.ab-page .dg-lib-list { overflow-y: auto; flex: 1; padding: 10px; }
body.ab-page .dg-lib-loading, body.ab-page .dg-lib-empty {
    color: var(--cx-text-muted) !important;
    text-align: center;
    padding: 30px 14px;
}
body.ab-page .dg-lib-empty i { color: var(--cx-text-faint) !important; font-size: 26px; display: block; margin-bottom: 8px; }

body.ab-page .dg-lib-item {
    display: flex; align-items: center; gap: 10px;
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
    padding: 10px !important;
    margin-bottom: 6px;
    cursor: pointer;
    transition: border-color .15s ease !important;
}
body.ab-page .dg-lib-item:hover,
body.ab-page .dg-lib-item.active { border-color: var(--cx-ink) !important; background: var(--cx-border-soft) !important; }
body.ab-page .dg-lib-item-icon {
    width: 34px; height: 34px; border-radius: var(--cx-radius-sm) !important;
    display: flex; align-items: center; justify-content: center; flex-shrink: 0;
    background: var(--cx-border-soft) !important;
    color: var(--cx-ink-soft) !important;
}
body.ab-page .dg-lib-item-title { color: var(--cx-ink) !important; font-weight: 700 !important; font-size: 12.5px; }
body.ab-page .dg-lib-item-meta { color: var(--cx-text-muted) !important; font-size: 11px; }
body.ab-page .dg-lib-item-del { color: var(--cx-text-faint) !important; background: none !important; border: none !important; }
body.ab-page .dg-lib-item-del:hover { color: var(--cx-danger) !important; }

/* ── Content area / Empty state ── */
body.ab-page .dg-content-area { flex: 1; display: flex; flex-direction: column; overflow: hidden; }
body.ab-page .dg-empty-state { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; text-align: center; padding: 40px; }
body.ab-page .dg-empty-icon { font-size: 40px; color: var(--cx-text-faint) !important; margin-bottom: 14px; }
body.ab-page .dg-empty-title { color: var(--cx-ink) !important; font-weight: 700 !important; font-size: 15px; }
body.ab-page .dg-empty-sub { color: var(--cx-text-muted) !important; margin: 8px 0 18px; max-width: 320px; }
body.ab-page .dg-btn-primary {
    background: var(--cx-ink) !important;
    color: var(--cx-bg) !important;
    border: none !important;
    border-radius: var(--cx-radius-sm) !important;
    font-weight: 700 !important;
    padding: 10px 18px !important;
}
body.ab-page .dg-btn-primary:hover { opacity: .85 !important; }
body.ab-page .dg-btn-ghost {
    background: transparent !important;
    border: 1px solid var(--cx-border) !important;
    color: var(--cx-ink-soft) !important;
    border-radius: var(--cx-radius-sm) !important;
    font-weight: 600 !important;
    padding: 10px 16px !important;
}
body.ab-page .dg-btn-ghost:hover { border-color: var(--cx-ink) !important; color: var(--cx-ink) !important; }
body.ab-page .dg-btn-ghost-sm {
    background: var(--cx-border-soft) !important;
    border: 1px solid var(--cx-border) !important;
    color: var(--cx-ink-soft) !important;
    border-radius: var(--cx-radius-sm) !important;
    font-size: 11px !important;
    padding: 6px 10px !important;
}
body.ab-page .dg-btn-ghost-sm:hover { border-color: var(--cx-ink) !important; color: var(--cx-ink) !important; }

/* ── Wizard ── */
body.ab-page .dg-wizard { background: var(--cx-bg) !important; display: flex; flex-direction: column; height: 100%; }
body.ab-page .dg-wizard-header {
    display: flex; align-items: center; justify-content: space-between;
    border-bottom: 1px solid var(--cx-border) !important;
    padding: 14px 20px;
}
body.ab-page .dg-wizard-steps { display: flex; gap: 20px; }
body.ab-page .dg-wizard-step { display: flex; align-items: center; gap: 8px; color: var(--cx-text-muted) !important; font-size: 12px; font-weight: 600; }
body.ab-page .dg-wizard-step-num {
    width: 22px; height: 22px; border-radius: 50%;
    background: var(--cx-border-soft) !important;
    color: var(--cx-ink-soft) !important;
    display: flex; align-items: center; justify-content: center;
    font-size: 11px; font-weight: 700;
}
body.ab-page .dg-wizard-step.active { color: var(--cx-ink) !important; }
body.ab-page .dg-wizard-step.active .dg-wizard-step-num { background: var(--cx-ink) !important; color: var(--cx-bg) !important; }
body.ab-page .dg-wizard-step.completed .dg-wizard-step-num { background: var(--cx-success) !important; color: #fff !important; }
body.ab-page .dg-wizard-close { color: var(--cx-text-muted) !important; background: none !important; border: none !important; }
body.ab-page .dg-wizard-close:hover { color: var(--cx-ink) !important; }
body.ab-page .dg-wizard-body { flex: 1; overflow-y: auto; padding: 24px 28px; }
body.ab-page .dg-wizard-step-title { color: var(--cx-ink) !important; font-weight: 700 !important; font-size: 15px; margin-bottom: 18px; }
body.ab-page .dg-wizard-actions { display: flex; justify-content: space-between; margin-top: 28px; border-top: 1px solid var(--cx-border) !important; padding-top: 18px; }

/* ── Step 1: Type grid ── */
body.ab-page .dg-type-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px,1fr)); gap: 14px; }
body.ab-page .dg-type-card {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius) !important;
    padding: 18px !important;
    cursor: pointer;
    transition: border-color .15s ease !important;
}
body.ab-page .dg-type-card:hover,
body.ab-page .dg-type-card.selected { border-color: var(--cx-ink) !important; background: var(--cx-border-soft) !important; }
body.ab-page .dg-type-card-icon {
    width: 46px; height: 46px; border-radius: var(--cx-radius-sm) !important;
    display: flex; align-items: center; justify-content: center;
    margin-bottom: 10px;
    filter: grayscale(100%) !important; /* neutralise le gradient coloré */
    background: var(--cx-ink) !important;
}
body.ab-page .dg-type-card-label { color: var(--cx-ink) !important; font-weight: 700 !important; font-size: 13px; }
body.ab-page .dg-type-card-desc { color: var(--cx-text-muted) !important; font-size: 11.5px; margin: 4px 0 8px; }
body.ab-page .dg-type-card-audience { color: var(--cx-text-faint) !important; font-size: 10.5px; }
body.ab-page .dg-type-card-sections {
    margin-top: 8px; display: inline-block;
    background: var(--cx-border-soft) !important;
    color: var(--cx-ink-soft) !important;
    border-radius: 999px !important;
    padding: 2px 8px !important;
    font-size: 10px; font-weight: 700;
}

/* ── Step 2: Metadata form ── */
body.ab-page .dg-meta-form { display: flex; flex-direction: column; gap: 14px; }
body.ab-page .dg-meta-two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
body.ab-page .dg-meta-label { color: var(--cx-ink-soft) !important; font-weight: 600 !important; font-size: 12px; display: block; margin-bottom: 6px; }
body.ab-page .dg-meta-label-hint { color: var(--cx-text-faint) !important; font-weight: 400; font-size: 11px; }
body.ab-page .dg-meta-input {
    width: 100%;
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
    color: var(--cx-ink) !important;
    padding: 9px 12px !important;
    font-size: 12.5px !important;
}
body.ab-page .dg-meta-input:focus { border-color: var(--cx-ink) !important; outline: none !important; }
body.ab-page .dg-meta-textarea { resize: vertical; font-family: inherit; }
body.ab-page .dg-meta-source-actions { margin-top: 8px; }

/* ── Step 3: Generating ── */
body.ab-page .dg-generating { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 50px 20px; }
body.ab-page .dg-generating-icon {
    width: 60px; height: 60px; border-radius: var(--cx-radius) !important;
    display: flex; align-items: center; justify-content: center;
    background: var(--cx-ink) !important;
    margin-bottom: 18px;
}
body.ab-page .dg-generating-title { color: var(--cx-ink) !important; font-weight: 700 !important; font-size: 15px; }
body.ab-page .dg-generating-sub { color: var(--cx-text-muted) !important; font-size: 12px; margin: 10px 0 16px; }
body.ab-page .dg-generating-progress { width: 100%; max-width: 320px; height: 5px; background: var(--cx-border) !important; border-radius: 4px; overflow: hidden; }
body.ab-page .dg-generating-bar { height: 100%; background: var(--cx-ink) !important; transition: width .3s ease; }
body.ab-page .dg-think-slot { width: 100%; max-width: 480px; margin: 14px 0; }

/* ── Step 4: Preview inside wizard ── */
body.ab-page .dg-wizard-preview { display: flex; flex-direction: column; height: 100%; }
body.ab-page .dg-wizard-preview-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; flex-wrap: wrap; gap: 10px; }
body.ab-page .dg-wizard-preview-badge {
    background: var(--cx-ink) !important;
    color: var(--cx-bg) !important;
    border-radius: 999px !important;
    padding: 6px 14px !important;
    font-size: 12px; font-weight: 700;
    display: flex; align-items: center; gap: 8px;
}
body.ab-page .dg-wizard-export-row { display: flex; gap: 8px; }
body.ab-page .dg-wizard-iframe { border: 1px solid var(--cx-border) !important; border-radius: var(--cx-radius) !important; }

/* ── Export buttons (shared: preview header + wizard) ── */
body.ab-page .dg-export-bar { display: flex; gap: 8px; padding: 10px 20px; border-bottom: 1px solid var(--cx-border) !important; background: var(--cx-border-soft) !important; }
body.ab-page .dg-export-btn {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    color: var(--cx-ink-soft) !important;
    border-radius: var(--cx-radius-sm) !important;
    font-weight: 600 !important;
    font-size: 11.5px !important;
    padding: 7px 12px !important;
    display: flex; align-items: center; gap: 6px;
}
body.ab-page .dg-export-btn:hover { border-color: var(--cx-ink) !important; color: var(--cx-ink) !important; }
body.ab-page .dg-export-del { color: var(--cx-danger) !important; }
body.ab-page .dg-export-del:hover { border-color: var(--cx-danger) !important; background: var(--cx-danger-bg) !important; }

/* ── Preview wrap (library open doc) ── */
body.ab-page .dg-preview-wrap { display: flex; flex-direction: column; height: 100%; }
body.ab-page .dg-preview-header { padding: 14px 20px; border-bottom: 1px solid var(--cx-border) !important; }
body.ab-page .dg-preview-doc-info { display: flex; align-items: center; gap: 12px; }
body.ab-page .dg-preview-doc-icon {
    width: 38px; height: 38px; border-radius: var(--cx-radius-sm) !important;
    display: flex; align-items: center; justify-content: center;
    background: var(--cx-border-soft) !important;
    color: var(--cx-ink-soft) !important;
}
body.ab-page .dg-preview-doc-title { color: var(--cx-ink) !important; font-weight: 700 !important; font-size: 14px; }
body.ab-page .dg-preview-doc-meta { color: var(--cx-text-muted) !important; font-size: 11.5px; }
body.ab-page .dg-preview-iframe { flex: 1; border: none !important; background: var(--cx-bg) !important; }

/* ── Inline chat button "Generate Document" ── */
body.ab-page .dg-inline-action-wrap { position: relative; display: inline-block; margin: 6px 0; }
body.ab-page .dg-inline-btn {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    color: var(--cx-ink-soft) !important;
    border-radius: var(--cx-radius-sm) !important;
    font-weight: 600 !important;
    font-size: 11.5px !important;
    padding: 7px 12px !important;
    display: inline-flex; align-items: center; gap: 6px;
}
body.ab-page .dg-inline-btn:hover { border-color: var(--cx-ink) !important; color: var(--cx-ink) !important; }
body.ab-page .dg-inline-btn-icon { color: var(--cx-text-muted) !important; }
body.ab-page .dg-inline-btn-chevron { font-size: 9px; color: var(--cx-text-faint) !important; }
body.ab-page .dg-inline-type-picker {
    display: none;
    position: absolute; top: calc(100% + 4px); left: 0; z-index: 50;
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
    box-shadow: 0 8px 24px rgba(0,0,0,.12) !important;
    min-width: 180px;
    padding: 6px;
}
body.ab-page .dg-inline-type-picker.open { display: block; }
body.ab-page .dg-inline-type-opt {
    display: flex; align-items: center; gap: 8px;
    width: 100%; text-align: left;
    background: none !important; border: none !important;
    color: var(--cx-ink-soft) !important;
    border-radius: var(--cx-radius-sm) !important;
    padding: 7px 10px !important;
    font-size: 12px !important;
}
body.ab-page .dg-inline-type-opt:hover { background: var(--cx-border-soft) !important; color: var(--cx-ink) !important; }

/* ── Thinking block (dg-think) — alignement palette neutre ── */
body.ab-page .dg-think { background: var(--cx-bg) !important; border: 1px solid var(--cx-border) !important; }
body.ab-page .dg-think-header:hover { background: var(--cx-border-soft) !important; }
body.ab-page .dg-think-label { color: var(--cx-ink-soft) !important; }
body.ab-page .dg-think-ring { border-color: var(--cx-border) !important; border-top-color: var(--cx-ink) !important; }
body.ab-page .dg-think-text { color: var(--cx-text-muted) !important; border-top-color: var(--cx-border-soft) !important; }
body.ab-page .dg-think-dots i { background: var(--cx-text-faint) !important; }
body.ab-page .dg-think-chev { color: var(--cx-text-faint) !important; }
body.ab-page .dg-typing-cursor { background: var(--cx-ink) !important; }

/* ── Générique: neutralise tous les gradients de type de doc restants ── */
body.ab-page [style*="background:linear-gradient"].dg-type-card-icon,
body.ab-page [style*="background: linear-gradient"].dg-type-card-icon {
    background: var(--cx-ink) !important;
}

/* ── FIX — Tool Modal code block : contraste garanti dans les 2 thèmes ── */
body.ab-page .ab-tool-modal-pre {
    background: #0a0a0a !important;   /* toujours sombre, indépendant du thème */
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
    padding: 14px 16px !important;
    overflow-x: auto;
}
body.ab-page .ab-tool-modal-pre code,
body.ab-page #abModalToolParams {
    color: #e5e5e5 !important;        /* texte clair forcé, jamais hérité */
    background: transparent !important;
    font-family: 'JetBrains Mono', monospace !important;
    font-size: 12.5px !important;
    line-height: 1.6 !important;
    white-space: pre !important;
}

/* ═══════════════════════════════════════════════════════════════
   AGENT BUILDER — index.html additions (ab-kb-*, ab-history-*,
   ab-search-history-*, ab-react-*, ab-metrics-*, ab-tool-modal-*)
   ═══════════════════════════════════════════════════════════════ */

/* ── ReAct monitor bar ── */
body.ab-page .ab-react-bar { background: var(--cx-bg) !important; border-bottom: 1px solid var(--cx-border) !important; }
body.ab-page .ab-react-step, body.ab-page .ab-react-tool { color: var(--cx-ink-soft) !important; }
body.ab-page .ab-react-progress { background: var(--cx-border) !important; }
body.ab-page .ab-react-progress-fill { background: var(--cx-ink) !important; }
body.ab-page .ab-react-iter { color: var(--cx-text-muted) !important; }

/* ── Session metrics bar ── */
body.ab-page .ab-metrics-bar { background: var(--cx-bg) !important; border-bottom: 1px solid var(--cx-border) !important; }
body.ab-page .ab-metric-label { color: var(--cx-text-muted) !important; }
body.ab-page .ab-metric-val { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .ab-metrics-close { color: var(--cx-text-muted) !important; }

/* ── Knowledge Base view ── */
body.ab-page .ab-kb-layout { display: grid; gap: 16px; }
body.ab-page .ab-kb-card {
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius) !important;
}
body.ab-page .ab-kb-card-title { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .ab-kb-card-sub { color: var(--cx-text-muted) !important; }
body.ab-page .ab-kb-formats-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(140px,1fr)); gap: 10px; }
body.ab-page .ab-kb-format-card {
    background: var(--cx-border-soft) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
    padding: 12px !important; text-align: center;
}
body.ab-page .ab-kb-format-name { color: var(--cx-ink) !important; font-weight: 700 !important; display: block; margin-top: 6px; }
body.ab-page .ab-kb-format-detail { color: var(--cx-text-faint) !important; font-size: 10.5px; }
body.ab-page .ab-kb-empty { color: var(--cx-text-muted) !important; text-align: center; padding: 20px; }
body.ab-page .ab-kb-session-item {
    display: flex; align-items: center; gap: 10px;
    background: var(--cx-border-soft) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
    padding: 10px 12px !important; margin-bottom: 6px;
}
body.ab-page .ab-kb-session-name { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .ab-kb-session-meta { color: var(--cx-text-muted) !important; font-size: 11px; }
body.ab-page .ab-kb-session-status { color: var(--cx-success) !important; font-size: 11px; font-weight: 700; margin-left: auto; }
body.ab-page .ab-kb-card-tips { background: var(--cx-border-soft) !important; }
body.ab-page .ab-kb-tips-title { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .ab-kb-tips-list { color: var(--cx-text-muted) !important; }

/* ── History view groups ── */
body.ab-page .ab-history-agent-filter { padding: 10px 0; }
body.ab-page .ab-haf-label { color: var(--cx-text-muted) !important; font-weight: 700 !important; }
body.ab-page .ab-haf-pill {
    background: var(--cx-border-soft) !important;
    border: 1px solid var(--cx-border) !important;
    color: var(--cx-ink-soft) !important;
    border-radius: 999px !important; font-weight: 600 !important;
}
body.ab-page .ab-haf-pill-active { background: var(--cx-ink) !important; color: var(--cx-bg) !important; border-color: var(--cx-ink) !important; }
body.ab-page .ab-haf-pill-count { background: rgba(0,0,0,.08) !important; border-radius: 999px !important; padding: 1px 6px; font-size: 10px; }
body.ab-page .ab-history-group-header {
    display: flex; align-items: center; gap: 8px;
    color: var(--cx-ink) !important; font-weight: 700 !important;
    padding: 10px 4px; border-bottom: 1px solid var(--cx-border) !important;
}
body.ab-page .ab-history-group-agent { cursor: pointer; }
body.ab-page .ab-history-group-agent:hover { color: var(--cx-ink-soft) !important; }
body.ab-page .ab-history-group-count { background: var(--cx-border-soft) !important; color: var(--cx-text-muted) !important; border-radius: 999px !important; padding: 1px 8px; font-size: 10px; }
body.ab-page .ab-history-group-action { margin-left: auto; color: var(--cx-text-faint) !important; font-size: 11px; }
body.ab-page .ab-history-agent-header { display: flex; align-items: center; gap: 12px; padding: 8px 4px 12px; }
body.ab-page .ab-history-back-btn { background: var(--cx-border-soft) !important; border: 1px solid var(--cx-border) !important; color: var(--cx-ink-soft) !important; border-radius: var(--cx-radius-sm) !important; }
body.ab-page .ab-history-agent-title { color: var(--cx-ink) !important; font-weight: 700 !important; display: flex; align-items: center; gap: 8px; }
body.ab-page .ab-history-item {
    display: flex; gap: 12px;
    background: var(--cx-bg) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
    padding: 12px !important; margin-bottom: 8px;
}
body.ab-page .ab-history-item:hover { border-color: var(--cx-ink-soft) !important; }
body.ab-page .ab-history-item-icon {
    width: 36px; height: 36px; border-radius: var(--cx-radius-sm) !important;
    background: var(--cx-border-soft) !important; display: flex; align-items: center; justify-content: center;
}
body.ab-page .ab-history-item-title-text { color: var(--cx-ink) !important; font-weight: 700 !important; }
body.ab-page .ab-history-item-badge { background: var(--cx-border-soft) !important; color: var(--cx-ink-soft) !important; border-radius: 999px !important; padding: 1px 8px; font-size: 9px; font-weight: 700; margin-left: 6px; }
body.ab-page .ab-history-item-preview { color: var(--cx-text-muted) !important; font-size: 12px; margin: 4px 0; }
body.ab-page .ab-history-item-meta { color: var(--cx-text-faint) !important; font-size: 11px; display: flex; gap: 10px; }
body.ab-page .ab-history-item-actions { display: flex; gap: 4px; margin-left: auto; }

/* ── Search history ── */
body.ab-page .ab-search-history-item {
    display: flex; align-items: center; gap: 8px;
    background: var(--cx-border-soft) !important;
    border: 1px solid var(--cx-border) !important;
    border-radius: var(--cx-radius-sm) !important;
    padding: 8px 12px !important; margin-bottom: 6px; cursor: pointer;
}
body.ab-page .ab-search-history-item:hover { border-color: var(--cx-ink) !important; }
body.ab-page .ab-sh-query { color: var(--cx-ink-soft) !important; }
body.ab-page .ab-sh-meta { color: var(--cx-text-faint) !important; margin-left: auto; font-size: 10px; }

/* ── Tool modal (complément, hors bug fix ci-dessus) ── */
body.ab-page .ab-tool-modal-params h4 { color: var(--cx-ink) !important; font-weight: 700 !important; font-size: 12px; margin-bottom: 8px; }
body.ab-page .ab-error-block {
    display: flex; gap: 10px; align-items: flex-start;
    background: var(--cx-danger-bg) !important;
    border: 1px solid var(--cx-danger) !important;
    border-radius: var(--cx-radius-sm) !important;
    padding: 12px !important; color: var(--cx-danger) !important;
}

/* ── Thinking dots (welcome placeholder) ── */
body.ab-page .ab-thinking { display: flex; align-items: center; gap: 6px; color: var(--cx-text-muted) !important; }
body.ab-page .ab-thinking-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--cx-text-faint) !important; animation: ab-dot-blink 1.1s infinite; }
body.ab-page .ab-thinking-dot:nth-child(2) { animation-delay: .15s; }
body.ab-page .ab-thinking-dot:nth-child(3) { animation-delay: .3s; }
@keyframes ab-dot-blink { 0%,80%,100%{opacity:.25} 40%{opacity:1} }
body.ab-page .ab-thinking-label { color: var(--cx-text-muted) !important; font-size: 12px; }