/* Document.Web Enterprise UI Polish Baseline – Phase 29.9.1
   Applies only to DWATS/DWDS Enterprise page surfaces.
   No feature-page layout ownership is introduced here. */

:root {
    --dw-enterprise-page-max: 1680px;
    --dw-enterprise-page-gutter: clamp(16px, 2vw, 28px);
    --dw-enterprise-section-gap: clamp(14px, 1.5vw, 20px);
    --dw-enterprise-card-gap: clamp(12px, 1.25vw, 18px);
    --dw-enterprise-card-padding: clamp(14px, 1.4vw, 20px);
    --dw-enterprise-control-height: 40px;
    --dw-enterprise-touch-target: 44px;
}

/* One page rhythm for all DWATS rendered pages. */
.dw-page-frame {
    min-width: 0;
}

.dw-page-frame__inner {
    width: min(100%, var(--dw-enterprise-page-max));
    margin-inline: auto;
    padding: var(--dw-enterprise-page-gutter);
    gap: var(--dw-enterprise-section-gap);
}

.dw-page-frame__inner > .dw-page-zone {
    min-width: 0;
}

/* Headers and toolbars use one spacing language. */
.dw-page-frame .dw-hero {
    gap: var(--dw-enterprise-card-gap);
    padding: var(--dw-enterprise-card-padding);
}

.dw-page-frame .dw-action-bar,
.dw-page-frame .dw-data-toolbar {
    gap: var(--dw-enterprise-card-gap);
}

.dw-page-frame .dw-action-bar {
    min-height: var(--dw-enterprise-touch-target);
    padding: 8px 12px;
}

.dw-page-frame button,
.dw-page-frame [role="button"],
.dw-page-frame input,
.dw-page-frame select,
.dw-page-frame textarea {
    min-height: var(--dw-enterprise-control-height);
}

.dw-page-frame button,
.dw-page-frame [role="button"],
.dw-page-frame a.dwds-button,
.dw-page-frame a.dw-button {
    min-height: var(--dw-enterprise-touch-target);
}

/* Cards/sections remain token-driven and gain consistent inner spacing. */
.dw-page-frame .dw-sidebar__content,
.dw-page-frame .dw-section__content,
.dw-page-frame .dw-card__content {
    min-width: 0;
}

.dw-page-frame .dw-content-grid,
.dw-page-frame .dw-widget-area,
.dw-page-frame .dw-metrics-row {
    gap: var(--dw-enterprise-card-gap);
}

/* Data-heavy pages must not force the whole shell wider than the viewport. */
.dw-page-frame table,
.dw-page-frame .dw-data-table,
.dw-page-frame .dw-data-grid {
    max-width: 100%;
}

.dw-page-frame .table-responsive,
.dw-page-frame .dw-table-scroll,
.dw-page-frame .dw-data-table-scroll {
    overflow-x: auto;
    overscroll-behavior-inline: contain;
}

/* Predictable focus treatment without overriding theme colors. */
.dw-page-frame :where(button, a, input, select, textarea, [tabindex]):focus-visible {
    outline: 3px solid var(--dw-color-focus, Highlight);
    outline-offset: 2px;
}

/* Long labels/titles should wrap instead of breaking layouts. */
.dw-page-frame :where(h1, h2, h3, h4, strong, .dw-hero__title) {
    overflow-wrap: anywhere;
}

/* Mobile baseline shared by management, detail, dashboard and explorer templates. */
@media (max-width: 760px) {
    .dw-page-frame__inner {
        padding: 14px;
        gap: 14px;
    }

    .dw-page-frame .dw-hero,
    .dw-page-frame .dw-action-bar,
    .dw-page-frame .dw-data-toolbar,
    .dw-page-frame .dw-page-footer {
        align-items: stretch;
    }

    .dw-page-frame .dw-action-bar__primary,
    .dw-page-frame .dw-action-bar__secondary {
        width: 100%;
    }

    .dw-page-frame .dw-action-bar__primary > *,
    .dw-page-frame .dw-action-bar__secondary > * {
        max-width: 100%;
    }
}

@media (max-width: 480px) {
    .dw-page-frame__inner {
        padding: 10px;
        gap: 12px;
    }

    .dw-page-frame .dw-hero {
        padding: 14px;
    }
}

/* Accessibility modes remain theme/system controlled. */
@media (prefers-reduced-motion: reduce) {
    .dw-page-frame *,
    .dw-page-frame *::before,
    .dw-page-frame *::after {
        scroll-behavior: auto !important;
    }
}

@media (forced-colors: active) {
    .dw-page-frame :where(button, a, input, select, textarea, [tabindex]):focus-visible {
        outline-color: Highlight;
    }
}

/* Phase 29.9.2 – Management pages visual consistency.
   Projects, Documents, Knowledge, Reviews and Administration only use
   their existing semantic classes; this layer normalizes their visual rhythm. */

.dw-page-frame :where(
    .dwats-projects-result-count,
    .dwats-documents-result-count,
    .dwats-knowledge-result-count,
    .dwats-review-result-count,
    .dwats-admin-result-count
) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 7rem;
    min-height: 2rem;
    padding-inline: .75rem;
    border: 1px solid var(--dw-border-subtle, var(--dw-border-subtle));
    border-radius: 999px;
    background: var(--dw-surface-raised, var(--dw-surface-raised));
    color: var(--dw-text-muted, var(--dw-text-muted));
    font-size: .78rem;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
}

/* One filter-field language across all Management.Default pages. */
.dw-page-frame .dwats-data-filter-field {
    min-width: min(100%, 10rem);
    display: grid;
    align-content: start;
    gap: .35rem;
    color: var(--dw-text-muted, var(--dw-text-muted));
    font-size: .76rem;
    font-weight: 700;
}

.dw-page-frame .dwats-data-filter-field > span {
    min-height: 1rem;
}

.dw-page-frame .dwats-data-filter-field :where(select, input) {
    width: 100%;
    min-height: var(--dw-enterprise-control-height);
    padding-inline: .65rem;
    border: 1px solid var(--dw-border-subtle, var(--dw-border-subtle));
    border-radius: var(--dw-radius-md, .5rem);
    background: var(--dw-surface-raised, var(--dw-surface-raised));
    color: var(--dw-text-primary, var(--dw-text-primary));
    font: inherit;
    font-weight: 500;
}

/* Management cards share the same physical footprint without changing content. */
.dw-page-frame :where(
    .dwats-project-card,
    .dwats-document-card,
    .dwats-knowledge-card,
    .dwats-admin-module-card,
    .dwats-review-card,
    .dw-review-queue-preset
) {
    border-color: var(--dw-border-subtle, var(--dw-border-subtle));
    border-radius: var(--dw-radius-xl, .875rem);
    box-shadow: var(--dw-shadow-sm, 0 1px 3px rgba(0,0,0,.08));
}

.dw-page-frame :where(
    .dwats-project-card,
    .dwats-document-card,
    .dwats-knowledge-card,
    .dwats-admin-module-card
):hover {
    border-color: var(--dw-border-strong, var(--dw-border-strong));
    box-shadow: var(--dw-shadow-md, 0 8px 24px rgba(0,0,0,.10));
}

/* Administration cards now follow the same card anatomy as other management pages. */
.dw-page-frame .dwats-admin-module-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
    gap: var(--dw-enterprise-card-gap);
}

.dw-page-frame .dwats-admin-module-card {
    min-width: 0;
    min-height: 10.5rem;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-areas:
        "icon body"
        "status status";
    align-content: start;
    gap: var(--dw-space-3, .75rem);
    padding: var(--dw-enterprise-card-padding);
    border: 1px solid var(--dw-border-subtle, var(--dw-border-subtle));
    background:
        radial-gradient(circle at top right, color-mix(in srgb, var(--dw-accent) 10%, transparent), transparent 45%),
        var(--dw-surface-raised, var(--dw-surface-raised));
    color: var(--dw-text-primary, var(--dw-text-primary));
    text-align: left;
    cursor: pointer;
}

.dw-page-frame .dwats-admin-module-card__icon {
    grid-area: icon;
    width: 2.75rem;
    height: 2.75rem;
    display: grid;
    place-items: center;
    border-radius: var(--dw-radius-lg, .75rem);
    background: var(--dw-accent-soft, color-mix(in srgb, var(--dw-color-accent) 12%, transparent));
    color: var(--dw-accent, var(--dw-color-accent));
    font-weight: 800;
}

.dw-page-frame .dwats-admin-module-card__body {
    grid-area: body;
    min-width: 0;
    display: grid;
    gap: .35rem;
}

.dw-page-frame .dwats-admin-module-card__body :where(strong, span) {
    overflow-wrap: anywhere;
}

.dw-page-frame .dwats-admin-module-card__body span {
    color: var(--dw-text-muted, var(--dw-text-muted));
    font-size: .84rem;
    line-height: 1.45;
}

.dw-page-frame .dwats-admin-module-card__status {
    grid-area: status;
    justify-self: start;
    display: inline-flex;
    align-items: center;
    min-height: 1.75rem;
    padding: .2rem .6rem;
    border: 1px solid var(--dw-border-subtle, var(--dw-border-subtle));
    border-radius: 999px;
    color: var(--dw-text-muted, var(--dw-text-muted));
    font-size: .7rem;
    font-weight: 750;
}

.dw-page-frame .dwats-admin-module-card.is-selected {
    border-color: var(--dw-accent, var(--dw-color-accent));
    box-shadow: inset 0 0 0 1px var(--dw-accent, var(--dw-color-accent));
}

/* Administration workspace tables behave like the existing enterprise data tables. */
.dw-page-frame .dwats-admin-table-wrap {
    width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
}

.dw-page-frame .dwats-admin-table {
    width: 100%;
    min-width: 42rem;
    border-collapse: collapse;
}

.dw-page-frame .dwats-admin-table :where(th, td) {
    padding: .7rem .75rem;
    border-bottom: 1px solid var(--dw-border-subtle, var(--dw-border-subtle));
    text-align: left;
    vertical-align: middle;
}

.dw-page-frame .dwats-admin-table th {
    color: var(--dw-text-muted, var(--dw-text-muted));
    font-size: .72rem;
    letter-spacing: .035em;
    text-transform: uppercase;
}

/* Review preset cards use the same spacing scale as the main management cards. */
.dw-page-frame .dw-review-queue-presets {
    gap: var(--dw-enterprise-card-gap);
    margin-block: 0 var(--dw-enterprise-section-gap);
}

.dw-page-frame .dw-review-queue-preset {
    padding: var(--dw-enterprise-card-padding);
}

/* Status/filter toolbars stay readable when there are many controls. */
.dw-page-frame :where(.dw-data-toolbar, .dwats-data-filter-grid, .dw-data-filters) {
    min-width: 0;
}

