/* ================================================================
   BIZMETRY DESIGN SYSTEM — tree-template-view.css
   ================================================================
   Tokens → Dialog → Toolbar → Tabs → Tree → Search
   → Client Types → Frame Types → Animations → Responsive
   ================================================================ */

/* ── 1. Design tokens ───────────────────────────────────────────────── */

.bm-tree-dialog {
  --bm-navy-900:  #111827;
  --bm-navy-800:  #1E2A3A;
  --bm-navy-700:  #2D3A52;
  --bm-navy-500:  #4B5878;
  --bm-navy-300:  #8E97B4;
  --bm-navy-200:  #BFC5D8;
  --bm-navy-100:  #DDE2EF;
  --bm-navy-50:   #F4F5FA;

  --bm-teal-600:  #009977;
  --bm-teal-500:  #00BFA5;
  --bm-teal-400:  #1AD4BA;
  --bm-teal-100:  #CCFAF3;
  --bm-teal-50:   #E6FAF7;

  --bm-success:        #059669;
  --bm-success-bg:     #ECFDF5;
  --bm-success-border: #6EE7B7;
  --bm-success-text:   #065F46;
  --bm-success-light:  #BBF7D0;

  --bm-warning:        #D97706;
  --bm-warning-bg:     #FFFBEB;
  --bm-warning-border: #FCD34D;
  --bm-warning-text:   #92400E;
  --bm-warning-light:  #FDE68A;

  --bm-error:          #DC2626;
  --bm-error-bg:       #FEF2F2;
  --bm-error-border:   #FECACA;
  --bm-error-text:     #991B1B;

  --bm-info:           #2563EB;
  --bm-info-bg:        #EFF6FF;
  --bm-info-border:    #BFDBFE;
  --bm-info-text:      #1E40AF;

  --bm-surface:    #FFFFFF;
  --bm-surface-2:  #F7F8FC;
  --bm-surface-3:  #EFF1F8;

  --bm-text-primary:   #111827;
  --bm-text-secondary: #4B5878;
  --bm-text-muted:     #8E97B4;
  --bm-text-inverse:   #FFFFFF;

  --bm-border:        #E2E5EF;
  --bm-border-subtle: #EFF1F8;
  --bm-border-strong: #C5CCDF;

  --bm-r-sm:   4px;
  --bm-r-md:   6px;
  --bm-r-lg:   10px;
  --bm-r-xl:   14px;
  --bm-r-pill: 100px;

  --bm-font-display: 'Outfit', system-ui, sans-serif;
  --bm-font-body:    'Plus Jakarta Sans', system-ui, sans-serif;
  --bm-font-mono:    'JetBrains Mono', 'Fira Code', monospace;

  --bm-shadow-xs: 0 1px 2px rgba(8,12,24,.06);
  --bm-shadow-sm: 0 1px 4px rgba(8,12,24,.08), 0 1px 2px rgba(8,12,24,.04);
  --bm-shadow-md: 0 4px 12px rgba(8,12,24,.10), 0 2px 4px rgba(8,12,24,.06);
  --bm-shadow-lg: 0 10px 30px rgba(8,12,24,.12), 0 4px 10px rgba(8,12,24,.08);

  --bm-t: 160ms cubic-bezier(.4,0,.2,1);

  /* Semantic tree node colors */
  --tree-owner-bg:        #111827;
  --tree-owner-border:    var(--bm-teal-500);
  --tree-resource-bg:     #FFFFFF;
  --tree-resource-border: #059669;
  --tree-attr-bg:         #FFFFFF;
  --tree-attr-border:     #D97706;
}


/* ── 2. Dialog & base ───────────────────────────────────────────────── */

.bm-tree-dialog {
  width: 90vw !important;
  max-width: 1600px !important;
  min-width: 1200px !important;
  height: 85vh !important;
  margin: auto !important;
  border-radius: var(--bm-r-xl) !important;
  overflow: hidden !important;
  box-shadow: var(--bm-shadow-lg) !important;
  font-family: var(--bm-font-body) !important;
}

.bm-tree-dialog md-dialog {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  border-radius: var(--bm-r-xl) !important;
}

/* Font everywhere except Material Icons */
.bm-tree-dialog *:not(md-icon):not(.material-icons) {
  font-family: var(--bm-font-body) !important;
}

.bm-tree-dialog md-icon,
.bm-tree-dialog .material-icons {
  font-family: 'Material Icons' !important;
  font-style: normal !important;
  font-weight: normal !important;
  font-feature-settings: 'liga' !important;
  -webkit-font-feature-settings: 'liga' !important;
  text-rendering: optimizeLegibility !important;
}

/* Mono exceptions */
.bm-tree-dialog .ft-card-name,
.bm-tree-dialog .ft-field-name,
.bm-tree-dialog .ft-nested-col-name,
.bm-tree-dialog .ft-ref-id-pill,
.bm-tree-dialog .ct-id-pill,
.bm-tree-dialog .ft-id-pill,
.bm-tree-dialog .ttv-version-badge,
.bm-tree-dialog .cm-pill-db-column,
.bm-tree-dialog .cm-pill-json-path {
  font-family: var(--bm-font-mono) !important;
}


/* ── 3. Toolbar ─────────────────────────────────────────────────────── */

.bm-tree-dialog md-toolbar {
  min-height: 68px !important;
  background: var(--bm-navy-900) !important;
  border-bottom: 3px solid var(--bm-teal-500) !important;
  box-shadow: none !important;
  position: relative !important;
}

/* Grid texture */
.bm-tree-dialog md-toolbar::before {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px) !important;
  background-size: 24px 24px !important;
  pointer-events: none !important;
}

.bm-tree-dialog md-toolbar .md-toolbar-tools {
  position: relative !important;
  z-index: 1 !important;
  padding: 0 24px !important;
  min-height: 68px !important;
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
}

/* Toolbar icon */
.bm-tree-dialog md-toolbar .md-toolbar-tools > md-icon:first-child {
  color: var(--bm-teal-400) !important;
  font-size: 24px !important;
}

/* Toolbar title */
.bm-tree-dialog md-toolbar h2 {
  font-family: var(--bm-font-display) !important;
  font-size: 17px !important;
  font-weight: 600 !important;
  color: var(--bm-text-inverse) !important;
  letter-spacing: .3px !important;
  margin: 0 !important;
}

/* Toolbar close button */
.bm-tree-dialog md-toolbar .md-icon-button md-icon {
  color: var(--bm-navy-300) !important;
  transition: color var(--bm-t) !important;
}

.bm-tree-dialog md-toolbar .md-icon-button:hover md-icon {
  color: var(--bm-text-inverse) !important;
}

/* Template meta block */
.bm-tree-dialog .ttv-toolbar-meta {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  margin-left: 18px !important;
  padding-left: 18px !important;
  border-left: 1px solid rgba(255,255,255,.18) !important;
  overflow: hidden !important;
}

.bm-tree-dialog .ttv-template-name {
  font-size: 13.5px !important;
  font-weight: 500 !important;
  color: rgba(255,255,255,.85) !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  max-width: 300px !important;
}

.bm-tree-dialog .ttv-version-badge {
  display: inline-flex !important;
  align-items: center !important;
  padding: 3px 10px !important;
  border-radius: var(--bm-r-pill) !important;
  background: rgba(0,191,165,.18) !important;
  border: 1px solid rgba(0,191,165,.35) !important;
  color: var(--bm-teal-100) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: .3px !important;
  white-space: nowrap !important;
  flex-shrink: 0 !important;
}


/* ── 4. Dialog content & actions ────────────────────────────────────── */

.bm-tree-dialog md-dialog-content {
  flex: 1 !important;
  max-height: none !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: var(--bm-surface-2) !important;
}

.bm-tree-dialog md-dialog-actions {
  border-top: 1px solid var(--bm-border) !important;
  padding: 10px 24px !important;
  background: var(--bm-surface-2) !important;
}

/* Action buttons */
.bm-tree-dialog md-dialog-actions md-button {
  font-family: var(--bm-font-body) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  text-transform: none !important;
  letter-spacing: .2px !important;
  border-radius: var(--bm-r-md) !important;
  min-height: 36px !important;
  line-height: 36px !important;
  padding: 0 16px !important;
  margin: 0 4px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 7px !important;
  box-shadow: none !important;
}

.bm-tree-dialog md-dialog-actions md-button md-icon {
  font-size: 17px !important;
  width: 17px !important;
  height: 17px !important;
  margin: 0 !important;
}

/* Expand/Collapse — outlined secondary */
.bm-tree-dialog md-dialog-actions md-button.md-raised:not(.md-primary) {
  background: transparent !important;
  color: var(--bm-text-secondary) !important;
  border: 1.5px solid var(--bm-border) !important;
}

.bm-tree-dialog md-dialog-actions md-button.md-raised:not(.md-primary):hover {
  background: var(--bm-surface-3) !important;
  border-color: var(--bm-border-strong) !important;
  color: var(--bm-text-primary) !important;
}

/* Close — teal primary */
.bm-tree-dialog md-dialog-actions md-button.md-primary {
  background: var(--bm-teal-500) !important;
  color: var(--bm-navy-900) !important;
  border: none !important;
}

