/* =============================================================================
   LPS License Manager — Shared refinements
   Small cross-cutting polish that builds on the foundation. Component styling
   (cards, tables, modals, tabs, forms, …) lives in bootstrap/bootstrap.min.css.
   ============================================================================= */

/* Custom scrollbars for a tidier, consistent look */
* {
    scrollbar-width: thin;
    scrollbar-color: var(--lm-gray-300) transparent;
}
*::-webkit-scrollbar { width: 10px; height: 10px; }
*::-webkit-scrollbar-thumb { background: var(--lm-gray-300); border-radius: 8px; border: 2px solid transparent; background-clip: content-box; }
*::-webkit-scrollbar-thumb:hover { background: var(--lm-gray-400); background-clip: content-box; }

/* A card that wraps a data table reads best flush; keep the table tidy */
.card-body > .table-responsive { margin: -.25rem 0; }
.card .table thead th:first-child,
.card .table tbody td:first-child { padding-left: 1.35rem; }
.card .table thead th:last-child,
.card .table tbody td:last-child { padding-right: 1.35rem; }

/* Loading blocks */
.loading-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    padding: 3rem 1rem;
    color: var(--lm-text-muted);
}

/* Empty state (used by inline "no items" blocks and <EmptyState/>) */
.empty-state { text-align: center; padding: 3rem 1rem; color: var(--lm-text-muted); }
.empty-state i,
.empty-state .empty-icon { font-size: 2.5rem; margin-bottom: 1rem; color: var(--lm-gray-300); }
.empty-state h4, .empty-state h5 { margin-bottom: .35rem; color: var(--lm-text); }

/* Helpers */
.cursor-pointer { cursor: pointer; }

/* Monospace key/hash values sit nicely inside tables */
.table td code { white-space: nowrap; }