.dw-page-frame :where(.dwats-data-filter-grid, .dw-data-filters) {
    gap: var(--dw-enterprise-card-gap);
}

/* Keep card content density coherent at the management breakpoint. */
@media (max-width: 900px) {
    .dw-page-frame .dwats-admin-workspace-grid {
        grid-template-columns: 1fr;
    }

    .dw-page-frame .dwats-admin-module-grid {
        grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
    }
}

@media (max-width: 640px) {
    .dw-page-frame :where(
        .dwats-projects-result-count,
        .dwats-documents-result-count,
        .dwats-knowledge-result-count,
        .dwats-review-result-count,
        .dwats-admin-result-count
    ) {
        min-width: 0;
        max-width: 100%;
        white-space: normal;
    }

    .dw-page-frame .dwats-data-filter-field {
        width: 100%;
        min-width: 0;
    }

    .dw-page-frame .dwats-admin-module-grid {
        grid-template-columns: 1fr;
    }

    .dw-page-frame .dwats-admin-module-card {
        min-height: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .dw-page-frame :where(
        .dwats-project-card,
        .dwats-document-card,
        .dwats-knowledge-card,
        .dwats-admin-module-card,
        .dwats-review-card,
        .dw-review-queue-preset
    ) {
        transition: none !important;
        transform: none !important;
    }
}

@media (forced-colors: active) {
    .dw-page-frame :where(
        .dwats-projects-result-count,
        .dwats-documents-result-count,
        .dwats-knowledge-result-count,
        .dwats-review-result-count,
        .dwats-admin-result-count,
        .dwats-data-filter-field select,
        .dwats-data-filter-field input,
        .dwats-admin-module-card,
        .dwats-admin-module-card__status,
        .dwats-admin-table :where(th, td)
    ) {
        border-color: CanvasText;
    }

    .dw-page-frame .dwats-admin-module-card.is-selected {
        outline: 2px solid Highlight;
        outline-offset: 2px;
        box-shadow: none;
    }
}

/* Phase 29.9.3 – Detail pages visual consistency.
   Project, Document and Knowledge details retain their feature-specific content,
   while tabs, properties, summary cards and timeline surfaces share one rhythm. */

.dw-page-frame :where(
    .dwats-project-detail-main,
    .dwats-document-detail-main,
    .dwats-knowledge-detail-main
) {
    display: grid;
    gap: var(--dw-enterprise-section-gap);
    min-width: 0;
}

/* Shared horizontal tab navigation. */
.dw-page-frame :where(
    .dwats-project-detail-tabs,
    .dwats-document-detail-tabs,
    .dwats-knowledge-detail-tabs
) {
    display: flex;
    align-items: center;
    gap: .35rem;
    padding: .35rem;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
    border: 1px solid var(--dw-border-subtle, var(--dw-border-subtle));
    border-radius: var(--dw-radius-lg, .75rem);
    background: var(--dw-surface, var(--dw-surface-subtle));
}

.dw-page-frame :where(
    .dwats-project-detail-tabs,
    .dwats-document-detail-tabs,
    .dwats-knowledge-detail-tabs
) button {
    flex: 0 0 auto;
    min-width: max-content;
    min-height: var(--dw-enterprise-touch-target);
    padding: .6rem .85rem;
    border-radius: var(--dw-radius-md, .5rem);
    font-weight: 700;
}

.dw-page-frame :where(
    .dwats-project-detail-tabs,
    .dwats-document-detail-tabs,
    .dwats-knowledge-detail-tabs
) button.is-active {
    box-shadow: var(--dw-shadow-sm, 0 1px 3px rgba(0,0,0,.08));
}

/* Overview and governance cards share the same internal geometry. */
.dw-page-frame :where(
    .dwats-project-detail-overview-grid,
    .dwats-document-detail-overview-grid,
    .dwats-knowledge-detail-overview-grid,
    .dwats-knowledge-detail-governance-grid
) {
    gap: var(--dw-enterprise-card-gap);
}

.dw-page-frame :where(
    .dwats-project-detail-summary,
    .dwats-project-detail-callout,
    .dwats-document-detail-summary,
    .dwats-document-detail-callout,
    .dwats-knowledge-detail-summary,
    .dwats-knowledge-detail-governance-grid > article
) {
    min-width: 0;
    padding: var(--dw-enterprise-card-padding);
    border-color: var(--dw-border-subtle, var(--dw-border-subtle));
    border-radius: var(--dw-radius-lg, .75rem);
    box-shadow: var(--dw-shadow-sm, 0 1px 3px rgba(0,0,0,.08));
}

/* Property inspectors use one definition-list rhythm. */
.dw-page-frame :where(
    .dwats-project-detail-properties,
    .dwats-document-detail-properties,
    .dwats-knowledge-detail-properties
) {
    display: grid;
    gap: 0;
    margin: 0;
}

.dw-page-frame :where(
    .dwats-project-detail-properties,
    .dwats-document-detail-properties,
    .dwats-knowledge-detail-properties
) > div {
    min-width: 0;
    display: grid;
    gap: .25rem;
    padding-block: .75rem;
    border-bottom: 1px solid var(--dw-border-subtle, var(--dw-border-subtle));
}

.dw-page-frame :where(
    .dwats-project-detail-properties,
    .dwats-document-detail-properties,
    .dwats-knowledge-detail-properties
) > div:first-child {
    padding-top: 0;
}

.dw-page-frame :where(
    .dwats-project-detail-properties,
    .dwats-document-detail-properties,
    .dwats-knowledge-detail-properties
) > div:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.dw-page-frame :where(
    .dwats-project-detail-properties,
    .dwats-document-detail-properties,
    .dwats-knowledge-detail-properties
) dt {
    color: var(--dw-text-muted, var(--dw-text-muted));
    font-size: .76rem;
    font-weight: 650;
}

.dw-page-frame :where(
    .dwats-project-detail-properties,
    .dwats-document-detail-properties,
    .dwats-knowledge-detail-properties
) dd {
    min-width: 0;
    margin: 0;
    color: var(--dw-text-primary, var(--dw-text-primary));
    font-weight: 650;
    overflow-wrap: anywhere;
}

/* Repeated list/version/relation rows use matching physical treatment. */
.dw-page-frame :where(
    .dwats-project-detail-list-item,
    .dwats-document-version-card,
    .dwats-knowledge-detail-list-item,
    .dwats-knowledge-detail-relation
) {
    border-color: var(--dw-border-subtle, var(--dw-border-subtle));
    border-radius: var(--dw-radius-md, .5rem);
    box-shadow: none;
}

.dw-page-frame :where(
    button.dwats-project-detail-list-item,
    .dwats-knowledge-detail-relation
):hover {
    border-color: var(--dw-accent, var(--dw-color-accent));
}

/* Quick-action blocks should look like sibling cards. */
.dw-page-frame .dwats-document-detail-action-grid {
    gap: var(--dw-enterprise-card-gap);
}

.dw-page-frame .dwats-document-detail-action-grid button {
    min-height: 6rem;
    padding: var(--dw-enterprise-card-padding);
    border-color: var(--dw-border-subtle, var(--dw-border-subtle));
    border-radius: var(--dw-radius-lg, .75rem);
}

/* Timeline surfaces share the same card spacing. */
.dw-page-frame :where(
    .dwats-project-detail-timeline,
    .dwats-document-detail-timeline
) {
    gap: var(--dw-enterprise-card-gap);
}

.dw-page-frame :where(
    .dwats-project-detail-timeline article > div,
    .dwats-document-detail-timeline article > div
) {
    padding: .8rem .9rem;
    border-color: var(--dw-border-subtle, var(--dw-border-subtle));
    border-radius: var(--dw-radius-md, .5rem);
}

/* Forms/actions use the same inter-control spacing. */
.dw-page-frame :where(
    .dwats-project-detail-form,
    .dwats-document-detail-form,
    .dwats-knowledge-detail-relation-editor
) {
    gap: var(--dw-enterprise-card-gap);
}

.dw-page-frame :where(
    .dwats-project-detail-alert-actions,
    .dwats-project-detail-form-actions,
    .dwats-document-version-actions,
    .dwats-knowledge-relation-actions
) {
    gap: .5rem;
}

/* Tablet: large overview groups collapse before content gets cramped. */
@media (max-width: 980px) {
    .dw-page-frame :where(
        .dwats-project-detail-overview-grid,
        .dwats-document-detail-overview-grid,
        .dwats-knowledge-detail-overview-grid
    ) {
        grid-template-columns: 1fr;
    }

    .dw-page-frame .dwats-knowledge-detail-governance-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Mobile: detail pages remain readable without nested horizontal layouts.
   Tab bars intentionally remain horizontally scrollable. */
@media (max-width: 640px) {
    .dw-page-frame :where(
        .dwats-project-detail-tabs,
        .dwats-document-detail-tabs,
        .dwats-knowledge-detail-tabs
    ) {
        margin-inline: 0;
        padding: .3rem;
    }

    .dw-page-frame :where(
        .dwats-project-detail-tabs,
        .dwats-document-detail-tabs,
        .dwats-knowledge-detail-tabs
    ) button {
        min-height: var(--dw-enterprise-touch-target);
    }

    .dw-page-frame .dwats-knowledge-detail-governance-grid {
        grid-template-columns: 1fr;
    }

    .dw-page-frame .dwats-document-detail-action-grid {
        grid-template-columns: 1fr;
    }

    .dw-page-frame .dwats-document-version-card {
        grid-template-columns: 1fr;
    }

    .dw-page-frame .dwats-document-version-meta {
        justify-items: start;
        white-space: normal;
    }
}

@media (prefers-reduced-motion: reduce) {
    .dw-page-frame :where(
        .dwats-project-detail-tabs button,
        .dwats-document-detail-tabs button,
        .dwats-knowledge-detail-tabs button,
        .dwats-project-detail-list-item,
        .dwats-knowledge-detail-relation
    ) {
        transition: none !important;
        transform: none !important;
    }
}

@media (forced-colors: active) {
    .dw-page-frame :where(
        .dwats-project-detail-tabs,
        .dwats-document-detail-tabs,
        .dwats-knowledge-detail-tabs,
        .dwats-project-detail-summary,
        .dwats-project-detail-callout,
        .dwats-document-detail-summary,
        .dwats-document-detail-callout,
        .dwats-knowledge-detail-summary,
        .dwats-knowledge-detail-governance-grid > article,
        .dwats-project-detail-list-item,
        .dwats-document-version-card,
        .dwats-knowledge-detail-list-item,
        .dwats-knowledge-detail-relation
    ) {
        border-color: CanvasText;
    }
}

/* Phase 29.9.4 – Explorer & Workflow visual consistency. */

.dw-page-frame :where(
    .dwats-explorer-view-switch,
    .enterprise-workflow-tabs
) {
    display: flex;
    align-items: center;
    gap: .35rem;
    padding: .35rem;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
    border: 1px solid var(--dw-border-subtle, var(--dw-border-subtle));
    border-radius: var(--dw-radius-lg, .75rem);
    background: var(--dw-surface, var(--dw-surface-subtle));
}

.dw-page-frame :where(
    .dwats-explorer-view-switch,
    .enterprise-workflow-tabs
) > button {
    flex: 0 0 auto;
    min-width: max-content;
    min-height: var(--dw-enterprise-touch-target);
    padding: .6rem .85rem;
    border: 0;
    border-radius: var(--dw-radius-md, .5rem);
    background: transparent;
    color: var(--dw-text-muted, var(--dw-text-muted));
    font: inherit;
    font-weight: 700;
    white-space: nowrap;
    cursor: pointer;
}

.dw-page-frame :where(
    .dwats-explorer-view-switch,
    .enterprise-workflow-tabs
) > button:hover,
.dw-page-frame :where(
    .dwats-explorer-view-switch,
    .enterprise-workflow-tabs
) > button:focus-visible {
    background: var(--dw-surface-hover, var(--dw-surface-overlay));
    color: var(--dw-text-primary, var(--dw-text-primary));
}

.dw-page-frame :where(
    .dwats-explorer-view-switch,
    .enterprise-workflow-tabs
) > button.is-active {
    background: var(--dw-accent, var(--dw-color-accent));
    color: var(--dw-text-inverse);
    box-shadow: var(--dw-shadow-sm, 0 1px 3px rgba(0,0,0,.08));
}

.dw-page-frame .enterprise-workflow-tabpanel {
    min-width: 0;
    display: grid;
    gap: var(--dw-enterprise-section-gap);
}

.dw-page-frame .enterprise-workflow-tabpanel:focus-visible {
    outline: 3px solid var(--dw-color-focus, Highlight);
    outline-offset: 3px;
    border-radius: var(--dw-radius-md, .5rem);
}

/* Explorer panels and workflow cards follow the same workspace card language. */
.dw-page-frame :where(
    .dwats-explorer-panel,
    .dwats-explorer-canvas,
    .enterprise-workflow-templates > article,
    .enterprise-workflow-admin-grid > article,
    .enterprise-workflow-validation
) {
    min-width: 0;
    border: 1px solid var(--dw-border-subtle, var(--dw-border-subtle));
    border-radius: var(--dw-radius-lg, .75rem);
    background: var(--dw-surface-raised, var(--dw-surface-raised));
    box-shadow: var(--dw-shadow-sm, 0 1px 3px rgba(0,0,0,.08));
}

.dw-page-frame :where(
    .enterprise-workflow-templates,
    .enterprise-workflow-admin-grid
) {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
    gap: var(--dw-enterprise-card-gap);
}

.dw-page-frame .enterprise-workflow-templates > article,
.dw-page-frame .enterprise-workflow-admin-grid > article {
    display: grid;
    align-content: start;
    gap: .5rem;
    padding: var(--dw-enterprise-card-padding);
}

.dw-page-frame .enterprise-workflow-templates > article {
    grid-template-columns: auto minmax(0, 1fr);
}

.dw-page-frame .enterprise-workflow-templates > article > span {
    display: grid;
    place-items: center;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: var(--dw-radius-lg, .75rem);
    background: var(--dw-accent-soft, color-mix(in srgb, var(--dw-color-accent) 12%, transparent));
    color: var(--dw-accent, var(--dw-color-accent));
    font-weight: 800;
}

.dw-page-frame .enterprise-workflow-templates > article > div {
    min-width: 0;
}

.dw-page-frame .enterprise-workflow-templates :where(h3, p),
.dw-page-frame .enterprise-workflow-admin-grid :where(strong, span) {
    overflow-wrap: anywhere;
}

.dw-page-frame .enterprise-workflow-templates h3 {
    margin: .15rem 0;
}

.dw-page-frame .enterprise-workflow-templates p,
.dw-page-frame .enterprise-workflow-admin-grid span {
    margin: 0;
    color: var(--dw-text-muted, var(--dw-text-muted));
    line-height: 1.5;
}

.dw-page-frame .enterprise-workflow-templates > article > button {
    grid-column: 1 / -1;
    justify-self: start;
}

/* Validation aligns with DWDS warning surfaces instead of looking like an isolated block. */
.dw-page-frame .enterprise-workflow-validation {
    display: grid;
    gap: .5rem;
    padding: var(--dw-enterprise-card-padding);
    border-color: var(--dw-color-warning, #b54708);
    background: color-mix(in srgb, var(--dw-color-warning, #b54708) 8%, var(--dw-surface-raised, var(--dw-surface-raised)));
}

.dw-page-frame .enterprise-workflow-validation ul {
    margin: 0;
    padding-inline-start: 1.25rem;
}

/* Explorer workspace internal rhythm. */
.dw-page-frame .dwats-explorer-heading {
    gap: var(--dw-enterprise-card-gap);
}

.dw-page-frame .dwats-explorer-kpis {
    gap: var(--dw-enterprise-card-gap);
}

.dw-page-frame :where(
    .dw-explorer-relationship-list,
    .dw-explorer-activity-list,
    .dw-explorer-impact-group
) {
    gap: var(--dw-enterprise-card-gap);
}

.dw-page-frame :where(
    .dw-explorer-relationship-list article,
    .dw-explorer-activity-list > button,
    .dw-explorer-impact-group > button
) {
    padding: .8rem;
    border-color: var(--dw-border-subtle, var(--dw-border-subtle));
    border-radius: var(--dw-radius-md, .5rem);
    background: var(--dw-surface-raised, var(--dw-surface-raised));
}

/* Mobile workspace behavior. */
@media (max-width: 760px) {
    .dw-page-frame :where(
        .dwats-explorer-view-switch,
        .enterprise-workflow-tabs
    ) {
        width: 100%;
    }

    .dw-page-frame :where(
        .enterprise-workflow-templates,
        .enterprise-workflow-admin-grid
    ) {
        grid-template-columns: 1fr;
    }

    .dw-page-frame .enterprise-workflow-templates > article {
        grid-template-columns: auto minmax(0, 1fr);
    }
}

@media (max-width: 480px) {
    .dw-page-frame :where(
        .dwats-explorer-view-switch,
        .enterprise-workflow-tabs
    ) {
        padding: .3rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .dw-page-frame :where(
        .dwats-explorer-view-switch button,
        .enterprise-workflow-tabs button,
        .enterprise-workflow-templates > article,
        .enterprise-workflow-admin-grid > article
    ) {
        transition: none !important;
        transform: none !important;
    }
}

@media (forced-colors: active) {
    .dw-page-frame :where(
        .dwats-explorer-view-switch,
        .enterprise-workflow-tabs,
        .dwats-explorer-panel,
        .dwats-explorer-canvas,
        .enterprise-workflow-templates > article,
        .enterprise-workflow-admin-grid > article,
        .enterprise-workflow-validation
    ) {
        border-color: CanvasText;
    }

    .dw-page-frame :where(
        .dwats-explorer-view-switch,
        .enterprise-workflow-tabs
    ) > button.is-active {
        outline: 2px solid Highlight;
        outline-offset: 2px;
        box-shadow: none;
    }
}

/* Phase 29.9.5 – Dashboard & Widget visual consistency. */

.dw-page-frame .enterprise-dashboard-widget-surface {
    min-width: 0;
    display: block;
}

.dw-page-frame .enterprise-dashboard-loading {
    min-width: 0;
}

/* Dashboard grid uses the same spacing token as every other enterprise card grid. */
.dw-page-frame .dw-dashboard-grid {
    gap: var(--dw-enterprise-card-gap);
    min-width: 0;
}

/* Widget shell anatomy. */
.dw-page-frame .dw-dashboard-widget {
    min-width: 0;
    border: 1px solid var(--dw-border-subtle, var(--dw-border-subtle));
    border-radius: var(--dw-radius-xl, .875rem);
    background:
        radial-gradient(circle at top right,
            color-mix(in srgb, var(--dw-accent, var(--dw-color-accent)) 7%, transparent),
            transparent 48%),
        var(--dw-surface-raised, var(--dw-surface-raised));
    box-shadow: var(--dw-shadow-sm, 0 1px 3px rgba(0,0,0,.08));
    overflow: hidden;
}

.dw-page-frame .dw-dashboard-widget:hover {
    border-color: var(--dw-border-strong, var(--dw-border-strong));
    box-shadow: var(--dw-shadow-md, 0 8px 24px rgba(0,0,0,.10));
}

.dw-page-frame .dw-dashboard-widget__header {
    min-width: 0;
    min-height: 3.75rem;
    display: flex;
    align-items: center;
    gap: var(--dw-enterprise-card-gap);
    padding: .8rem var(--dw-enterprise-card-padding);
    border-bottom: 1px solid var(--dw-border-subtle, var(--dw-border-subtle));
    background: color-mix(in srgb, var(--dw-surface-raised, var(--dw-surface-raised)) 90%, transparent);
}

.dw-page-frame .dw-dashboard-widget__identity {
    min-width: 0;
    flex: 1 1 auto;
}

.dw-page-frame .dw-dashboard-widget__identity :where(h2, strong, small) {
    overflow-wrap: anywhere;
}

.dw-page-frame .dw-dashboard-widget__identity h2 {
    margin: 0;
    font-size: 1rem;
    line-height: 1.3;
}

.dw-page-frame .dw-dashboard-widget__identity small {
    display: block;
    margin-top: .15rem;
    color: var(--dw-text-muted, var(--dw-text-muted));
}

.dw-page-frame .dw-dashboard-widget__body {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: var(--dw-enterprise-card-gap);
    padding: var(--dw-enterprise-card-padding);
}

/* Widget-internal value/list layouts share the same row rhythm. */
.dw-page-frame .dw-dashboard-widget :where(
    .dw-app-dashboard-value-grid,
    .dw-app-dashboard-list,
    [class*="dashboard-value-grid"],
    [class*="dashboard-list"]
) {
    gap: .55rem;
}

.dw-page-frame .dw-dashboard-widget :where(a, button) {
    max-width: 100%;
}

/* Designer/edit mode remains obvious but does not visually break the design system. */
.dw-page-frame .dw-dashboard-foundation.is-editing .dw-dashboard-widget[data-widget-editable="true"],
.dw-page-frame .dw-dashboard-widget[data-widget-editable="true"][aria-grabbed="true"] {
    border-style: dashed;
    border-color: var(--dw-accent, var(--dw-color-accent));
    box-shadow:
        0 0 0 2px var(--dw-accent-soft, color-mix(in srgb, var(--dw-color-accent) 12%, transparent)),
        var(--dw-shadow-sm, 0 1px 3px rgba(0,0,0,.08));
}

.dw-page-frame .dw-dashboard-widget.is-drop-target {
    outline: 3px solid var(--dw-accent, var(--dw-color-accent));
    outline-offset: 4px;
}

.dw-page-frame :where(
    .dw-dashboard-widget__drag-handle,
    .dw-dashboard-widget__menu,
    .dw-dashboard-widget__resize-handle
) {
    min-width: var(--dw-enterprise-touch-target);
    min-height: var(--dw-enterprise-touch-target);
    border-color: var(--dw-border-subtle, var(--dw-border-subtle));
}

/* Metrics use the same card geometry as widgets. */
.dw-page-frame .dw-metrics-row {
    gap: var(--dw-enterprise-card-gap);
}

.dw-page-frame .dw-metrics-row > * {
    min-width: 0;
    border-radius: var(--dw-radius-lg, .75rem);
}

/* Empty states inside widgets should breathe like normal page sections. */
.dw-page-frame .dw-dashboard-widget :where(.dw-empty-state, [class*="empty-state"]) {
    min-height: 8rem;
}

/* Tablet dashboard geometry. */
@media (max-width: 1199px) {
    .dw-page-frame .dw-dashboard-widget[data-widget-size="compact"],
    .dw-page-frame .dw-dashboard-widget[data-widget-size="standard"] {
        grid-column: span 6;
    }

    .dw-page-frame .dw-dashboard-widget[data-widget-size="wide"],
    .dw-page-frame .dw-dashboard-widget[data-widget-size="full"] {
        grid-column: 1 / -1;
    }
}

/* Mobile keeps one clear widget column and full-width designer actions. */
@media (max-width: 767px) {
    .dw-page-frame .dw-dashboard-grid {
        display: grid;
        grid-template-columns: 1fr;
        gap: var(--dw-enterprise-card-gap);
    }

    .dw-page-frame .dw-dashboard-grid > [data-widget-id],
    .dw-page-frame .dw-dashboard-widget[data-widget-size] {
        grid-column: 1 / -1 !important;
        min-height: auto;
    }

    .dw-page-frame .dw-dashboard-widget__header {
        align-items: flex-start;
    }

    .dw-page-frame .dw-dashboard-widget__actions {
        flex-wrap: wrap;
        justify-content: flex-end;
    }

    .dw-page-frame .dw-dashboard-widget__resize-handle {
        display: none !important;
    }
}

@media (max-width: 480px) {
    .dw-page-frame .dw-dashboard-widget__header,
    .dw-page-frame .dw-dashboard-widget__body {
        padding-inline: 14px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .dw-page-frame .dw-dashboard-widget,
    .dw-page-frame .dw-dashboard-widget:hover {
        transition: none !important;
        transform: none !important;
    }
}

@media (forced-colors: active) {
    .dw-page-frame .dw-dashboard-widget,
    .dw-page-frame :where(
        .dw-dashboard-widget__drag-handle,
        .dw-dashboard-widget__menu,
        .dw-dashboard-widget__resize-handle
    ) {
        border-color: CanvasText;
    }

    .dw-page-frame .dw-dashboard-foundation.is-editing .dw-dashboard-widget[data-widget-editable="true"] {
        outline: 2px dashed Highlight;
        outline-offset: 2px;
        box-shadow: none;
    }

    .dw-page-frame .dw-dashboard-widget.is-drop-target {
        outline-color: Highlight;
    }
}

/* Phase 29.9.6 – Enterprise Shell, Navigation & Global Surface Polish.
   The shell now supplies chrome only; page spacing remains owned by DWATS page frames. */

/* Avoid double outer padding: Enterprise pages already own their gutter via .dw-page-frame__inner. */
.dwats-app-root .dw-shell__content {
    min-width: 0;
    padding: 0;
}

.dwats-app-root .dw-shell__content-inner {
    width: 100%;
    max-width: none;
    min-width: 0;
    margin: 0;
}

/* Top chrome follows the same horizontal gutter rhythm as page content. */
.dwats-app-root .dw-shell__header {
    min-height: var(--dw-shell-header);
    padding-inline: var(--dw-enterprise-page-gutter);
    gap: var(--dw-enterprise-card-gap);
    border-bottom-color: var(--dw-border-subtle, var(--dw-border-subtle));
}

.dwats-app-root .dw-shell__contextbar-inner {
    width: min(100%, var(--dw-enterprise-page-max));
    min-width: 0;
    margin-inline: auto;
    padding-inline: var(--dw-enterprise-page-gutter);
    gap: var(--dw-enterprise-card-gap);
}

/* Global search and topbar controls use the same control/touch target scale. */
.dwats-app-root .dw-shell__search {
    min-width: 0;
    height: var(--dw-enterprise-touch-target);
    border-radius: var(--dw-radius-md, .5rem);
}

.dwats-app-root :where(
    .dw-shell__icon-button,
    .dw-shell__quick-button,
    .dw-shell__user-button
) {
    min-width: var(--dw-enterprise-touch-target);
    min-height: var(--dw-enterprise-touch-target);
}

.dwats-app-root .dw-shell__header-start,
.dwats-app-root .dw-shell__header-end {
    gap: .65rem;
}

/* Navigation keeps its established visual identity but adopts consistent hit targets and focus. */
.dwats-app-root .dw-navigation__link {
    min-height: var(--dw-enterprise-touch-target);
    padding-block: .55rem;
}

.dwats-app-root .dw-navigation__account {
    min-height: var(--dw-enterprise-touch-target);
}

.dwats-app-root :where(
    .dw-navigation__link,
    .dw-navigation__brand,
    .dw-navigation__account,
    .dw-shell__dropdown a
):focus-visible {
    outline: 3px solid var(--dw-color-focus, Highlight);
    outline-offset: 2px;
}

.dwats-app-root .dw-navigation__link.active {
    font-weight: 700;
}

/* Breadcrumb/context row remains readable with deep object names. */
.dwats-app-root .dw-shell__contextbar {
    min-width: 0;
}

.dwats-app-root .dw-shell__contextbar-inner > * {
    min-width: 0;
}

.dwats-app-root .dw-shell__contextbar :where(a, span, strong) {
    overflow-wrap: anywhere;
}

/* User/notification dropdowns use one surface treatment. */
.dwats-app-root .dw-shell__dropdown {
    max-width: min(24rem, calc(100vw - 1.5rem));
    padding: .55rem;
    border-color: var(--dw-border-subtle, var(--dw-border-subtle));
    border-radius: var(--dw-radius-lg, .75rem);
    background: var(--dw-surface-overlay, var(--dw-surface-raised));
    box-shadow: var(--dw-shadow-lg, 0 20px 40px rgba(0,0,0,.16));
}

.dwats-app-root .dw-shell__dropdown a {
    min-height: var(--dw-enterprise-touch-target);
}

/* Search helper surface aligns with cards and action bars. */
.dwats-app-root .enterprise-shell-search-empty {
    margin: 0;
    padding: .75rem;
    color: var(--dw-text-muted, var(--dw-text-muted));
}

.dwats-app-root .dwats-command-search-hint {
    min-width: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--dw-enterprise-card-gap);
    padding: var(--dw-enterprise-card-padding);
    border: 1px solid var(--dw-border-subtle, var(--dw-border-subtle));
    border-radius: var(--dw-radius-lg, .75rem);
    background: var(--dw-surface-raised, var(--dw-surface-raised));
}

.dwats-app-root .dwats-command-search-hint__copy {
    min-width: 0;
    display: grid;
    gap: .2rem;
}

.dwats-app-root .dwats-command-search-hint__copy strong {
    overflow-wrap: anywhere;
}

.dwats-app-root .dwats-command-search-hint__copy span {
    color: var(--dw-text-muted, var(--dw-text-muted));
    line-height: 1.45;
}

.dwats-app-root .dwats-command-search-hint > button {
    min-height: var(--dw-enterprise-touch-target);
    padding-inline: .85rem;
    border: 1px solid var(--dw-border-subtle, var(--dw-border-subtle));
    border-radius: var(--dw-radius-md, .5rem);
    background: var(--dw-accent, var(--dw-color-accent));
    color: var(--dw-text-inverse);
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

/* Sidebar version label becomes a quiet product-meta surface. */
.dwats-app-root .enterprise-shell-version {
    display: inline-flex;
    align-items: center;
    min-height: 1.75rem;
    padding: .2rem .55rem;
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 999px;
    color: #8ea1b8;
    font-size: .68rem;
    white-space: nowrap;
}

/* Tablet/mobile shell chrome. */
@media (max-width: 900px) {
    .dwats-app-root .dw-shell__header {
        padding-inline: 14px;
    }

    .dwats-app-root .dw-shell__contextbar-inner {
        padding-inline: 14px;
    }
}

@media (max-width: 640px) {
    .dwats-app-root .dw-shell__header {
        padding-inline: 10px;
        gap: .5rem;
    }

    .dwats-app-root .dw-shell__contextbar-inner {
        padding-inline: 10px;
    }

    .dwats-app-root .dw-shell__content {
        padding: 0;
    }

    .dwats-app-root .dw-shell__search {
        min-width: 0;
        width: auto;
    }

    .dwats-app-root .dwats-command-search-hint {
        grid-template-columns: 1fr;
        padding: 14px;
    }

    .dwats-app-root .dwats-command-search-hint > button {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .dwats-app-root :where(
        .dw-shell,
        .dw-shell__sidebar,
        .dw-navigation__link,
        .dw-shell__dropdown
    ) {
        transition: none !important;
        animation: none !important;
    }
}

@media (forced-colors: active) {
    .dwats-app-root :where(
        .dw-shell__header,
        .dw-shell__contextbar,
        .dw-shell__dropdown,
        .dwats-command-search-hint
    ) {
        border-color: CanvasText;
    }

    .dwats-app-root :where(
        .dw-navigation__link,
        .dw-navigation__brand,
        .dw-navigation__account,
        .dw-shell__dropdown a
    ):focus-visible {
        outline-color: Highlight;
    }

    .dwats-app-root .enterprise-shell-version {
        border-color: CanvasText;
        color: CanvasText;
    }
}

/* Phase 29.9.7 – Theme, Branding, High Contrast & Accessibility Final Polish.
   These rules consume the existing DWATS accessibility state only. */

/* Theme surfaces never assume a light or dark literal foreground/background. */
.dwats-app-root :where(
    .dw-page-frame,
    .dw-shell__main,
    .dw-shell__content,
    .dw-shell__contextbar
) {
    color: var(--dw-text-primary, var(--dw-text-primary));
}

/* Theme library behaves as an accessible single-choice surface. */
.dw-page-frame .dwats-theme-library {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
    gap: var(--dw-enterprise-card-gap);
}

.dw-page-frame .dwats-theme-card {
    min-width: 0;
    min-height: 9rem;
    display: grid;
    align-content: start;
    gap: .5rem;
    padding: var(--dw-enterprise-card-padding);
    border: 1px solid var(--dw-border-subtle, var(--dw-border-subtle));
    border-radius: var(--dw-radius-lg, .75rem);
    background: var(--dw-surface-raised, var(--dw-surface-raised));
    color: var(--dw-text-primary, var(--dw-text-primary));
    text-align: left;
    cursor: pointer;
}

.dw-page-frame .dwats-theme-card:hover {
    border-color: var(--dw-border-strong, var(--dw-border-strong));
}

.dw-page-frame .dwats-theme-card[aria-pressed="true"],
.dw-page-frame .dwats-theme-card.is-selected {
    border-color: var(--dw-accent, var(--dw-color-accent));
    box-shadow: inset 0 0 0 1px var(--dw-accent, var(--dw-color-accent));
}

.dw-page-frame .dwats-theme-card__swatches {
    display: flex;
    gap: .35rem;
}

.dw-page-frame .dwats-theme-card__swatches i {
    width: 1.5rem;
    height: 1.5rem;
    border: 1px solid var(--dw-border-strong, var(--dw-border-strong));
    border-radius: 999px;
}

.dw-page-frame .dwats-theme-fields {
    display: grid;
    gap: var(--dw-enterprise-card-gap);
}

.dw-page-frame .dwats-theme-fields > label {
    min-width: 0;
    display: grid;
    gap: .35rem;
    color: var(--dw-text-muted, var(--dw-text-muted));
    font-size: .78rem;
    font-weight: 700;
}

.dw-page-frame .dwats-theme-fields :where(input, select) {
    width: 100%;
    min-width: 0;
}

.dw-page-frame .dwats-theme-message {
    margin-block: .75rem 0;
    padding: .7rem .8rem;
    border: 1px solid var(--dw-border-subtle, var(--dw-border-subtle));
    border-radius: var(--dw-radius-md, .5rem);
    background: var(--dw-surface-subtle, var(--dw-surface-subtle));
    color: var(--dw-text-secondary, var(--dw-text-muted));
}

/* Contrast audit is never color-only: markup supplies ✓ / ! plus explicit text. */
.dw-page-frame .dwats-contrast-audit {
    display: grid;
    gap: .5rem;
    margin: 0;
}

.dw-page-frame .dwats-contrast-audit > div {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .75rem;
    align-items: center;
    padding-block: .55rem;
    border-bottom: 1px solid var(--dw-border-subtle, var(--dw-border-subtle));
}

.dw-page-frame .dwats-contrast-audit > div:last-child {
    border-bottom: 0;
}

.dw-page-frame .dwats-contrast-audit dd {
    margin: 0;
    font-weight: 750;
    white-space: nowrap;
}

.dw-page-frame .dwats-contrast-audit dd.is-pass {
    color: var(--dw-color-success, var(--dw-text-primary));
}

.dw-page-frame .dwats-contrast-audit dd.is-fail {
    color: var(--dw-color-danger, var(--dw-text-primary));
}

/* Existing accessibility setting: high contrast. */
html[data-dwats-contrast="high"] {
    --dw-enterprise-card-gap: clamp(14px, 1.4vw, 20px);
}

html[data-dwats-contrast="high"] .dwats-app-root :where(
    .dw-page-frame .dw-hero,
    .dw-page-frame .dw-action-bar,
    .dw-page-frame .dw-dashboard-widget,
    .dw-page-frame .dwats-project-card,
    .dw-page-frame .dwats-document-card,
    .dw-page-frame .dwats-knowledge-card,
    .dw-page-frame .dwats-review-card,
    .dw-page-frame .dwats-admin-module-card,
    .dw-page-frame .dwats-theme-card,
    .dw-shell__header,
    .dw-shell__contextbar,
    .dw-shell__dropdown
) {
    border-width: 2px;
    border-color: var(--dw-border-strong, var(--dw-border-strong));
    box-shadow: none;
}

/* Existing accessibility setting: maximum contrast. */
html[data-dwats-contrast="maximum"] .dwats-app-root {
    --dw-enterprise-control-height: 44px;
}

html[data-dwats-contrast="maximum"] .dwats-app-root :where(
    .dw-page-frame .dw-hero,
    .dw-page-frame .dw-action-bar,
    .dw-page-frame .dw-dashboard-widget,
    .dw-page-frame .dwats-project-card,
    .dw-page-frame .dwats-document-card,
    .dw-page-frame .dwats-knowledge-card,
    .dw-page-frame .dwats-review-card,
    .dw-page-frame .dwats-admin-module-card,
    .dw-page-frame .dwats-theme-card,
    .dw-shell__header,
    .dw-shell__contextbar,
    .dw-shell__dropdown
) {
    border-width: 2px;
    border-color: currentColor;
    box-shadow: none;
}

html[data-dwats-contrast="maximum"] .dwats-app-root :where(
    .dw-page-frame button,
    .dw-page-frame a,
    .dw-navigation__link,
    .dw-shell__dropdown a
):focus-visible {
    outline-width: 4px;
    outline-offset: 3px;
}

/* Existing accessibility setting: enhanced focus. */
html.dwats-enhanced-focus .dwats-app-root :where(
    button,
    a,
    input,
    select,
    textarea,
    summary,
    [tabindex]:not([tabindex="-1"])
):focus-visible {
    outline: 4px solid var(--dw-theme-focus, var(--dw-color-focus, Highlight));
    outline-offset: 3px;
    box-shadow: 0 0 0 2px var(--dw-surface-canvas, Canvas);
}

/* Existing accessibility setting: underline links. */
html.dwats-underline-links .dwats-app-root a:not(.dw-navigation__brand):not([class*="button"]) {
    text-decoration: underline;
    text-decoration-thickness: .1em;
    text-underline-offset: .18em;
}

/* Existing accessibility setting: reading mode. */
html.dwats-reading-mode .dw-page-frame :where(
    p,
    li,
    dd,
    .dwats-theme-message
) {
    max-width: 72ch;
    line-height: 1.7;
}

/* Existing accessibility setting: spacious/compact density affects shared polish spacing. */
html[data-dwats-a11y-density="spacious"] {
    --dw-enterprise-section-gap: clamp(18px, 2vw, 26px);
    --dw-enterprise-card-gap: clamp(16px, 1.6vw, 22px);
    --dw-enterprise-card-padding: clamp(18px, 1.8vw, 24px);
    --dw-enterprise-control-height: 44px;
}

html[data-dwats-a11y-density="compact"] {
    --dw-enterprise-section-gap: clamp(10px, 1vw, 14px);
    --dw-enterprise-card-gap: clamp(8px, .9vw, 12px);
    --dw-enterprise-card-padding: clamp(10px, 1vw, 14px);
}

/* OS/browser contrast preference remains useful before persisted settings load. */
@media (prefers-contrast: more) {
    .dwats-app-root :where(
        .dw-page-frame .dw-hero,
        .dw-page-frame .dw-action-bar,
        .dw-page-frame .dw-dashboard-widget,
        .dw-page-frame .dwats-theme-card,
        .dw-shell__header,
        .dw-shell__contextbar
    ) {
        border-width: 2px;
        border-color: var(--dw-border-strong, var(--dw-border-strong));
    }
}

/* System forced colors wins over authored theme/branding colors. */
@media (forced-colors: active) {
    .dwats-app-root :where(
        .dwats-theme-card,
        .dwats-theme-message,
        .dwats-contrast-audit > div,
        .dwats-theme-card__swatches i
    ) {
        border-color: CanvasText;
        background: Canvas;
        color: CanvasText;
        box-shadow: none;
        forced-color-adjust: auto;
    }

    .dwats-app-root .dwats-theme-card[aria-pressed="true"] {
        outline: 3px solid Highlight;
        outline-offset: 2px;
    }

    .dwats-app-root .dwats-contrast-audit dd.is-pass,
    .dwats-app-root .dwats-contrast-audit dd.is-fail {
        color: CanvasText;
    }
}

/* Persisted reduce-motion setting supplements OS preference. */
html.dwats-reduce-motion .dwats-app-root *,
html.dwats-reduce-motion .dwats-app-root *::before,
html.dwats-reduce-motion .dwats-app-root *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
}

@media (max-width: 640px) {
    .dw-page-frame .dwats-theme-library {
        grid-template-columns: 1fr;
    }

    .dw-page-frame .dwats-contrast-audit > div {
        grid-template-columns: 1fr;
        gap: .25rem;
    }

    .dw-page-frame .dwats-contrast-audit dd {
        white-space: normal;
    }
}

/* Phase 29.9.8 – Responsive, Keyboard & Interaction Final Audit. */

/* Coarse pointers receive touch-sized interactions even on larger responsive layouts. */
@media (pointer: coarse) {
    .dwats-app-root :where(
        button,
        [role="button"],
        .dw-navigation__link,
        .dw-shell__dropdown a,
        .dw-page-frame a.dwds-button,
        .dw-page-frame a.dw-button
    ) {
        min-height: var(--dw-enterprise-touch-target);
    }
}

/* Keyboard users always get a visible focus indicator on global shell and page surfaces. */
.dwats-app-root :where(
    button,
    a[href],
    input,
    select,
    textarea,
    summary,
    [role="button"],
    [role="tab"],
    [tabindex]:not([tabindex="-1"])
):focus-visible {
    outline: 3px solid var(--dw-theme-focus, var(--dw-color-focus, Highlight));
    outline-offset: 2px;
}

/* Horizontal interaction strips scroll rather than compressing targets. */
.dwats-app-root :where(
    [role="tablist"],
    .dwats-explorer-view-switch,
    .enterprise-workflow-tabs
) {
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
}

.dwats-app-root :where(
    [role="tablist"] > [role="tab"],
    .dwats-explorer-view-switch > button,
    .enterprise-workflow-tabs > button
) {
    scroll-snap-align: start;
}

/* Overlays/dialog-like surfaces stay inside the viewport. */
.dwats-app-root :where(
    .dw-shell__dropdown,
    .dwats-keyboard-help,
    .dwats-a11y-settings
) {
    max-height: min(84dvh, 48rem);
    overflow: auto;
    overscroll-behavior: contain;
}

/* Safe-area support for mobile shell chrome. */
@supports (padding: max(0px)) {
    @media (max-width: 900px) {
        .dwats-app-root .dw-shell__header {
            padding-left: max(10px, env(safe-area-inset-left));
            padding-right: max(10px, env(safe-area-inset-right));
        }

        .dwats-app-root .dw-shell__contextbar-inner {
            padding-left: max(10px, env(safe-area-inset-left));
            padding-right: max(10px, env(safe-area-inset-right));
        }
    }
}

/* Very narrow screens must never create a second horizontal page scrollbar. */
@media (max-width: 420px) {
    .dwats-app-root,
    .dwats-shell-workspace,
    .dwats-shell-content,
    .dw-page-frame,
    .dw-page-frame__inner {
        min-width: 0;
        max-width: 100%;
    }

    .dw-page-frame :where(
        input,
        select,
        textarea,
        button,
        .dwds-button,
        .dw-button
    ) {
        max-width: 100%;
    }
}

/* Landscape phones/tablets keep overlays usable without hiding the footer/actions. */
@media (max-height: 520px) and (orientation: landscape) {
    .dwats-app-root :where(
        .dw-shell__dropdown,
        .dwats-keyboard-help,
        .dwats-a11y-settings
    ) {
        max-height: calc(100dvh - 1rem);
    }
}

/* Do not synthesize hover motion on touch-only devices. */
@media (hover: none) {
    .dw-page-frame :where(
        .dw-dashboard-widget,
        .dwats-project-card,
        .dwats-document-card,
        .dwats-knowledge-card,
        .dwats-admin-module-card
    ):hover {
        transform: none;
    }
}

/* Phase 30.0.1 – Document Classification Enterprise Migration. */
.dw-page-frame .dwats-document-classification-main {
    display: grid;
    gap: var(--dw-enterprise-section-gap);
    min-width: 0;
}

.dw-page-frame .dwats-document-classification-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--dw-enterprise-card-gap);
}

.dw-page-frame .dwats-document-classification-form > label {
    min-width: 0;
    display: grid;
    align-content: start;
    gap: .4rem;
    color: var(--dw-text-muted, var(--dw-text-muted));
    font-size: .78rem;
    font-weight: 700;
}

.dw-page-frame .dwats-document-classification-form > label:nth-child(2) {
    grid-column: 1 / -1;
}

.dw-page-frame .dwats-document-classification-form :where(input, select) {
    width: 100%;
    min-width: 0;
}

.dw-page-frame .dwats-document-classification-form small {
    font-weight: 500;
    line-height: 1.45;
}

.dw-page-frame .dwats-document-classification-history {
    display: grid;
    gap: var(--dw-enterprise-card-gap);
}

.dw-page-frame .dwats-document-classification-history article {
    min-width: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--dw-enterprise-card-gap);
    align-items: center;
    padding: var(--dw-enterprise-card-padding);
    border: 1px solid var(--dw-border-subtle, var(--dw-border-subtle));
    border-radius: var(--dw-radius-lg, .75rem);
    background: var(--dw-surface-raised, var(--dw-surface-raised));
}

.dw-page-frame .dwats-document-classification-history article > div {
    min-width: 0;
    display: grid;
    gap: .2rem;
}

.dw-page-frame .dwats-document-classification-history article :where(strong, span, small) {
    overflow-wrap: anywhere;
}

.dw-page-frame .dwats-document-classification-history article span,
.dw-page-frame .dwats-document-classification-history article small {
    color: var(--dw-text-muted, var(--dw-text-muted));
}

.dw-page-frame .dwats-document-classification-history__meta {
    justify-items: end;
    text-align: right;
}

.dw-page-frame .dwats-document-classification-properties {
    display: grid;
    gap: 0;
    margin: 0;
}

.dw-page-frame .dwats-document-classification-properties > div {
    min-width: 0;
    display: grid;
    gap: .25rem;
    padding-block: .75rem;
    border-bottom: 1px solid var(--dw-border-subtle, var(--dw-border-subtle));
}

.dw-page-frame .dwats-document-classification-properties > div:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.dw-page-frame .dwats-document-classification-properties dt {
    color: var(--dw-text-muted, var(--dw-text-muted));
    font-size: .76rem;
    font-weight: 650;
}

.dw-page-frame .dwats-document-classification-properties dd {
    min-width: 0;
    margin: 0;
    font-weight: 650;
    overflow-wrap: anywhere;
}

@media (max-width: 720px) {
    .dw-page-frame .dwats-document-classification-form {
        grid-template-columns: 1fr;
    }

    .dw-page-frame .dwats-document-classification-form > label:nth-child(2) {
        grid-column: auto;
    }

    .dw-page-frame .dwats-document-classification-history article {
        grid-template-columns: 1fr;
    }

    .dw-page-frame .dwats-document-classification-history__meta {
        justify-items: start;
        text-align: left;
    }
}

@media (forced-colors: active) {
    .dw-page-frame .dwats-document-classification-history article {
        border-color: CanvasText;
    }
}

/* Phase 30.0.2 – Document Preview Annotations Enterprise Migration. */
.dw-page-frame .dwats-document-annotations-main {
    min-width: 0;
    display: grid;
    gap: var(--dw-enterprise-section-gap);
}

.dw-page-frame .dwats-document-annotations-preview {
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--dw-border-subtle, var(--dw-border-subtle));
    border-radius: var(--dw-radius-lg, .75rem);
    background: var(--dw-surface-raised, var(--dw-surface-raised));
}

.dw-page-frame .dwats-document-annotations-preview iframe {
    display: block;
    width: 100%;
    min-height: clamp(32rem, 72vh, 58rem);
    border: 0;
    background: Canvas;
}

.dw-page-frame .dwats-document-annotations-form {
    display: grid;
    grid-template-columns: minmax(8rem, .35fr) minmax(12rem, .65fr);
    gap: var(--dw-enterprise-card-gap);
}

.dw-page-frame .dwats-document-annotations-form > label {
    min-width: 0;
    display: grid;
    align-content: start;
    gap: .4rem;
    color: var(--dw-text-muted, var(--dw-text-muted));
    font-size: .78rem;
    font-weight: 700;
}

.dw-page-frame .dwats-document-annotations-form__text {
    grid-column: 1 / -1;
}

.dw-page-frame .dwats-document-annotations-form :where(input, select, textarea) {
    width: 100%;
    min-width: 0;
}

.dw-page-frame .dwats-document-annotations-list {
    display: grid;
    gap: var(--dw-enterprise-card-gap);
}

.dw-page-frame .dwats-document-annotations-list article {
    min-width: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--dw-enterprise-card-gap);
    align-items: start;
    padding: var(--dw-enterprise-card-padding);
    border: 1px solid var(--dw-border-subtle, var(--dw-border-subtle));
    border-radius: var(--dw-radius-lg, .75rem);
    background: var(--dw-surface-raised, var(--dw-surface-raised));
}

.dw-page-frame .dwats-document-annotations-list__identity {
    min-width: 0;
    display: grid;
    gap: .65rem;
}

.dw-page-frame .dwats-document-annotations-list__identity > div {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
}

.dw-page-frame .dwats-document-annotations-list__identity p {
    max-width: 90ch;
    margin: 0;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.dw-page-frame .dwats-document-annotations-list__meta {
    display: grid;
    justify-items: end;
    gap: .65rem;
    color: var(--dw-text-muted, var(--dw-text-muted));
    font-size: .78rem;
    text-align: right;
}

.dw-page-frame .dwats-document-annotations-properties {
    display: grid;
    gap: 0;
    margin: 0;
}

.dw-page-frame .dwats-document-annotations-properties > div {
    min-width: 0;
    display: grid;
    gap: .25rem;
    padding-block: .75rem;
    border-bottom: 1px solid var(--dw-border-subtle, var(--dw-border-subtle));
}

.dw-page-frame .dwats-document-annotations-properties > div:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.dw-page-frame .dwats-document-annotations-properties dt {
    color: var(--dw-text-muted, var(--dw-text-muted));
    font-size: .76rem;
    font-weight: 650;
}

.dw-page-frame .dwats-document-annotations-properties dd {
    min-width: 0;
    margin: 0;
    font-weight: 650;
    overflow-wrap: anywhere;
}

@media (max-width: 720px) {
    .dw-page-frame .dwats-document-annotations-form {
        grid-template-columns: 1fr;
    }

    .dw-page-frame .dwats-document-annotations-form__text {
        grid-column: auto;
    }

    .dw-page-frame .dwats-document-annotations-list article {
        grid-template-columns: 1fr;
    }

    .dw-page-frame .dwats-document-annotations-list__meta {
        justify-items: start;
        text-align: left;
    }

    .dw-page-frame .dwats-document-annotations-preview iframe {
        min-height: 65dvh;
    }
}

@media (forced-colors: active) {
    .dw-page-frame .dwats-document-annotations-preview,
    .dw-page-frame .dwats-document-annotations-list article {
        border-color: CanvasText;
    }
}

/* Phase 30.0.3 – Document Relations Enterprise Migration. */
.dw-page-frame .dwats-document-relations-main {
    min-width: 0;
    display: grid;
    gap: var(--dw-enterprise-section-gap);
}

.dw-page-frame .dwats-document-relations-search {
    display: grid;
    grid-template-columns: minmax(14rem, 1fr) minmax(11rem, .45fr) minmax(14rem, .8fr) auto;
    gap: var(--dw-enterprise-card-gap);
    align-items: end;
}

.dw-page-frame .dwats-document-relations-search > label {
    min-width: 0;
    display: grid;
    gap: .4rem;
    color: var(--dw-text-muted, var(--dw-text-muted));
    font-size: .78rem;
    font-weight: 700;
}

.dw-page-frame .dwats-document-relations-search :where(input, select) {
    width: 100%;
    min-width: 0;
}

.dw-page-frame :where(
    .dwats-document-relations-candidates,
    .dwats-document-relations-list
) {
    display: grid;
    gap: var(--dw-enterprise-card-gap);
    margin-top: var(--dw-enterprise-card-gap);
}

.dw-page-frame :where(
    .dwats-document-relations-candidates,
    .dwats-document-relations-list
) article {
    min-width: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--dw-enterprise-card-gap);
    padding: var(--dw-enterprise-card-padding);
    border: 1px solid var(--dw-border-subtle, var(--dw-border-subtle));
    border-radius: var(--dw-radius-lg, .75rem);
    background: var(--dw-surface-raised, var(--dw-surface-raised));
}

.dw-page-frame .dwats-document-relations-candidates article > div,
.dw-page-frame .dwats-document-relations-list__identity {
    min-width: 0;
    display: grid;
    gap: .3rem;
}

.dw-page-frame .dwats-document-relations-list__identity > div {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
}

.dw-page-frame .dwats-document-relations-list__identity :where(strong, span, p, small),
.dw-page-frame .dwats-document-relations-candidates :where(strong, span) {
    overflow-wrap: anywhere;
}

.dw-page-frame .dwats-document-relations-list__identity p {
    max-width: 90ch;
    margin: .2rem 0;
    white-space: pre-wrap;
}

.dw-page-frame .dwats-document-relations-list__identity span,
.dw-page-frame .dwats-document-relations-list__identity small,
.dw-page-frame .dwats-document-relations-candidates span {
    color: var(--dw-text-muted, var(--dw-text-muted));
}

.dw-page-frame .dwats-document-relations-list__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .5rem;
}

.dw-page-frame .dwats-document-relations-properties {
    display: grid;
    gap: 0;
    margin: 0;
}

.dw-page-frame .dwats-document-relations-properties > div {
    min-width: 0;
    display: grid;
    gap: .25rem;
    padding-block: .75rem;
    border-bottom: 1px solid var(--dw-border-subtle, var(--dw-border-subtle));
}

.dw-page-frame .dwats-document-relations-properties > div:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.dw-page-frame .dwats-document-relations-properties dt {
    color: var(--dw-text-muted, var(--dw-text-muted));
    font-size: .76rem;
    font-weight: 650;
}

.dw-page-frame .dwats-document-relations-properties dd {
    min-width: 0;
    margin: 0;
    font-weight: 650;
    overflow-wrap: anywhere;
}

@media (max-width: 980px) {
    .dw-page-frame .dwats-document-relations-search {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .dw-page-frame .dwats-document-relations-search__term,
    .dw-page-frame .dwats-document-relations-search__note {
        grid-column: span 2;
    }
}

@media (max-width: 640px) {
    .dw-page-frame .dwats-document-relations-search {
        grid-template-columns: 1fr;
    }

    .dw-page-frame .dwats-document-relations-search__term,
    .dw-page-frame .dwats-document-relations-search__note {
        grid-column: auto;
    }

    .dw-page-frame :where(
        .dwats-document-relations-candidates,
        .dwats-document-relations-list
    ) article {
        grid-template-columns: 1fr;
    }

    .dw-page-frame .dwats-document-relations-list__actions {
        justify-content: flex-start;
    }
}

@media (forced-colors: active) {
    .dw-page-frame :where(
        .dwats-document-relations-candidates,
        .dwats-document-relations-list
    ) article {
        border-color: CanvasText;
    }
}

/* Phase 30.0.4 – Document Signatures Enterprise Migration. */
.dw-page-frame .dwats-document-signatures-main {
    min-width: 0;
    display: grid;
    gap: var(--dw-enterprise-section-gap);
}

.dw-page-frame .dwats-document-signatures-form {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--dw-enterprise-card-gap);
}

.dw-page-frame .dwats-document-signatures-form > label {
    min-width: 0;
    display: grid;
    align-content: start;
    gap: .4rem;
    color: var(--dw-text-muted, var(--dw-text-muted));
    font-size: .78rem;
    font-weight: 700;
}

.dw-page-frame .dwats-document-signatures-form__reason {
    grid-column: 1 / -1;
}

.dw-page-frame .dwats-document-signatures-form :where(input, textarea) {
    width: 100%;
    min-width: 0;
}

.dw-page-frame .dwats-document-signatures-list {
    display: grid;
    gap: var(--dw-enterprise-card-gap);
}

.dw-page-frame .dwats-document-signatures-list article {
    min-width: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--dw-enterprise-card-gap);
    align-items: start;
    padding: var(--dw-enterprise-card-padding);
    border: 1px solid var(--dw-border-subtle, var(--dw-border-subtle));
    border-radius: var(--dw-radius-lg, .75rem);
    background: var(--dw-surface-raised, var(--dw-surface-raised));
}

