/* Планрум landing skin for every workspace. Screen-only, appearance-only:
   no dimensions, positions, padding, font sizes, display or hit-area changes.
   Material swatches, model finishes, wire colours and print sheets stay intact. */
@media screen {
  html[data-workspace] body { background-color:var(--paper); color:var(--ink); }
  html[data-workspace] :is(.app-shell,.workspace,#constructorRoot .app-shell) { background-color:var(--paper); }

  /* Editor chrome, floating properties and all modal shells. */
  html[data-workspace] :is(.topbar,.project-modes,.canvas-toolbar,.left-panel,.right-panel,
    .integration-toolbar,.project-type-nav,.workflow-tabs,.project-3d-header,.project-3d-footer,
    #constructorRoot .controls-panel,#constructorRoot .summary-panel,#constructorRoot .furniture-inspector,
    .project-cabinet,.project-name-dialog,.share-dialog,.share-modal,.finish-specification,
    .project-palette-dialog,.room-colors-dialog,.room-merge-dialog,.recognition-dialog,
    .ai-images-dialog,.ai-gallery-dialog,.ai-geometry-dialog,.ai-showroom-dialog,.ai-view-full,
    #constructorRoot .modal-card,#constructorRoot .release-modal,#constructorRoot .solutions-modal,
    #constructorRoot .ready-solutions-modal,#constructorRoot .production-modal,
    #constructorRoot .assembly-detail-dialog,#constructorRoot .cutting-sheet-dialog,.kitchen-review-dialog) {
    background-color:var(--panel); color:var(--ink); border-color:var(--line); font-family:var(--font-ui);
  }
  html[data-workspace] :is(.topbar,.project-modes,.integration-toolbar,.project-3d-header,
    .cabinet-header,.cabinet-footer,.cabinet-tabs,.spec-actions,.spec-tabs,
    .ai-images-dialog>header,.ai-gallery-dialog>header,.ai-geometry-dialog>header,.ai-showroom-dialog>header,
    #constructorRoot .furniture-inspector-heading,#constructorRoot .toolbar-menu>nav,
    #constructorRoot .integration-file-actions,#constructorRoot .modal-heading) {
    background-color:var(--paper); border-color:var(--line);
  }
  html[data-workspace] :is(.right-panel,#constructorRoot .furniture-inspector) {
    box-shadow:-5px 0 20px rgb(40 35 29 / 7%);
  }
  html[data-workspace] :is(.project-cabinet,.finish-specification,.ai-images-dialog,.ai-gallery-dialog,
    .ai-geometry-dialog,.ai-showroom-dialog,.ai-view-full,#constructorRoot .modal-card,#constructorRoot .release-modal,
    #constructorRoot .solutions-modal,#constructorRoot .production-modal,.kitchen-review-dialog) {
    box-shadow:var(--shadow-panel);
  }
  html[data-workspace] :is(.project-cabinet,.project-name-dialog,.share-dialog,.finish-specification,
    .project-palette-dialog,.room-colors-dialog,.room-merge-dialog,.recognition-dialog,
    .ai-images-dialog,.ai-gallery-dialog,.ai-geometry-dialog,.ai-showroom-dialog,.ai-view-full,.project-3d-dialog,
    .kitchen-review-dialog)::backdrop { background-color:var(--color-backdrop); }
  html[data-workspace] :is(.modal-backdrop,#constructorRoot .modal-backdrop) { background-color:var(--color-backdrop); }

  html[data-workspace] :is(.brand-name,.cabinet-wordmark,.brand-name>span,.cabinet-wordmark>span) { color:var(--ink); }
  html[data-workspace] :is(.brand-name,.cabinet-wordmark) { font-weight:600; }
  html[data-workspace] :is(.brand-name>span,.cabinet-wordmark>span) { color:var(--color-accent); }
  html[data-workspace] .brand-mark span { background-color:var(--ink-soft); }
  html[data-workspace] .brand-mark span:nth-child(2) { background-color:var(--color-accent); }

  /* Neutral controls only: never paint over user-selected material samples,
     photographic styles, frame/front colours or existing diagnostic states. */
  html[data-workspace] :is(.topbar,.project-modes,.canvas-toolbar,.left-panel,.right-panel,
    .project-3d-tools,.project-cabinet,.project-name-dialog,.share-dialog,.share-modal,
    .finish-specification,.project-palette-dialog,.room-colors-dialog,.room-merge-dialog,
    .recognition-dialog,.ai-images-dialog,.ai-gallery-dialog,.ai-geometry-dialog,.ai-showroom-dialog,.ai-view-full,
    .kitchen-review-dialog,#constructorRoot .integration-toolbar,#constructorRoot .controls-panel,
    #constructorRoot .furniture-inspector,#constructorRoot .canvas-toolbar,
    #constructorRoot .toolbar-menu,#constructorRoot .modal-card,#constructorRoot .release-modal,
    #constructorRoot .solutions-modal,#constructorRoot .ready-solutions-modal,#constructorRoot .production-modal,
    #constructorRoot .cutting-sheet-dialog,#constructorRoot .assembly-detail-dialog)
    :where(button,input:not([type=color]):not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea):where(:not(
      .finish-color,.item-swatch,.room-color-swatch,.ai-style-card,.ai-variant-card,.showroom-shot,
      [style*="--swatch"],.electrical-colors *,.kc-swatches *,
      .has-critical-errors,.has-critical-errors *,.critical,.critical *,
      .error,.error *,.collision,.collision *,.access-error,.access-error *,
      [data-error=true],[data-error=true] *,[data-state=error],
      .integration-save-error,.release-errors-link,[data-error-message],[data-error-section])) {
    background-color:var(--panel); color:var(--ink); border-color:var(--line); font-family:var(--font-ui);
  }
  html[data-workspace] :is(.workspace,#constructorRoot,.project-cabinet,.finish-specification,
    .project-palette-dialog,.recognition-dialog,.ai-images-dialog,.ai-gallery-dialog,.ai-showroom-dialog)
    :is(input[type=checkbox],input[type=radio],input[type=range]) { accent-color:var(--color-focus); }
  html[data-workspace] :is(button,input,select,textarea,summary,[contenteditable=true]):focus-visible {
    outline-color:var(--color-focus);
  }
  html[data-workspace] :is(.property-input,.numeric-stepper,.plan-numeric-stepper,
    #constructorRoot .number-control,#constructorRoot .select-control):focus-within {
    border-color:var(--color-focus); box-shadow:0 0 0 2px rgb(233 99 50 / 12%);
  }
  /* Like the landing workflow, selection is a surface plus a narrow accent. */
  html[data-workspace] :is(.project-modes button,.canvas-toolbar .canvas-action) {
    --command-color:var(--line-strong); --command-tint:var(--panel);
    border-color:var(--line); background-color:var(--panel); color:var(--ink); box-shadow:none;
  }
  html[data-workspace] :is(.project-modes,.canvas-toolbar,#constructorRoot .controls-panel,
    #constructorRoot .furniture-inspector,#constructorRoot .canvas-toolbar,#constructorRoot .toolbar-menu,
    #constructorRoot .project-type-nav,#constructorRoot .workflow-tabs,.left-panel,.right-panel,
    .finish-specification,.project-palette-dialog,.recognition-dialog,.project-cabinet)
    :is(button.active,button.selected,button[aria-pressed=true],button[aria-selected=true],button[aria-expanded=true]):where(:not(
      .has-critical-errors,.has-critical-errors *,.finish-color,.item-swatch,
      .room-color-swatch,.electrical-colors *,.kc-swatches *,
      .critical,.critical *,.error,.error *,.collision,.collision *,.access-error,.access-error *,.invalid-size)) {
    color:var(--color-accent-ink); background-color:var(--interaction-selected);
    border-color:var(--interaction-selected-border); box-shadow:var(--interaction-selected-ring);
  }
  html[data-workspace] :is(.preset-editor,.custom-inspector,.attachment-hint,.covering-result,.spec-summary,.project-current) {
    background-color:var(--color-accent-soft); border-color:var(--color-accent-border); color:var(--ink);
  }
  html[data-workspace] :is(.palette-group.expanded>.palette-group-header,.covering-tabs button[aria-selected=true],
    .spec-tabs button[aria-selected=true],.project-card.current,
    .cabinet-tabs button.active,.room-tool-section[open]>summary,.palette-card[aria-expanded=true],
    #constructorRoot .settings-module[open]>summary,#constructorRoot .filling-element-block[open]>summary,
    #constructorRoot .drawer-settings-block[open]>summary,#constructorRoot .kitchen-settings-module.active>.kitchen-settings-summary,
    #constructorRoot .compact-section-tabs button.active,#constructorRoot .level-editor-row.active,
    #constructorRoot .kc-group h3>button[aria-expanded=true],#constructorRoot .kc-plinth-sides label[data-checked=true]):where(:not(
      .has-critical-errors,.has-critical-errors *,.critical,.critical *,.error,.error *,
      .collision,.collision *,.access-error,.access-error *)) {
    background-color:var(--interaction-selected); border-color:var(--interaction-selected-border); color:var(--ink);
  }
  html[data-workspace] :is(.spec-summary b,.project-current,#projectTotal,
    .palette-kit-check,.new-project-icon,.covering-open-report,.electrical-section summary>span,
    #constructorRoot .assistant-context,#constructorRoot .kitchen-category-tabs button.active,
    #constructorRoot .compact-section-tabs button.active):where(:not(
      .has-critical-errors,.has-critical-errors *,.critical,.critical *,.error,.error *,
      .collision,.collision *,.access-error,.access-error *)) { color:var(--color-accent-ink); }
  html[data-workspace] :is(#projectTotal,.project-kind,.structure-stage-badge,
    #constructorRoot .section-layout-step>span,#constructorRoot .cabinet-section-number) {
    background-color:var(--soft); border-color:var(--line); color:var(--ink-soft);
  }
  html[data-workspace] :is(.group-count,.custom-library-heading,.room-tool-section>summary,
    .door-controls>strong,.property-help>summary,.covering-tabs,.palette-surface-tabs,
    #constructorRoot .control-heading,#constructorRoot .filling-block-heading,#constructorRoot .drawer-block-heading,
    #constructorRoot .kitchen-inspector>header,#constructorRoot .kc-group h3>button) {
    background-color:var(--paper); border-color:var(--line); color:var(--ink);
  }

  /* Furniture editor: the same skin on wardrobes, cupboards, kitchens,
     ready-made variants, hardware, parts, cutting and assembly controls. */
  html[data-workspace] #constructorRoot :is(.cabinet-start-panel,.cabinet-start-choice,.storage-preset-entry,
    .kitchen-preset-entry,.kitchen-library-heading,.kitchen-path-choice button,.kitchen-catalog-mode,
    .kitchen-module-editor,.kitchen-section-catalog article>button,.kitchen-fine-position>summary,
    .kitchen-components-panel .kc-group,.kitchen-components-panel .kc-group h3>button,
    .kitchen-section-preset-card,.settings-body,.level-editor-row,.assistant-popup,.assistant-intro,
    .readiness-details,.assembly-3d-controls,.assembly-current-copy,.cutting-overview,.cutting-dialog-toolbar):where(:not(.has-critical-errors):not(.has-critical-errors *):not(.critical):not(.error):not(.collision):not(.access-error)) {
    background-color:var(--panel); border-color:var(--line); color:var(--ink);
  }
  html[data-workspace] #constructorRoot :is(.cabinet-start-heading,.storage-preset-heading,.kitchen-library-heading,
    .kitchen-module-editor header,.cabinet-model-toolbar,.kitchen-model-toolbar,.view-switch,
    .project-zoom-controls,.cabinet-camera-controls,.kitchen-view-tabs,.kitchen-room-toolbar,
    .kitchen-room-tools,.toolbar-menu>summary,.cabinet-3d-badge,.cabinet-3d-measurements,
    .assembly-board-navigation,.assembly-footer,.sheet-meta,.kitchen-studio-toolbar) {
    background-color:var(--paper); border-color:var(--line); color:var(--ink-soft);
  }
  html[data-workspace] #constructorRoot :is(.storage-type-grid,.storage-preset-grid,.kitchen-section-catalog,
    .kitchen-components-panel,.hardware-list,.hardware-choice,.library-project-actions,.library-section-list,
    .assembly-board-navigation,.assembly-3d-controls) :is(b,strong,small,em,label):where(:not(.critical *):not(.error *):not(.has-critical-errors *):not([data-error-message])) {
    color:var(--ink-soft); font-family:var(--font-ui);
  }
  html[data-workspace] #constructorRoot :is(.kitchen-catalog-mode button.active,.kitchen-category-tabs button.active,
    .kitchen-path-choice button.active,.kitchen-settings-summary[aria-pressed=true],.hardware-choice.active,
    .segmented-control button.active,.kitchen-placement-mode button.active,.view-switch button.active,
    .workflow-tabs button.active,.project-type-nav button.active,.kitchen-view-tabs button.active,
    .library-project-actions>button[aria-pressed=true],.library-section-list>button[aria-pressed=true],
    .kc-segments button[aria-pressed=true],.kc-models button[aria-pressed=true]):where(:not(
      .has-critical-errors,.has-critical-errors *,.critical,.critical *,.error,.error *,
      .collision,.collision *,.access-error,.access-error *)) {
    background-color:var(--interaction-selected); color:var(--color-accent-ink);
    border-color:var(--interaction-selected-border); box-shadow:var(--interaction-selected-ring);
  }
  html[data-workspace] #constructorRoot :is(.library-project-actions>button,.library-section-list>button,
    .storage-type-grid button,.storage-preset-grid button,.kc-segments button,.kc-models button,
    .kitchen-category-tabs button,.compact-section-tabs button) :is(b,small,em) { color:inherit; }
  html[data-workspace] #constructorRoot .controls-panel.cabinet-library :is(.library-project-actions>button,
    .library-section-list>button,.kitchen-settings-summary)[aria-pressed=true]:where(:not(.error,.has-critical-errors)),
  html[data-workspace] #constructorRoot .kitchen-library-panel .kitchen-category-tabs button.active:where(:not(.error,.has-critical-errors)) {
    background-color:var(--interaction-selected); color:var(--color-accent-ink); border-color:var(--interaction-selected-border);
  }
  html[data-workspace] #constructorRoot .controls-panel .cabinet-start-choice>span:first-child {
    background-color:var(--color-accent-soft); color:var(--color-accent-ink);
  }
  html[data-workspace] #constructorRoot :is(.numeric-stepper,.number-control,.kitchen-number>span:last-child,
    .exact-level-field,.level-actions button,.rail-level-field,.tier-level-actions input,.tier-level-actions button) {
    background-color:var(--panel); border-color:var(--line); color:var(--ink);
  }

  /* Project cabinet and specifications: real thumbnails and material colours
     are untouched, only the surfaces and state rings change. */
  html[data-workspace] :is(.project-card,.project-name-dialog,.share-dialog,.spec-furniture-item,
    .spec-unassigned,.ai-settings-panel,.showroom-order,.showroom-scene-status li) { background-color:var(--panel); border-color:var(--line); }
  html[data-workspace] :is(.project-card-preview,.ai-image-frame,.ai-source-control,.ai-result-figure,
    .ai-reference-preview,.showroom-preview,.showroom-shot img,.ai-variant-card img) { background-color:var(--paper); }
  html[data-workspace] .project-card-preview {
    background-image:linear-gradient(rgb(105 100 91 / 6%) 1px,transparent 1px),linear-gradient(90deg,rgb(105 100 91 / 6%) 1px,transparent 1px);
  }
  html[data-workspace] .project-card:hover { border-color:var(--interaction-hover-border); box-shadow:var(--interaction-hover-shadow); }
  html[data-workspace] .project-card.current { border-color:var(--interaction-selected-border); box-shadow:var(--interaction-selected-ring); }
  html[data-workspace] :is(.project-kind,.project-card-facts,.project-card-time,.cabinet-tabs button,
    .spec-project-name,.spec-disclaimer,.spec-method,.spec-room-metrics,.spec-furniture-info,.spec-furniture-info b,
    .spec-furniture-notes,.spec-empty,.spec-furniture-item summary small,.covering-metrics,.covering-metrics b) { color:var(--ink-soft); }
  html[data-workspace] :is(.finish-specification th,.spec-tabs,.spec-actions,.cabinet-tabs,
    .project-card-top-actions button,.project-card-actions button) { background-color:var(--paper); border-color:var(--line); }
  html[data-workspace] .spec-furniture-item>summary::before { color:var(--color-accent-ink); }

  /* The cabinet's plans/token tab is a workspace too, not a separate green UI. */
  html[data-workspace] :is(.section-kicker,.commerce-section-hint,.commerce-legal-note,
    .commerce-mode-note small,.token-balance-card small,.token-balance-explanation span,
    .plan-card p,.token-pack p,.plan-label) { color:var(--muted); }
  html[data-workspace] .plan-label-accent { color:var(--color-accent-ink); }
  html[data-workspace] :is(.cabinet-commerce-view,.token-balance-card,.token-balance-explanation,
    .token-use-row,.commerce-mode-note) { background-color:var(--paper); border-color:var(--line); color:var(--ink-soft); }
  html[data-workspace] :is(.commerce-balance,.plan-card,.token-pack,.token-use-group) {
    background-color:var(--panel); border-color:var(--line); box-shadow:none;
  }
  html[data-workspace] :is(.plan-card-featured,.token-balance-card-main) { border-color:var(--color-accent-border); }
  html[data-workspace] :is(.token-balance-card b,.token-balance-card strong,.token-balance-explanation b,
    .token-pack-options b,.token-pack-options span,.plan-card ul,.plan-price,
    .plan-card-top .plan-tag,.plan-card-top .plan-status) { color:var(--ink-soft); }
  html[data-workspace] .project-cabinet .commerce-text-button { background-color:var(--panel); color:var(--color-accent-ink); border-color:var(--color-accent-border); }
  html[data-workspace] :is(.token-wallet-icon,.token-use-row b,.ai-cost-badge) {
    background-color:var(--color-accent-soft); color:var(--color-accent-ink);
  }
  html[data-workspace] .plan-card li::before { color:var(--color-accent-ink); }
  html[data-workspace] .cabinet-tabs button.active::after { background-color:var(--color-accent); }
  html[data-workspace] .commerce-status-dot { background-color:var(--color-success); box-shadow:0 0 0 3px var(--color-success-soft); }

  /* AI tools: prompts, recognition, galleries and showroom use one identity. */
  html[data-workspace] :is(.ai-images-dialog,.ai-gallery-dialog,.ai-geometry-dialog) {
    --ai-line:var(--line); --ai-ink:var(--ink); --ai-muted:var(--muted); --ai-green:var(--color-accent-ink);
  }
  html[data-workspace] :is(.ai-close,.ai-reference summary,.ai-chat-composer,.ai-reference-panel,
    .ai-shot-plan,.ai-shot-item,.ai-shot-summary-count,.ai-prompt-suggestions button,.showroom-consent,
    .recognition-tool-hint,.recognition-wall-scale,.recognition-source-board,.recognition-edit-art) {
    background-color:var(--paper); border-color:var(--line); color:var(--ink-soft);
  }
  html[data-workspace] :is(.ai-field-row label,.ai-atmosphere-field,.ai-count-field,.ai-shot-plan summary,
    .ai-images-help,.ai-image-frame>span,.ai-result-figure figcaption,#aiService,.showroom-help,
    .showroom-settings label,.showroom-warning,#showroomPlaceholder,#showroomPlaceholder p,
    .recognition-tool-hint,.recognition-result-art .recognition-map-label) { color:var(--muted); }
  html[data-workspace] :is(.ai-variant-card[aria-pressed=true],.showroom-shot[data-selected=true],
    .showroom-history button[aria-pressed=true],.ai-prompt-suggestions button[aria-pressed=true],
    .ai-gallery-grid button[aria-pressed=true],.ai-view-thumbnails button[aria-pressed=true]) {
    border-color:var(--color-focus); box-shadow:0 0 0 1px var(--color-accent-border);
  }
  html[data-workspace] :is(.ai-style-card[aria-selected=true]::before,.ai-variant-card[aria-pressed=true]::before) { border-color:var(--color-focus); }
  html[data-workspace] :is(.ai-style-card[aria-selected=true]::after,.showroom-shot b) { background-color:var(--color-primary); color:var(--color-primary-ink); }
  html[data-workspace] :is(.ai-source-control figcaption,.ai-source-actions button,.ai-image-actions button,
    .ai-result-figure figcaption,.showroom-preview>span) { background-color:var(--panel); color:var(--ink); border-color:var(--line); }
  html[data-workspace] .recognition-crop-selection { background-color:rgb(233 99 50 / 12%); border-color:var(--color-focus); }

  /* Electrical views and both assistants. Electrical wire/circuit colours,
     connection semantics and photometric overlays must not be recoloured. */
  html[data-workspace] :is(.electrical-load-summary,.electrical-led-readout,.electrical-assistant-card,
    .electrical-assistant-inventory,.electrical-orbit-tools,.electrical-orbit-tools button,
    .electrical-3d-rotate,.electrical-assistant-actions,.network-overview,.network-inline) {
    background-color:var(--paper); border-color:var(--line); color:var(--ink-soft);
  }
  html[data-workspace] :is(.electrical-assistant-panel,.electrical-assistant-heading,.electrical-assistant-status,
    .electrical-assistant-choice,.electrical-assistant-disclaimer,.electrical-load-summary b,
    .electrical-load-summary span,.electrical-load-summary small,.electrical-route-summary,.electrical-load-result,
    .electrical-legend,#constructorRoot .assistant-intro,#constructorRoot .assistant-disclaimer) { color:var(--ink-soft); }
  html[data-workspace] :is(.electrical-assistant-icon,#constructorRoot .assistant-spark,
    #electricalAssistantButton,.planner-furniture-link,#constructorRoot .sidebar-support .assistant-trigger) {
    background-color:var(--paper); border-color:var(--line); color:var(--color-accent-ink);
  }
  html[data-workspace] :is(#electricalAssistantButton.active,
    #constructorRoot .sidebar-support .assistant-trigger[aria-expanded=true],
    #constructorRoot .sidebar-calculation[aria-pressed=true]) { background-color:var(--interaction-selected); border-color:var(--interaction-selected-border); }

  /* Canvas paper and selection graphics only, never paint model meshes or
     construction/material strokes indiscriminately. */
  html[data-workspace] :is(.canvas-stage,.project-3d-stage,.electrical-3d-viewport,#electricalElevation,
    #constructorRoot .studio-canvas,#constructorRoot .kitchen-room-editor,#constructorRoot .kitchen-room-viewport,
    #constructorRoot .assembly-3d-viewport) { background-color:var(--paper); }
  html[data-workspace] .project-3d-stage { background-image:radial-gradient(circle at 50% 42%,#fffefa,#eae6dd); }
  html[data-workspace] :is(.canvas-status,.zoom-control,.fit-button,.project-3d-segmented,.project-3d-zoom,
    .project-3d-control,.project-3d-instructions,.workspace-drawer-toggle,#constructorRoot .panel-drawer-toggle) {
    background-color:var(--panel); border-color:var(--line); color:var(--ink-soft);
  }
  html[data-workspace] #planCanvas :is(#smallGrid path,#largeGrid path) { stroke:var(--drawing-grid-minor); }
  html[data-workspace] #planCanvas #largeGrid path { stroke:var(--drawing-grid-major); }
  html[data-workspace] #planCanvas .selection-rect { stroke:var(--color-focus); }
  html[data-workspace] #planCanvas .selection-handle { fill:var(--color-accent); stroke:var(--color-focus); }
  html[data-workspace] #constructorRoot :is(.room-wall-selected,.kitchen-run-mark,.room-selection) { stroke:var(--color-focus); }
  html[data-workspace] #constructorRoot :is(.cabinet-section.active .cabinet-section-number,.plan-module.selected .module-label) {
    color:var(--color-accent-ink); background-color:var(--color-accent-soft); border-color:var(--color-focus);
  }
  html[data-workspace] :is(.finish-material[aria-pressed=true],.item-fabric[aria-pressed=true],
    .finish-color[aria-pressed=true],.palette-kit[aria-pressed=true]) { border-color:var(--color-focus); background-color:var(--color-accent-soft); }
  html[data-workspace] :is(.item-swatch[aria-pressed=true],.room-color-swatch[aria-pressed=true]) { outline-color:var(--color-focus); border-color:var(--color-focus); }

  /* Shared interaction states, after component skins. No rising/scaling cards:
     hit areas stay still, and hover never erases an existing selection.
     Transitions animate paint only; reduced motion uses the global guard. */
  html[data-workspace] :is(.topbar,.project-modes,.workspace,#constructorRoot,
    #constructorRoot .controls-panel.cabinet-library,#constructorRoot .furniture-inspector,
    .project-3d-dialog,.project-cabinet,.project-name-dialog,.share-dialog,.share-modal,
    .finish-specification,.project-palette-dialog,.room-colors-dialog,.room-merge-dialog,
    .recognition-dialog,.ai-images-dialog,.ai-gallery-dialog,.ai-geometry-dialog,.ai-showroom-dialog,.ai-view-full,.kitchen-review-dialog)
    :is(button,summary,.project-card,.level-editor-row):where(:not(
      :disabled,.finish-color,.item-swatch,.room-color-swatch,[style*="--swatch"],
      .electrical-colors *,.kc-swatches *,.has-critical-errors,.has-critical-errors *,
      .critical,.critical *,.error,.error *,.collision,.collision *,.access-error,.access-error *,
      .invalid-size,[data-state=error],[data-error=true],[data-error=true] *,
      .integration-save-error,.release-errors-link,[data-error-message],[data-error-section])) {
    transition-property:background-color,border-color,box-shadow,color;
    transition-duration:160ms;
    transition-timing-function:ease;
  }
  html[data-workspace] :is(.topbar,.project-modes,.workspace,#constructorRoot,
    #constructorRoot .controls-panel.cabinet-library,#constructorRoot .furniture-inspector,
    .project-3d-dialog,.project-cabinet,.project-name-dialog,.share-dialog,.share-modal,
    .finish-specification,.project-palette-dialog,.room-colors-dialog,.room-merge-dialog,
    .recognition-dialog,.ai-images-dialog,.ai-gallery-dialog,.ai-geometry-dialog,.ai-showroom-dialog,.ai-view-full,.kitchen-review-dialog)
    :is(button,summary):hover:not(:disabled):where(:not(
      :disabled,.primary-button,#saveCabinetButton,.ai-primary,.showroom-primary,.kitchen-generate-button,
      [data-apply-palette],[data-assistant-apply],.delete-button,[data-action=delete],.custom-card-delete,.level-remove-button,.danger,
      .finish-color,.item-swatch,.room-color-swatch,.ai-style-card,.ai-variant-card,.showroom-shot,
      [style*="--swatch"],.electrical-colors *,.kc-swatches *,
      .has-critical-errors,.has-critical-errors *,.critical,.critical *,.error,.error *,
      .collision,.collision *,.access-error,.access-error *,.invalid-size,
      [data-state=error],[data-error=true],[data-error=true] *,.integration-save-error,.release-errors-link,
      [data-error-message],[data-error-section])) {
    background-color:var(--interaction-hover); border-color:var(--interaction-hover-border);
    box-shadow:var(--interaction-hover-shadow); color:var(--ink);
  }
  html[data-workspace] :is(.topbar,.project-modes,.workspace,#constructorRoot,
    #constructorRoot .controls-panel.cabinet-library,#constructorRoot .furniture-inspector,
    .project-3d-dialog,.project-cabinet,.project-name-dialog,.share-dialog,.share-modal,
    .finish-specification,.project-palette-dialog,.room-colors-dialog,.room-merge-dialog,
    .recognition-dialog,.ai-images-dialog,.ai-gallery-dialog,.ai-geometry-dialog,.ai-showroom-dialog,.ai-view-full,.kitchen-review-dialog)
    :is(button,summary):active:not(:disabled):where(:not(
      :disabled,.primary-button,#saveCabinetButton,.ai-primary,.showroom-primary,.kitchen-generate-button,
      [data-apply-palette],[data-assistant-apply],.delete-button,[data-action=delete],.custom-card-delete,.level-remove-button,.danger,
      .finish-color,.item-swatch,.room-color-swatch,.ai-style-card,.ai-variant-card,.showroom-shot,
      [style*="--swatch"],.electrical-colors *,.kc-swatches *,
      .has-critical-errors,.has-critical-errors *,.critical,.critical *,.error,.error *,
      .collision,.collision *,.access-error,.access-error *,.invalid-size,
      [data-state=error],[data-error=true],[data-error=true] *,.integration-save-error,.release-errors-link,
      [data-error-message],[data-error-section])) {
    background-color:var(--interaction-pressed); border-color:var(--interaction-selected-border);
    box-shadow:var(--interaction-selected-ring);
  }
  html[data-workspace] :is(.project-modes,.workspace,#constructorRoot,.project-3d-dialog,
    #constructorRoot .controls-panel.cabinet-library,#constructorRoot .furniture-inspector,
    .project-cabinet,.finish-specification,.project-palette-dialog,.recognition-dialog,
    .ai-images-dialog,.ai-gallery-dialog,.ai-geometry-dialog,.ai-showroom-dialog,.ai-view-full)
    button:is(.active,.selected,[aria-pressed=true],[aria-selected=true],[aria-expanded=true]):not(:disabled):where(:not(
      :disabled,.primary-button,#saveCabinetButton,.ai-primary,.showroom-primary,.kitchen-generate-button,
      [data-apply-palette],[data-assistant-apply],.delete-button,[data-action=delete],.custom-card-delete,.level-remove-button,.danger,
      .finish-color,.item-swatch,.room-color-swatch,.ai-style-card,.ai-variant-card,.showroom-shot,
      [style*="--swatch"],.electrical-colors *,.kc-swatches *,
      .has-critical-errors,.has-critical-errors *,.critical,.critical *,.error,.error *,
      .collision,.collision *,.access-error,.access-error *,.invalid-size,
      [data-state=error],[data-error=true],[data-error=true] *,.integration-save-error,.release-errors-link,
      [data-error-message],[data-error-section])) {
    background-color:var(--interaction-selected); color:var(--color-accent-ink);
    border-color:var(--interaction-selected-border); box-shadow:var(--interaction-selected-ring);
  }
  /* Vertical navigation/open accordions use the landing workflow's left line. */
  html[data-workspace] :is(.workspace .left-panel,.workspace .right-panel,#constructorRoot .controls-panel,
    #constructorRoot .furniture-inspector)
    :is(.palette-group.expanded>.palette-group-header,.palette-card[aria-expanded=true],
      .room-tool-section[open]>summary,.electrical-section[open]>summary,.electrical-catalog-section[open]>summary,
      .settings-module[open]>summary,.filling-element-block[open]>summary,.drawer-settings-block[open]>summary,
      .drawer-compact-editor[open]>summary,.section-dimension-editor[open]>summary,.kitchen-fine-position[open]>summary,
      .kitchen-settings-summary[aria-pressed=true],.kc-group h3>button[aria-expanded=true],
      .library-project-actions>button[aria-pressed=true],.level-editor-row.active):not(:disabled):where(:not(
        .has-critical-errors,.has-critical-errors *,.critical,.critical *,.error,.error *,
        .collision,.collision *,.access-error,.access-error *,.invalid-size)) {
    background-color:var(--interaction-selected); border-color:var(--line);
    color:var(--ink); box-shadow:var(--interaction-selected-row);
  }
  /* Horizontal tabs keep a bottom accent rather than a filled rectangle. */
  html[data-workspace] :is(.project-modes,.spec-tabs,.covering-tabs,.cabinet-tabs,.palette-surface-tabs,
    .electrical-task-tabs,.electrical-view-tabs,#constructorRoot .project-type-nav,#constructorRoot .workflow-tabs,
    #constructorRoot .kitchen-category-tabs,#constructorRoot .kitchen-view-tabs,#constructorRoot .view-switch)
    button:is(.active,.selected,[aria-pressed=true],[aria-selected=true]):not(:disabled):not([hidden]):where(:not(
      :disabled,.has-critical-errors,.has-critical-errors *,.critical,.critical *,.error,.error *,
      .collision,.collision *,.access-error,.access-error *)) {
    background-color:var(--interaction-selected); color:var(--color-accent-ink);
    border-color:var(--line); box-shadow:var(--interaction-selected-tab);
  }
  html[data-workspace] .project-card.current:hover {
    border-color:var(--interaction-selected-border); box-shadow:var(--interaction-selected-ring);
  }
  html[data-workspace] :is(.finish-material,.item-fabric,.palette-kit)[aria-pressed=true] {
    border-color:var(--interaction-selected-border); background-color:var(--interaction-selected);
    box-shadow:var(--interaction-selected-ring);
  }
  /* Thumbnails and actual swatches retain their paint; only their frame reacts. */
  html[data-workspace] :is(.finish-color,.item-swatch,.room-color-swatch,.ai-style-card,.ai-variant-card,.showroom-shot):hover:where(:not(:focus-visible)) {
    outline-color:var(--interaction-hover-border);
  }

  /* Actual primary actions, not every selected tab. White small text uses
     an accessible deeper terracotta; the brand accent remains #e96332. */
  html[data-workspace] :is(#saveCabinetButton,.primary-button,.project-palette-dialog [data-apply-palette],
    .ai-images-dialog .ai-primary,.ai-showroom-dialog .showroom-primary,
    #constructorRoot .kitchen-generate-button,#constructorRoot .integration-toolbar .primary-button,
    .electrical-assistant-panel [data-assistant-apply]):where(:not(:disabled):not([data-state=error])) {
    background-color:var(--color-primary); border-color:var(--color-primary); color:var(--color-primary-ink);
  }
  html[data-workspace] :is(#saveCabinetButton,.primary-button,.project-palette-dialog [data-apply-palette],
    .ai-images-dialog .ai-primary,.ai-showroom-dialog .showroom-primary,#constructorRoot .integration-toolbar .primary-button,
    .electrical-assistant-panel [data-assistant-apply]):hover:where(:not(:disabled):not([data-state=error])) {
    background-color:var(--color-primary-hover); border-color:var(--color-primary-hover); color:var(--color-primary-ink);
  }
  html[data-workspace] #saveCabinetButton:not([data-state=error])::before { background-color:var(--color-primary-ink); }
  html[data-workspace] #saveCabinetButton:is([data-state=pending],[data-state=saving])::before { background-color:var(--color-warning-soft); }

  /* Preserve diagnostics: selected/colliding objects stay red, not orange.
     Do not inherit a primary label colour into errors or paid-service consent. */
  html[data-workspace] :is(.delete-button,.project-cabinet [data-action=delete],
    #constructorRoot .furniture-property-actions .delete-button) { color:var(--danger); background-color:transparent; }
  html[data-workspace] :is(.delete-button,.project-cabinet [data-action=delete],
    #constructorRoot .furniture-property-actions .delete-button):hover { color:var(--danger); background-color:var(--danger-soft); }
  html[data-workspace] #planCanvas .interior-collision :is(.selection-rect,.selection-handle) { stroke:var(--danger); }
  html[data-workspace] #planCanvas .interior-collision .selection-handle { fill:var(--danger-soft); }
  html[data-workspace] #constructorRoot .cabinet-section.has-critical-errors .cabinet-section-number {
    color:white; background-color:var(--danger); border-color:var(--danger);
  }
  html[data-workspace] #constructorRoot .sidebar-support .assistant-trigger.has-critical-errors {
    color:var(--danger); border-color:var(--danger); background-color:var(--danger-soft);
  }
  html[data-workspace] #constructorRoot .sidebar-support .assistant-trigger.has-critical-errors .assistant-spark {
    color:var(--danger); background-color:var(--danger-soft);
  }
  html[data-workspace] :is(.spec-error,.recognition-issues.has-conflicts,.network-danger,
    .ai-showroom-dialog [data-error=true],#saveCabinetButton[data-state=error]) { color:var(--danger); border-color:var(--danger); background-color:var(--danger-soft); }
}
