/* dph.css — Diaphragm wall studio (v63). Builds on atelier.css (cp-*), jetty.css (jt-*), road.css (rd-*) and ui.css. */
.dp-app .jt-fig svg { width: 100%; height: auto; display: block; }
.dp-app [data-h] { cursor: grab; }
.dp-app .jt-fig svg text { pointer-events: none; }
.dp-app #dp-sec svg, .dp-app #dp-plan svg { touch-action: none; user-select: none; }
.dp-app .cp-grid2.dp-live { grid-template-columns: minmax(0, 1.4fr) minmax(280px, 1fr); }
@media (max-width: 980px) { .dp-app .cp-grid2.dp-live { grid-template-columns: minmax(0, 1fr); } }
.dp-app .cp-grid3 { display: grid; gap: 16px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 980px) { .dp-app .cp-grid3 { grid-template-columns: minmax(0, 1fr); } }
.dp-app .dp-ok { color: #2e7d4f; }
.dp-app .dp-ng { color: #b42318; font-weight: 600; }
.dp-app tr.dp-sel td { background: rgba(37, 99, 235, .08); }
.dp-app .wn-step { border-left: 3px solid var(--purple, #2563eb); padding: 6px 14px; margin: 0 0 10px; }
.dp-app .wn-step p { margin: 4px 0; font-size: .92rem; }
.dp-app .cp-edit select { max-width: 170px; }
.dp-app .cp-card, .dp-app .cp-grid2 > *, .dp-app .cp-grid3 > * { min-width: 0; }
.dp-app .cp-tab td { white-space: normal; }
.dp-app .dp-live .cp-form { grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); }
.dp-app .dp-live .cp-form input, .dp-app .dp-live .cp-form select { min-width: 0; width: 100%; }
.dp-app .cp-row .btn.sm { margin: 2px 4px 2px 0; }