.dw-page-frame .dwats-document-signatures-list__identity {
    min-width: 0;
    display: grid;
    gap: .35rem;
}

.dw-page-frame .dwats-document-signatures-list__identity > div {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
}

.dw-page-frame .dwats-document-signatures-list__identity :where(a, p, small, strong) {
    overflow-wrap: anywhere;
}

.dw-page-frame .dwats-document-signatures-list__identity p {
    max-width: 90ch;
    margin: .2rem 0;
    white-space: pre-wrap;
}

.dw-page-frame .dwats-document-signatures-list__identity small {
    color: var(--dw-text-muted, var(--dw-text-muted));
}

.dw-page-frame .dwats-document-signatures-list__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .5rem;
}

.dw-page-frame .dwats-document-signatures-properties {
    display: grid;
    gap: 0;
    margin: 0;
}

.dw-page-frame .dwats-document-signatures-properties > div {
    min-width: 0;
    display: grid;
    gap: .25rem;
    padding-block: .75rem;
    border-bottom: 1px solid var(--dw-border-subtle, var(--dw-border-subtle));
}

.dw-page-frame .dwats-document-signatures-properties > div:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.dw-page-frame .dwats-document-signatures-properties dt {
    color: var(--dw-text-muted, var(--dw-text-muted));
    font-size: .76rem;
    font-weight: 650;
}

