.figure-meta {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 1rem;
  color: #555;
}
.figure-meta span {
  padding: 0.5rem 0.75rem;
  border: 1px solid #ddd;
  border-radius: 0.5rem;
  background: #fff;
}
.figure-preview-summary {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin: 1rem 0;
}
.figure-preview-summary span {
  padding: 0.45rem 0.7rem;
  border-radius: 999px;
  background: #eef3ff;
  color: #163d87;
}
.figure-building-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
.figure-building h4 {
  margin: 1rem 0 0.5rem;
}
.figure-candidate {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.5rem 0;
}
.figure-candidate input {
  width: 1.1rem;
  height: 1.1rem;
}
.figure-unresolved {
  margin-top: 1rem;
  padding: 0.75rem;
  border: 1px solid #d49b20;
  background: #fff8e7;
  border-radius: 0.5rem;
}
@media (max-width: 720px) {
  .figure-building-grid {
    grid-template-columns: 1fr;
  }
  .figure-meta {
    gap: 0.5rem;
  }
  .figure-meta span {
    width: 100%;
  }
}
.figure-controls {
  display: grid;
  grid-template-columns: minmax(7rem, 10rem) minmax(12rem, 24rem);
  align-items: center;
  gap: 0.5rem 1rem;
  margin: 1rem 0;
}
.figure-controls label {
  font-weight: 700;
}
.figure-controls select {
  grid-column: 2;
  min-height: 2.75rem;
}
.figure-controls > #figure-process-settings-button {
  grid-column: 2;
  justify-self: start;
}
.figure-grid-card {
  padding: 0;
  overflow: hidden;
}
.figure-grid-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid #d9dde5;
}
.figure-grid-card h2,
.figure-grid-heading p {
  margin: 0;
}
.figure-grid-heading p {
  font-weight: 700;
  color: #245a32;
}
.figure-grid-scroll {
  max-width: 100%;
  overflow: auto;
}
.figure-elevation-grid {
  width: max-content;
  min-width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}