.bm-tree-dialog md-dialog-actions md-button.md-primary:hover {
  background: var(--bm-teal-600) !important;
}

.bm-tree-dialog md-dialog-actions md-button.md-primary md-icon {
  color: var(--bm-navy-900) !important;
}


/* ── 5. Tab bar ─────────────────────────────────────────────────────── */

.bm-tree-dialog .tabs-container {
  height: 100%;
  display: flex;
  flex-direction: column;
}

.bm-tree-dialog .tabs-container md-tabs {
  height: 100%;
  display: flex;
  flex-direction: column;
}

.bm-tree-dialog .tabs-container md-tabs-wrapper {
  background: var(--bm-surface) !important;
  border-bottom: 1px solid var(--bm-border) !important;
  flex-shrink: 0 !important;
}

.bm-tree-dialog .tabs-container md-tab-item {
  padding: 0 20px !important;
  min-height: 48px !important;
  height: 48px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.bm-tree-dialog .tabs-container md-tab-item button,
.bm-tree-dialog .tabs-container md-tab-item .md-tab {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  line-height: 1 !important;
}

.bm-tree-dialog .tabs-container md-tab-label {
  display: flex !important;
  align-items: center !important;
  gap: 7px !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  color: var(--bm-text-secondary) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}

.bm-tree-dialog .tabs-container md-tab-label md-icon {
  font-size: 17px !important;
  width: 17px !important;
  height: 17px !important;
  color: inherit !important;
}

/* Override AM uppercase on inner spans */
.bm-tree-dialog .tabs-container md-tab-item span,
.bm-tree-dialog .tabs-container md-tab-label span {
  text-transform: none !important;
  letter-spacing: 0 !important;
}

.bm-tree-dialog .tabs-container md-tab-item:hover md-tab-label {
  color: var(--bm-text-primary) !important;
}

.bm-tree-dialog .tabs-container md-tab-item.md-active md-tab-label {
  color: var(--bm-teal-500) !important;
  font-weight: 600 !important;
}

.bm-tree-dialog .tabs-container md-tab { color: var(--bm-text-secondary) !important; }
.bm-tree-dialog .tabs-container md-tab.md-active { color: var(--bm-teal-500) !important; }
.bm-tree-dialog .tabs-container md-ink-bar {
  background: var(--bm-teal-500) !important;
  height: 2px !important;
}

.bm-tree-dialog .tabs-container md-tabs-content-wrapper {
  flex: 1 !important;
  overflow: hidden !important;
}

.bm-tree-dialog .tabs-container md-tab-content {
  height: 100% !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
}

.bm-tree-dialog .tabs-container md-tab-content > div {
  flex: 1 !important;
  min-height: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
}


/* ── 6. Layout wrappers ─────────────────────────────────────────────── */

.bm-tree-dialog .bm-hierarchical-layout {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
}

.bm-tree-dialog .ft-layout {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
}


/* ── 7. Tree container ──────────────────────────────────────────────── */

.bm-tree-dialog .bm-tree-container {
  flex: 1;
  min-height: 0;
  padding: 24px;
  overflow-y: auto;
  background: var(--bm-surface-2);
}

.bm-tree-dialog .bm-tree-container::-webkit-scrollbar { width: 6px; }
.bm-tree-dialog .bm-tree-container::-webkit-scrollbar-track { background: var(--bm-surface-3); border-radius: 3px; }
.bm-tree-dialog .bm-tree-container::-webkit-scrollbar-thumb { background: var(--bm-border-strong); border-radius: 3px; }
.bm-tree-dialog .bm-tree-container::-webkit-scrollbar-thumb:hover { background: var(--bm-teal-500); }

/* Angular UI tree connector lines */
.bm-tree-dialog .angular-ui-tree { position: relative; }
.bm-tree-dialog .angular-ui-tree .angular-ui-tree-nodes {
  position: relative;
  margin: 0 0 0 40px;
  padding: 0 0 0 24px;
  border-left: 2px solid rgba(0,191,165,.2);
}
.bm-tree-dialog .angular-ui-tree .tree-children { margin-top: 8px; }
.bm-tree-dialog .angular-ui-tree .tree-child-node { margin-bottom: 6px; }


/* ── 8. Tree nodes ──────────────────────────────────────────────────── */

.bm-tree-dialog .bm-tree-node {
  margin-bottom: 8px;
  transition: all .3s cubic-bezier(.4,0,.2,1);
  animation: bm-slideIn .3s ease-out;
}

.bm-tree-dialog .bm-tree-row {
  display: flex;
  align-items: center;
  gap: 12px;
  position: relative;
  cursor: pointer;
  user-select: none;
  max-width: 800px;
}

.bm-tree-dialog .bm-tree-row.has-pill { padding-top: 28px !important; }

/* ── Owner node — BizMetry navy ── */
.bm-tree-dialog .bm-tree-node.is-owner .bm-tree-row {
  background: var(--bm-navy-900) !important;
  color: var(--bm-text-inverse) !important;
  border-radius: var(--bm-r-lg) !important;
  padding: 16px 20px !important;
  border-left: 4px solid var(--bm-teal-500) !important;
  box-shadow: var(--bm-shadow-md) !important;
  min-height: 60px !important;
}

.bm-tree-dialog .bm-tree-node.is-owner .bm-tree-icon { color: var(--bm-teal-400) !important; font-size: 26px !important; }
.bm-tree-dialog .bm-tree-node.is-owner .enabled-icon,
.bm-tree-dialog .bm-tree-node.is-owner .disabled-icon { color: rgba(255,255,255,.7) !important; }
.bm-tree-dialog .bm-tree-node.is-owner .bm-title-text {
  font-family: var(--bm-font-display) !important;
  font-size: 17px !important;
  font-weight: 600 !important;
  color: var(--bm-text-inverse) !important;
  letter-spacing: .3px !important;
}
.bm-tree-dialog .bm-tree-node.is-owner .bm-subtitle { color: var(--bm-navy-300) !important; font-size: 13px !important; }

/* ── Resource node — semantic green (kept) ── */
.bm-tree-dialog .bm-tree-node.is-resource .bm-tree-row {
  background: var(--bm-surface) !important;
  border-radius: var(--bm-r-md) !important;
  padding: 13px 18px !important;
  border-left: 3px solid var(--bm-success) !important;
  box-shadow: var(--bm-shadow-xs) !important;
  min-height: 50px !important;
  transition: all var(--bm-t) !important;
}
.bm-tree-dialog .bm-tree-node.is-resource .bm-tree-row:hover {
  box-shadow: var(--bm-shadow-sm) !important;
  transform: translateX(2px) !important;
}
.bm-tree-dialog .bm-tree-node.is-resource .bm-tree-icon { color: var(--bm-success) !important; font-size: 22px !important; }
.bm-tree-dialog .bm-tree-node.is-resource .bm-title-text { font-size: 15px !important; font-weight: 600 !important; color: var(--bm-text-primary) !important; }
.bm-tree-dialog .bm-tree-node.is-resource .bm-subtitle { color: var(--bm-text-muted) !important; }

/* ── Attribute node — semantic amber (kept) ── */
.bm-tree-dialog .bm-tree-node.is-attribute .bm-tree-row {
  background: var(--bm-surface) !important;
  border-radius: var(--bm-r-md) !important;
  padding: 11px 16px !important;
  border-left: 3px solid var(--bm-warning) !important;
  box-shadow: var(--bm-shadow-xs) !important;
  min-height: 46px !important;
  transition: all var(--bm-t) !important;
}
.bm-tree-dialog .bm-tree-node.is-attribute .bm-tree-row:hover {
  box-shadow: var(--bm-shadow-sm) !important;
  transform: translateX(2px) !important;
}
.bm-tree-dialog .bm-tree-node.is-attribute .bm-tree-icon { color: var(--bm-warning) !important; font-size: 19px !important; }
.bm-tree-dialog .bm-tree-node.is-attribute .bm-title-text { font-size: 14px !important; font-weight: 500 !important; color: var(--bm-text-primary) !important; }
.bm-tree-dialog .bm-tree-node.is-attribute .bm-subtitle { color: var(--bm-text-muted) !important; }

/* ── Highlighted ── */
.bm-tree-dialog .bm-tree-node.is-highlighted.is-owner .bm-tree-row    { animation: bm-hlOwnerPulse .5s ease-in-out 8 !important; }
.bm-tree-dialog .bm-tree-node.is-highlighted.is-resource .bm-tree-row  { background: var(--bm-teal-50) !important; animation: bm-hlNodePulse .5s ease-in-out 8 !important; }
.bm-tree-dialog .bm-tree-node.is-highlighted.is-attribute .bm-tree-row { background: var(--bm-teal-50) !important; animation: bm-hlNodePulse .5s ease-in-out 8 !important; }

/* ── Disabled ── */
.bm-tree-dialog .bm-tree-node.disabled .bm-tree-row {
  opacity: .65 !important;
  background: var(--bm-surface-3) !important;
  border-left-color: var(--bm-border-strong) !important;
}
.bm-tree-dialog .bm-tree-node.disabled .bm-tree-row:hover { transform: none !important; }
.bm-tree-dialog .bm-tree-node.disabled .bm-tree-icon { color: var(--bm-text-muted) !important; }
.bm-tree-dialog .bm-tree-node.disabled .bm-title-text,
.bm-tree-dialog .bm-tree-node.disabled .bm-subtitle { color: var(--bm-text-secondary) !important; }

.bm-tree-dialog .bm-tree-node.is-owner.disabled .bm-tree-row {
  background: var(--bm-navy-800) !important;
  opacity: .7 !important;
  border-left-color: var(--bm-navy-500) !important;
  border-left-style: dashed !important;
}
.bm-tree-dialog .bm-tree-node.is-owner.disabled .bm-title-text,
.bm-tree-dialog .bm-tree-node.is-owner.disabled .bm-subtitle { color: var(--bm-navy-300) !important; }

.bm-tree-dialog .bm-tree-node.is-resource.disabled .bm-tree-row { border-left-style: dashed !important; border-left-color: var(--bm-success-border) !important; }
.bm-tree-dialog .bm-tree-node.is-attribute.disabled .bm-tree-row { border-left-style: dashed !important; border-left-color: var(--bm-warning-border) !important; }

.bm-tree-dialog .bm-tree-node.disabled .cm-pill-disabled {
  background: var(--bm-error) !important;
  color: white !important;
  font-weight: 700 !important;
  font-size: 10px !important;
  padding: 3px 10px !important;
  border: 1px solid var(--bm-error-text) !important;
}
.bm-tree-dialog .bm-tree-node.disabled .disabled-icon { color: var(--bm-error) !important; }


/* ── 9. Toggle buttons ──────────────────────────────────────────────── */

.bm-tree-dialog .bm-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: rgba(0,0,0,.07);
  cursor: pointer;
  transition: all var(--bm-t);
  flex-shrink: 0;
}
.bm-tree-dialog .bm-toggle:hover { background: rgba(0,0,0,.13); transform: scale(1.1); }
.bm-tree-dialog .bm-toggle md-icon { font-size: 20px !important; width: 20px !important; height: 20px !important; color: var(--bm-text-secondary) !important; }

