/* Enterprise Bootstrap Theme | MIT License | (c) 2026 Priya Vijai Kalyan */
.spinemap{background-color:var(--theme-surface-bg);border:1px solid var(--theme-border-subtle);border-radius:0;display:flex;flex-direction:column;height:100%;min-height:400px;overflow:hidden;position:relative;width:100%}.spinemap-toolbar{align-items:center;background-color:var(--theme-surface-raised-bg);border-bottom:1px solid var(--theme-border-subtle);display:flex;flex-shrink:0;gap:8px;padding:4px 8px;z-index:10}.spinemap-toolbar-group{align-items:center;display:flex;gap:2px}.spinemap-toolbar-btn{align-items:center;background-color:var(--theme-surface-bg);border:1px solid var(--theme-border-color);border-radius:0;color:var(--theme-text-secondary);cursor:pointer;display:inline-flex;font-size:.875rem;height:28px;justify-content:center;line-height:1;padding:0;width:28px}.spinemap-toolbar-btn:hover{background-color:var(--theme-active-bg);color:var(--theme-text-primary)}.spinemap-toolbar-btn:focus-visible{outline:2px solid #1c7ed6;outline-offset:-1px}.spinemap-layout-select{background-color:var(--theme-surface-bg);border:1px solid var(--theme-border-color);border-radius:0;color:var(--theme-text-secondary);cursor:pointer;font-size:.8rem;height:28px;padding:0 6px}.spinemap-export-wrap{position:relative}.spinemap-export-menu{background-color:var(--theme-surface-bg);border:1px solid var(--theme-border-color);border-radius:0;box-shadow:0 2px 8px rgba(15,23,42,.12);margin-top:2px;position:absolute;right:0;top:100%;z-index:20}.spinemap-export-item{background:none;border:none;color:var(--theme-text-secondary);cursor:pointer;display:block;font-size:.8rem;padding:6px 12px;text-align:left;white-space:nowrap;width:100%}.spinemap-export-item:hover{background-color:var(--theme-hover-bg);color:var(--theme-text-primary)}.spinemap-body{display:flex;flex:1;min-height:0;overflow:hidden}.spinemap-canvas-wrap{cursor:grab;flex:1;min-width:0;overflow:hidden;position:relative}.spinemap-canvas-wrap:active{cursor:grabbing}.spinemap-canvas{display:block;height:100%;width:100%}.spinemap-hub{cursor:pointer}.spinemap-hub:hover .spinemap-hub-ring{stroke:#475569}.spinemap-hub:focus-visible{outline:none}.spinemap-hub:focus-visible .spinemap-hub-ring{stroke:#1c7ed6;stroke-width:3}.spinemap-hub-label{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.spinemap-leaf{cursor:pointer}.spinemap-leaf:hover .spinemap-leaf-rect{fill:var(--theme-hover-bg);stroke:#64748b}.spinemap-leaf:focus-visible{outline:none}.spinemap-leaf:focus-visible .spinemap-leaf-rect{stroke:#1c7ed6;stroke-width:2}.spinemap-leaf-label{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.spinemap-node-selected .spinemap-hub-ring{stroke:#1c7ed6;stroke-width:3}.spinemap-node-selected .spinemap-leaf-rect{stroke:#1c7ed6;stroke-width:2}.spinemap-conn{cursor:pointer;transition:stroke-width .15s ease}.spinemap-conn:hover{stroke-width:3.5}.spinemap-popover{background-color:var(--theme-surface-bg);border:1px solid var(--theme-border-color);border-radius:0;box-shadow:0 4px 12px rgba(15,23,42,.15);max-height:80vh;overflow-y:auto;width:var(--spinemap-popover-width,300px);z-index:1060}.spinemap-popover-header{align-items:center;border-bottom:1px solid var(--theme-border-subtle);display:flex;justify-content:space-between;padding:8px 12px}.spinemap-popover-title{color:var(--theme-text-primary);font-size:.875rem;font-weight:600}.spinemap-popover-close{background:none;border:none;color:var(--theme-text-secondary);cursor:pointer;font-size:1.2rem;line-height:1;padding:0}.spinemap-popover-close:hover{color:var(--theme-text-primary)}.spinemap-popover-body{padding:8px 12px}.spinemap-popover-field{align-items:flex-start;display:flex;font-size:.8rem;gap:6px;margin-bottom:4px}.spinemap-popover-label{color:var(--theme-text-muted);flex-shrink:0;white-space:nowrap}.spinemap-popover-value{color:var(--theme-text-primary)}.spinemap-popover-link{color:#1c7ed6;text-decoration:none;word-break:break-all}.spinemap-popover-link:hover{text-decoration:underline}.spinemap-popover-deps{border-top:1px solid var(--theme-border-subtle);margin-top:4px;padding-top:4px}.spinemap-popover-dep{color:var(--theme-text-secondary);font-size:.8rem;padding:1px 0}.spinemap-status-badge{border-radius:9999px;color:var(--theme-text-on-primary);display:inline-block;font-size:.8rem;font-weight:500;line-height:1.4;padding:1px 8px}.spinemap-popover-actions{border-top:1px solid var(--theme-border-subtle);display:flex;gap:6px;padding:8px 12px}.spinemap-popover-btn{background:var(--theme-surface-bg);border:1px solid var(--theme-border-color);border-radius:0;color:var(--theme-text-secondary);cursor:pointer;font-size:.8rem;padding:4px 10px}.spinemap-popover-btn:hover{background-color:var(--theme-active-bg)}.spinemap-popover-btn-primary{background-color:#1c7ed6;border-color:#1c7ed6;color:var(--theme-text-on-primary)}.spinemap-popover-btn-primary:hover{background-color:#1769b2}.spinemap-popover-btn-danger{border-color:#dc2626;color:#dc2626}.spinemap-popover-btn-danger:hover{background-color:#dc2626;color:var(--theme-text-on-primary)}.spinemap-popover-form{display:flex;flex-direction:column;gap:6px}.spinemap-edit-field{display:flex;flex-direction:column;gap:2px}.spinemap-edit-field label{color:var(--theme-text-muted);font-size:.8rem;font-weight:500}.spinemap-edit-input,.spinemap-edit-select,.spinemap-edit-textarea{background-color:var(--theme-surface-bg);border:1px solid var(--theme-border-color);border-radius:0;color:var(--theme-text-primary);font-size:.8rem;padding:4px 6px;width:100%}.spinemap-edit-input:focus,.spinemap-edit-select:focus,.spinemap-edit-textarea:focus{border-color:#1c7ed6;box-shadow:0 0 0 2px rgba(28,126,214,.15);outline:none}.spinemap-edit-textarea{min-height:40px;resize:vertical}.spinemap-edit-widget{width:100%}.spinemap-edit-field-full .spinemap-edit-widget{min-height:120px}.spinemap-edit-hint{color:var(--theme-text-muted);display:block;font-size:.75rem;margin-top:2px}.spinemap-popover-color-swatch{border:1px solid var(--theme-border-color);display:inline-block;height:14px;margin-right:4px;vertical-align:middle;width:14px}.spinemap-popover-tag-pill{background-color:var(--theme-active-bg);color:var(--theme-text-secondary);display:inline-block;font-size:.75rem;margin:1px 2px;padding:0 6px}.spinemap-popover-code{background-color:var(--theme-surface-raised-bg);font-family:JetBrains Mono,SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace;font-size:.75rem;max-height:60px;overflow:hidden;padding:2px 4px;white-space:pre-wrap;word-break:break-all}.spinemap-sidebar{background-color:var(--theme-surface-bg);border-left:1px solid var(--theme-border-subtle);display:flex;flex-direction:column;flex-shrink:0;overflow:hidden;position:relative}.spinemap-body>.spinemap-sidebar:first-child{border-left:none;border-right:1px solid var(--theme-border-subtle)}.spinemap-sidebar-resize{background-color:transparent;bottom:0;cursor:col-resize;position:absolute;top:0;transition:background-color .15s ease;width:5px;z-index:5}.spinemap-sidebar-resize:active,.spinemap-sidebar-resize:hover{background-color:#1c7ed6}.spinemap-sidebar-resize:focus-visible{background-color:#1c7ed6;outline:none}.spinemap-sidebar-resize-left{left:0}.spinemap-sidebar-resize-right{right:0}.spinemap-sidebar-header{align-items:center;border-bottom:1px solid var(--theme-border-subtle);display:flex;justify-content:space-between;padding:8px 12px}.spinemap-sidebar-title{color:var(--theme-text-primary);font-size:.875rem;font-weight:600}.spinemap-sidebar-toolbar{border-bottom:1px solid var(--theme-border-subtle);display:flex;gap:6px;padding:6px 12px}.spinemap-sidebar-tree{flex:1;min-height:0;overflow-y:auto}.spinemap-fallback-tree{padding:4px 0}.spinemap-fallback-row{color:var(--theme-text-secondary);cursor:pointer;font-size:.8rem;padding:4px 12px}.spinemap-fallback-row:hover{background-color:var(--theme-hover-bg)}.spinemap-fallback-hub{color:var(--theme-text-primary);font-weight:600}.spinemap-legend{background-color:rgba(var(--theme-surface-bg-rgb),.92);border:1px solid var(--theme-border-subtle);border-radius:0;bottom:8px;display:flex;flex-wrap:wrap;gap:8px;left:8px;padding:6px 10px;position:absolute;z-index:10}.spinemap-legend-item{align-items:center;display:flex;gap:4px}.spinemap-legend-dot{border-radius:50%;display:inline-block;flex-shrink:0;height:10px;width:10px}.spinemap-legend-label{color:var(--theme-text-secondary);font-size:.8rem;white-space:nowrap}.spinemap-live{height:1px;overflow:hidden;position:absolute;width:1px;clip:rect(0 0 0 0);white-space:nowrap}.spinemap-sm .spinemap-popover{--spinemap-popover-width:260px}.spinemap-lg .spinemap-popover{--spinemap-popover-width:340px}.spinemap-lg .spinemap-toolbar-btn{height:32px;width:32px}@media (prefers-reduced-motion:reduce){.spinemap-conn,.spinemap-sidebar-resize{transition:none}}