.dw-page-frame .dwats-document-signatures-properties dd {
    min-width: 0;
    margin: 0;
    font-weight: 650;
    overflow-wrap: anywhere;
}

@media (max-width: 760px) {
    .dw-page-frame .dwats-document-signatures-form {
        grid-template-columns: 1fr;
    }

    .dw-page-frame .dwats-document-signatures-form__reason {
        grid-column: auto;
    }

    .dw-page-frame .dwats-document-signatures-list article {
        grid-template-columns: 1fr;
    }

    .dw-page-frame .dwats-document-signatures-list__actions {
        justify-content: flex-start;
    }
}

@media (forced-colors: active) {
    .dw-page-frame .dwats-document-signatures-list article {
        border-color: CanvasText;
    }
}

/* Phase 30.0.5 – Knowledge Scopes Enterprise Migration. */
.dw-page-frame .dwats-scope-assignments-main {
    min-width: 0;
    display: grid;
    gap: var(--dw-enterprise-section-gap);
}

.dw-page-frame .dwats-scope-assignments-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--dw-enterprise-card-gap);
}

.dw-page-frame .dwats-scope-assignments-form > label {
    min-width: 0;
    display: grid;
    align-content: start;
    gap: .4rem;
    color: var(--dw-text-muted, var(--dw-text-muted));
    font-size: .78rem;
    font-weight: 700;
}