.bm-tree-dialog .bm-tree-node.is-owner .bm-toggle { background: rgba(0,191,165,.18) !important; border: 1px solid rgba(0,191,165,.3) !important; }
.bm-tree-dialog .bm-tree-node.is-owner .bm-toggle:hover { background: rgba(0,191,165,.28) !important; }
.bm-tree-dialog .bm-tree-node.is-owner .bm-toggle md-icon { color: var(--bm-teal-400) !important; }

.bm-tree-dialog .bm-tree-node.is-resource .bm-toggle { background: rgba(5,150,105,.10) !important; border: 1px solid rgba(5,150,105,.25) !important; }
.bm-tree-dialog .bm-tree-node.is-resource .bm-toggle:hover { background: rgba(5,150,105,.18) !important; }
.bm-tree-dialog .bm-tree-node.is-resource .bm-toggle md-icon { color: var(--bm-success) !important; }

.bm-tree-dialog .bm-tree-node.is-attribute .bm-toggle { background: rgba(217,119,6,.10) !important; border: 1px solid rgba(217,119,6,.25) !important; }
.bm-tree-dialog .bm-tree-node.is-attribute .bm-toggle:hover { background: rgba(217,119,6,.18) !important; }
.bm-tree-dialog .bm-tree-node.is-attribute .bm-toggle md-icon { color: var(--bm-warning) !important; }

.bm-tree-dialog .bm-tree-node.disabled .bm-toggle { opacity: .5 !important; cursor: not-allowed !important; }

/* Status icons */
.bm-tree-dialog .enabled-icon,
.bm-tree-dialog .disabled-icon { font-size: 18px !important; width: 18px !important; height: 18px !important; flex-shrink: 0 !important; }
.bm-tree-dialog .enabled-icon  { color: var(--bm-success) !important; }
.bm-tree-dialog .disabled-icon { color: var(--bm-error) !important; }


/* ── 10. Title section ──────────────────────────────────────────────── */

.bm-tree-dialog .bm-title { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 5px; max-width: 650px; }
.bm-tree-dialog .bm-title-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.bm-tree-dialog .bm-title-text { font-size: 14px; font-weight: 500; line-height: 1.4; word-break: break-word; color: var(--bm-text-primary); }
.bm-tree-dialog .bm-subtitle { font-size: 12.5px; line-height: 1.4; word-break: break-word; color: var(--bm-text-muted); max-width: 600px; }


/* ── 11. Count pills ────────────────────────────────────────────────── */

.bm-tree-dialog .bm-child-counts { display: flex; align-items: center; gap: 5px; flex-shrink: 0; }
.bm-tree-dialog .bm-count-pill {
  display: inline-flex; align-items: center; gap: 3px;
  padding: 2px 7px 2px 5px; border-radius: 8px;
  font-size: 10.5px; font-weight: 700; line-height: 1; white-space: nowrap;
}
.bm-tree-dialog .bm-count-pill md-icon { font-size: 12px !important; width: 12px !important; height: 12px !important; min-height: 0 !important; margin: 0 !important; }
.bm-tree-dialog .bm-count-asbo { background: var(--bm-success-bg); color: var(--bm-success-text); border: 1px solid var(--bm-success-border); }
.bm-tree-dialog .bm-count-asbo md-icon { color: var(--bm-success) !important; }
.bm-tree-dialog .bm-count-attr { background: var(--bm-warning-bg); color: var(--bm-warning-text); border: 1px solid var(--bm-warning-border); }
.bm-tree-dialog .bm-count-attr md-icon { color: var(--bm-warning) !important; }

/* Owner node count pills — white tint on dark */
.bm-tree-dialog .bm-tree-node.is-owner .bm-count-asbo { background: rgba(255,255,255,.15) !important; color: rgba(255,255,255,.9) !important; border-color: rgba(255,255,255,.25) !important; }
.bm-tree-dialog .bm-tree-node.is-owner .bm-count-asbo md-icon { color: rgba(255,255,255,.9) !important; }
.bm-tree-dialog .bm-tree-node.is-owner .bm-count-attr { background: rgba(255,255,255,.12) !important; color: rgba(255,255,255,.85) !important; border-color: rgba(255,255,255,.2) !important; }
.bm-tree-dialog .bm-tree-node.is-owner .bm-count-attr md-icon { color: rgba(255,255,255,.85) !important; }


/* ── 12. Status pills base ──────────────────────────────────────────── */

.bm-tree-dialog .cm-pill {
  display: inline-flex; align-items: center;
  padding: 3px 9px; border-radius: 10px;
  font-size: 10.5px; font-weight: 600;
  text-transform: uppercase; letter-spacing: .5px; white-space: nowrap;
}
.bm-tree-dialog .cm-pill-status { position: absolute; top: 7px; left: 7px; z-index: 10; }
.bm-tree-dialog .cm-pill-disabled { background: var(--bm-error) !important; color: white !important; box-shadow: 0 2px 4px rgba(220,38,38,.3) !important; }


/* ── 13. Attribute info pills ───────────────────────────────────────── */

.bm-tree-dialog .bm-attribute-info { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; margin-top: 7px; max-width: 700px; }

