body { background: #f4f6f9; }
.navbar-brand { font-weight: 700; }
.card { border-radius: 1rem; }
.table thead th { white-space: nowrap; }
.table td, .table th { vertical-align: middle; }
.badge-soft { background: #eef2ff; color: #4338ca; }
.page-toolbar { gap: .75rem; }
.sticky-actions { position: sticky; right: 0; background: #fff; }
.mini-stat { border: 1px solid #e9ecef; border-radius: 1rem; background: #fff; padding: 1rem; height: 100%; }
.mini-stat .label { color: #6c757d; font-size: .875rem; }
.mini-stat .value { font-size: 1.15rem; font-weight: 700; }
.player-card { border: 1px solid #e9ecef; border-radius: 1rem; background: #fff; }
.player-card .card-header { background: #fff; }
.actions-nowrap { white-space: nowrap; }
code.small { display:block; max-width: 420px; white-space: pre-wrap; word-break: break-word; }
.table-toolbar { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1rem; border-bottom:1px solid #edf0f2; background:#fff; }
.table-toolbar h2 { margin:0; font-size:1rem; }
.detail-list dt { color:#6c757d; font-weight:600; }
.detail-list dd { margin-bottom:.75rem; }
.modal-dialog-scrollable .modal-body { max-height: calc(100vh - 11rem); overflow-y: auto; }
.modal .modal-footer { position: sticky; bottom: 0; background: #fff; z-index: 2; border-top: 1px solid #dee2e6; }
.modal .modal-header { position: sticky; top: 0; background: #fff; z-index: 2; }
.date-field { min-width: 140px; }
.summary-table td, .summary-table th { font-size: .92rem; }
