/* A few things Bulma doesn't cover. */
tbody tr { cursor: pointer; }
summary { cursor: pointer; }

/* Detail modal footer: left action group + right action group. */
.dlg-actions { display: flex; gap: .5rem; flex-wrap: wrap; align-items: center; width: 100%; }
.dlg-actions .spacer { flex: 1; }

/* Read-only key/value grid in the detail view. */
.kv { display: grid; grid-template-columns: auto 1fr; gap: .4rem 1rem; margin-bottom: 1rem; }
.kv dt { font-size: .75rem; font-weight: 600; align-self: center; }
.kv dd { margin: 0; }

/* Split button: join the primary button and the caret trigger. */
.split-btn { display: inline-flex; }
.split-btn .split-primary { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.split-btn .split-caret { border-top-left-radius: 0; border-bottom-left-radius: 0; }

/* Space between icon and label in dropdown menu items (Bulma only auto-spaces buttons). */
.dropdown-item .icon:first-child { margin-right: .4rem; }

/* Let the split-button dropdown (opens upward) show above the modal footer instead of clipping. */
.modal-card-foot { overflow: visible; }

/* Fixed-height scrollable description. */
.desc-box { height: 9rem; overflow: auto; }

/* Toast (Bulma notification, pinned bottom-centre). */
.toast {
  position: fixed; bottom: 1.25rem; left: 50%; transform: translateX(-50%);
  z-index: 1000; margin: 0; opacity: 0; transition: opacity .2s; pointer-events: none;
  box-shadow: 0 4px 20px rgba(0, 0, 0, .25);
}
.toast.show { opacity: 1; }