.figure-elevation-grid th,
.figure-elevation-grid td {
  min-width: 4.5rem;
  height: 3rem;
  padding: 0.45rem;
  border-right: 1px solid #d9dde5;
  border-bottom: 1px solid #d9dde5;
  text-align: center;
}
.figure-elevation-grid thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: #f3f5f8;
  font-weight: 800;
}
.figure-elevation-grid th:first-child {
  position: sticky;
  left: 0;
  z-index: 1;
  min-width: 5rem;
  background: #f7f8fa;
}
.figure-elevation-grid thead th:first-child {
  z-index: 3;
}
.figure-cell-active {
  background: #fff;
  color: #12438a;
}
.figure-cell-active > span,
.figure-cell-active > button {
  display: inline-grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: 2px solid #245aa8;
  border-radius: 0.3rem;
  background: #fff;
  color: #245aa8;
  font-size: 1rem;
}
.figure-cell-active.is-completed {
  background: #eaf6ed;
}
.figure-cell-active.is-completed > button,
.figure-cell-active.is-completed > span {
  background: #246b38;
  border-color: #246b38;
  color: #fff;
}
.figure-cell-active button:disabled {
  opacity: 0.55;
}
.figure-cell-void {
  background: #f0f1f3;
  color: #a6acb5;
}
.figure-cell-special {
  background: #fff7dc;
  color: #795800;
}
.figure-building-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}
.figure-preview-actions {
  display: flex;
  justify-content: flex-end;
  margin: 0.5rem 0;
}
.figure-apply-summary {
  padding: 0.75rem 1rem;
  border: 1px solid #9bb8e6;
  border-radius: 0.5rem;
  background: #eef5ff;
  color: #163d87;
  font-weight: 700;
}
.figure-grid-empty {
  margin-bottom: 1rem;
}
@media (max-width: 720px) {
  .figure-controls {
    grid-template-columns: 1fr;
  }
  .figure-controls select {
    grid-column: 1;
    width: 100%;
  }
  .figure-elevation-grid th,
  .figure-elevation-grid td {
    min-width: 4rem;
  }
  .figure-grid-card h2 {
    padding: 0.85rem 1rem;
  }
  .figure-building-heading {
    align-items: stretch;
    flex-direction: column;
  }
  .figure-preview-actions {
    justify-content: stretch;
  }
  .figure-preview-actions button {
    width: 100%;
  }
}
.figure-location-add {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin: 0 0 1rem;
}
.figure-persistent-save-status{margin-left:auto;color:#245a32;font-weight:850;white-space:nowrap}
.figure-location-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.figure-location-add > p {
  margin: 0;
  color: #245a32;
  font-weight: 700;
}
.figure-location-add dialog {
  width: min(92vw, 30rem);
  max-height: 90vh;
  padding: 0;
  border: 0;
  border-radius: 0.8rem;
  box-shadow: 0 1rem 3rem #0004;
}
.figure-location-add dialog::backdrop {
  background: #0007;
}
.figure-location-add form {
  display: grid;
  gap: 1rem;
  padding: 1.25rem;
}
.figure-location-add form label {
  display: grid;
  gap: 0.4rem;
  font-weight: 700;
}
.figure-location-add form select,
.figure-location-add form input {
  width: 100%;
  min-height: 2.75rem;
}
.figure-location-dialog-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.figure-location-dialog-heading h2 {
  margin: 0;
}
.figure-location-dialog-heading .icon-button {
  min-width: 2.75rem;
  min-height: 2.75rem;
}
.figure-location-guidance {
  display: grid;
  gap: 0.35rem;
  padding: 0.75rem 0.85rem;
  border: 1px solid #c9d8e2;
  border-radius: 0.65rem;
  background: #f2f7fa;
  color: #324b5b;
  font-size: 0.84rem;
  line-height: 1.5;
}
.figure-location-guidance strong { color: #173f57; font-size: 0.88rem; }
.figure-location-guidance p { margin: 0; }
.figure-location-add .form-error {
  min-height: 1.4rem;
  margin: 0;
  color: #a51d1d;
}
@media (max-width: 720px) {
  .figure-location-add > button {
    width: 100%;
  }
  .figure-location-add dialog {
    width: calc(100vw - 2rem);
  }
  .figure-location-add form {
    padding: 1rem;
  }
  .figure-location-add .action-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .figure-location-add .action-row button {
    width: 100%;
  }
}
.figure-controls dialog {
  grid-column: auto;
}
.figure-controls dialog,
.figure-process-list {
  width: min(92vw, 40rem);
}
#figure-process-dialog {
  max-height: 90vh;
  padding: 1.25rem;
  border: 0;
  border-radius: 0.8rem;
  box-shadow: 0 1rem 3rem #0004;
}
#figure-process-dialog::backdrop {
  background: #0007;
}
.figure-process-dialog-heading,
.figure-process-row,
.figure-process-create {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.figure-process-dialog-heading {
  justify-content: space-between;
}
.figure-process-dialog-heading h2 {
  margin: 0;
}
.figure-process-create {
  margin: 1rem 0;
}
.figure-process-create label {
  display: grid;
  gap: 0.35rem;
  flex: 1;
  font-weight: 700;
}
.figure-process-create input,
.figure-process-row input {
  min-height: 2.65rem;
  min-width: 0;
  flex: 1;
}
.figure-process-list {
  display: grid;
  gap: 1rem;
  width: 100%;
  max-height: 55vh;
  overflow: auto;
}
.figure-process-list section {
  padding: 1rem;
  border: 1px solid #d9dde5;
  border-radius: 0.6rem;
}
.figure-process-row {
  margin: 0.4rem 0;
}
.figure-sub-create-form {
  display: flex;
  gap: 0.5rem;
  margin: 0.75rem 0;
}
.figure-sub-create-form input {
  min-height: 2.65rem;
  min-width: 0;
  flex: 1;
}
#figure-process-dialog .form-error {
  color: #a51d1d;
}
@media (max-width: 720px) {
  .figure-controls > #figure-process-settings-button {
    grid-column: 1;
    width: 100%;
  }
  .figure-grid-heading {
    padding: 0.85rem 1rem;
  }
  .figure-process-row,
  .figure-process-create,
  .figure-sub-create-form {
    align-items: stretch;
    flex-wrap: wrap;
  }
  .figure-process-row input,
  .figure-process-create label,
  .figure-sub-create-form input {
    flex-basis: 100%;
  }
  #figure-process-dialog {
    width: calc(100vw - 2rem);
    padding: 1rem;
  }
}
.figure-workspace {
  --figure-brand: #2c3a42;
  --figure-brand-2: #364850;
  --figure-ink: #26343a;
  --figure-muted: #66757b;
  --figure-line: #cbd4d7;
  --figure-canvas: #edf1f1;
  --figure-completed: #d5e9df;
  --figure-completed-border: #8db7a5;
  --figure-completed-ink: #1f5340;
  --figure-selected: #fff1bd;
  display: grid;
  grid-template-columns:minmax(0,1fr) minmax(25rem,27.5rem);
  gap: 1rem;
  align-items: start;
  margin: 1rem 0;
  color: var(--figure-ink);
}
.figure-building-tabs,.figure-view-tabs{display:flex;gap:.5rem;overflow-x:auto;margin:.75rem 0;padding-bottom:.2rem}.figure-building-tabs button,.figure-view-tabs button{flex:0 0 auto;min-height:2.75rem;padding:.55rem 1rem;border:1px solid #cbd4d7;border-radius:.55rem;background:#fff;font-weight:800}.figure-building-tabs button.active,.figure-view-tabs button.active{border-color:#2c3a42;background:#2c3a42;color:#fff}.figure-view-tabs button:disabled{opacity:.55}.figure-view-tabs button span{font-size:.7rem}.figure-process-summary{display:grid;gap:.15rem}.figure-process-summary span{color:#66757b;font-size:.75rem}.figure-process-summary strong{font-size:1rem}.figure-inspector{position:fixed;z-index:30;right:1rem;bottom:1rem;width:min(25rem,calc(100vw - 2rem));padding:1rem;border:1px solid #cbd4d7;border-radius:.8rem;background:#fff;box-shadow:0 .7rem 2rem #22323b33}.figure-inspector>[data-inspector-close]{float:right;border:0;background:transparent;font-size:1.4rem}.figure-inspector h2{margin:.25rem 0}.figure-inspector dl{margin:.6rem 0 0}.figure-inspector dl div{display:flex;justify-content:space-between;padding:.35rem 0;border-top:1px solid #e1e5e7}.figure-inspector dd{margin:0;font-weight:800}.figure-context-menu{position:fixed;z-index:50;display:grid;min-width:9rem;padding:.3rem;border:1px solid #cbd4d7;border-radius:.55rem;background:#fff;box-shadow:0 .5rem 1.5rem #22323b33}.figure-context-menu[hidden]{display:none}.figure-context-menu button{padding:.55rem .7rem;border:0;background:#fff;text-align:left}.context-trigger{position:absolute;top:.45rem;right:2.8rem;width:2rem;height:2rem;padding:0;border:0;background:transparent;font-size:1.2rem}.drop-zone{min-height:1rem;border-radius:999px}.drop-center{position:absolute;z-index:3;inset:25% .5rem;display:none;place-items:center;padding:.5rem;border:2px dashed #8db7a5;border-radius:.55rem;background:#f4fbf7ee;text-align:center;color:#1f5340}.progress-sidebar:has(.dragging) .drop-center,.drop-center.drag-over{display:grid}.drop-zone.drag-over{background:#8db7a5}.line-label,.line-unit-type,.line-households{display:block}.line-unit-type,.line-households{color:#66757b;font-size:.7rem}.line-menu{width:1.8rem;height:1.8rem;padding:0;border:0;background:transparent}.figure-cell[data-cell-select]{cursor:pointer}
.figure-workspace .layout-panel {
  min-width: 0;
}
.figure-special-workspace{align-items:start;margin-top:0}
.figure-special-workspace>#figure-special-grid-host{min-width:0}
.figure-special-workspace>.figure-special-data{align-self:start;min-width:0}
.figure-workspace > #figure-progress-host{
  height:max(var(--figure-apartment-board-height,20rem),20rem);
  min-height:0;
  overflow-x:hidden;
  overflow-y:auto;
}
.progress-sidebar {
  min-width: 0;
  padding: 1rem;
  border: 1px solid var(--figure-line);
  border-radius: 0.85rem;
  background: var(--figure-canvas);
}
.sidebar-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}
.sidebar-heading span {
  color: var(--figure-muted);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.08em;
}
.sidebar-heading h2 {
  margin: 0.12rem 0 0;
  font-size: 1.15rem;
}
.sidebar-heading p {
  min-height: 1.25rem;
  margin: 0;
  color: var(--figure-completed-ink);
  font-size: 0.78rem;
  font-weight: 700;
}
.category-summary {
  margin-bottom: 0.75rem;
  padding: 0.55rem 0.7rem;
  border-radius: 0.5rem;
  background: #fff;
  color: var(--figure-muted);
  font-size: 0.82rem;
  font-weight: 700;
}
.category-card {
  position: relative;
  margin-top: 0.7rem;
  padding: 0.75rem;
  border: 1px solid var(--figure-line);
  border-radius: 0.7rem;
  background: #fff;
  transition:
    border-color 0.15s,
    background 0.15s,
    opacity 0.15s;
}
.category-card.active {
  border-color: var(--figure-brand);
  background: var(--figure-selected);
}
.category-card.dragging {
  opacity: 0.45;
}
.category-card.drag-over {
  outline: 3px solid var(--figure-completed-border);
  outline-offset: 2px;
}
.category-card > .drag-handle {
  position: absolute;
  top: 0.66rem;
  left: 0.4rem;
}
.category-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 2rem;
  gap: 0.35rem;
  align-items: center;
  padding-left: 1.7rem;
}
.category-select {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.15rem 0.5rem;
  min-width: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: left;
}
.category-kicker {
  grid-column: 1;
  color: var(--figure-muted);
  font-size: 0.67rem;
  font-weight: 800;
  letter-spacing: 0.09em;
}
.category-select strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.rate-badge {
  grid-column: 2;
  grid-row: 1/3;
  align-self: center;
  padding: 0.2rem 0.4rem;
  border-radius: 999px;
  background: var(--figure-brand);
  color: #fff;
  font-size: 0.75rem;
}
.category-head > [data-category-toggle] {
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: 1px solid var(--figure-line);
  border-radius: 0.45rem;
  background: #fff;
  color: var(--figure-brand);
  font-size: 1.2rem;
}
.category-track,
.task-track {
  display: block;
  overflow: hidden;
  height: 0.38rem;
  border-radius: 999px;
  background: #dfe5e6;
}
.category-track {
  margin: 0.65rem 0 0 1.7rem;
}
.category-track > span,
.task-track > span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--figure-completed-border);
}
.task-list {
  position: relative;
  margin: 0.75rem 0 0 1.15rem;
  padding-left: 1.15rem;
}
.task-list::before {
  content: "";
  position: absolute;
  top: 0.15rem;
  bottom: 0.8rem;
  left: 0.28rem;
  width: 1px;
  background: var(--figure-line);
}
.task-row {
  position: relative;
  display: grid;
  grid-template-columns: 1.15rem minmax(0, 1fr) auto;
  gap: 0.18rem 0.45rem;
  align-items: center;
  margin: 0.38rem 0;
  padding: 0.48rem 0.45rem 0.48rem 0.3rem;
  border-radius: 0.5rem;
  cursor: pointer;
}
.task-row::before {
  content: "";
  position: absolute;
  top: 50%;
  left: -0.87rem;
  width: 0.85rem;
  height: 1px;
  background: var(--figure-line);
}
.task-row::after {
  content: "";
  position: absolute;
  top: calc(50% - 0.22rem);
  left: -0.98rem;
  width: 0.42rem;
  height: 0.42rem;
  border: 1px solid var(--figure-line);
  border-radius: 50%;
  background: #fff;
}
.task-row.active {
  background: var(--figure-selected);
  box-shadow: inset 0 0 0 1px #dfc969;
}
.task-row.dragging {
  opacity: 0.45;
}
.task-row.drag-over {
  outline: 2px solid var(--figure-completed-border);
}
.task-row > .drag-handle {
  grid-column: 1;
  grid-row: 1/3;
}
.task-marker {
  display: none;
}
.task-name {
  grid-column: 2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 700;
}
.task-rate {
  grid-column: 3;
  color: var(--figure-completed-ink);
}
.task-count {
  grid-column: 2;
  color: var(--figure-muted);
  font-size: 0.72rem;
}
.task-track {
  grid-column: 3;
  width: 3.25rem;
}
.task-empty {
  margin: 0.5rem 0;
  color: var(--figure-muted);
  font-size: 0.82rem;
}
.drag-handle {
  display: grid;
  place-items: center;
  width: 1.2rem;
  height: 1.7rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--figure-muted);
  cursor: grab;
  font-weight: 900;
}
.drag-handle:active {
  cursor: grabbing;
}
.finish-info-column {
  min-width: 0;
}
.finish-info-card {
  padding: 1rem;
  border: 1px solid var(--figure-line);
  border-radius: 0.8rem;
  background: #fff;
}
.finish-info-card > span {
  color: var(--figure-muted);
  font-size: 0.75rem;
  font-weight: 800;
}
.finish-info-card h2 {
  margin: 0.2rem 0 0.8rem;
  font-size: 1.05rem;
}
.finish-info-card dl {
  display: grid;
  gap: 0.45rem;
  margin: 0;
}
.finish-info-card dl div {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  padding-top: 0.45rem;
  border-top: 1px solid var(--figure-line);
}
.finish-info-card dt {
  color: var(--figure-muted);
}
.finish-info-card dd {
  margin: 0;
  font-weight: 800;
}
.figure-top-progress {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0;
}
.figure-top-progress span {
  padding: 0.2rem 0.45rem;
  border-radius: 999px;
  background: #d5e9df;
  color: #1f5340;
  font-weight: 800;
}
@media (max-width: 1100px) {
  .figure-workspace {
    grid-template-columns:minmax(0,1fr) minmax(22rem,25rem);
  }
  .finish-info-card dl {
    grid-template-columns: repeat(3, 1fr);
  }
  .finish-info-card dl div {
    display: grid;
    text-align: center;
  }
}
@media (max-width: 720px) {
  .figure-workspace {
    display: flex;
    flex-direction: column;
  }
  .figure-special-workspace{flex-direction:column}
  .figure-special-workspace>#figure-special-grid-host,.figure-special-workspace>.figure-special-data{width:100%}
  .figure-workspace > #figure-grid-host {
    order: 1;
    width: 100%;
  }
  .figure-workspace > #figure-progress-host {
    order: 2;
    width: 100%;
    height:auto;
    min-height:0;
    overflow:visible;
  }
  .figure-inspector{position:static;width:auto;margin:.75rem 0;box-shadow:none}
  .progress-sidebar {
    padding: 0.8rem;
  }
  .figure-controls .figure-top-progress {
    width: auto;
  }
  .finish-info-card dl {
    grid-template-columns: repeat(3, 1fr);
  }
}
.figure-workspace .drag-handle {
  touch-action: none;
  user-select: none;
}