.dw-page-frame .dwats-scope-assignments-form__wide {
    grid-column: 1 / -1;
}

.dw-page-frame .dwats-scope-assignments-form :where(select, input) {
    width: 100%;
    min-width: 0;
}

.dw-page-frame .dwats-scope-assignments-check {
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .65rem !important;
    align-items: start;
    padding: var(--dw-enterprise-card-padding);
    border: 1px solid var(--dw-border-subtle, var(--dw-border-subtle));
    border-radius: var(--dw-radius-lg, .75rem);
    background: var(--dw-surface-raised, var(--dw-surface-raised));
    cursor: pointer;
}

.dw-page-frame .dwats-scope-assignments-check input {
    width: 1.15rem;
    height: 1.15rem;
    margin-top: .1rem;
}

.dw-page-frame .dwats-scope-assignments-check > span {
    min-width: 0;
    display: grid;
    gap: .25rem;
}

.dw-page-frame .dwats-scope-assignments-check small {
    color: var(--dw-text-muted, var(--dw-text-muted));
    font-weight: 500;
    line-height: 1.45;
}

.dw-page-frame .dwats-scope-assignments-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem;
    margin-top: var(--dw-enterprise-card-gap);
}

.dw-page-frame .dwats-scope-assignments-actions > span {
    color: var(--dw-text-muted, var(--dw-text-muted));
    font-size: .8rem;
}

