/* Theme-aware surfaces for the case workflow and task governance workspace. */
:root {
    --cg-workspace-surface: var(--cg-surface, #ffffff);
    --cg-workspace-raised: var(--cg-surface-raised, var(--cg-surface, #ffffff));
    --cg-workspace-bg: var(--cg-background, #f5f7fb);
    --cg-workspace-text: var(--ant-text-color, #1f2937);
    --cg-workspace-heading: var(--ant-heading-color, var(--cg-workspace-text));
    --cg-workspace-muted: var(--ant-text-color-secondary, #667085);
    --cg-workspace-border: var(--cg-border, #e3eaf3);
    --cg-workspace-primary: var(--cg-primary, #1677ff);
}

/* Case manager overview dashboard and case register. */
.case-page,
.register-page,
.role-workspace,
.workflow {
    color: var(--cg-workspace-text) !important;
}

.case-page :is(h1, h2, h3, h4, strong, .table-head),
.register-page :is(h1, h2, h3, h4, strong),
.role-workspace :is(h1, h2, h3, h4, strong),
.workflow :is(h1, h2, h3, h4, strong) {
    color: var(--cg-workspace-heading);
}

.case-page p,
.register-page header p,
.role-workspace p,
.workflow p,
.workflow header > div > span {
    color: var(--cg-workspace-muted);
}

.case-page :is(.kpis article, .charts section, .case-table, .action-rail > section),
.register-page :is(.register-metrics article, .stage-strip, .register-table),
.role-workspace :is(header, .menus a, .compliance-flow),
.workflow :is(nav, main > section, aside, footer) {
    border-color: var(--cg-workspace-border) !important;
    background: var(--cg-workspace-surface) !important;
    color: var(--cg-workspace-text);
    box-shadow: none;
}

.case-page :is(.kpis small, .rail-item small),
.register-page :is(.register-metrics span, .ant-timeline small),
.role-workspace :is(.menus a, .flow > div),
.workflow :is(nav button, aside small, .workflow aside small) {
    color: var(--cg-workspace-muted);
}

.case-page .kpis strong,
.case-page .rail-item b,
.register-page .register-metrics b,
.register-page .rail-item b {
    color: var(--cg-workspace-heading);
}

.register-page .stage-strip button,
.register-page .view-tabs button,
.case-page .tabs button {
    color: var(--cg-workspace-muted);
}

.register-page .stage-strip button.active,
.register-page .view-tabs .active,
.case-page .tabs button.active {
    color: var(--cg-workspace-primary);
}

.register-page .register-table th,
.case-page .case-table th {
    border-color: var(--cg-workspace-border) !important;
    background: var(--cg-workspace-raised) !important;
    color: var(--cg-workspace-muted) !important;
}

.register-page .register-table :is(th, td),
.case-page .case-table :is(th, td),
.register-page .stage-strip,
.case-page .action-rail > section,
.case-page .rail-title,
.case-page .rail-item {
    border-color: var(--cg-workspace-border) !important;
}

.register-page .register-table tr:hover,
.register-page .register-table tr.selected,
.case-page .case-table tbody tr:hover {
    background: color-mix(in srgb, var(--cg-workspace-primary) 9%, var(--cg-workspace-surface)) !important;
}

.role-workspace .menus a {
    color: var(--cg-workspace-text) !important;
}

.role-workspace .flow > div {
    background: var(--cg-workspace-raised);
    color: var(--cg-workspace-text);
}

/* New case multi-step workflow. */
.workflow nav button { color: var(--cg-workspace-muted); }
.workflow nav i {
    background: color-mix(in srgb, var(--cg-workspace-primary) 12%, var(--cg-workspace-surface));
    color: var(--cg-workspace-primary);
}
.workflow nav .active i,
.workflow nav .done i {
    background: var(--cg-workspace-primary);
    color: #fff;
}
.workflow nav button:not(:last-child)::after { color: var(--cg-workspace-muted); }
.workflow :is(label, .section-title, .mini-title, .findings-editor, .summary-panel, .linked-record, .sla-card, .readonly-field, .counter, .editor-toolbar, .aside-form) {
    color: var(--cg-workspace-text);
}
.workflow aside li,
.workflow footer,
.workflow .editor-toolbar,
.workflow .linked-record,
.workflow .sla-card,
.workflow .readonly-field,
.workflow .counter {
    border-color: var(--cg-workspace-border);
}
.workflow aside li,
.workflow .editor-toolbar,
.workflow .linked-record,
.workflow .sla-card,
.workflow .readonly-field,
.workflow .counter {
    background: var(--cg-workspace-raised);
}
.workflow aside small,
.workflow .editor-toolbar { color: var(--cg-workspace-muted); }
.workflow .ant-alert { color: var(--cg-workspace-text); }
.workflow :is(.ant-input, .ant-input-affix-wrapper, .ant-input-number, .ant-picker, .ant-select-selector, textarea) {
    border-color: var(--cg-workspace-border) !important;
    background: var(--cg-workspace-surface) !important;
    color: var(--cg-workspace-text) !important;
}
.workflow :is(.ant-input::placeholder, textarea::placeholder, .ant-select-selection-placeholder) {
    color: var(--cg-workspace-muted) !important;
}
.workflow footer {
    background: var(--cg-workspace-surface) !important;
}

/* Task details drawer: its original dark overrides were limited to one theme. */
.ant-drawer:has(.task-drawer) .task-drawer,
.ant-drawer:has(.task-drawer) .ant-drawer-body {
    color: var(--cg-workspace-text);
}
.ant-drawer:has(.task-drawer) :is(.task-drawer-header, .ant-tabs-nav::before, .drawer-audit-strip, .drawer-badge-strip) {
    border-color: var(--cg-workspace-border) !important;
}
.ant-drawer:has(.task-drawer) :is(
    .drawer-info-card, .drawer-panel-card, .context-spec-card, .context-card-button,
    .context-empty-card, .dependency-card-node, .dependency-current-node,
    .dependency-add-panel, .remediation-hero-card, .remediation-detail-card,
    .remediation-preview-card, .impact-stat, .verification-panel,
    .duplicate-item-card, .duplicate-empty-card, .duplicates-header-summary,
    .timeline-notes, .context-tab-container, .dependencies-tab-container,
    .duplicates-tab-container, .remediation-full-view
) {
    border-color: var(--cg-workspace-border) !important;
    background: var(--cg-workspace-raised) !important;
    color: var(--cg-workspace-text) !important;
    box-shadow: none;
}
.ant-drawer:has(.task-drawer) :is(
    h2, h3, h4, strong, .card-value, .spec-info h4, .dup-title, .stat-val,
    .panel-header, .ant-empty-description, .ant-timeline-item-content, .ant-tabs-tab
) { color: var(--cg-workspace-heading) !important; }
.ant-drawer:has(.task-drawer) :is(
    p, small, .card-label, .panel-desc, .card-text, .spec-info p, .context-module,
    .meta-tag, .dup-summary-text
) { color: var(--cg-workspace-muted) !important; }
.ant-drawer:has(.task-drawer) .drawer-rule-pill {
    border-color: var(--cg-workspace-border) !important;
    background: color-mix(in srgb, var(--cg-workspace-primary) 12%, var(--cg-workspace-surface)) !important;
    color: var(--cg-workspace-primary) !important;
}
.ant-drawer:has(.task-drawer) .drawer-alert-banner.alert-blocked {
    border-color: color-mix(in srgb, #a855f7 42%, var(--cg-workspace-border)) !important;
    background: color-mix(in srgb, #a855f7 12%, var(--cg-workspace-surface)) !important;
    color: color-mix(in srgb, #a855f7 78%, var(--cg-workspace-heading)) !important;
}
.ant-drawer:has(.task-drawer) :is(.ant-input, .ant-input-affix-wrapper, .ant-input-number, .ant-picker, .ant-select-selector, textarea) {
    border-color: var(--cg-workspace-border) !important;
    background: var(--cg-workspace-surface) !important;
    color: var(--cg-workspace-text) !important;
}

/* Case detail drawer: keep the summary, metadata grid, tabs, and sticky action
   readable in light, dark, and dark-compact themes. */
.ant-drawer:has(.case-drawer) {
    --case-drawer-surface: var(--cg-workspace-surface);
    --case-drawer-raised: var(--cg-workspace-raised);
    --case-drawer-border: var(--cg-workspace-border);
    --case-drawer-text: var(--cg-workspace-text);
    --case-drawer-muted: var(--cg-workspace-muted);
    --case-drawer-heading: var(--cg-workspace-heading);
    --case-drawer-accent: var(--cg-workspace-primary);
}
.ant-drawer:has(.case-drawer) .ant-drawer-content,
.ant-drawer:has(.case-drawer) .ant-drawer-header,
.ant-drawer:has(.case-drawer) .ant-drawer-body {
    border-color: var(--case-drawer-border) !important;
    background: var(--case-drawer-surface) !important;
    color: var(--case-drawer-text) !important;
}
.ant-drawer:has(.case-drawer) .ant-drawer-title,
.ant-drawer:has(.case-drawer) .case-drawer :is(h2, h3, h4, strong, .ant-tabs-tab) {
    color: var(--case-drawer-heading) !important;
}
.ant-drawer:has(.case-drawer) .case-drawer .drawer-head {
    border-color: var(--case-drawer-border) !important;
}
.ant-drawer:has(.case-drawer) .case-drawer .ant-tabs-nav::before,
.ant-drawer:has(.case-drawer) .case-drawer :is(.ant-descriptions-view, .ant-descriptions-row, .ant-descriptions-item-label, .ant-descriptions-item-content) {
    border-color: var(--case-drawer-border) !important;
}
.ant-drawer:has(.case-drawer) .case-drawer .ant-tabs-tab-btn,
.ant-drawer:has(.case-drawer) .case-drawer p,
.ant-drawer:has(.case-drawer) .case-drawer .ant-descriptions-item-content,
.ant-drawer:has(.case-drawer) .case-drawer :is(.ant-timeline-item-content, .ant-timeline-item-content small) {
    color: var(--case-drawer-text) !important;
}
.ant-drawer:has(.case-drawer) .case-drawer .ant-descriptions-item-label {
    background: color-mix(in srgb, var(--case-drawer-accent) 8%, var(--case-drawer-raised)) !important;
    color: var(--case-drawer-muted) !important;
}
.ant-drawer:has(.case-drawer) .case-drawer .ant-descriptions-item-content {
    background: var(--case-drawer-raised) !important;
}
.ant-drawer:has(.case-drawer) .case-drawer .ant-timeline-item-content small {
    color: var(--case-drawer-muted) !important;
}
.ant-drawer:has(.case-drawer) .case-drawer .drawer-footer {
    border-top: 1px solid var(--case-drawer-border);
    background: color-mix(in srgb, var(--case-drawer-surface) 94%, transparent) !important;
}
.ant-drawer:has(.case-drawer) .case-drawer .drawer-footer .ant-btn {
    min-height: 40px;
    font-weight: 600;
}

/* Owner assignment modal uses a custom card rather than Ant Design Modal. */
.assignment-modal {
    border-color: var(--cg-workspace-border) !important;
    background: var(--cg-workspace-surface) !important;
    color: var(--cg-workspace-text);
}
.assignment-modal :is(.ant-card-body, .modal-heading, .assignment-meta-bar, .assignment-user-row, .modal-actions) {
    border-color: var(--cg-workspace-border) !important;
    background: var(--cg-workspace-raised) !important;
    color: var(--cg-workspace-text) !important;
}
.assignment-modal :is(h1, h2, h3, h4, strong, .modal-eyebrow, .current-owner) {
    color: var(--cg-workspace-heading) !important;
}
.assignment-modal :is(p, small, .user-meta) { color: var(--cg-workspace-muted) !important; }
.assignment-modal .assignment-user-row:hover {
    background: color-mix(in srgb, var(--cg-workspace-primary) 9%, var(--cg-workspace-surface)) !important;
}
.assignment-modal .assignment-user-row.selected {
    border-color: var(--cg-workspace-primary) !important;
    background: color-mix(in srgb, var(--cg-workspace-primary) 14%, var(--cg-workspace-surface)) !important;
}
.assignment-modal .selected-badge {
    background: color-mix(in srgb, var(--cg-workspace-primary) 14%, var(--cg-workspace-surface));
    color: var(--cg-workspace-primary);
}

@media (max-width: 760px) {
    .case-page > header, .register-page > header { align-items: flex-start; flex-direction: column; }
    .workflow nav button { min-width: 100px; }
}

/* Shared theme coverage for executive and role-specific dashboard workspaces. */
:is(.ciso-dashboard, .portal, .audit-dashboard, .role-dashboard, .external-dashboard, .risk-dashboard, .owner-dashboard, .executive-dashboard) {
    background: var(--cg-workspace-bg) !important;
    color: var(--cg-workspace-text) !important;
}
:is(.ciso-dashboard, .portal, .audit-dashboard, .role-dashboard, .external-dashboard, .risk-dashboard, .owner-dashboard, .executive-dashboard)
    :is(h1, h2, h3, h4, strong, b, label, .ant-card-head-title, .ant-table-cell, .ant-statistic-content, .role-panel-row strong) {
    color: var(--cg-workspace-heading) !important;
}
:is(.ciso-dashboard, .portal, .audit-dashboard, .role-dashboard, .external-dashboard, .risk-dashboard, .owner-dashboard, .executive-dashboard)
    :is(p, small, em, .ant-statistic-title, .ant-typography-secondary, .role-metric-content > span, .role-metric-content > small, .role-panel-row small, .ant-empty-description) {
    color: var(--cg-workspace-muted) !important;
}
:is(.ciso-dashboard, .portal, .audit-dashboard, .role-dashboard, .external-dashboard, .risk-dashboard, .owner-dashboard, .executive-dashboard)
    :is(.ant-card, .ant-card-head, .ant-card-body, .ant-table, .ant-table-container, .ant-table-content, .role-panel, .role-metric, .metrics article, .external-metric, .ciso-metric, .external-kpis > *, .kpis > *, .risk-kpis > *, .executive-kpis > *, .register-table, .hero, .menus button) {
    border-color: var(--cg-workspace-border) !important;
    background-color: var(--cg-workspace-surface) !important;
    color: var(--cg-workspace-text) !important;
    box-shadow: none;
}
:is(.ciso-dashboard, .portal, .audit-dashboard, .role-dashboard, .external-dashboard, .risk-dashboard, .owner-dashboard, .executive-dashboard)
    :is(.ant-card-head, .ant-table-thead > tr > th, .role-panel > header, .card-head, .table-head, .tr.th, .head, .mini.head) {
    border-color: var(--cg-workspace-border) !important;
    background: var(--cg-workspace-raised) !important;
    color: var(--cg-workspace-heading) !important;
}
:is(.ciso-dashboard, .portal, .audit-dashboard, .role-dashboard, .external-dashboard, .risk-dashboard, .owner-dashboard, .executive-dashboard)
    :is(.ant-table-tbody > tr > td, .role-panel-row, .row, .tr, .compact-table .row, .watch button, .deadlines button, .remediation-row, .deadline-row, .workflow > div, .due-list button, .menus button) {
    border-color: var(--cg-workspace-border) !important;
    color: var(--cg-workspace-text) !important;
}
:is(.ciso-dashboard, .portal, .audit-dashboard, .role-dashboard, .external-dashboard, .risk-dashboard, .owner-dashboard, .executive-dashboard)
    :is(.ant-table-tbody > tr:hover > td, .role-panel-row:hover, .menus button:hover) {
    background: color-mix(in srgb, var(--cg-workspace-primary) 9%, var(--cg-workspace-surface)) !important;
}
:is(.portal, .audit-dashboard, .role-dashboard, .external-dashboard, .risk-dashboard, .owner-dashboard, .executive-dashboard) :is(.hero, .executive-header, .page-head, .role-dashboard-heading) {
    color: var(--cg-workspace-heading) !important;
}
.owner-dashboard .hero {
    background: linear-gradient(120deg, var(--cg-workspace-surface) 58%, color-mix(in srgb, var(--cg-workspace-primary) 12%, var(--cg-workspace-surface))) !important;
}
:is(.ciso-dashboard, .portal, .audit-dashboard, .role-dashboard, .external-dashboard, .risk-dashboard, .owner-dashboard, .executive-dashboard) footer {
    border-color: var(--cg-workspace-border) !important;
    background: transparent !important;
    color: var(--cg-workspace-muted) !important;
}

/* Give the small KPI glyphs enough size and contrast across role workspaces. */
.ciso-dashboard .ciso-metric { grid-template-columns: 52px 1fr 12px; color: var(--cg-workspace-text); }
.ciso-dashboard .ciso-metric > i { width: 48px; height: 48px; font-size: 23px; }
.portal .external-metric { grid-template-columns: 50px 1fr 10px; color: var(--cg-workspace-text); }
.portal .external-metric > i { width: 46px; height: 46px; font-size: 23px; }
:is(.audit-dashboard, .external-dashboard, .risk-dashboard, .owner-dashboard) .audit-kpi > span { width: 76px; height: 76px; flex: 0 0 76px; font-size: 34px; }
.audit-dashboard .metric-icon { flex-basis: 52px; width: 52px; height: 52px; font-size: 24px; }
.role-dashboard .role-metric-icon { width: 58px; height: 58px; flex-basis: 58px; font-size: 26px; }
.role-dashboard .role-metric-icon > .anticon { width: 28px; height: 28px; font-size: 26px; }

/* Date inputs: balanced horizontal inset and a readable value in every theme. */
:is(.ant-picker, input[type="date"], input[type="datetime-local"]) {
    box-sizing: border-box;
    padding-inline: 12px !important;
}
:is(.ant-picker-input, .ant-picker-range .ant-picker-input) { min-width: 0; }
.ant-picker-input > input { padding-inline: 4px !important; color: var(--cg-workspace-text) !important; }

/* Copilot uses a custom shell with light-only base styles; bind its full surface
   and controls to the active application palette instead. */
.copilot-shell-drawer .ant-drawer-content,
.copilot-shell-drawer .ant-drawer-wrapper-body,
.copilot-shell-drawer .ant-drawer-body,
.copilot-shell-drawer .copilot-drawer {
    border-color: var(--cg-workspace-border) !important;
    background: var(--cg-workspace-surface) !important;
    color: var(--cg-workspace-text) !important;
}
.copilot-shell-drawer :is(.copilot-topbar, .copilot-composer-shell, .copilot-composer, .copilot-model-picker, .copilot-result, .copilot-attachment, .copilot-friendly-error, .copilot-decision-card) {
    border-color: var(--cg-workspace-border) !important;
    background: var(--cg-workspace-raised) !important;
    color: var(--cg-workspace-text) !important;
}
.copilot-shell-drawer :is(.copilot-context, .copilot-welcome-mark, .copilot-add-button, .copilot-selected-file) {
    border-color: var(--cg-workspace-border) !important;
    background: color-mix(in srgb, var(--cg-workspace-primary) 8%, var(--cg-workspace-raised)) !important;
    color: var(--cg-workspace-text) !important;
}
.copilot-shell-drawer :is(.copilot-welcome, .copilot-welcome h2, .copilot-topbar strong, .copilot-message, .copilot-result strong, .copilot-decision-card strong, .copilot-model-picker label, .copilot-context span) {
    color: var(--cg-workspace-heading) !important;
}
.copilot-shell-drawer :is(.copilot-welcome p, .copilot-privacy, .copilot-friendly-error p, .copilot-friendly-error span, .copilot-model-picker label > span, .copilot-stream-status, .copilot-thinking) {
    color: var(--cg-workspace-muted) !important;
}
.copilot-shell-drawer :is(.ant-input, .ant-input-affix-wrapper, .ant-select-selector, textarea, .copilot-composer textarea) {
    border-color: var(--cg-workspace-border) !important;
    background: var(--cg-workspace-surface) !important;
    color: var(--cg-workspace-text) !important;
}
.copilot-shell-drawer .copilot-quick-actions .ant-btn {
    border-color: var(--cg-workspace-border) !important;
    background: var(--cg-workspace-raised) !important;
    color: var(--cg-workspace-text) !important;
}
.copilot-shell-drawer .copilot-quick-actions .ant-btn:hover {
    border-color: var(--cg-workspace-primary) !important;
    color: var(--cg-workspace-primary) !important;
}

/* Policy Catalog Compliance Overview uses nested Ant Design cards and tables;
   explicitly bind every surface to the active theme instead of light defaults. */
.policy-catalog-page,
.policy-catalog-page .ant-card,
.policy-catalog-page .ant-card-body,
.policy-catalog-page .policy-compliance-overview,
.policy-catalog-page .overview-section,
.policy-catalog-page .compliance-metric {
    background: var(--cg-workspace-surface) !important;
    color: var(--cg-workspace-text) !important;
    border-color: var(--cg-workspace-border) !important;
}
.policy-catalog-page .policy-compliance-overview :is(h3, h4, .ant-statistic-title, .ant-statistic-content, .ant-statistic-content-value, .ant-statistic-content-suffix, .section-heading, .overview-heading) {
    color: var(--cg-workspace-heading) !important;
}
.policy-catalog-page .policy-compliance-overview :is(p, .generated-at, .compliance-metric span, .cell-subtitle, .ant-empty-description, .ant-pagination, .ant-pagination-total-text) {
    color: var(--cg-workspace-muted) !important;
}
.policy-catalog-page .policy-compliance-overview :is(.ant-table, .ant-table-container, .ant-table-content, .ant-table-tbody > tr > td) {
    background: var(--cg-workspace-surface) !important;
    color: var(--cg-workspace-text) !important;
    border-color: var(--cg-workspace-border) !important;
}
.policy-catalog-page .policy-compliance-overview .ant-table-thead > tr > th {
    background: var(--cg-workspace-raised) !important;
    color: var(--cg-workspace-heading) !important;
    border-color: var(--cg-workspace-border) !important;
}
.policy-catalog-page .policy-compliance-overview .ant-table-tbody > tr:hover > td {
    background: color-mix(in srgb, var(--cg-workspace-primary) 9%, var(--cg-workspace-surface)) !important;
}
.policy-catalog-page .policy-compliance-overview :is(.ant-input, .ant-input-affix-wrapper, .ant-select-selector) {
    background: var(--cg-workspace-surface) !important;
    color: var(--cg-workspace-text) !important;
    border-color: var(--cg-workspace-border) !important;
}
