/* crane.css (v54): crane lift planning studio */
.cr-plan svg { width: 100%; height: auto; touch-action: none; }
.cr-plan [data-drag] { cursor: grab; }
.cr-plan [data-drag]:active { cursor: grabbing; }
.cr-live .cp-kpi { margin-top: 8px; }
.cr-lib { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 10px; margin: 0 0 14px; }
.cr-libc { border: 1px solid var(--line, #e5e7eb); border-radius: 10px; padding: 10px 12px; background: var(--surface, #fff); display: grid; gap: 4px; }
.cr-libc.on { border-color: #2563eb; box-shadow: 0 0 0 2px color-mix(in srgb, #2563eb 25%, transparent); }
.cr-libc small { color: var(--muted, #6b7280); font-size: 12px; }
.cr-libc span { font-size: 12px; font-weight: 600; }
.cr-3dbar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0 0 8px; }
.cr-3d { width: 100%; min-height: 380px; border: 1px solid var(--line, #e5e7eb); border-radius: 10px; overflow: hidden; background: #eef3f9; }
.cr-3d canvas { display: block; width: 100% !important; }
.cr-seq { padding-left: 20px; display: grid; gap: 6px; }
.cr-seq input { width: 100%; }
.cp-chip.good { color: #15803d; } .cp-chip.warn { color: #b45309; } .cp-chip.bad { color: #b42318; }
.pill.good, .pill.warn, .pill.bad { display: inline-block; }