.dw-page-frame .dwats-scope-assignments-rules {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--dw-enterprise-card-gap);
}

.dw-page-frame .dwats-scope-assignments-rules article {
    min-width: 0;
    display: grid;
    gap: .3rem;
    padding: var(--dw-enterprise-card-padding);
    border: 1px solid var(--dw-border-subtle, var(--dw-border-subtle));
    border-radius: var(--dw-radius-lg, .75rem);
    background: var(--dw-surface-raised, var(--dw-surface-raised));
}

.dw-page-frame .dwats-scope-assignments-rules span {
    color: var(--dw-text-muted, var(--dw-text-muted));
    line-height: 1.5;
}

.dw-page-frame .dwats-scope-assignments-properties {
    display: grid;
    gap: 0;
    margin: 0;
}

.dw-page-frame .dwats-scope-assignments-properties > div {
    min-width: 0;
    display: grid;
    gap: .25rem;
    padding-block: .75rem;
    border-bottom: 1px solid var(--dw-border-subtle, var(--dw-border-subtle));
}

.dw-page-frame .dwats-scope-assignments-properties > div:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.dw-page-frame .dwats-scope-assignments-properties dt {
    color: var(--dw-text-muted, var(--dw-text-muted));
    font-size: .76rem;
    font-weight: 650;
}

