:root { --header-h: 64px; }
body { background:#ffffff; color:#212529; }
.navbar { background:#f8f9fa !important; border-bottom:1px solid #dee2e6 !important; }
.card, .table, .form-control, .form-select { background:#ffffff; color:#212529; border-color:#dee2e6; }
.table thead th { position: sticky; top: 0; background:#f8f9fa; z-index:2; }
.table-responsive { max-height: calc(100vh - var(--header-h) - 260px); overflow:auto; }
a { color:#0d6efd; } a:hover { color:#0b5ed7; }
.btn-outline-light { border-color:#ced4da; color:#212529; }
.badge { background:#e9ecef; color:#212529; border:1px solid #dee2e6; }
hr { border-color:#dee2e6; }
footer { display:none; } /* remove footer text per request */


/* Layout & spacing */
:root { --header-h: 64px; }
.main { padding-top: var(--header-h); }
.table-responsive.fixed-height { max-height: 60vh; overflow-y: auto; }

/* Read-only view: better tool column spacing and scroll */
.viewport-table { height: calc(100vh - var(--header-h) - 140px); overflow-y: auto; overflow-x: auto; }
.table.tool-wide thead th.tool-col, .table.tool-wide tbody td.tool-col { min-width: 160px; }
.table.tool-wide td, .table.tool-wide th { vertical-align: middle; padding: .6rem .9rem; }

.card .badge.title-badge { font-size: 1.1rem; padding: .5rem .75rem; }
h3 .card-title-strong { font-weight: 800; }


/* Show a subtle placeholder for empty role cells */
.role-cell:empty::before { content: "--"; color: #6c757d; }
.table.tool-wide td.tool-col:empty::before { content: "--"; color: #6c757d; }


/* Filter bar spacing */
.form-check-input { vertical-align: middle; }
.form-check-label { font-weight: 500; }
.form-check-label + .form-check-label { margin-left: .5rem; }
