/* FDS extension: tabletop plan editing handles and split geometric preview. */
.ss-table-dialog { width: min(1160px, calc(100vw - 32px)); max-width: none; max-height: calc(100dvh - 32px); overflow: auto; padding: var(--fds-space-5, 24px); color: var(--fds-gray-900); background: var(--fds-white, #fff); }
.ss-table-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.ss-table-head h2 { margin: 0; }
.ss-table-actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.ss-table-editor-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.ss-table-editor-grid > section { min-width: 0; }
.ss-table-preview { height: 360px; min-width: 0; border: 1px solid var(--fds-gray-200); border-radius: 8px; }
.ss-table-plan { width: 100%; height: 360px; border: 1px solid var(--fds-gray-200); border-radius: 8px; background: var(--fds-gray-25); touch-action: none; }
.ss-table-grid { stroke: var(--fds-gray-200); stroke-width: .6; fill: none; pointer-events: none; }
.ss-table-outline { fill: var(--fds-gray-100); stroke: var(--fds-gray-700); stroke-width: 2; pointer-events: none; }
.ss-table-display { fill: var(--fds-primary-50, #eef3ff); stroke: var(--fds-primary-500, #5275c7); stroke-dasharray: 5 4; pointer-events: none; }
.ss-hood-outline { fill: var(--fds-info-50, #eff6ff); fill-opacity: .5; stroke: var(--fds-primary-700, #31509d); stroke-width: 2; pointer-events: none; }
.ss-table-component { fill: var(--fds-gray-300); stroke: var(--fds-gray-600); opacity: .65; pointer-events: none; }
.ss-table-component.is-outside { fill: var(--fds-error-100, #fee2e2); stroke: var(--fds-error-600, #b91c1c); opacity: 1; }
.ss-table-edge { stroke: transparent; stroke-width: 18; cursor: move; }
.ss-table-edge.is-selected { stroke: var(--fds-primary-500, #5275c7); stroke-opacity: .25; }
.ss-table-vertex { fill: var(--fds-white, #fff); stroke: var(--fds-gray-700); stroke-width: 2; cursor: grab; }
.ss-table-vertex.is-selected { fill: var(--fds-primary-500, #5275c7); stroke: var(--fds-primary-700, #31509d); }
.ss-table-point-label { fill: var(--fds-gray-900); font-size: 13px; pointer-events: none; }
.ss-table-fields, .ss-table-point-fields { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin-top: 16px; }
.ss-table-point-fields { grid-template-columns: repeat(2,minmax(0,1fr)); }
.ss-table-point-fields .ss-table-actions { grid-column: 1 / -1; }
.ss-table-messages { margin-top: 16px; }
.ss-table-entry { margin-bottom: 12px; }
.ss-table-plan:focus-visible { outline: 2px solid var(--fds-primary-600, #31509d); outline-offset: 2px; }
@media (max-width: 767px) {
  .ss-table-dialog { width: calc(100vw - 16px); max-height: calc(100dvh - 16px); padding: 12px; }
  .ss-table-editor-grid { grid-template-columns: 1fr; gap: 12px; }
  .ss-table-fields { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .ss-table-preview, .ss-table-plan { height: 280px; }
  .ss-table-actions .fds-btn { min-height: 44px; }
}
@media (max-width: 359px) { .ss-table-fields, .ss-table-point-fields { grid-template-columns: 1fr; } }