.dw-page-frame .dwats-scope-assignments-properties dd {
    min-width: 0;
    margin: 0;
    font-weight: 650;
    overflow-wrap: anywhere;
}

@media (max-width: 720px) {
    .dw-page-frame .dwats-scope-assignments-form,
    .dw-page-frame .dwats-scope-assignments-rules {
        grid-template-columns: 1fr;
    }

    .dw-page-frame .dwats-scope-assignments-form__wide {
        grid-column: auto;
    }
}

@media (forced-colors: active) {
    .dw-page-frame :where(
        .dwats-scope-assignments-check,
        .dwats-scope-assignments-rules article
    ) {
        border-color: CanvasText;
    }
}

/* Phase 30.0.6 – Compliance Center Enterprise Migration. */
.dw-page-frame .dwats-compliance-main {
    min-width: 0;
    display: grid;
    gap: var(--dw-enterprise-section-gap);
}

.dw-page-frame .dwats-compliance-result-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2rem;
    padding-inline: .75rem;
    border: 1px solid var(--dw-border-subtle, var(--dw-border-subtle));
    border-radius: 999px;
    background: var(--dw-surface-raised, var(--dw-surface-raised));
    color: var(--dw-text-muted, var(--dw-text-muted));
    font-size: .78rem;
    font-weight: 700;
}

.dw-page-frame :where(
    .dwats-compliance-list,
    .dwats-compliance-audit-list,
    .dwats-compliance-capabilities
) {
    display: grid;
    gap: var(--dw-enterprise-card-gap);
}

.dw-page-frame .dwats-compliance-list article,
.dw-page-frame .dwats-compliance-audit-list article,
.dw-page-frame .dwats-compliance-capabilities article {
    min-width: 0;
    padding: var(--dw-enterprise-card-padding);
    border: 1px solid var(--dw-border-subtle, var(--dw-border-subtle));
    border-radius: var(--dw-radius-lg, .75rem);
    background: var(--dw-surface-raised, var(--dw-surface-raised));
}

