/* Final shared SCREEN roles, loaded last in both editors. Component layout,
   drawing geometry, finish swatches, diagnostics and print sheets stay separate. */
@media screen {
  html[data-workspace] :is(.workspace .right-panel,#constructorRoot .furniture-inspector) {
    font:var(--control-weight) var(--text-small)/1.4 var(--font-ui);
    color:var(--ink);
  }
  html[data-workspace] :is(.workspace .right-panel,#constructorRoot .furniture-inspector) :is(input,select,textarea,button,summary,legend) {
    box-sizing:border-box; min-width:0; max-width:100%; font-family:var(--font-ui); letter-spacing:normal;
  }
  html[data-workspace] :is(.workspace .right-panel,#constructorRoot .furniture-inspector) :is(.property-label,.control-label,label>span:first-child,legend) {
    font:var(--control-weight) var(--text-description)/1.4 var(--font-ui); color:var(--ink-soft); text-transform:none;
  }
  html[data-workspace] :is(.workspace .right-panel,#constructorRoot .furniture-inspector) :is(small,.room-tool-help,.electrical-hint,.covering-note,.kitchen-inspector-hint,.kc-note,.property-help>p) {
    font:400 var(--text-description)/var(--description-line-height) var(--font-ui);
  }
  html[data-workspace] :is(.workspace .right-panel,#constructorRoot .furniture-inspector) :is(h3,h4,.additional-section>h3,.kc-heading h2,.kitchen-inspector-section h3) {
    font:var(--heading-weight) var(--text-small)/1.4 var(--font-ui);
  }
  html[data-workspace] :is(.workspace .right-panel .inspector-header,#constructorRoot .furniture-inspector-heading) h2 {
    min-width:0; margin:0; font:var(--heading-weight) var(--inspector-heading-size)/1.4 var(--font-ui); overflow-wrap:anywhere;
  }
  html[data-workspace] .workspace .inspector-header>div { min-width:0; }
  html[data-workspace] .workspace .close-inspector { flex:none; }

  /* A shared baseline for paired/triplet fields, even with a long caption. */
  html[data-workspace] .workspace .right-panel :is(.property-row,.covering-grid,.kitchen-plan-dimensions) {
    grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--control-gap); align-items:end;
  }
  html[data-workspace] .workspace .right-panel .property-row:is(.room-dimensions,.mirror-dimensions) {
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  html[data-workspace] .workspace .right-panel .property-label {
    display:grid; grid-template-rows:auto var(--control-compact-height); gap:4px; margin-bottom:6px; min-width:0;
  }
  html[data-workspace] .workspace .right-panel .kitchen-plan-dimensions .property-label {
    grid-template-rows:auto var(--control-compact-height); white-space:normal; line-height:1.4;
  }
  html[data-workspace] .workspace .right-panel :is(.bathroom-properties,.laundry-properties) { padding:10px 0; border:0; border-top:1px solid var(--line); border-radius:0; background:transparent; }
  html[data-workspace] .workspace .right-panel :is(.bathroom-properties,.laundry-properties) h3 { padding:6px 8px; border-radius:var(--radius-compact); background:var(--paper); }
  html[data-workspace] .workspace .right-panel :is(.bathroom-properties,.laundry-properties) label:where(:not(:has(input[type=checkbox]))) { display:grid; grid-template-columns:var(--control-label-width) minmax(0,1fr); gap:var(--control-gap); align-items:center; font:400 var(--text-description)/1.4 var(--font-ui); }
  html[data-workspace] .workspace .right-panel .bathroom-dimensions { align-items:end; }
  html[data-workspace] .workspace .right-panel .bathroom-dimensions label { grid-template-columns:minmax(0,1fr); align-self:end; gap:4px; }
  html[data-workspace] .workspace .right-panel :is(.bathroom-properties,.laundry-properties) :is(select,input:not([type=color]):not([type=checkbox])) { box-sizing:border-box; width:100%; height:var(--control-compact-height); min-height:var(--control-compact-height); font:400 var(--text-ui)/1.4 var(--font-ui); }
  html[data-workspace] .workspace .right-panel :is(.property-input,.covering-field .property-input),
  html[data-workspace] #constructorRoot .furniture-inspector :is(select,input:where(:not([type=range]):not([type=checkbox]):not([type=radio]):not([type=color]))) {
    width:100%; height:var(--control-compact-height); min-height:var(--control-compact-height); margin:0;
    padding:0 8px; border:1px solid var(--line); border-radius:var(--radius-compact); background:var(--panel);
    color:var(--ink); font:var(--control-weight) var(--text-ui)/1.4 var(--font-ui); font-variant-numeric:tabular-nums;
  }
  html[data-workspace] #constructorRoot .construction-panel :is(.control-field,.select-control,.wide-field) {
    grid-template-columns:var(--control-label-width) minmax(0,1fr); gap:4px var(--control-gap); align-items:center;
  }
  html[data-workspace] #constructorRoot .construction-panel .drawer-primary-selects>label { grid-template-rows:auto var(--control-compact-height); align-self:end; }
  html[data-workspace] #constructorRoot .furniture-inspector :is(.kitchen-number-grid,.inspector-fields,.kc-fields,.kitchen-section-size-grid) { align-items:end; }
  html[data-workspace] #constructorRoot .kitchen-fine-position label { align-self:end; }

  /* All steppers have the same outside height and inset. The kitchen triplet
     retains its narrower +/- columns to leave room for three exact values. */
  html[data-workspace] :is(.workspace .right-panel .plan-numeric-stepper,#constructorRoot .furniture-inspector .numeric-stepper,#constructorRoot .furniture-inspector .number-control,#constructorRoot .furniture-inspector .kitchen-number>span:last-child) {
    display:grid; align-items:center; gap:0; width:100%; min-width:0;
    height:var(--control-compact-height); min-height:var(--control-compact-height); padding:0;
    border:1px solid var(--line); border-radius:var(--radius-compact); background:var(--panel); overflow:hidden;
  }
  html[data-workspace] .workspace .right-panel .plan-numeric-stepper { grid-template-columns:24px minmax(0,1fr) 24px; }
  html[data-workspace] .workspace .right-panel :is(.room-dimensions,.mirror-dimensions) .plan-numeric-stepper { grid-template-columns:18px minmax(0,1fr) 18px; }
  html[data-workspace] :is(.workspace .right-panel .plan-numeric-stepper,#constructorRoot .furniture-inspector .numeric-stepper,#constructorRoot .furniture-inspector .number-control,#constructorRoot .furniture-inspector .kitchen-number) :is(input,button) {
    width:100%; min-width:0; height:var(--control-inner-height); min-height:var(--control-inner-height);
    padding:0 2px; margin:0; border:0; border-radius:0; box-shadow:none;
    color:var(--ink); font:var(--control-weight) var(--text-ui)/1.4 var(--font-ui);
  }
  html[data-workspace] :is(.workspace .right-panel .plan-numeric-stepper,#constructorRoot .furniture-inspector .numeric-stepper,#constructorRoot .furniture-inspector .number-control,#constructorRoot .furniture-inspector .kitchen-number) input { text-align:center; background:var(--panel); appearance:textfield; }
  html[data-workspace] :is(.workspace .right-panel .plan-numeric-stepper,#constructorRoot .furniture-inspector .numeric-stepper,#constructorRoot .furniture-inspector .number-control,#constructorRoot .furniture-inspector .kitchen-number) input::-webkit-inner-spin-button { appearance:none; }
  html[data-workspace] :is(.workspace .right-panel .plan-numeric-stepper,#constructorRoot .furniture-inspector .numeric-stepper,#constructorRoot .furniture-inspector .number-control,#constructorRoot .furniture-inspector .kitchen-number) button { color:var(--ink-soft); background:var(--paper); cursor:pointer; }
  html[data-workspace] :is(.workspace .right-panel .plan-numeric-stepper,#constructorRoot .furniture-inspector .numeric-stepper,#constructorRoot .furniture-inspector .number-control,#constructorRoot .furniture-inspector .kitchen-number) button:hover:not(:disabled) { background:var(--menu-hover); color:var(--ink); }
  html[data-workspace] :is(.workspace .right-panel .plan-numeric-stepper,#constructorRoot .furniture-inspector .numeric-stepper,#constructorRoot .furniture-inspector .number-control,#constructorRoot .furniture-inspector .kitchen-number) button:disabled { opacity:.4; cursor:not-allowed; }
  html[data-workspace] :is(.workspace .right-panel .plan-numeric-stepper,#constructorRoot .furniture-inspector .numeric-stepper,#constructorRoot .furniture-inspector .number-control,#constructorRoot .furniture-inspector .kitchen-number>span:last-child):focus-within { outline:2px solid var(--color-focus); outline-offset:1px; }
  html[data-workspace] :is(.workspace .right-panel .plan-numeric-stepper,#constructorRoot .furniture-inspector .numeric-stepper,#constructorRoot .furniture-inspector .number-control,#constructorRoot .furniture-inspector .kitchen-number) input:focus-visible { outline:0; }
  html[data-workspace] #constructorRoot .furniture-inspector .kitchen-section-size-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:5px; }
  html[data-workspace] #constructorRoot .furniture-inspector :is(.exact-level-field,.level-actions button,.rail-level-field,.tier-level-actions input,.tier-level-actions button,.section-width-actions button,.section-width-actions label) { height:var(--control-compact-height); min-height:var(--control-compact-height); }
  html[data-workspace] #constructorRoot .furniture-inspector :is(.exact-level-field,.rail-level-field,.section-width-actions label) input { height:var(--control-inner-height); min-height:var(--control-inner-height); border:0; background:transparent; }
  html[data-workspace] #constructorRoot .furniture-inspector :is(.level-actions button,.tier-level-actions button,.section-width-actions button) { font:400 var(--text-small)/1.4 var(--font-ui); }
  html[data-workspace] #constructorRoot .furniture-inspector :is(.segmented-control,.kc-segments,.kc-models,.kitchen-placement-mode,.kitchen-island-side-options,.kitchen-upper-edge-picker) button {
    min-width:0; min-height:var(--control-compact-height); padding:5px 6px; border-color:var(--line); border-radius:var(--radius-compact);
    font:400 var(--text-small)/1.4 var(--font-ui); white-space:normal; overflow-wrap:break-word;
  }
  html[data-workspace] #constructorRoot .furniture-inspector :is(.segmented-control,.kc-segments,.kc-models,.kitchen-placement-mode,.kitchen-island-side-options,.kitchen-upper-edge-picker) :is(button.active,button[aria-pressed=true]) {
    background:var(--color-accent-soft); border-color:var(--line-strong); color:var(--ink); box-shadow:none;
  }
  html[data-workspace] .workspace .right-panel :is(.electrical-check,.covering-check) { font:400 var(--text-small)/1.4 var(--font-ui); }
  html[data-workspace] :is(.workspace .right-panel,#constructorRoot .furniture-inspector) :is(input[type=checkbox],input[type=radio]) { accent-color:var(--color-focus); }
  html[data-workspace] .workspace .right-panel :is(.electrical-section>button,.network-inline button,.network-overview button,.covering-open-report,.socket-height-presets button,.socket-wall-location>button) {
    box-sizing:border-box; min-height:var(--control-compact-height); padding:5px 8px; border:1px solid var(--line); border-radius:var(--radius-compact);
    background:var(--paper); color:var(--ink-soft); font:400 var(--text-small)/1.4 var(--font-ui); cursor:pointer;
  }
  html[data-workspace] .workspace .right-panel :is(.socket-height-presets button[aria-pressed=true],.electrical-control-hint button[aria-pressed=true]) { background:var(--color-accent-soft); border-color:var(--line-strong); color:var(--ink); }

  /* Section headers use one horizontal strip; nested content keeps the full
     inspector width. Do not change native disclosure/checkbox semantics. */
  html[data-workspace] .workspace .right-panel :is(.room-tool-section,.electrical-section)>summary,
  html[data-workspace] #constructorRoot .furniture-inspector :is(.filling-block-heading,.drawer-block-heading,.drawer-editor-summary,.kitchen-fine-position>summary,.kc-group h3>button) {
    box-sizing:border-box; min-height:var(--control-compact-height); padding:7px 8px; border-radius:var(--radius-compact);
    background:var(--paper); color:var(--ink); font:var(--heading-weight) var(--text-small)/1.4 var(--font-ui); cursor:pointer;
  }
  html[data-workspace] .workspace .right-panel :is(.room-tool-section,.electrical-section)[open]>summary,
  html[data-workspace] #constructorRoot .furniture-inspector :is(.filling-element-block,.drawer-settings-block,.drawer-compact-editor,.kitchen-fine-position)[open]>summary,
  html[data-workspace] #constructorRoot .furniture-inspector .kc-group h3>button[aria-expanded=true] { background:var(--color-accent-soft); color:var(--ink); box-shadow:inset 3px 0 var(--color-focus); }
  html[data-workspace] #constructorRoot .kitchen-components-panel { --kc-border:var(--line); --kc-accent:var(--color-focus); --kc-ink:var(--ink); --kc-muted:var(--muted); }
  html[data-workspace] #constructorRoot .furniture-inspector .kc-group { border:0; border-radius:0; overflow:visible; }
  html[data-workspace] #constructorRoot .furniture-inspector .kc-content { padding:8px 0; }
  html[data-workspace] #constructorRoot .furniture-inspector .kc-group h3>button { grid-template-columns:minmax(0,1fr) minmax(0,.8fr) 12px; }
  html[data-workspace] #constructorRoot .furniture-inspector .kc-group h3>button span { min-width:0; white-space:normal; font-size:var(--text-small); font-weight:var(--heading-weight); }
  html[data-workspace] #constructorRoot .furniture-inspector .kitchen-fine-position { border:0; border-top:1px solid var(--line); border-radius:0; overflow:visible; }
  html[data-workspace] #constructorRoot .furniture-inspector .kitchen-fine-position>div { padding:8px 0; }
  html[data-workspace] #constructorRoot .furniture-inspector .kitchen-fine-position>:is(small,p) { padding-inline:0; font-size:var(--text-description); }

  /* Navigation is a single row; long names cannot escape their hit area. */
  html[data-workspace] .workspace .left-panel .palette-card b,
  html[data-workspace] #constructorRoot .cabinet-library :is(.cabinet-start-choice b,.library-project-actions>button>span,.library-section-list>button>span,.kitchen-settings-summary b) {
    min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font:400 var(--menu-text-size)/20px var(--font-ui);
  }
  html[data-workspace] #constructorRoot .kitchen-library-panel .kitchen-settings-summary b { flex:0 1 auto; }
  html[data-workspace] :is(.workspace .left-panel,#constructorRoot .cabinet-library) :is(.group-count,small) { font-size:var(--text-description); line-height:1.4; }
  html[data-workspace] #constructorRoot .cabinet-library :is(.library-project-actions>button,.library-section-list>button,.kitchen-settings-summary) { min-height:var(--menu-row-height); font:400 var(--menu-text-size)/20px var(--font-ui); }
  html[data-workspace] .workspace .left-panel :is(.electrical-task-tabs button,.electrical-catalog-section summary) { box-sizing:border-box; min-height:var(--menu-row-height); padding:5px 8px; font:400 var(--menu-text-size)/20px var(--font-ui); border-radius:var(--radius-compact); }
  html[data-workspace] .workspace .left-panel .electrical-task-tabs button[aria-pressed=true] { background:var(--menu-selected); border-color:var(--line); color:var(--ink); }
  html[data-workspace] .workspace .left-panel .electrical-catalog-section[open]>summary { background:var(--menu-selected); }

  /* The assistant follows the same hierarchy as Properties; warnings/errors
     still have their own colors and remain directly visible. */
  html[data-workspace] #constructorRoot .furniture-inspector .assistant-heading h2 { white-space:normal; font:500 var(--inspector-heading-size)/1.4 var(--font-ui); }
  html[data-workspace] #constructorRoot .furniture-inspector .assistant-advice h3 { font:500 var(--text-small)/1.4 var(--font-ui); }
  html[data-workspace] #constructorRoot .furniture-inspector .assistant-advice :is(p,small),
  html[data-workspace] #constructorRoot .sidebar-support .assistant-trigger small { font:400 var(--text-description)/1.4 var(--font-ui); text-transform:none; letter-spacing:0; }
  html[data-workspace] #constructorRoot .furniture-inspector .assistant-advice p { color:var(--ink-soft); }
  html[data-workspace] #constructorRoot .sidebar-support .assistant-trigger b { font:500 var(--text-small)/1.4 var(--font-ui); }
  html[data-workspace] #constructorRoot .furniture-inspector :is(.assistant-fix,.assistant-inspect) { font:400 var(--text-small)/1.4 var(--font-ui); min-height:var(--control-compact-height); white-space:normal; }

  /* Dialog chrome is shared, while preview cards, swatches and large primary
     generation actions keep their intentionally different shapes. */
  html[data-workspace] :is(.project-cabinet,.project-name-dialog,.project-palette-dialog,.recognition-dialog,.finish-specification,.room-merge-dialog,.share-dialog,.ai-images-dialog) {
    font-family:var(--font-ui); color:var(--ink);
  }
  html[data-workspace] :is(.project-name-dialog,.project-palette-dialog,.recognition-dialog,.finish-specification,.room-merge-dialog,.share-modal) h2 {
    font:var(--heading-weight) var(--text-heading)/1.4 var(--font-ui); letter-spacing:normal;
  }
  html[data-workspace] :is(.project-name-dialog,.project-palette-dialog,.recognition-dialog,.finish-specification,.room-merge-dialog,.share-dialog,.ai-images-dialog) :is(input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=file]),select) {
    box-sizing:border-box; height:var(--control-compact-height); min-height:var(--control-compact-height); border-color:var(--line); border-radius:var(--radius-compact);
    color:var(--ink); font:400 var(--text-small)/1.4 var(--font-ui);
  }
  html[data-workspace] :is(.project-name-dialog,.project-palette-dialog,.recognition-dialog,.finish-specification,.room-merge-dialog) :is(header,footer,.palette-room-actions,.recognition-mode,.spec-actions,.spec-tabs) button,
  html[data-workspace] .project-cabinet :is(.cabinet-header,.cabinet-actions) button {
    box-sizing:border-box; min-height:var(--control-compact-height); border-radius:var(--radius-compact); font:400 var(--text-small)/1.4 var(--font-ui);
  }
  html[data-workspace] .project-cabinet .cabinet-controls :is(input,select) { height:var(--control-compact-height); font:400 var(--text-small)/1.4 var(--font-ui); border-color:var(--line); border-radius:var(--radius-compact); }
  html[data-workspace] .project-cabinet .project-card-top-actions button { overflow:hidden; text-overflow:ellipsis; font-size:11px; }
  html[data-workspace] .project-cabinet .project-card-top-actions { grid-template-columns:max-content max-content minmax(0,1fr); }
  html[data-workspace] .project-cabinet .project-card-top-actions button:last-child { grid-column:auto; }
  html[data-workspace] #projectCards .project-card-preview { --project-preview-top:38px; }
  html[data-workspace] #projectCards .project-card-actions:not(.project-card-top-actions) { display:grid;grid-template-columns:repeat(4,minmax(0,1fr)); }
  @container cabinet-card (max-width:270px){
    html[data-workspace] .project-cabinet .project-card-top-actions {grid-template-columns:repeat(2,minmax(0,1fr));}
    html[data-workspace] .project-cabinet .project-card-top-actions button:last-child {grid-column:1 / -1;}
    html[data-workspace] #projectCards .project-card-preview {--project-preview-top:66px;min-height:204px;}
    html[data-workspace] #projectCards .project-card-actions:not(.project-card-top-actions) {grid-template-columns:repeat(2,minmax(0,1fr));}
  }
  @media(max-width:560px){
    html[data-workspace] .project-cabinet .cabinet-actions {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;}
    html[data-workspace] .project-cabinet .cabinet-actions button {height:auto;min-height:32px;padding:6px 3px;font-size:11px;white-space:normal;}
  }
  html[data-workspace] #constructorRoot :is(.modal-card,.ready-solutions-modal,.production-modal) :is(h2,h3) { font-family:var(--font-ui); font-weight:var(--heading-weight); letter-spacing:normal; }
  html[data-workspace] #constructorRoot :is(.modal-card,.ready-solutions-modal,.production-modal) h2 { font-size:var(--text-heading); }
  html[data-workspace] #constructorRoot :is(.modal-card,.ready-solutions-modal,.production-modal) :is(input:where(:not([type=checkbox]):not([type=radio]):not([type=color])),select) { box-sizing:border-box; height:var(--control-compact-height); min-height:var(--control-compact-height); font:400 var(--text-small)/1.4 var(--font-ui); border-color:var(--line); border-radius:var(--radius-compact); }
  html[data-workspace] #constructorRoot :is(.modal-card,.ready-solutions-modal,.production-modal) :is(.modal-heading,.modal-actions,footer) button { min-height:var(--control-compact-height); font:400 var(--text-small)/1.4 var(--font-ui); border-radius:var(--radius-compact); }
  html[data-workspace] .ai-images-dialog { --ai-line:var(--line); --ai-ink:var(--ink); --ai-muted:var(--muted); --ai-green:var(--color-focus); }
  html[data-workspace] .ai-images-dialog h2 { font-size:var(--text-heading); font-weight:var(--heading-weight); letter-spacing:normal; }
  html[data-workspace] .ai-images-dialog :is(h3,.ai-source-control figcaption) { font-size:var(--text-small); font-weight:var(--heading-weight); }
  html[data-workspace] .project-palette-dialog .palette-door-scope select { width:100%; }
  html[data-workspace] .topbar #accountButton { height:var(--workspace-nav-height); min-height:var(--workspace-nav-height); font:500 var(--text-caption)/1.3 var(--font-ui); }
  html[data-workspace] .electrical-views :is(button,select) { height:var(--workspace-nav-height); min-height:var(--workspace-nav-height); padding:2px 7px; white-space:nowrap; font:400 var(--text-caption)/1.3 var(--font-ui); color:var(--ink-soft); border-color:var(--line); }
  html[data-workspace] #constructorRoot :is(.cabinet-model-toolbar .view-switch,.cabinet-model-toolbar .cabinet-camera-controls,.project-zoom-controls)>button,
  html[data-workspace] #constructorRoot .project-zoom-entry,
  html[data-workspace] #constructorRoot .project-zoom-entry .project-zoom-value { font:400 var(--text-caption)/1.3 var(--font-ui); }
  /* Explicit display rules must not resurrect a hidden diameter companion,
     validation message or conditional setting from the browser's UA sheet. */
  html[data-workspace] :is(.workspace .right-panel,#constructorRoot .furniture-inspector) [hidden] { display:none; }
}