/* Floor-local ROOM slots and draft/batch progress */
.figure-elevation-grid{min-width:max-content}
.figure-unit-header,.figure-unit-row{display:grid;grid-template-columns:5rem repeat(var(--unit-columns),minmax(5.5rem,1fr));align-items:stretch}
.figure-unit-header>div,.figure-unit-row>strong,.figure-unit-row>.figure-cell{min-width:5.5rem;border-right:1px solid #dce3e6;border-bottom:1px solid #dce3e6;padding:.55rem;text-align:center}
.figure-floor-block{border-bottom:1px solid #bdc8cc}
.figure-room-section{padding:.55rem .7rem;background:#f6f8f9}
.figure-room-section>strong{display:block;margin-bottom:.4rem;color:#40535c;font-size:.78rem}
.figure-room-grid{display:grid;grid-template-columns:repeat(var(--room-slots),minmax(5.5rem,1fr));gap:.4rem;min-width:max-content}
.figure-room-slot{display:grid;grid-template-rows:auto 2.6rem;min-width:5.5rem;border:1px solid #cbd5d9;border-radius:.45rem;background:#fff;overflow:hidden}
.figure-room-slot>span{padding:.35rem .45rem;color:#40535c;font-size:.75rem;font-weight:800;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.figure-room-slot .figure-cell{border-top:1px solid #e0e6e8}
.figure-draft-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:.45rem;flex-wrap:wrap}
.figure-draft-toolbar p{flex-basis:100%;margin:0;text-align:right;color:#5d6c72;font-size:.75rem}
.figure-cell.is-pending{outline:2px solid #e2a526;outline-offset:-2px;position:relative}
.figure-cell.is-pending::after{content:"";position:absolute;top:.25rem;right:.25rem;width:.38rem;height:.38rem;border-radius:50%;background:#e2a526}
.drop-center{display:none!important}
.category-card.drop-into,.category-card.drag-over{outline:3px solid #2f7960;outline-offset:2px;background:#f1faf6}
.drop-insertion,.drop-before{position:relative;min-height:20px;background:transparent!important}
.drop-insertion.drag-over::after,.drop-before.drag-over::after{content:"";position:absolute;left:.35rem;right:.35rem;top:8px;height:4px;border-radius:999px;background:#2f7960}
@media(max-width:640px){.figure-room-grid{grid-template-columns:repeat(2,minmax(0,1fr));min-width:0}.figure-room-slot{min-width:0}.figure-draft-toolbar{justify-content:flex-start}.figure-draft-toolbar p{text-align:left}.figure-unit-header,.figure-unit-row{grid-template-columns:4rem repeat(var(--unit-columns),5.5rem)}}

/* Compact finish workspace toolbar */
.figure-meta{gap:.4rem;margin-bottom:.55rem;font-size:.75rem}
.figure-meta span{padding:.28rem .5rem;border-color:#e2e6e8;background:#fafbfb}
.figure-controls{display:grid;grid-template-areas:"process progress actions";grid-template-columns:minmax(15rem,1fr) minmax(12rem,18rem) auto;align-items:center;gap:.65rem;margin:.55rem 0 .75rem;padding:.65rem .75rem;border:1px solid #d8dfe2;border-radius:.55rem;background:#fff}
.figure-controls .figure-process-summary{grid-area:process;min-width:0}
.figure-controls .figure-process-summary strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.figure-controls .figure-process-summary b{padding:0 .25rem;color:#829097}
.figure-controls .figure-top-progress{grid-area:progress;display:grid;grid-template-columns:auto auto;gap:.15rem .45rem;justify-content:start;min-width:11rem}
.figure-toolbar-track{grid-column:1/-1;display:block;width:100%;height:4px;border-radius:999px;background:#e1e7e9;overflow:hidden}
.figure-toolbar-track>i{display:block;height:100%;border-radius:inherit;background:#2f7960}
.figure-toolbar-actions{grid-area:actions;display:flex;align-items:center;justify-content:flex-end;gap:.45rem}
.figure-toolbar-actions>button,.figure-controls .figure-location-add>button{min-height:2.45rem;height:2.45rem;padding:.4rem .75rem;white-space:nowrap}
.figure-controls .figure-location-add{display:contents;margin:0}
.figure-controls .figure-location-add>p:empty{display:none}
.figure-room-section{border-top:1px solid #dfe5e7;padding:.55rem .7rem .65rem;background:#fafbfb}
.figure-room-section>strong{margin-bottom:.35rem;font-size:.72rem;letter-spacing:.01em}
.figure-room-slot{grid-template-rows:minmax(1.9rem,auto) 2.35rem}
.figure-room-slot>span{display:-webkit-box;white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.2}
@media(max-width:900px){.figure-controls{grid-template-areas:"process progress" "actions actions";grid-template-columns:minmax(0,1fr) auto}.figure-toolbar-actions{justify-content:flex-end}}
@media(max-width:640px){.figure-meta{display:grid;grid-template-columns:1fr 1fr}.figure-meta span{width:auto}.figure-meta span:first-child{grid-column:1/-1}.figure-controls{grid-template-areas:"process progress" "actions actions";grid-template-columns:minmax(0,1fr) auto;padding:.6rem;gap:.55rem}.figure-controls .figure-process-summary strong{white-space:normal;font-size:.9rem}.figure-controls .figure-top-progress{min-width:6.8rem}.figure-toolbar-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.figure-toolbar-actions>button,.figure-controls .figure-location-add>button{width:100%}.figure-controls .figure-location-add{display:contents}}

/* Finished floor-local special-room subsection */
.figure-room-section{position:relative;margin-top:.35rem;padding:.7rem .75rem .8rem;border-top:1px solid #cbd6da;background:#f5f8f8;box-shadow:inset 0 3px 0 #e8eeee}
.figure-room-heading{display:flex;align-items:center;gap:.4rem;margin:0 0 .55rem;color:#40535c}
.figure-room-heading-label{font-size:.75rem;font-weight:850;letter-spacing:.025em}
.figure-room-heading-count{display:inline-grid;place-items:center;min-width:1.35rem;height:1.35rem;padding:0 .35rem;border:1px solid #ccd7da;border-radius:999px;background:#fff;color:#5a6d74;font-size:.68rem;font-weight:800}
.figure-room-grid{align-items:stretch;gap:.5rem}
.figure-room-slot{display:grid;grid-template-rows:minmax(2.5rem,auto) 3rem;border-color:#c6d1d5;border-radius:.5rem;background:#fff}
.figure-room-slot>span{display:flex;align-items:center;padding:.45rem .55rem;border-bottom:1px solid #e1e7e9;color:#34484f;font-size:.76rem;line-height:1.25}
.figure-room-slot .figure-cell{display:grid;place-items:center;min-height:3rem;padding:.45rem;border-top:0;background:#fbfcfc}
.figure-room-slot .figure-cell.is-completed{background:#eaf6ed}
.figure-room-slot .figure-cell button,.figure-room-slot .figure-cell span{width:2rem;height:2rem}
@media(max-width:640px){.figure-room-section{margin-top:.3rem;padding:.65rem .6rem .7rem}.figure-room-heading{margin-bottom:.45rem}.figure-room-grid{gap:.4rem}.figure-room-slot{grid-template-rows:minmax(2.65rem,auto) 3rem}}

/* Screenshot-friendly Figure grid density */
.figure-unit-header>div{position:relative;min-height:3.9rem;padding:.3rem .35rem;box-sizing:border-box}
.figure-unit-header .line-label{padding:0 1.45rem}
.figure-unit-header .line-menu{position:absolute;top:.15rem;right:.15rem}
.figure-unit-row>strong,.figure-unit-row>.figure-cell{min-height:2.35rem;padding:0 .35rem;box-sizing:border-box}
.figure-unit-row>strong{font-size:.9rem;white-space:nowrap;display:grid;place-items:center;line-height:1.15}
.figure-unit-row>.figure-cell{display:grid;place-items:center}
.figure-unit-row .figure-cell button,.figure-unit-row .figure-cell span{width:2rem;height:2rem}
.figure-room-section{padding:.55rem .7rem .65rem}
.figure-room-heading{margin-bottom:.4rem}
.figure-room-slot{grid-template-rows:minmax(2rem,auto) 2.35rem}
.figure-room-slot>span{padding:.35rem .5rem}
.figure-room-slot .figure-cell{min-height:2.35rem;padding:0 .3rem}
@media(max-width:640px){.figure-unit-header>div{min-height:3.9rem}.figure-unit-row>strong,.figure-unit-row>.figure-cell{min-height:2.35rem}.figure-room-section{padding:.5rem .55rem .6rem}.figure-room-slot{grid-template-rows:minmax(2rem,auto) 2.35rem}}

/* Separate special-space grid */
.figure-special-grid-card{margin-top:1rem;padding:0;overflow:hidden;border-color:#c9d4d8;background:#f7f9f9}
.figure-special-grid-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.7rem .85rem;border-bottom:1px solid #cbd6da;background:#edf3f3}
.figure-special-grid-heading h3{margin:0;font-size:.95rem;color:#30444b}
.figure-special-grid-heading span{padding:.2rem .45rem;border:1px solid #c8d4d7;border-radius:999px;background:#fff;color:#566a72;font-size:.7rem;font-weight:800}
.figure-special-grid-scroll{max-width:100%;overflow-x:auto}
.figure-special-grid{display:grid;width:max-content;min-width:max-content;background:#fff}
.figure-special-header,.figure-special-row{display:grid;grid-template-columns:5rem repeat(var(--room-columns),minmax(6.5rem,1fr));align-items:stretch}
.figure-special-header>*{display:grid;place-items:center;height:2.75rem;min-height:2.75rem;padding:.3rem .4rem;box-sizing:border-box;border-right:1px solid #d8e0e3;border-bottom:1px solid #cbd6da;background:#f1f5f5;text-align:center;color:#52656c;font-size:.72rem;font-weight:800}
.figure-special-row>strong{display:grid;place-items:center;min-height:2.75rem;padding:.3rem;border-right:1px solid #d8e0e3;border-bottom:1px solid #d8e0e3;font-size:.9rem;white-space:nowrap}
.figure-special-room{display:grid;grid-template-columns:minmax(0,1fr) 2.75rem;align-items:center;min-height:2.75rem;border-right:1px solid #d8e0e3;border-bottom:1px solid #d8e0e3;background:#fff}
.figure-special-room-name{min-width:0;padding:.4rem .5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#34484f;font-size:.76rem;font-weight:800}
.figure-special-room>.figure-cell{display:grid;place-items:center;min-height:100%;padding:0;border-left:1px solid #e1e7e9;background:#fbfcfc}
.figure-special-room>.figure-cell.is-completed{background:#eaf6ed}
.figure-special-room.is-empty{background:#f3f5f5}
@media(max-width:640px){.figure-special-grid-card{margin-top:.75rem}.figure-special-grid-heading{padding:.6rem .7rem}.figure-special-header,.figure-special-row{grid-template-columns:4rem repeat(var(--room-columns),minmax(7.5rem,1fr))}.figure-special-grid{min-width:max-content}.figure-special-room{grid-template-columns:minmax(0,1fr) 2.75rem}}

/* Smaller visual check with preserved interaction target */
.figure-cell-active>button,.figure-cell-active>span{display:grid;place-items:center;position:relative;padding:0;border:0;background:transparent!important;color:inherit!important}
.figure-cell-active>button{width:2.75rem;height:2.75rem;min-height:2.75rem;touch-action:pan-y;user-select:none}
.figure-cell-active>span{width:2rem;height:2rem;min-height:2rem}
.figure-check-visual{display:grid;place-items:center;width:1rem;height:1rem;box-sizing:border-box;border:2px solid #245aa8;border-radius:.22rem;background:#fff;color:#fff;font-size:.66rem;font-weight:900;font-style:normal;line-height:1}
.figure-cell-active.is-completed .figure-check-visual,.rc-elevation-structure-cell.is-checked .figure-check-visual{border-color:#246b38;background:#246b38}

/* Clear selected task and insertion feedback */
.task-row.active{background:#f0db79;border:1px solid #c49a18;box-shadow:inset 4px 0 #9a7100;color:#28363b;font-weight:800}
.task-row.active .task-rate{color:#604800}
.task-row.active .task-track{background:#fff4c5}
.drop-insertion{position:relative;min-height:1.35rem;margin:-.35rem 0;background:transparent!important}
.drop-insertion.drag-over::after{content:"";position:absolute;left:.3rem;right:.3rem;top:50%;height:5px;transform:translateY(-50%);border-radius:999px;background:#176c54;box-shadow:0 0 0 2px #fff,0 0 0 3px #176c54}
.major-drop-insertion{margin:.05rem 0 -.55rem}
.task-drop-insertion{margin:-.3rem 0}
.category-card.drop-into{outline:3px solid #2f7960;outline-offset:2px;background:#eaf7f1}

/* Figure-owned structure actions and context entry points */
.figure-grid-heading{flex-wrap:wrap}
.figure-panel-actions{margin-left:auto}
.figure-panel-actions .figure-location-add{margin:0;gap:.4rem}
.figure-panel-actions .figure-location-add>p:empty{display:none}
.figure-process-actions{display:flex;align-items:center;justify-content:flex-end;gap:.4rem;flex-wrap:wrap}
.figure-process-actions>button{min-height:2.35rem;padding:.35rem .6rem;white-space:nowrap}
.sidebar-heading{flex-wrap:wrap}
.sidebar-heading>.figure-process-actions{margin-left:auto}
.sidebar-heading>p{flex-basis:100%;text-align:right}
.figure-floor-block,.figure-special-room{position:relative}
.figure-unit-row>strong{position:relative;padding-right:1.8rem}
.figure-row-menu{position:absolute;z-index:2;top:50%;right:.1rem;width:1.7rem;height:1.7rem;min-height:1.7rem;padding:0;border:0;border-radius:.3rem;background:transparent;transform:translateY(-50%);font-size:1rem;line-height:1}
.figure-row-menu:hover,.line-menu:hover{background:#e5ecee}
.figure-special-room-name{padding-right:1.8rem}
.figure-context-menu button[hidden]{display:none}
@media(max-width:640px){.figure-grid-heading{align-items:flex-start}.figure-panel-actions{width:100%;margin-left:0}.figure-panel-actions .figure-location-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.figure-panel-actions button{width:100%}.figure-process-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.sidebar-heading>.figure-process-actions{margin-left:0}.sidebar-heading>p{text-align:left}}

/* r145 workspace interaction and management polish */
.figure-unit-header>div{display:grid;grid-template-rows:repeat(4,auto);align-content:center;gap:.08rem;min-height:4.35rem}
.figure-unit-header .line-label,.figure-unit-header .line-unit-type,.figure-unit-header .line-households,.figure-unit-header .line-progress{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.1}
.figure-unit-header .line-progress{font-size:.69rem;font-weight:850;color:#263940}
.figure-unit-header .line-progress-emphasis{font-weight:800;color:#2d3f46}
.figure-unit-header .line-progress-number{font-size:.72rem;font-weight:900;color:#17272d}
.figure-special-room{grid-template-columns:1fr;grid-template-rows:minmax(2rem,auto) 2.75rem;align-items:stretch;min-height:4.75rem}
.figure-special-room-head{display:grid;grid-template-columns:minmax(0,1fr) 2rem;align-items:center;min-width:0;border-bottom:1px solid #e1e7e9}
.figure-special-room-name{display:-webkit-box;padding:.35rem .15rem .35rem .5rem;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal;line-height:1.15}
.figure-special-room-menu.figure-row-menu{position:static;transform:none;justify-self:center}
.figure-special-room-progress{display:grid;place-items:center;min-height:2.75rem;overflow:hidden;background:#fbfcfc}
.figure-special-room-progress>.figure-cell{display:grid;place-items:center;width:100%;height:100%;min-height:2.75rem;padding:0;border:0}
.figure-hidden-list{display:grid;gap:.4rem;padding:0;list-style:none}
.figure-hidden-list li{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.45rem .55rem;border:1px solid #d8e0e3;border-radius:.4rem}
.figure-line-settings-stats{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.figure-line-settings-stats div{padding:.55rem;border:1px solid #d8e0e3;border-radius:.4rem;background:#f7f9f9}
.figure-line-settings-stats dt{font-size:.72rem;color:#60737a}.figure-line-settings-stats dd{margin:.15rem 0 0;font-weight:800}
@media(max-width:640px){.figure-location-actions{grid-template-columns:repeat(2,1fr)!important}.figure-location-actions #figure-hidden-manage-button{grid-column:1/-1}.figure-special-room{min-height:4.75rem}}

/* RC Phase 1 foundation */
.rc-controls{grid-template-areas:"process progress actions"}
.rc-control-metrics{grid-area:progress;display:flex;gap:1rem;flex-wrap:wrap;color:#52656c;font-size:.78rem}.rc-control-metrics b{display:block;color:#203239;font-size:.9rem}
.rc-workspace{display:grid;grid-template-columns:minmax(0,1fr) 18rem;gap:1rem;align-items:start}.rc-elevation-card{padding:0;overflow:hidden}.rc-section-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem .9rem;border-bottom:1px solid #d6dfe2;background:#f2f6f6}.rc-section-heading h2,.rc-section-heading h3{margin:0;font-size:1rem}.rc-section-heading span{color:#5c6e75;font-size:.75rem;font-weight:800}
.rc-floor-list{display:grid}.rc-floor-row{display:grid;grid-template-columns:5rem 7rem 7rem minmax(7rem,1fr) minmax(7rem,1fr);align-items:center;gap:.5rem;width:100%;min-height:3rem;padding:.35rem .75rem;border:0;border-bottom:1px solid #e0e6e8;border-radius:0;background:#fff;text-align:left}.rc-floor-row:hover{background:#f6f9f9}.rc-floor-row.is-completed{box-shadow:inset 4px 0 #2f7960}.rc-floor-row strong{font-size:.95rem}.rc-floor-row span{font-size:.78rem;color:#52656c}.rc-floor-row .is-delay{color:#a7352a;font-weight:850}
.rc-foundation-card{margin:1rem;border-color:#c8d5d9;overflow:hidden}.rc-foundation-row{display:grid;grid-template-columns:1fr auto;width:100%;min-height:2.75rem;padding:.45rem .75rem;border:0;border-bottom:1px solid #e0e6e8;border-radius:0;background:#fff;text-align:left}.rc-foundation-row:last-child{border-bottom:0}.rc-foundation-row span{color:#52656c}.rc-metrics{position:sticky;top:1rem}.rc-metrics h2{margin-top:0}.rc-metrics dl{display:grid;gap:.55rem}.rc-metrics dl div{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding-bottom:.45rem;border-bottom:1px solid #e1e7e9}.rc-metrics dt{color:#60737a;font-size:.75rem}.rc-metrics dd{margin:0;font-weight:850}.rc-empty{text-align:center}
.rc-hoist-setting-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(8rem,auto) auto;gap:.35rem;align-items:end;padding:.35rem;background:#f5f7f8}.rc-hoist-setting-row label{display:grid;gap:.15rem}.rc-hoist-setting-row button{min-height:2.15rem}
#rc-settings-dialog form,#rc-building-date-dialog form,#rc-floor-dialog form{display:grid;gap:.75rem;min-width:min(24rem,80vw)}#rc-settings-dialog label,#rc-building-date-dialog label,#rc-floor-dialog label{display:grid;gap:.3rem;font-weight:750}
@media(max-width:720px){.rc-hoist-setting-row{grid-template-columns:minmax(0,1fr) auto}.rc-hoist-setting-row label{grid-column:1}.rc-hoist-setting-row [data-rc-hoist-block]{grid-column:2}}
@media(max-width:720px){.rc-controls{grid-template-areas:"process actions" "progress progress";grid-template-columns:minmax(0,1fr) auto}.rc-workspace{grid-template-columns:1fr}.rc-metrics{position:static}.rc-floor-row{grid-template-columns:3.6rem 5.5rem minmax(5.5rem,1fr);gap:.3rem;padding:.4rem .5rem}.rc-floor-row span:nth-of-type(n+3){grid-column:2/-1}.rc-floor-row{min-height:3.4rem}.rc-control-metrics{gap:.75rem}}
.rc-kpi-strip{display:flex;align-items:stretch;gap:1px;margin-bottom:.55rem;border:1px solid #cad6d9;border-radius:.55rem;overflow:hidden;background:#cad6d9}.rc-kpi-strip>strong{display:grid;place-items:center;min-width:7.5rem;padding:.42rem .65rem;background:#253b42;color:#fff;font-size:.86rem}.rc-kpi-strip span{display:grid;gap:.08rem;min-width:8.5rem;flex:1;padding:.38rem .6rem;background:#fff;font-size:.76rem;font-weight:850}.rc-kpi-strip b{color:#65777d;font-size:.64rem}.rc-management-workspace{display:grid;grid-template-columns:minmax(17rem,32%) minmax(0,68%);gap:.65rem;align-items:start}.rc-schedule-card,.rc-elevation-card{padding:0;overflow:hidden}.rc-elevation-grid{overflow:auto}.rc-elevation-head,.rc-elevation-row{display:grid;grid-template-columns:3.8rem repeat(var(--rc-lines),minmax(2.35rem,1fr));align-items:stretch;min-width:max-content}.rc-elevation-head>*{padding:.28rem .22rem;border-right:1px solid #dce4e6;background:#eef3f4;text-align:center;font-size:.66rem}.rc-elevation-row{width:100%;min-height:2rem;padding:0;border:0;border-bottom:1px solid #e0e7e9;border-radius:0;background:#fff}.rc-elevation-row>*{display:grid;place-items:center;margin:0;border-right:1px solid #e0e7e9}.rc-elevation-row strong{font-size:.74rem}.rc-elevation-row i{background:#f6f8f8}.rc-elevation-row.is-completed i{background:#bedcca}.rc-elevation-row.is-current{box-shadow:inset 4px 0 #e0a919}.rc-elevation-row.is-current i{outline:2px solid #d39b0a;outline-offset:-2px}.rc-elevation-row.is-selected{background:#fff4c9}.rc-elevation-hoist{font-style:normal;font-weight:850}.rc-elevation-row .rc-elevation-hoist{display:flex;align-items:center;justify-content:center;gap:.15rem;font-size:.8rem}.rc-elevation-row .rc-elevation-hoist small{font-size:.52rem}.rc-elevation-hoist.is-available{color:#23704f;background:#e3f0e8}.rc-elevation-hoist.is-top{color:#735300;background:#fff0b8}.rc-elevation-hoist.is-blocked{color:#913a31;background:#f8deda}.rc-elevation-hoist.is-uninstalled{color:#7b888d;background:#f2f4f4}.rc-schedule-scroll{overflow:auto;max-height:min(63vh,48rem)}.rc-schedule-card table{width:100%;min-width:41rem;border-collapse:collapse;font-size:.74rem}.rc-schedule-card th,.rc-schedule-card td{height:2.05rem;padding:.25rem .35rem;border-bottom:1px solid #e0e7e9;text-align:center;white-space:nowrap}.rc-schedule-card thead{position:sticky;top:0;z-index:2;background:#edf3f4}.rc-schedule-card tbody th{position:sticky;left:0;background:#fff}.rc-schedule-card tbody th button{min-width:3rem;padding:.2rem;border:0;background:transparent;font-weight:850}.rc-schedule-card tr.is-selected td,.rc-schedule-card tr.is-selected th{background:#fff4c9}.rc-schedule-card td small{display:block;color:#8a6a12}.rc-state,.rc-hoist-state{display:inline-flex;align-items:center;justify-content:center;min-height:1.45rem;padding:.1rem .4rem;border-radius:999px;border:0;font-size:.66rem;font-weight:850}.rc-state-done,.rc-hoist-state.is-available{background:#dcefe5;color:#205f45}.rc-state-planned,.rc-hoist-state.is-top{background:#fff0b8;color:#745300}.rc-state-unset,.rc-hoist-state.is-uninstalled{background:#eef1f2;color:#66757a}.rc-hoist-state.is-blocked{background:#f8deda;color:#8d3027}.rc-note-dot{margin-left:.25rem;font-size:.65rem}.rc-foundation-compact{display:flex;align-items:center;gap:.28rem;min-height:2.05rem;padding:.28rem .45rem;border-top:1px solid #dce4e6;background:#f7f9f9;font-size:.66rem;white-space:nowrap;overflow-x:auto}.rc-foundation-compact>b{margin-right:.2rem}.rc-foundation-compact button{min-height:1.45rem;padding:.1rem .25rem;border:0;background:transparent;font-size:.66rem}.rc-foundation-compact i{color:#a3afb3}.rc-settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:.55rem}.rc-settings-section{display:grid;gap:.45rem;padding:.55rem 0;border-bottom:1px solid #dce4e6}.rc-settings-section h3{margin:0;font-size:.82rem}.rc-derived-date{display:flex;justify-content:space-between;margin:0;padding:.4rem;background:#f3f6f7}.rc-date-spinner{display:grid;grid-template-columns:repeat(3,minmax(4.2rem,1fr)) auto;gap:.4rem;align-items:end;margin:0;padding:.5rem;border:1px solid #d7dfe2;border-radius:.5rem}.rc-date-spinner legend{padding:0 .25rem;font-weight:800}.rc-date-spinner label{display:grid;gap:.2rem}.rc-date-spinner label span{font-size:.68rem;color:#64767d}.rc-date-spinner input{min-width:0}.rc-date-spinner .text-button{min-height:2.5rem}#rc-settings-dialog{max-height:90vh;overflow:auto}#rc-hoist-form{display:grid;gap:.45rem}#rc-hoist-form>label{display:grid;gap:.25rem}.rc-hoist-list{display:grid;gap:.2rem;font-size:.72rem}
@media(max-width:720px){.rc-kpi-strip{overflow-x:auto}.rc-kpi-strip span{min-width:8rem}.rc-management-workspace{grid-template-columns:minmax(0,1fr)}.rc-schedule-scroll{max-height:none}.rc-settings-grid{grid-template-columns:1fr}.rc-date-spinner{grid-template-columns:repeat(3,minmax(3.7rem,1fr));}.rc-date-spinner .text-button{grid-column:1/-1}.rc-hoist-form{grid-template-columns:1fr}.rc-foundation-card .rc-foundation-row{display:grid;width:100%;border-right:0;border-bottom:1px solid #e0e6e8}}
.rc-management-workspace{--rc-floor-row-height:2rem;--rc-head-height:2.05rem;grid-template-columns:minmax(20rem,34%) minmax(0,66%);gap:.45rem}
.rc-section-heading{height:2.65rem;padding:.35rem .55rem}.rc-section-heading h2{font-size:.88rem}.rc-section-heading span{font-size:.65rem}
.rc-elevation-grid,.rc-schedule-scroll{max-height:none;overflow-x:auto;overflow-y:visible;scrollbar-gutter:auto}
.rc-elevation-head{position:sticky;top:0;z-index:3;height:var(--rc-head-height)}.rc-elevation-head>*{display:grid;place-items:center;height:var(--rc-head-height);box-sizing:border-box;padding:.18rem}
.rc-elevation-row{height:var(--rc-floor-row-height);min-height:var(--rc-floor-row-height)}
.rc-elevation-head,.rc-elevation-row{grid-template-columns:3.55rem repeat(var(--rc-lines),minmax(2.05rem,1fr))}
.rc-elevation-head .rc-elevation-hoist{position:relative;min-height:0;border:0;border-right:1px solid #dce4e6;border-radius:0;background:#e8eff0;color:#203239;font-size:.62rem;font-weight:850;cursor:default}.rc-hoist-manage-indicator{position:absolute;top:2px;right:2px;width:11px;height:11px;display:grid;place-items:center;pointer-events:none;color:#60767d;font-size:10px;font-style:normal;line-height:1}
.rc-elevation-hoist-cell{cursor:pointer;touch-action:pan-y;user-select:none}.rc-elevation-hoist-cell:hover{outline:1px solid #789198;outline-offset:-1px}.rc-elevation-hoist-cell:active{filter:brightness(.94)}.rc-elevation-hoist-cell.is-pending{cursor:progress;opacity:.72}
.rc-schedule-card table{table-layout:fixed}.rc-schedule-card thead tr{height:var(--rc-head-height)}.rc-schedule-card th,.rc-schedule-card td{height:var(--rc-floor-row-height);box-sizing:border-box;padding:.12rem .25rem}.rc-schedule-card thead th{height:var(--rc-head-height);line-height:1.05}
.rc-inline-editor{width:100%;height:1.55rem;min-height:0;box-sizing:border-box;padding:.08rem .18rem;border:1px solid transparent;border-radius:.25rem;background:#f7faf9;color:#203239;font:inherit;text-align:center}.rc-inline-editor:hover,.rc-inline-editor:focus{border-color:#82979e;background:#fff;outline:0}.rc-inline-editor:disabled{border-color:transparent;background:transparent;color:inherit}.rc-inline-cycle{max-width:4.2rem}.rc-inline-editor::placeholder{color:#7d8b90;opacity:.8}
.rc-inline-plan.is-derived{color:#718087;background:#f8faf9}.rc-inline-plan.is-conflict{border-color:#b5651d;background:#fff8ed}
.rc-schedule-card tfoot{background:#f3f5f5}.rc-schedule-card .rc-foundation-row th{height:1.72rem;color:#53666d;text-align:center;vertical-align:middle}.rc-schedule-card .rc-foundation-row td{height:1.72rem;color:#53666d}.rc-foundation-row button{display:grid;place-items:center;width:100%;min-height:1.35rem;padding:.05rem .2rem;border:0;background:transparent;font-size:.7rem;font-weight:850;text-align:center}.rc-foundation-row small{font-size:.62rem}
.rc-kpi-strip{min-height:2.75rem;margin-bottom:.4rem}.rc-kpi-strip>strong{min-width:6.8rem;padding:.3rem .5rem}.rc-kpi-strip span{min-width:7.6rem;padding:.28rem .45rem}.rc-kpi-strip>button{min-width:5.5rem;border:0;border-radius:0;background:#fff;font-size:.72rem;font-weight:850}
.dialog-help{margin:0;color:#60737a;font-size:.75rem}
.rc-hoist-structure-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:.35rem;align-items:center;padding:.35rem .45rem;border:1px solid #dce4e6;border-radius:.4rem;background:#f7f9f9}.rc-hoist-structure-row span{display:grid;gap:.08rem}.rc-hoist-structure-row small{color:#64767d;font-size:.66rem}.rc-hoist-structure-row .danger{color:#9b332b}#rc-hoist-form{margin-top:.45rem;padding:.55rem;border:1px dashed #cbd7da;border-radius:.45rem;background:#fff}
@media(max-width:720px){.rc-management-workspace{grid-template-columns:minmax(0,1fr)}.rc-elevation-grid,.rc-schedule-scroll{max-height:none}.rc-kpi-strip{min-height:2.6rem}.rc-kpi-strip>button{position:sticky;right:0}.rc-hoist-structure-row{grid-template-columns:minmax(0,1fr) auto auto}}
.rc-schedule-card tbody tr{height:var(--rc-floor-row-height)}.rc-schedule-card tbody th button{height:100%;min-height:0;line-height:1}.rc-schedule-card tbody td{line-height:1}.rc-schedule-card tbody td small{display:inline;margin-left:.15rem;font-size:.58rem}
.rc-elevation-foundation-row{display:grid;grid-template-columns:3.55rem repeat(var(--rc-lines),minmax(2.05rem,1fr));height:1.72rem;min-width:max-content;border-bottom:1px solid #e0e7e9;background:#f3f5f5}.rc-elevation-foundation-row>*{display:grid;place-items:center;margin:0;border-right:1px solid #e0e7e9}.rc-elevation-foundation-row>strong{display:grid;place-items:center;padding:0;text-align:center;font-size:.66rem;color:#53666d}
.rc-schedule-card tr.rc-foundation-row{display:table-row;width:auto;min-height:0;padding:0;border:0;background:#f3f5f5}.rc-schedule-card tr.rc-foundation-row>th,.rc-schedule-card tr.rc-foundation-row>td{display:table-cell}

/* Figure-only viewing runway: lets the final real row rise below the fixed app chrome. */
.figure-scroll-runway{width:100%;height:clamp(18rem,calc(100dvh - var(--header-height,4.5rem) - 5.5rem),72rem);pointer-events:none}
@media(max-width:720px){.figure-scroll-runway{height:clamp(16rem,calc(100dvh - var(--header-height,4.5rem) - var(--mobile-nav-height,4rem) - 4rem),48rem)}}
@media print{.figure-scroll-runway{display:none!important}}
.figure-grid-aligner{display:flex;width:max-content;min-width:100%;box-sizing:border-box}.figure-grid-aligner.is-left{justify-content:flex-start}.figure-grid-aligner.is-center{justify-content:center}.figure-grid-aligner.is-right{justify-content:flex-end}
.figure-elevation-stack,.figure-data-stack,.rc-elevation-stack{display:grid;gap:.8rem}.figure-special-elevation,.figure-special-data,.rc-special-elevation{border-top:3px solid #9aabb0;background:#fbfcfc}.figure-special-data{padding:0;overflow:hidden}.figure-special-data>p{margin:.65rem .8rem;color:#61747b;font-size:.75rem}.figure-special-grid .figure-apartment-column{background:#f3f1e9}.figure-special-grid .figure-cell{background:#fffdf8}
.figure-apartment-grid{display:grid;width:max-content;border:1px solid #d5dfe2;border-radius:.55rem;overflow:hidden;background:#fff}
.figure-apartment-grid>*{min-width:0;box-sizing:border-box;border-right:1px solid #dce4e6;border-bottom:1px solid #dce4e6}
.figure-apartment-grid>.figure-floor-heading,.figure-apartment-column{height:4.15rem;min-height:4.15rem;padding:.28rem .3rem;background:#eef3f4;text-align:center}
.figure-floor-heading{display:flex!important;flex-direction:column;align-items:stretch!important;justify-content:center;gap:.2rem;box-sizing:border-box;padding:.22rem .3rem!important;background:#eef3f4;text-align:center}
.figure-floor-heading-building{font-size:.82rem;font-weight:900;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.figure-floor-heading-divider{width:100%;border-top:1px solid #aebdc1}
.figure-floor-heading-label{font-size:.68rem;font-weight:850;line-height:1}
.figure-apartment-column{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.08rem;cursor:default;user-select:none}
.figure-apartment-column .line-label{font-size:.78rem;font-weight:900;line-height:1.1}.figure-apartment-column .line-unit-type,.figure-apartment-column .line-households,.figure-apartment-column .line-progress{width:100%;padding-top:.08rem;border-top:1px solid #d8e1e3;font-size:.56rem;line-height:1.05}.figure-apartment-column .line-progress{display:flex;justify-content:center;gap:.22rem}.figure-apartment-column .line-incomplete{color:#a7352a;font-weight:850}.figure-apartment-column .line-menu{position:absolute;top:.12rem;right:.1rem;width:1.25rem;height:1.25rem;min-height:0;padding:0;border:0;background:transparent;font-size:.85rem}
.figure-column-grip{position:absolute;top:.08rem;left:.08rem;z-index:2;display:grid;place-items:center;width:1.75rem;height:1.75rem;min-height:0;padding:0;border:0;background:transparent;color:#64767d;cursor:grab}.figure-column-grip svg{width:.9rem;height:.9rem;fill:currentColor}.figure-column-grip:active{cursor:grabbing}
.figure-alignment-control{display:inline-flex;align-items:center;border:1px solid #cbd6d9;border-radius:.45rem;background:#f7f9f9;overflow:hidden}.figure-alignment-control button{display:grid;place-items:center;width:2.35rem;height:2.35rem;min-height:0;padding:0;border:0;border-right:1px solid #d7e0e2;border-radius:0;background:transparent;color:#52666d}.figure-alignment-control button:last-child{border-right:0}.figure-alignment-control button[aria-pressed="true"]{background:#e7eef0;color:#174f62;box-shadow:inset 0 0 0 1px #8eaeb8}.figure-alignment-control svg{width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.rc-structure-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;margin:0 0 .45rem;border:1px solid #dce4e6;border-radius:.55rem;background:#fafcfc;overflow:hidden}
.rc-structure-controls>.figure-location-add{margin:0;padding:.42rem .55rem;border:0;background:transparent}
.rc-structure-controls>.figure-location-add .figure-location-actions{gap:.35rem}
.rc-structure-controls>.figure-location-add button{min-height:2rem;padding:.3rem .55rem;font-size:.7rem}
.rc-alignment-row{display:flex;justify-content:flex-end;padding:.35rem .55rem;border-bottom:1px solid #dce4e6;background:#f7f9f9}
.rc-structure-controls>.rc-alignment-row{align-self:stretch;align-items:center;border-bottom:0;border-left:1px solid #dce4e6}
.rc-elevation-head .figure-floor-heading{height:var(--rc-head-height);min-height:var(--rc-head-height);gap:.1rem;padding:.1rem .18rem!important}
.rc-elevation-head .figure-floor-heading-building{font-size:.7rem}
.rc-elevation-head .figure-floor-heading-label{font-size:.55rem}
.figure-apartment-column.is-special{background:#f3f1e9}.figure-apartment-column.is-hoist{background:#eef0f4;white-space:nowrap}
.figure-apartment-column.is-hoist .line-label,.rc-elevation-column.is-hoist{white-space:nowrap;font-weight:900;letter-spacing:.02em}.rc-special-elevation{margin-top:.8rem}.rc-special-elevation .rc-section-heading{padding:.45rem .6rem}.rc-special-elevation h3{margin:0;font-size:.78rem}
.figure-apartment-floor{position:relative;display:flex;align-items:center;justify-content:center;min-height:2.1rem;padding:.25rem;background:#f7f9f9;font-size:.76rem}
.figure-apartment-grid>.figure-cell,.figure-apartment-hoist-cell{display:grid;place-items:center;min-height:2.1rem;margin:0;border-radius:0}
.figure-apartment-hoist-cell{font-size:.78rem;font-weight:850;background:#f1f3f4;color:#718087}.figure-apartment-hoist-cell.is-available{background:#e3f0e8;color:#23704f}.figure-apartment-hoist-cell.is-top{background:#fff0b8;color:#735300}.figure-apartment-hoist-cell.is-blocked{background:#f8deda;color:#913a31}
[data-figure-column-key].is-dragging{opacity:.45}[data-figure-column-key].is-insert-before::before,[data-figure-column-key].is-insert-after::after{content:"";position:absolute;z-index:8;top:0;bottom:0;width:4px;background:#176b87;border-radius:4px}[data-figure-column-key].is-insert-before::before{left:-2px}[data-figure-column-key].is-insert-after::after{right:-2px}
.rc-management-workspace{grid-template-columns:minmax(22rem,45%) minmax(0,55%)}
.rc-elevation-board,.rc-elevation-head,.rc-elevation-row,.rc-elevation-foundation-row{width:max-content}
.rc-elevation-column{position:relative;white-space:nowrap;cursor:default;user-select:none}.rc-elevation-column.is-hoist{background:#e9edf1}
.rc-elevation-structure-cell{display:grid;place-items:center}.rc-elevation-structure-cell.is-special{background:#f3f1e9}
.rc-schedule-card .is-negative{color:#a7352a!important;font-weight:850}
.rc-inline-editor[type="date"][value=""]{color:transparent}.rc-inline-editor[type="date"][value=""]::-webkit-calendar-picker-indicator{opacity:1}
@media(max-width:720px){[data-figure-column-key]{cursor:default}.figure-column-grip{display:none}.rc-structure-controls{grid-template-columns:minmax(0,1fr)}.rc-structure-controls>.rc-alignment-row{border-top:1px solid #dce4e6;border-left:0}.rc-management-workspace{grid-template-columns:minmax(0,1fr)}}

/* Shared elevation identity: readable floor labels and a quiet, continuous H/C shaft. */
body:has(.figure-workspace),body:has(.rc-management-workspace){--figure-floor-column-width:4.75rem;--figure-floor-label-font-size:.78rem;--figure-hoist-edge:#bcc9cd;--figure-hoist-head:#e5ebed;-webkit-text-size-adjust:none;text-size-adjust:none}
.figure-workspace{--figure-floor-column-width:4.75rem;--figure-floor-label-font-size:.78rem;--figure-hoist-edge:#bcc9cd;--figure-hoist-head:#e5ebed}
.figure-apartment-floor,.rc-elevation-row>strong,.rc-elevation-head>b,.rc-elevation-foundation-row>strong{white-space:nowrap;word-break:keep-all;overflow-wrap:normal;-webkit-text-size-adjust:none;text-size-adjust:none;font-size:var(--figure-floor-label-font-size);line-height:1.1}
.figure-apartment-grid,.rc-elevation-board{-webkit-text-size-adjust:none;text-size-adjust:none}
.figure-floor-label-text{display:inline-block;font-size:12.5px;white-space:nowrap;word-break:keep-all;line-height:1.1}
.figure-apartment-column.is-hoist,.rc-elevation-column.is-hoist{background:var(--figure-hoist-head);color:#344c55}
.figure-apartment-column.is-hoist,.figure-apartment-hoist-cell,.rc-elevation-column.is-hoist,.rc-elevation-hoist-cell{box-shadow:inset 1px 0 var(--figure-hoist-edge),inset -1px 0 var(--figure-hoist-edge)}