.dw-page-frame .dwats-compliance-list article {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--dw-enterprise-card-gap);
}

.dw-page-frame .dwats-compliance-list__identity {
    min-width: 0;
    display: grid;
    gap: .3rem;
}

.dw-page-frame .dwats-compliance-list__identity > div {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
}

.dw-page-frame .dwats-compliance-list__identity :where(strong, span, small),
.dw-page-frame .dwats-compliance-audit-list :where(strong, p, small) {
    overflow-wrap: anywhere;
}

.dw-page-frame .dwats-compliance-list__identity span,
.dw-page-frame .dwats-compliance-list__identity small,
.dw-page-frame .dwats-compliance-audit-list small,
.dw-page-frame .dwats-compliance-capabilities span {
    color: var(--dw-text-muted, var(--dw-text-muted));
}

.dw-page-frame .dwats-compliance-list__review {
    display: grid;
    justify-items: end;
    gap: .55rem;
    text-align: right;
}

.dw-page-frame .dwats-compliance-list__review .is-overdue {
    color: var(--dw-color-danger, #b42318);
}

.dw-page-frame .dwats-compliance-list__review .is-upcoming {
    color: var(--dw-text-secondary, var(--dw-text-primary));
}

.dw-page-frame .dwats-compliance-audit-list article {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--dw-enterprise-card-gap);
    align-items: start;
}

.dw-page-frame .dwats-compliance-audit-list article > div {
    min-width: 0;
    display: grid;
    gap: .2rem;
}

.dw-page-frame .dwats-compliance-audit-list p {
    max-width: 90ch;
    margin: .2rem 0;
}

.dw-page-frame .dwats-compliance-audit-list time {
    white-space: nowrap;
    color: var(--dw-text-muted, var(--dw-text-muted));
    font-size: .78rem;
}

.dw-page-frame .dwats-compliance-capabilities {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.dw-page-frame .dwats-compliance-capabilities article {
    display: grid;
    gap: .3rem;
}

@media (max-width: 720px) {
    .dw-page-frame .dwats-compliance-list article,
    .dw-page-frame .dwats-compliance-audit-list article {
        grid-template-columns: 1fr;
    }

    .dw-page-frame .dwats-compliance-list__review {
        justify-items: start;
        text-align: left;
    }

    .dw-page-frame .dwats-compliance-audit-list time {
        white-space: normal;
    }

    .dw-page-frame .dwats-compliance-capabilities {
        grid-template-columns: 1fr;
    }
}

@media (forced-colors: active) {
    .dw-page-frame .dwats-compliance-result-count,
    .dw-page-frame .dwats-compliance-list article,
    .dw-page-frame .dwats-compliance-audit-list article,
    .dw-page-frame .dwats-compliance-capabilities article {
        border-color: CanvasText;
    }

    .dw-page-frame .dwats-compliance-list__review .is-overdue,
    .dw-page-frame .dwats-compliance-list__review .is-upcoming {
        color: CanvasText;
    }
}

/* 30.UI.1 – Auth & System Pages DWATS/DWDS Migration */
.dwats-auth-stage,
.dwats-system-stage {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: clamp(1rem, 4vw, 3rem);
    background:
        radial-gradient(circle at 15% 15%, color-mix(in srgb, var(--dw-accent) 10%, transparent), transparent 34%),
        radial-gradient(circle at 85% 85%, color-mix(in srgb, var(--dw-color-accent, #7c3aed) 8%, transparent), transparent 32%),
        var(--dw-surface-canvas, var(--dw-color-background));
}

.dwats-auth-stage > .dwats-app-template,
.dwats-system-stage > .dwats-app-template {
    width: min(100%, 760px);
}

.dwats-auth-stage .dwats-app-detail__body,
.dwats-system-stage .dwats-app-detail__body {
    grid-template-columns: minmax(0, 1fr);
}

.dwats-auth-form {
    display: grid;
    gap: 1rem;
}

.dwats-auth-form > label {
    display: grid;
    gap: .4rem;
    color: var(--dw-text-muted, var(--dw-text-muted));
    font-size: .82rem;
    font-weight: 700;
}

.dwats-auth-form :where(input[type="text"], input[type="email"], input[type="password"]) {
    width: 100%;
    min-width: 0;
}

.dwats-auth-options {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: .75rem 1rem;
    align-items: center;
}

.dwats-auth-check {
    display: inline-flex !important;
    grid-template-columns: none !important;
    align-items: center;
    gap: .55rem !important;
    cursor: pointer;
}

.dwats-auth-check input {
    width: 1rem;
    height: 1rem;
}

.dwats-auth-support {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin-top: 1rem;
    color: var(--dw-text-muted, var(--dw-text-muted));
    font-size: .82rem;
}

.dwats-auth-secondary-link {
    display: inline-flex;
    margin-top: 1rem;
    font-weight: 700;
}

.dwats-system-properties {
    display: grid;
    margin: 1rem 0 0;
}

.dwats-system-properties > div {
    display: grid;
    gap: .25rem;
}

.dwats-system-properties dt {
    color: var(--dw-text-muted, var(--dw-text-muted));
    font-size: .78rem;
    font-weight: 700;
}

.dwats-system-properties dd {
    margin: 0;
    overflow-wrap: anywhere;
}

@media (max-width: 640px) {
    .dwats-auth-stage,
    .dwats-system-stage {
        align-items: start;
        padding: .75rem;
    }

    .dwats-auth-options {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* 30.UI.1.1 – Anonymous routing and authentication layout hardening */
.dwats-anonymous-route {
    min-height: 100vh;
    min-width: 0;
}

.dwats-anonymous-route .dwats-auth-stage,
.dwats-anonymous-route .dwats-system-stage {
    width: 100%;
}

/* 30.UI.2 – DWATS operational page content primitives */
.dwats-settings-stack,
.dwats-form-stack,
.dwats-filter-stack,
.dwats-message-stack,
.dwats-record-list {
    display: grid;
    gap: var(--dw-space-4, 1rem);
}

.dwats-ui-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--dw-space-4, 1rem);
}

.dwats-form-stack > label {
    display: grid;
    gap: .4rem;
    font-weight: 650;
}

.dwats-inline-actions,
.dwats-filter-row,
.dwats-status-line {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .65rem;
}

.dwats-filter-button {
    border: 1px solid var(--dw-border-default, rgba(148,163,184,.22));
    background: var(--dw-surface-subtle, rgba(15,23,42,.35));
    color: inherit;
    border-radius: var(--dw-radius-md, .55rem);
    padding: .5rem .75rem;
    cursor: pointer;
}

.dwats-filter-button[data-active="true"] {
    border-color: var(--dw-accent);
    background: color-mix(in srgb, var(--dw-accent) 16%, transparent);
}

.dwats-record-row {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    padding: 1rem;
    border: 1px solid var(--dw-border-default, rgba(148,163,184,.18));
    border-radius: var(--dw-radius-lg, .75rem);
    background: var(--dw-surface-subtle, rgba(15,23,42,.28));
}

.dwats-record-row__content {
    min-width: 0;
}

.dwats-record-row__content p {
    margin: .25rem 0;
}

.dwats-record-row__content small {
    color: var(--dw-text-muted);
}

.dwats-record-row[data-unread="true"] {
    border-color: color-mix(in srgb, var(--dw-accent) 55%, transparent);
}

.dwats-two-factor-grid {
    display: grid;
    grid-template-columns: minmax(180px, 240px) minmax(0, 1fr);
    gap: 1.25rem;
    align-items: start;
}

/* Intentional exception: QR codes require a high-contrast white quiet zone for reliable scanner recognition. */
.dwats-qr-code {
    width: min(100%, 240px);
    aspect-ratio: 1;
    border-radius: .6rem;
    background: white;
    padding: .5rem;
}

.dwats-sensitive-output {
    margin-top: 1rem;
    padding: 1rem;
    border: 1px solid var(--dw-border-default, rgba(148,163,184,.22));
    border-radius: .65rem;
}

.dwats-sensitive-output pre {
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.dwats-status-dot {
    width: .65rem;
    height: .65rem;
    border-radius: 999px;
    background: var(--dw-color-danger, #ef4444);
}

.dwats-status-dot[data-connected="true"] {
    background: var(--dw-color-success, #22c55e);
}

@media (max-width: 800px) {
    .dwats-ui-card-grid,
    .dwats-two-factor-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .dwats-record-row {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* 30.UI.3 – DWATS platform/architecture content primitives */
.dwats-domain-card {
    min-width: 0;
    padding: var(--dw-space-4, 1rem);
    border: 1px solid var(--dw-border-default, rgba(148,163,184,.18));
    border-radius: var(--dw-radius-lg, .75rem);
    background: var(--dw-surface-subtle, rgba(15,23,42,.28));
}
.dwats-domain-card h3 { margin: .45rem 0; }
.dwats-domain-card p { margin: 0 0 .65rem; color: var(--dw-text-muted); }
.dwats-domain-card__meta { font-size: .78rem; font-weight: 700; color: var(--dw-text-muted); }
.dwats-tag-list { display: flex; flex-wrap: wrap; gap: .5rem; }
.dwats-tag {
    display: inline-flex; align-items: center; min-height: 1.8rem; padding: .25rem .55rem;
    border: 1px solid var(--dw-border-default, rgba(148,163,184,.18));
    border-radius: 999px; background: var(--dw-surface-subtle, rgba(15,23,42,.28));
    font-size: .8rem;
}

/* 30.UI.4 – final DWATS page primitives */
.dwats-filter-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--dw-space-4, 1rem);
}
.dwats-filter-grid > label,
.dwats-form-field {
    display: grid;
    gap: .4rem;
    font-weight: 650;
}
.dwats-form-wide { grid-column: 1 / -1; }
.dwats-definition-list {
    display: grid;
    gap: .75rem;
    margin: 0;
}
.dwats-definition-list > div {
    display: grid;
    grid-template-columns: minmax(120px, .35fr) minmax(0, 1fr);
    gap: 1rem;
}
.dwats-definition-list dt { color: var(--dw-text-muted); font-weight: 700; }
.dwats-definition-list dd { margin: 0; overflow-wrap: anywhere; }
.dwats-content-preview {
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    max-height: 32rem;
    overflow: auto;
}
@media (max-width: 900px) {
    .dwats-filter-grid { grid-template-columns: minmax(0, 1fr); }
    .dwats-definition-list > div { grid-template-columns: minmax(0, 1fr); gap: .25rem; }
}


/* Phase 31.9.6.4.10.10 – DWDS modal stacking hardening */
.dw-dialog-layer {
    z-index: 10000 !important;
}