/* Scalar type pills */
.bm-tree-dialog .cm-pill-type { font-weight: 600; font-size: 10.5px; padding: 4px 9px; }
.bm-tree-dialog .type-string     { background: var(--bm-info-bg);    color: var(--bm-info-text); }
.bm-tree-dialog .type-integer    { background: #F3E8FF;              color: #6B21A8; }
.bm-tree-dialog .type-float      { background: var(--bm-success-bg); color: var(--bm-success-text); }
.bm-tree-dialog .type-boolean    { background: var(--bm-warning-bg); color: var(--bm-warning-text); }
.bm-tree-dialog .type-date       { background: #FDF2F8;              color: #9D174D; }
.bm-tree-dialog .type-timestamp  { background: #F0FDF4;              color: #166534; }
.bm-tree-dialog .type-binary     { background: var(--bm-teal-50);    color: var(--bm-teal-600); }
.bm-tree-dialog .type-json       { background: #EEF2FF;              color: #4338CA; }
.bm-tree-dialog .type-enum       { background: #FEFCE8;              color: #854D0E; }
.bm-tree-dialog .type-object-ref { background: var(--bm-info-bg);    color: var(--bm-info-text); }

/* Bound pills */
.bm-tree-dialog .bm-bounds { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.bm-tree-dialog .cm-pill-bound { background: var(--bm-surface-3); color: var(--bm-text-secondary); font-size: 10.5px; padding: 4px 9px; border: 1px solid var(--bm-border); }

/* Enum value chips */
.bm-tree-dialog .bm-enum-values { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; max-width: 700px; }
.bm-tree-dialog .cm-pill-enum { background: var(--bm-warning-bg); color: var(--bm-warning-text); font-size: 10.5px; padding: 3px 9px; border: 1px solid var(--bm-warning-border); }


/* ── 14. Special attribute badges ───────────────────────────────────── */

.bm-tree-dialog .bm-primary-key-badge,
.bm-tree-dialog .bm-resource-name-badge,
.bm-tree-dialog .bm-resource-desc-badge,
.bm-tree-dialog .bm-sensitive-badge,
.bm-tree-dialog .bm-column-physical-name {
  display: flex; align-items: center; gap: 7px;
  padding: 5px 11px; border-radius: var(--bm-r-md);
  margin-bottom: 7px; width: fit-content;
  box-shadow: var(--bm-shadow-sm);
}
.bm-tree-dialog .pk-icon,
.bm-tree-dialog .resource-name-icon,
.bm-tree-dialog .resource-desc-icon,
.bm-tree-dialog .sensitive-icon,
.bm-tree-dialog .column-db-icon { font-size: 18px !important; width: 18px !important; height: 18px !important; }

/* Primary Key — golden amber */
.bm-tree-dialog .bm-primary-key-badge { background: linear-gradient(135deg, #FEF08A 0%, #FDE047 100%); border: 1.5px solid #F59E0B; animation: bm-pkGlow 2s ease-in-out infinite alternate; }
.bm-tree-dialog .pk-icon { color: #92400E !important; animation: bm-pkRotate 3s ease-in-out infinite !important; }
.bm-tree-dialog .cm-pill-primary-key { background: rgba(255,255,255,.88); color: #92400E; font-size: 10px; font-weight: 700; padding: 3px 8px; border-radius: 4px; letter-spacing: .8px; }

/* Resource Name — success green */
.bm-tree-dialog .bm-resource-name-badge { background: linear-gradient(135deg, var(--bm-success-bg) 0%, var(--bm-success-light) 100%); border: 1.5px solid var(--bm-success); }
.bm-tree-dialog .resource-name-icon { color: var(--bm-success-text) !important; }
.bm-tree-dialog .cm-pill-resource-name { background: rgba(255,255,255,.88); color: var(--bm-success-text); font-size: 10px; font-weight: 700; padding: 3px 8px; border-radius: 4px; letter-spacing: .8px; }

/* Resource Description — info blue */
.bm-tree-dialog .bm-resource-desc-badge { background: linear-gradient(135deg, var(--bm-info-bg) 0%, var(--bm-info-border) 100%); border: 1.5px solid var(--bm-info); }
.bm-tree-dialog .resource-desc-icon { color: var(--bm-info-text) !important; }
.bm-tree-dialog .cm-pill-resource-description { background: rgba(255,255,255,.88); color: var(--bm-info-text); font-size: 10px; font-weight: 700; padding: 3px 8px; border-radius: 4px; letter-spacing: .8px; }

/* Sensitive — error red */
.bm-tree-dialog .bm-sensitive-badge { background: linear-gradient(135deg, var(--bm-error-bg) 0%, var(--bm-error-border) 100%); border: 1.5px solid var(--bm-error); animation: bm-sensitiveGlow 2s ease-in-out infinite alternate; }
.bm-tree-dialog .sensitive-icon { color: var(--bm-error-text) !important; }
.bm-tree-dialog .cm-pill-sensitive { background: rgba(255,255,255,.88); color: var(--bm-error-text); font-size: 10px; font-weight: 700; padding: 3px 8px; border-radius: 4px; letter-spacing: .8px; }

/* DB Column */
.bm-tree-dialog .bm-column-physical-name { background: var(--bm-info-bg); border-left: 3px solid var(--bm-info); box-shadow: none; max-width: 100%; }
.bm-tree-dialog .column-db-icon { font-size: 16px !important; width: 16px !important; height: 16px !important; color: var(--bm-info) !important; }
.bm-tree-dialog .cm-pill-db-column { background: var(--bm-info-bg); color: var(--bm-info-text); font-size: 11.5px; font-weight: 600; padding: 4px 10px; border-radius: var(--bm-r-sm); border: 1px solid var(--bm-info-border); letter-spacing: .3px; }


/* ── 15. JSON paths ─────────────────────────────────────────────────── */

.bm-tree-dialog .bm-json-paths { display: flex; flex-direction: column; gap: 9px; margin-top: 10px; padding: 11px; background: rgba(67,56,202,.05); border-radius: var(--bm-r-md); border-left: 3px solid #4338CA; max-width: 700px; }
.bm-tree-dialog .bm-json-path-item { display: flex; align-items: center; gap: 9px; padding: 7px 11px; background: var(--bm-surface); border-radius: var(--bm-r-md); box-shadow: var(--bm-shadow-xs); transition: all var(--bm-t); }
.bm-tree-dialog .bm-json-path-item:hover { box-shadow: var(--bm-shadow-sm); transform: translateX(2px); }
.bm-tree-dialog .json-path-tree-icon { font-size: 22px !important; width: 22px !important; height: 22px !important; flex-shrink: 0 !important; }
.bm-tree-dialog .json-path-rn-icon { color: var(--bm-success) !important; }
.bm-tree-dialog .json-path-rd-icon { color: var(--bm-info) !important; }
.bm-tree-dialog .json-path-type-icon { font-size: 16px !important; width: 16px !important; height: 16px !important; flex-shrink: 0 !important; color: var(--bm-text-muted) !important; }
.bm-tree-dialog .cm-pill-json-path { flex: 1; padding: 7px 12px; font-size: 12.5px; font-weight: 600; border-radius: var(--bm-r-md); letter-spacing: .3px; line-height: 1.4; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bm-tree-dialog .cm-pill-json-path-rn { background: var(--bm-success-bg); color: var(--bm-success-text); border: 1px solid var(--bm-success-border); }
.bm-tree-dialog .cm-pill-json-path-rd { background: var(--bm-info-bg);    color: var(--bm-info-text);    border: 1px solid var(--bm-info-border); }

/* Resource info block */
.bm-tree-dialog .bm-resource-info { margin-top: 5px; padding: 7px 11px; background: var(--bm-success-bg); border-radius: var(--bm-r-sm); border-left: 3px solid var(--bm-success); }
.bm-tree-dialog .bm-resource-line { font-size: 12px; color: var(--bm-success-text); line-height: 1.4; }
.bm-tree-dialog .bm-resource-line strong { font-weight: 600; margin-right: 5px; }


/* ── 16. Search ─────────────────────────────────────────────────────── */

.bm-tree-dialog .bm-search-wrapper {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  background: var(--bm-surface);
  border-bottom: 1px solid var(--bm-border);
  padding: 14px 24px 0;
  z-index: 10;
  position: relative;
  max-height: 50vh;
}

.bm-tree-dialog .bm-search-bar {
  display: flex; align-items: center;
  background: var(--bm-surface-2);
  border: 1.5px solid var(--bm-border);
  border-radius: var(--bm-r-lg);
  padding: 0 12px 0 42px;
  height: 44px;
  box-sizing: border-box;
  transition: all var(--bm-t);
  position: relative;
}

.bm-tree-dialog .bm-search-bar.focused {
  border-color: var(--bm-teal-500) !important;
  background: var(--bm-surface) !important;
  box-shadow: 0 0 0 3px rgba(0,191,165,.12) !important;
}

.bm-tree-dialog .bm-search-bar .search-icon {
  position: absolute !important;
  left: 13px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 18px !important;
  height: 18px !important;
  color: var(--bm-text-muted) !important;
  pointer-events: none !important;
  transition: color var(--bm-t) !important;
  font-size: 0 !important;
  margin: 0 !important;
}

.bm-tree-dialog .bm-search-bar.focused .search-icon { color: var(--bm-teal-500) !important; }

.bm-tree-dialog .bm-search-input {
  flex: 1; border: none; outline: none;
  background: transparent; font-size: 14px;
  color: var(--bm-text-primary); caret-color: var(--bm-teal-500);
}

.bm-tree-dialog .bm-search-input::placeholder { color: var(--bm-text-muted); }

.bm-tree-dialog .bm-search-clear {
  margin: 0 !important; padding: 0 !important;
  min-width: 30px !important; width: 30px !important;
  height: 30px !important; min-height: 30px !important;
  flex-shrink: 0 !important;
}
.bm-tree-dialog .bm-search-clear md-icon { font-size: 16px !important; color: var(--bm-text-muted) !important; transition: color var(--bm-t) !important; }
.bm-tree-dialog .bm-search-clear:hover md-icon { color: var(--bm-error) !important; }

/* Search toggle strip */
.bm-tree-dialog .bm-search-toggle-strip {
  display: flex; align-items: center; gap: 9px;
  padding: 7px 0 8px; cursor: pointer; user-select: none;
  border-top: 1px solid var(--bm-border-subtle); margin-top: 10px;
  transition: opacity var(--bm-t);
}
.bm-tree-dialog .bm-search-toggle-strip:hover { opacity: .75; }
.bm-tree-dialog .bm-search-noresults { cursor: default; }

.bm-tree-dialog .strip-chevron {
  font-size: 16px !important; width: 16px !important; height: 16px !important;
  min-height: 0 !important; line-height: 1 !important; margin: 0 !important; padding: 0 !important;
  color: var(--bm-teal-500) !important; flex-shrink: 0;
}

.bm-tree-dialog .strip-label { font-size: 12px; font-weight: 600; color: var(--bm-teal-600); flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bm-tree-dialog .strip-label strong { color: var(--bm-text-primary); font-weight: 700; }

/* Search results panel */
.bm-tree-dialog .bm-search-results-panel {
  margin: 10px -24px 0;
  padding: 0 24px;
  overflow-y: auto;
  border-top: 1px solid var(--bm-border-subtle);
  background: var(--bm-surface);
  flex: 0 1 auto;
  max-height: 40vh;
}
.bm-tree-dialog .bm-search-results-panel::-webkit-scrollbar { width: 5px; }
.bm-tree-dialog .bm-search-results-panel::-webkit-scrollbar-track { background: var(--bm-surface-2); }
.bm-tree-dialog .bm-search-results-panel::-webkit-scrollbar-thumb { background: var(--bm-border-strong); border-radius: 3px; }
.bm-tree-dialog .bm-search-results-panel::-webkit-scrollbar-thumb:hover { background: var(--bm-teal-500); }

/* Group headers */
.bm-tree-dialog .bm-result-group-header {
  display: flex; align-items: center; gap: 7px;
  padding: 9px 0 5px; margin-top: 4px;
  border-top: 1px solid var(--bm-border-subtle);
  font-size: 10px; font-weight: 700; letter-spacing: .6px;
  text-transform: uppercase; color: var(--bm-text-muted);
  user-select: none;
}
.bm-tree-dialog .bm-result-group-header:first-child { border-top: none; margin-top: 0; }
.bm-tree-dialog .group-header-icon { font-size: 14px !important; width: 14px !important; height: 14px !important; min-height: 0 !important; line-height: 1 !important; margin: 0 !important; color: var(--bm-text-muted) !important; }
.bm-tree-dialog .group-header-count { margin-left: auto; background: var(--bm-surface-3); color: var(--bm-text-muted); font-size: 10px; font-weight: 700; padding: 2px 6px; border-radius: 6px; border: 1px solid var(--bm-border); }

/* Result items */
.bm-tree-dialog .bm-search-result-item {
  display: flex; align-items: center; gap: 13px;
  padding: 10px 0; border-bottom: 1px solid var(--bm-border-subtle);
  cursor: pointer; transition: all var(--bm-t); border-radius: 0;
}
.bm-tree-dialog .bm-search-result-item:last-child { border-bottom: none; }
.bm-tree-dialog .bm-search-result-item:hover { background: var(--bm-teal-50); margin: 0 -14px; padding: 10px 14px; border-radius: var(--bm-r-md); }
.bm-tree-dialog .bm-search-result-item.is-active { background: var(--bm-teal-50); margin: 0 -14px; padding: 10px 14px; border-radius: var(--bm-r-md); border-bottom: none; }

/* Result icon wraps */
.bm-tree-dialog .result-icon-wrap {
  display: flex; align-items: center; justify-content: center;
  width: 34px; height: 34px; border-radius: var(--bm-r-md); flex-shrink: 0;
  transition: transform var(--bm-t);
}
.bm-tree-dialog .bm-search-result-item:hover .result-icon-wrap,
.bm-tree-dialog .bm-search-result-item.is-active .result-icon-wrap { transform: scale(1.08); }
.bm-tree-dialog .result-icon-wrap md-icon { font-size: 18px !important; width: 18px !important; height: 18px !important; }

/* Owner icon = navy */
.bm-tree-dialog .result-icon-owner { background: var(--bm-navy-900) !important; }
.bm-tree-dialog .result-icon-owner md-icon { color: var(--bm-teal-400) !important; }

/* Resource icon = success green */
.bm-tree-dialog .result-icon-resource { background: var(--bm-success-bg) !important; border: 1.5px solid var(--bm-success-border) !important; }
.bm-tree-dialog .result-icon-resource md-icon { color: var(--bm-success) !important; }

/* Attribute icon = warning amber */
.bm-tree-dialog .result-icon-attribute { background: var(--bm-warning-bg) !important; border: 1.5px solid var(--bm-warning-border) !important; }
.bm-tree-dialog .result-icon-attribute md-icon { color: var(--bm-warning) !important; }

/* Result text */
.bm-tree-dialog .result-text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.bm-tree-dialog .result-breadcrumb { font-size: 10px; color: var(--bm-text-muted); font-weight: 500; letter-spacing: .3px; text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bm-tree-dialog .result-title { font-size: 13.5px; font-weight: 600; color: var(--bm-text-primary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bm-tree-dialog .result-subtitle { font-size: 11.5px; color: var(--bm-text-secondary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: 1.4; }

/* Type pills */
.bm-tree-dialog .result-type-pill { font-size: 10px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; padding: 3px 8px; border-radius: 8px; flex-shrink: 0; }
.bm-tree-dialog .result-pill-owner     { background: var(--bm-navy-50);    color: var(--bm-navy-700); border: 1px solid var(--bm-navy-100); }
.bm-tree-dialog .result-pill-resource  { background: var(--bm-success-bg); color: var(--bm-success-text); border: 1px solid var(--bm-success-border); }
.bm-tree-dialog .result-pill-attribute { background: var(--bm-warning-bg); color: var(--bm-warning-text); border: 1px solid var(--bm-warning-border); }

/* Nav arrow */
.bm-tree-dialog .result-nav-arrow { font-size: 18px !important; width: 18px !important; height: 18px !important; color: var(--bm-border-strong) !important; flex-shrink: 0; transition: all var(--bm-t); }
.bm-tree-dialog .bm-search-result-item:hover .result-nav-arrow,
.bm-tree-dialog .bm-search-result-item.is-active .result-nav-arrow { color: var(--bm-teal-500) !important; transform: translateX(3px); }

/* Utility */
.bm-tree-dialog .hidden { display: none !important; }


/* ── 17. Frame Types search mode bar ────────────────────────────────── */

.bm-tree-dialog .ft-search-mode-bar {
  display: flex; align-items: center; gap: 4px;
  padding: 8px 0 10px;
  border-top: 1px solid var(--bm-border-subtle);
  margin-top: 10px;
}

.bm-tree-dialog .ft-mode-btn {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 5px 12px 5px 9px;
  border-radius: var(--bm-r-pill);
  border: 1.5px solid var(--bm-border);
  background: var(--bm-surface-2);
  color: var(--bm-text-muted);
  font-size: 12px; font-weight: 600;
  font-family: var(--bm-font-body) !important;
  letter-spacing: .2px; cursor: pointer;
  transition: all var(--bm-t); white-space: nowrap; outline: none;
}

.bm-tree-dialog .ft-mode-btn md-icon {
  font-size: 14px !important; width: 14px !important; height: 14px !important;
  min-height: 0 !important; color: inherit !important;
}

.bm-tree-dialog .ft-mode-btn:hover {
  border-color: var(--bm-teal-500);
  color: var(--bm-teal-600);
  background: var(--bm-teal-50);
}

.bm-tree-dialog .ft-mode-btn.active {
  background: var(--bm-teal-500) !important;
  border-color: transparent !important;
  color: var(--bm-navy-900) !important;
  box-shadow: var(--bm-shadow-sm) !important;
}

.bm-tree-dialog .ft-mode-btn.active md-icon { color: var(--bm-navy-900) !important; }


/* ── 18. CLIENT TYPES tab ───────────────────────────────────────────── */

.bm-tree-dialog .ct-container {
  flex: 1 !important; min-height: 0 !important;
  padding: 24px 28px 36px !important;
  overflow-y: auto !important; box-sizing: border-box;
  background: var(--bm-surface-2);
}

.bm-tree-dialog .ct-container::-webkit-scrollbar { width: 6px; }
.bm-tree-dialog .ct-container::-webkit-scrollbar-thumb { background: var(--bm-border-strong); border-radius: 3px; }
.bm-tree-dialog .ct-container::-webkit-scrollbar-thumb:hover { background: var(--bm-teal-500); }

/* Summary bar */
.bm-tree-dialog .ct-summary-bar {
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px;
  background: var(--bm-surface); border: 1.5px solid var(--bm-border);
  border-radius: var(--bm-r-lg); padding: 14px 20px; margin-bottom: 20px;
  box-shadow: var(--bm-shadow-xs);
}
.bm-tree-dialog .ct-summary-left  { display: flex; align-items: center; gap: 10px; }
.bm-tree-dialog .ct-summary-right { display: flex; align-items: center; gap: 9px; }
.bm-tree-dialog .ct-summary-icon  { font-size: 22px !important; width: 22px !important; height: 22px !important; color: var(--bm-teal-500) !important; }
.bm-tree-dialog .ct-summary-title { font-family: var(--bm-font-display) !important; font-size: 16px !important; font-weight: 600 !important; color: var(--bm-text-primary) !important; letter-spacing: .2px !important; }
.bm-tree-dialog .ct-summary-total { background: var(--bm-teal-500); color: var(--bm-navy-900); font-size: 11.5px; font-weight: 700; padding: 3px 10px; border-radius: var(--bm-r-pill); min-width: 24px; text-align: center; }

/* Status badges */
.bm-tree-dialog .ct-badge { display: inline-flex; align-items: center; gap: 6px; padding: 4px 11px; border-radius: var(--bm-r-pill); font-size: 11.5px; font-weight: 600; }
.bm-tree-dialog .ct-badge-dot { width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0; }
.bm-tree-dialog .ct-badge-enabled  { background: var(--bm-success-bg);  color: var(--bm-success-text);  border: 1px solid var(--bm-success-border); }
.bm-tree-dialog .ct-badge-enabled  .ct-badge-dot { background: var(--bm-success); animation: bm-dotPulse 2.5s ease-in-out infinite; }
.bm-tree-dialog .ct-badge-disabled { background: var(--bm-surface-3); color: var(--bm-text-muted); border: 1px solid var(--bm-border); }
.bm-tree-dialog .ct-badge-disabled .ct-badge-dot { background: var(--bm-text-muted); }

/* Cards grid */
.bm-tree-dialog .ct-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 18px; }

.bm-tree-dialog .ct-card {
  position: relative; background: var(--bm-surface);
  border-radius: var(--bm-r-lg); border: 1.5px solid var(--bm-border);
  border-left: 4px solid var(--bm-teal-500);
  overflow: hidden; display: flex; flex-direction: column;
  box-shadow: var(--bm-shadow-xs); transition: transform var(--bm-t), box-shadow var(--bm-t);
  cursor: default;
}
.bm-tree-dialog .ct-card:hover { transform: translateY(-3px); box-shadow: var(--bm-shadow-md); }
.bm-tree-dialog .ct-card-disabled { opacity: .55; filter: grayscale(35%); }
.bm-tree-dialog .ct-card-disabled:hover { transform: none; box-shadow: var(--bm-shadow-xs); }

.bm-tree-dialog .ct-card-stripe { height: 3px; width: 100%; flex-shrink: 0; opacity: .6; }
.bm-tree-dialog .ct-card-body  { display: flex; flex-direction: column; gap: 14px; padding: 16px 18px 18px; flex: 1; }
.bm-tree-dialog .ct-card-top   { display: flex; align-items: center; justify-content: space-between; }
.bm-tree-dialog .ct-icon-wrap  { width: 42px; height: 42px; border-radius: var(--bm-r-lg); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.bm-tree-dialog .ct-icon-wrap md-icon { font-size: 22px !important; width: 22px !important; height: 22px !important; color: white !important; }

/* Status pill */
.bm-tree-dialog .ct-status-pill { display: inline-flex; align-items: center; gap: 5px; padding: 3px 9px; border-radius: var(--bm-r-pill); font-size: 10.5px; font-weight: 700; letter-spacing: .4px; text-transform: uppercase; }
.bm-tree-dialog .ct-status-dot  { width: 5px; height: 5px; border-radius: 50%; flex-shrink: 0; }
.bm-tree-dialog .ct-status-enabled  { background: var(--bm-success-bg);  color: var(--bm-success-text);  border: 1px solid var(--bm-success-border); }
.bm-tree-dialog .ct-status-enabled  .ct-status-dot { background: var(--bm-success); animation: bm-dotPulse 2.5s ease-in-out infinite; }
.bm-tree-dialog .ct-status-disabled { background: var(--bm-surface-3); color: var(--bm-text-muted); border: 1px solid var(--bm-border); }
.bm-tree-dialog .ct-status-disabled .ct-status-dot { background: var(--bm-text-muted); }

/* Card info */
.bm-tree-dialog .ct-card-info   { display: flex; flex-direction: column; gap: 5px; flex: 1; }
.bm-tree-dialog .ct-name        { font-family: var(--bm-font-display) !important; font-size: 15px !important; font-weight: 600 !important; color: var(--bm-text-primary) !important; line-height: 1.3; word-break: break-word; }
.bm-tree-dialog .ct-description { font-size: 12.5px; color: var(--bm-text-secondary); line-height: 1.5; word-break: break-word; }
.bm-tree-dialog .ct-no-description { color: var(--bm-text-muted); font-style: italic; }

/* Card footer */
.bm-tree-dialog .ct-card-footer { padding-top: 11px; border-top: 1px solid var(--bm-border-subtle); }
.bm-tree-dialog .ct-id-pill {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 4px 10px; background: var(--bm-surface-2);
  border: 1px solid var(--bm-border); border-radius: var(--bm-r-md);
  font-size: 11px; font-weight: 500; color: var(--bm-text-secondary);
  letter-spacing: .3px; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.bm-tree-dialog .ct-id-pill md-icon { font-size: 13px !important; width: 13px !important; height: 13px !important; min-height: 0 !important; color: var(--bm-text-muted) !important; flex-shrink: 0; }

/* Empty state */
.bm-tree-dialog .ct-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 72px 20px; gap: 14px; }
.bm-tree-dialog .ct-empty-icon-wrap { width: 72px; height: 72px; border-radius: 50%; background: var(--bm-surface-3); border: 2px solid var(--bm-border); display: flex; align-items: center; justify-content: center; }
.bm-tree-dialog .ct-empty-icon-wrap md-icon { font-size: 36px !important; width: 36px !important; height: 36px !important; color: var(--bm-border-strong) !important; }
.bm-tree-dialog .ct-empty-title { font-family: var(--bm-font-display) !important; font-size: 17px !important; font-weight: 600 !important; color: var(--bm-text-secondary) !important; }
.bm-tree-dialog .ct-empty-sub   { font-size: 13.5px; color: var(--bm-text-muted); text-align: center; max-width: 300px; line-height: 1.6; }


/* ── 19. FRAME TYPES tab ────────────────────────────────────────────── */

.bm-tree-dialog .ft-scroll-area {
  flex: 1; min-height: 0;
  padding: 24px 28px 36px;
  overflow-y: auto; background: var(--bm-surface-2); box-sizing: border-box;
}
.bm-tree-dialog .ft-scroll-area::-webkit-scrollbar { width: 6px; }
.bm-tree-dialog .ft-scroll-area::-webkit-scrollbar-thumb { background: var(--bm-border-strong); border-radius: 3px; }
.bm-tree-dialog .ft-scroll-area::-webkit-scrollbar-thumb:hover { background: var(--bm-teal-500); }

/* Summary bar */
.bm-tree-dialog .ft-summary-bar {
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px;
  background: var(--bm-surface); border: 1.5px solid var(--bm-border);
  border-radius: var(--bm-r-lg); padding: 14px 20px; margin-bottom: 20px;
  box-shadow: var(--bm-shadow-xs);
}
.bm-tree-dialog .ft-summary-left  { display: flex; align-items: center; gap: 10px; }
.bm-tree-dialog .ft-summary-right { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.bm-tree-dialog .ft-summary-icon  { font-size: 22px !important; width: 22px !important; height: 22px !important; color: var(--bm-teal-500) !important; }
.bm-tree-dialog .ft-summary-title { font-family: var(--bm-font-display) !important; font-size: 16px !important; font-weight: 600 !important; color: var(--bm-text-primary) !important; }
.bm-tree-dialog .ft-summary-total { background: var(--bm-teal-500); color: var(--bm-navy-900); font-size: 11.5px; font-weight: 700; padding: 3px 10px; border-radius: var(--bm-r-pill); min-width: 24px; text-align: center; }

/* Badges */
.bm-tree-dialog .ft-badge { display: inline-flex; align-items: center; gap: 6px; padding: 4px 11px; border-radius: var(--bm-r-pill); font-size: 11.5px; font-weight: 600; }
.bm-tree-dialog .ft-badge-dot { width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0; }
.bm-tree-dialog .ft-badge-enabled  { background: var(--bm-success-bg);  color: var(--bm-success-text);  border: 1px solid var(--bm-success-border); }
.bm-tree-dialog .ft-badge-enabled  .ft-badge-dot { background: var(--bm-success); animation: bm-dotPulse 2.5s ease-in-out infinite; }
.bm-tree-dialog .ft-badge-disabled { background: var(--bm-surface-3); color: var(--bm-text-muted); border: 1px solid var(--bm-border); }
.bm-tree-dialog .ft-badge-disabled .ft-badge-dot { background: var(--bm-text-muted); }

/* Legend */
.bm-tree-dialog .ft-legend { display: flex; align-items: center; gap: 5px; padding-left: 11px; border-left: 1px solid var(--bm-border); }

/* Component pills (kept semantic, only cleaning up hardcoded values) */
.bm-tree-dialog .ft-component-pill { display: inline-flex; align-items: center; padding: 2px 8px; border-radius: 8px; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; white-space: nowrap; }
.bm-tree-dialog .ft-pill-custom     { background: rgba(67,56,202,.10);  color: #4338CA; border: 1px solid rgba(67,56,202,.22); }
.bm-tree-dialog .ft-pill-field-ref  { background: var(--bm-info-bg);    color: var(--bm-info-text);    border: 1px solid var(--bm-info-border); }
.bm-tree-dialog .ft-pill-object-ref { background: var(--bm-teal-50);    color: var(--bm-teal-600);     border: 1px solid var(--bm-teal-100); }
.bm-tree-dialog .ft-pill-nested     { background: var(--bm-warning-bg); color: var(--bm-warning-text); border: 1px solid var(--bm-warning-border); }

/* Frame cards */
.bm-tree-dialog .ft-cards { display: flex; flex-direction: column; gap: 14px; }
.bm-tree-dialog .ft-card {
  background: var(--bm-surface); border-radius: var(--bm-r-lg);
  border: 1.5px solid var(--bm-border); overflow: hidden;
  box-shadow: var(--bm-shadow-xs); transition: box-shadow var(--bm-t);
}
.bm-tree-dialog .ft-card:hover { box-shadow: var(--bm-shadow-md); }
.bm-tree-dialog .ft-card-disabled { opacity: .65; }

/* Card header */
.bm-tree-dialog .ft-card-header {
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  padding: 14px 18px; cursor: pointer;
  background: var(--bm-surface-2);
  border-bottom: 1px solid var(--bm-border-subtle);
  transition: background var(--bm-t); user-select: none;
}
.bm-tree-dialog .ft-card-header:hover { background: var(--bm-teal-50) !important; }
.bm-tree-dialog .ft-card-disabled .ft-card-header { background: var(--bm-surface-2); }
.bm-tree-dialog .ft-card-header-left  { display: flex; align-items: flex-start; gap: 11px; flex: 1; min-width: 0; }
.bm-tree-dialog .ft-card-header-right { display: flex; align-items: center; gap: 9px; flex-shrink: 0; flex-wrap: wrap; justify-content: flex-end; }

/* Toggle button */
.bm-tree-dialog .ft-toggle-btn { display: flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 50%; background: rgba(0,191,165,.10); flex-shrink: 0; margin-top: 2px; }
.bm-tree-dialog .ft-toggle-btn md-icon { font-size: 18px !important; width: 18px !important; height: 18px !important; color: var(--bm-teal-500) !important; }

/* Card info */
.bm-tree-dialog .ft-card-header-info { flex: 1; min-width: 0; }
.bm-tree-dialog .ft-card-name { font-size: 14px; font-weight: 700; color: var(--bm-text-primary); letter-spacing: .3px; word-break: break-word; line-height: 1.4; }
.bm-tree-dialog .ft-card-desc { font-size: 12px; color: var(--bm-text-secondary); margin-top: 3px; line-height: 1.5; }

/* Count pills */
.bm-tree-dialog .ft-field-counts { display: flex; align-items: center; gap: 5px; }
.bm-tree-dialog .ft-count-pill { display: inline-flex; align-items: center; gap: 3px; padding: 2px 7px 2px 5px; border-radius: 8px; font-size: 10.5px; font-weight: 700; white-space: nowrap; }
.bm-tree-dialog .ft-count-pill md-icon { font-size: 12px !important; width: 12px !important; height: 12px !important; min-height: 0 !important; }
.bm-tree-dialog .ft-count-custom     { background: rgba(67,56,202,.09);  color: #4338CA; border: 1px solid rgba(67,56,202,.2); }
.bm-tree-dialog .ft-count-custom     md-icon { color: #4338CA !important; }
.bm-tree-dialog .ft-count-field-ref  { background: var(--bm-info-bg);    color: var(--bm-info-text);    border: 1px solid var(--bm-info-border); }
.bm-tree-dialog .ft-count-field-ref  md-icon { color: var(--bm-info) !important; }
.bm-tree-dialog .ft-count-object-ref { background: var(--bm-teal-50);    color: var(--bm-teal-600);     border: 1px solid var(--bm-teal-100); }
.bm-tree-dialog .ft-count-object-ref md-icon { color: var(--bm-teal-500) !important; }
.bm-tree-dialog .ft-count-nested     { background: var(--bm-warning-bg); color: var(--bm-warning-text); border: 1px solid var(--bm-warning-border); }
.bm-tree-dialog .ft-count-nested     md-icon { color: var(--bm-warning) !important; }

/* Status pills */
.bm-tree-dialog .ft-status-pill { display: inline-flex; align-items: center; gap: 5px; padding: 3px 9px; border-radius: var(--bm-r-pill); font-size: 10.5px; font-weight: 700; letter-spacing: .4px; text-transform: uppercase; }
.bm-tree-dialog .ft-status-dot  { width: 5px; height: 5px; border-radius: 50%; flex-shrink: 0; }
.bm-tree-dialog .ft-status-enabled  { background: var(--bm-success-bg);  color: var(--bm-success-text);  border: 1px solid var(--bm-success-border); }
.bm-tree-dialog .ft-status-enabled  .ft-status-dot { background: var(--bm-success); animation: bm-dotPulse 2.5s ease-in-out infinite; }
.bm-tree-dialog .ft-status-disabled { background: var(--bm-surface-3); color: var(--bm-text-muted); border: 1px solid var(--bm-border); }
.bm-tree-dialog .ft-status-disabled .ft-status-dot { background: var(--bm-text-muted); }

/* ID pill */
.bm-tree-dialog .ft-id-pill { display: inline-flex; align-items: center; gap: 5px; padding: 3px 9px; background: var(--bm-surface-2); border: 1px solid var(--bm-border); border-radius: var(--bm-r-md); font-size: 11px; font-weight: 500; color: var(--bm-text-secondary); white-space: nowrap; }
.bm-tree-dialog .ft-id-pill md-icon { font-size: 13px !important; width: 13px !important; height: 13px !important; min-height: 0 !important; color: var(--bm-text-muted) !important; flex-shrink: 0; }

/* Fields list */
.bm-tree-dialog .ft-fields-list { padding: 0; }
.bm-tree-dialog .ft-field-row { display: flex; align-items: flex-start; gap: 11px; padding: 12px 18px; border-bottom: 1px solid var(--bm-border-subtle); transition: background var(--bm-t); }
.bm-tree-dialog .ft-field-row:last-child { border-bottom: none; }
.bm-tree-dialog .ft-field-row:hover { background: var(--bm-surface-2); }

.bm-tree-dialog .ft-field-seq { display: flex; align-items: center; justify-content: center; width: 22px; height: 22px; min-width: 22px; border-radius: 50%; background: var(--bm-surface-3); color: var(--bm-text-muted); font-size: 10px; font-weight: 700; flex-shrink: 0; margin-top: 2px; }
.bm-tree-dialog .ft-field-content { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 5px; }
.bm-tree-dialog .ft-field-name-row { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.bm-tree-dialog .ft-field-name { font-size: 12.5px; font-weight: 600; color: var(--bm-text-primary); letter-spacing: .3px; word-break: break-word; }
.bm-tree-dialog .ft-field-desc { font-size: 11.5px; color: var(--bm-text-secondary); line-height: 1.4; }
.bm-tree-dialog .ft-field-meta { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 7px; margin-top: 3px; }

/* ── Required / Sensitive pills ── */
.bm-tree-dialog .ft-field-flag {
    display:        inline-flex;
    align-items:    center;
    gap:            2px;
    font-size:      8px;
    font-weight:    700;
    letter-spacing: .05em;
    text-transform: uppercase;
    padding:        1px 5px 1px 3px;
    border-radius:  6px;
    white-space:    nowrap;
    flex-shrink:    0;
    line-height:    1;
}
.bm-tree-dialog .ft-field-flag md-icon {
    font-size:       9px !important;
    width:           9px !important;
    height:          9px !important;
    line-height:     9px !important;
    display:         inline-flex !important;
    align-items:     center !important;
    justify-content: center !important;
    vertical-align:  middle !important;
    flex-shrink:     0 !important;
    margin:          0 !important;
}
.bm-tree-dialog .ft-field-flag--required {
    background: rgba(245, 158, 11, 0.12);
    color:      #92400e;
    border:     1px solid rgba(245, 158, 11, 0.35);
}
.bm-tree-dialog .ft-field-flag--required md-icon {
    color: #d97706 !important;
}
.bm-tree-dialog .ft-field-flag--sensitive {
    background: rgba(139, 92, 246, 0.10);
    color:      #4c1d95;
    border:     1px solid rgba(139, 92, 246, 0.30);
}
.bm-tree-dialog .ft-field-flag--sensitive md-icon {
    color: #7c3aed !important;
}

/* Ref blocks */
.bm-tree-dialog .ft-ref-meta { display: flex !important; flex-wrap: wrap; align-items: center; gap: 9px; margin-top: 5px; }
.bm-tree-dialog .ft-ref-block { display: flex; align-items: center; gap: 7px; padding: 5px 11px; border-radius: var(--bm-r-md); min-width: 0; }
.bm-tree-dialog .ft-ref-resource  { background: var(--bm-success-bg);  border: 1px solid var(--bm-success-border); }
.bm-tree-dialog .ft-ref-attribute { background: var(--bm-warning-bg);  border: 1px solid var(--bm-warning-border); }
.bm-tree-dialog .ft-ref-object    { background: var(--bm-teal-50);     border: 1px solid var(--bm-teal-100); }
.bm-tree-dialog .ft-ref-icon { font-size: 15px !important; width: 15px !important; height: 15px !important; min-height: 0 !important; flex-shrink: 0; }
.bm-tree-dialog .ft-ref-resource  .ft-ref-icon { color: var(--bm-success) !important; }
.bm-tree-dialog .ft-ref-attribute .ft-ref-icon { color: var(--bm-warning) !important; }
.bm-tree-dialog .ft-ref-object    .ft-ref-icon { color: var(--bm-teal-500) !important; }
.bm-tree-dialog .ft-ref-label { font-size: 9.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; color: var(--bm-text-muted); flex-shrink: 0; }
.bm-tree-dialog .ft-ref-name  { font-size: 12.5px; font-weight: 600; color: var(--bm-text-primary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bm-tree-dialog .ft-ref-id-pill { font-size: 10.5px; font-weight: 600; color: var(--bm-text-secondary); background: rgba(0,0,0,.04); padding: 2px 7px; border-radius: var(--bm-r-sm); border: 1px solid var(--bm-border); white-space: nowrap; flex-shrink: 0; }
.bm-tree-dialog .ft-ref-arrow { display: flex; align-items: center; flex-shrink: 0; }
.bm-tree-dialog .ft-ref-arrow md-icon { font-size: 16px !important; width: 16px !important; height: 16px !important; min-height: 0 !important; color: var(--bm-text-muted) !important; }

/* Nested table */
.bm-tree-dialog .ft-nested-wrap { display: flex; flex-direction: column; border: 1px solid var(--bm-warning-border); border-radius: var(--bm-r-md); overflow: hidden; margin-top: 4px; max-width: 860px; }
.bm-tree-dialog .ft-nested-header { display: flex !important; flex-direction: row !important; align-items: center !important; justify-content: flex-start !important; gap: 8px; padding: 7px 13px; background: var(--bm-warning-bg); border-bottom: 1px solid var(--bm-warning-border); font-size: 11.5px; font-weight: 700; color: var(--bm-warning-text); width: 100%; box-sizing: border-box; text-align: left; }
.bm-tree-dialog .ft-nested-header-icon { font-size: 14px !important; width: 14px !important; height: 14px !important; line-height: 14px !important; color: var(--bm-warning) !important; flex-shrink: 0; display: inline-flex !important; align-items: center !important; font-family: 'Material Icons' !important; }
.bm-tree-dialog .ft-nested-col-count { margin-left: auto; font-size: 10.5px; font-weight: 600; color: var(--bm-warning-text); background: rgba(217,119,6,.12); padding: 2px 7px; border-radius: 7px; border: 1px solid var(--bm-warning-border); }
.bm-tree-dialog .ft-nested-columns { display: flex; flex-direction: column; }
.bm-tree-dialog .ft-nested-col { display: flex; align-items: center; gap: 9px; padding: 9px 13px; border-bottom: 1px solid var(--bm-border-subtle); flex-wrap: nowrap; overflow-x: auto; transition: background var(--bm-t); }
.bm-tree-dialog .ft-nested-col:last-child { border-bottom: none; }
.bm-tree-dialog .ft-nested-col:hover { background: var(--bm-warning-bg); }
.bm-tree-dialog .ft-nested-col-top { display: flex; align-items: center; gap: 7px; flex-shrink: 0; min-width: 90px; max-width: 130px; }
.bm-tree-dialog .ft-nested-col-seq { display: flex; align-items: center; justify-content: center; width: 18px; height: 18px; min-width: 18px; border-radius: 50%; background: var(--bm-warning-bg); color: var(--bm-warning-text); font-size: 10px; font-weight: 700; flex-shrink: 0; }
.bm-tree-dialog .ft-nested-col-name { font-size: 11.5px; font-weight: 700; color: var(--bm-text-primary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 105px; }
.bm-tree-dialog .ft-nested-empty { display: flex; align-items: center; gap: 7px; padding: 12px 14px; color: var(--bm-text-muted); font-size: 12px; }
.bm-tree-dialog .ft-nested-empty md-icon { font-size: 15px !important; width: 15px !important; height: 15px !important; color: var(--bm-border-strong) !important; }

/* No fields / empty */
.bm-tree-dialog .ft-no-fields { display: flex; align-items: center; gap: 9px; padding: 18px 22px; color: var(--bm-text-muted); font-size: 12.5px; }
.bm-tree-dialog .ft-no-fields md-icon { font-size: 18px !important; width: 18px !important; height: 18px !important; color: var(--bm-border-strong) !important; }

.bm-tree-dialog .ft-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 72px 20px; gap: 14px; }
.bm-tree-dialog .ft-empty-icon-wrap { width: 72px; height: 72px; border-radius: 50%; background: var(--bm-surface-3); border: 2px solid var(--bm-border); display: flex; align-items: center; justify-content: center; }
.bm-tree-dialog .ft-empty-icon-wrap md-icon { font-size: 36px !important; width: 36px !important; height: 36px !important; color: var(--bm-border-strong) !important; }
.bm-tree-dialog .ft-empty-title { font-family: var(--bm-font-display) !important; font-size: 17px !important; font-weight: 600 !important; color: var(--bm-text-secondary) !important; }
.bm-tree-dialog .ft-empty-sub   { font-size: 13.5px; color: var(--bm-text-muted); text-align: center; max-width: 300px; line-height: 1.6; }

/* Highlighted states */
.bm-tree-dialog .ft-card-highlighted { outline: 2px solid var(--bm-teal-400); outline-offset: -2px; animation: bm-hlFtCardPulse .5s ease-in-out 8; }
.bm-tree-dialog .ft-card-highlighted .ft-card-header { background: var(--bm-teal-50) !important; }
.bm-tree-dialog .ft-field-highlighted { background: var(--bm-teal-50) !important; animation: bm-hlFtFieldPulse .5s ease-in-out 8; }


/* ── 20. Animations ─────────────────────────────────────────────────── */

@keyframes bm-slideIn {
  from { opacity: 0; transform: translateY(-8px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes bm-hlOwnerPulse {
  0%,100% { box-shadow: 0 0 0 2px var(--bm-teal-400), 0 0 0 5px rgba(0,191,165,.3), 0 4px 16px rgba(0,191,165,.2); }
  50%      { box-shadow: 0 0 0 4px var(--bm-teal-500), 0 0 0 10px rgba(0,191,165,.12), 0 6px 24px rgba(0,191,165,.35); }
}

@keyframes bm-hlNodePulse {
  0%,100% { border-left-color: var(--bm-teal-400) !important; box-shadow: 0 0 0 2px rgba(0,191,165,.5), 0 0 0 5px rgba(0,191,165,.15), 0 4px 14px rgba(0,191,165,.15); }
  50%      { border-left-color: var(--bm-teal-600) !important; box-shadow: 0 0 0 4px rgba(0,191,165,.35), 0 0 0 9px rgba(0,191,165,.08), 0 6px 22px rgba(0,191,165,.28); }
}

@keyframes bm-hlFtCardPulse {
  0%,100% { outline-color: var(--bm-teal-400); box-shadow: 0 0 0 3px rgba(0,191,165,.3); }
  50%      { outline-color: var(--bm-teal-500); box-shadow: 0 0 0 6px rgba(0,191,165,.12); }
}

@keyframes bm-hlFtFieldPulse {
  0%,100% { background: var(--bm-teal-50) !important; box-shadow: inset 3px 0 0 var(--bm-teal-400); }
  50%      { background: var(--bm-teal-100) !important; box-shadow: inset 5px 0 0 var(--bm-teal-500); }
}

@keyframes bm-pkGlow {
  from { box-shadow: 0 2px 6px rgba(245,158,11,.3); }
  to   { box-shadow: 0 4px 12px rgba(245,158,11,.5); }
}

@keyframes bm-pkRotate {
  0%,100% { transform: rotate(0deg); }
  50%      { transform: rotate(15deg); }
}

@keyframes bm-sensitiveGlow {
  from { box-shadow: 0 2px 6px rgba(220,38,38,.3); }
  to   { box-shadow: 0 4px 12px rgba(220,38,38,.55); }
}

@keyframes bm-dotPulse {
  0%,100% { opacity: 1; }
  50%      { opacity: .4; }
}


/* ── 21. Responsive ─────────────────────────────────────────────────── */

@media (max-width: 1400px) {
  .bm-tree-dialog { min-width: 1000px !important; }
}

@media (max-width: 1200px) {
  .bm-tree-dialog { min-width: 900px !important; }
  .bm-tree-dialog .angular-ui-tree .angular-ui-tree-nodes { margin-left: 16px; padding-left: 12px; }
  .bm-tree-dialog .bm-json-paths { max-width: 600px; }
  .bm-tree-dialog .bm-search-results-panel { max-height: 30vh; }
}

@media (max-width: 768px) {
  .bm-tree-dialog .ct-grid { grid-template-columns: 1fr; }
  .bm-tree-dialog .ct-summary-bar { flex-direction: column; align-items: flex-start; }
  .bm-tree-dialog .bm-json-paths { max-width: 100%; }
  .bm-tree-dialog .bm-json-path-item { gap: 7px; }
  .bm-tree-dialog .cm-pill-json-path { white-space: normal; word-break: break-all; font-size: 11px; }
  .bm-tree-dialog .bm-search-wrapper { padding: 12px 16px 0; }
  .bm-tree-dialog .bm-search-results-panel { margin: 10px -16px 0; padding: 0 16px; max-height: 25vh; }
}