/* Shared project → object → floor/zone → task → subtask workspace. */
.construction-space { --construction-accent: var(--accent, #147d75); display: grid; gap: 1rem; min-inline-size: 0; }
.construction-space [data-workspace] { display: grid; gap: 1rem; }
.construction-space [data-project-editor]:empty, .construction-space [data-editor]:empty { display: none; }
.construction-space :where(h2, h3, h4, p) { margin-block-start: 0; }
.construction-space h2 { font-size: clamp(1.1rem, 3vw, 1.4rem); }
.construction-space h3 { margin-block-end: .5rem; font-size: 1.05rem; }
.construction-space h4 { margin-block-end: 0; font-size: 1rem; }
.construction-heading { display: flex; gap: .8rem; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.construction-heading > * { min-inline-size: 0; max-inline-size: 100%; }
.construction-space .row-actions { display: flex; flex-wrap: wrap; gap: .5rem; min-inline-size: 0; }
.construction-space .row-actions:empty { display: none; }
.construction-eyebrow { color: var(--muted, #55656d); font-size: .75rem; font-weight: 650; line-height: 1.6; letter-spacing: .025em; margin-block-end: .25rem; }
.construction-selectors, .construction-filters, .construction-form-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-block: 1rem; }
.construction-filters { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr); }
.construction-space label { display: grid; align-content: start; gap: .4rem; }
.construction-space :where(input, select, textarea) { inline-size: 100%; min-inline-size: 0; max-inline-size: 100%; box-sizing: border-box; min-block-size: 44px; }
.construction-space select[multiple] { min-block-size: 7rem; }
.construction-field-wide { grid-column: 1 / -1; }
.construction-progress { margin-block: 1rem; }
.construction-progress-label { display: flex; flex-wrap: wrap; align-items: baseline; gap: .6rem; margin-block-end: .4rem; }
.construction-progress-label strong { font-size: 1.6rem; font-variant-numeric: tabular-nums; }
.construction-progress-label span { color: var(--muted, #55656d); font-size: .85rem; }
.construction-space progress { display: block; appearance: none; inline-size: 100%; block-size: .55rem; border: 0; border-radius: 1rem; overflow: hidden; background: var(--line, #d8e3e3); accent-color: var(--construction-accent); }
.construction-space progress::-webkit-progress-bar { background: var(--line, #d8e3e3); }
.construction-space progress::-webkit-progress-value { background: var(--construction-accent); }
.construction-space progress::-moz-progress-bar { background: var(--construction-accent); }
.construction-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .7rem; margin-block: 1rem 0; }
.construction-metrics > div { display: flex; flex-direction: column; gap: .4rem; padding: .7rem; background: var(--surface-raised, #f1f7f7); border-radius: .6rem; }
.construction-metrics dt, .construction-quantities dt { font-size: .75rem; color: var(--muted, #55656d); }
.construction-metrics dd { margin: 0; font-size: 1.25rem; font-weight: 700; }
.construction-muted { font-size: .82rem; line-height: 1.6; color: var(--muted, #55656d); margin-block: .5rem; }
.construction-location-list, .construction-task-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .8rem; }
.construction-location { padding: 1rem; border: 1px solid var(--line, #d8e3e3); border-radius: .85rem; margin-block-start: .7rem; }
.construction-location > .construction-heading { margin-block-end: .65rem; }
.construction-location .construction-location { border-inline-start: 3px solid var(--construction-accent); padding: .65rem; }
.construction-location .construction-location .construction-location { padding-inline: .4rem; }
.construction-task { padding: .9rem; background: var(--surface-raised, #f1f7f7); border: 1px solid var(--line, #d8e3e3); border-radius: .7rem; }
.construction-task .construction-task { background: var(--surface, #fff); }
.construction-task .construction-task .construction-task { padding-inline: .45rem; }
.construction-task .construction-task .construction-task .construction-task { padding-inline: .3rem; }
.construction-description { white-space: pre-line; margin-block: .6rem; font-size: .9rem; line-height: 1.6; }
.construction-badge { flex: 0 1 auto; padding: .3rem .55rem; border: 1px solid var(--line, #d8e3e3); border-radius: .45rem; font-size: .75rem; font-weight: 650; line-height: 1.45; }
.construction-badge[data-state="ACCEPTED"] { color: var(--text, #163d37); box-shadow: inset 3px 0 var(--construction-accent); }
.construction-badge[data-state="SUBMITTED_FOR_REVIEW"] { box-shadow: inset 3px 0 #b58129; }
.construction-quantities { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 8rem), 1fr)); gap: .7rem; margin-block: .8rem; }
.construction-quantities > div { min-inline-size: 0; overflow-wrap: anywhere; }
.construction-quantities dd { margin: .3rem 0 0; font-size: .9rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.construction-unit-totals { margin-block: 1rem; }
.construction-unit-total { border-block-start: 1px solid var(--line, #d8e3e3); padding-block-start: .5rem; }
.construction-space summary { display: list-item; cursor: pointer; padding-block: .65rem; font-size: .9rem; line-height: 1.55; }
.construction-space :where(button, summary, input, select, textarea):focus-visible { outline: 3px solid var(--construction-accent); outline-offset: 3px; }
.construction-task details { margin-block-start: .65rem; }
.construction-detail-body { padding-block-start: .5rem; }
.construction-progress-compact .construction-progress-label strong { font-size: 1.1rem; }
.construction-progress-compact .construction-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.construction-progress-compact .construction-metrics > div { padding: .35rem 0; background: transparent; }
.construction-progress-compact .construction-metrics dd { font-size: .95rem; }
.construction-unlocated { margin-block-start: 1rem; }
.construction-empty { padding: 1rem 0; color: var(--muted, #55656d); }
.construction-editor { scroll-margin-block: 1rem; }
@media (max-width: 600px) {
  .construction-selectors, .construction-filters, .construction-form-fields { grid-template-columns: minmax(0, 1fr); }
  .construction-metrics, .construction-progress-compact .construction-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .construction-heading { align-items: flex-start; }
  .construction-heading > .row-actions { inline-size: 100%; }
  .construction-space .row-actions > button { flex: 1 1 auto; }
  .construction-location, .construction-task { padding: .65rem; }
  .construction-location .construction-location { padding-inline: .3rem; }
  .construction-task .construction-task { padding-inline: .35rem; }
  .construction-quantities { grid-template-columns: minmax(0, 1fr); gap: .3rem; }
  .construction-quantities > div { display: flex; gap: .7rem; justify-content: space-between; align-items: baseline; }
  .construction-quantities dd { text-align: end; }
}
@media (prefers-reduced-motion: reduce) { .construction-space *, .construction-space *::before, .construction-space *::after { scroll-behavior: auto !important; transition: none !important; } }
/* Cap visual indentation while preserving the complete semantic task hierarchy. */
.construction-task .construction-task .construction-task .construction-task { padding-inline: 0; border-inline: 0; border-radius: 0; }
.construction-location .construction-location .construction-location { padding-inline: 0; }

body[data-surface] .construction-space .row-actions { min-inline-size: 0; }
