/*
 * SEMSBA Auditions — matches www.semsbama.org (Bootstrap 5.3 + Lato, white nav,
 * heavy black wordmark, navy centered headings, light footer).
 */
:root {
  --semsba-navy: #000080;
  --semsba-nav-height: 72px;
  --bs-body-font-family: "Lato", sans-serif;
}

html { position: relative; min-height: 100%; }

body {
  font-family: "Lato", sans-serif;
  padding-top: calc(var(--semsba-nav-height) + 1rem);
  padding-bottom: 4rem;
}

/* ---------- nav (as on semsbama.org) ---------- */
#mainNav { background-color: #fff; min-height: var(--semsba-nav-height); }
.navbar-brand { font-weight: 900; font-size: 28px; color: #000; display: flex; align-items: center; gap: .5rem; }
.navbar-brand img { height: 40px; width: auto; }
.navbar .nav-link { color: #000; }

/* ---------- headings ---------- */
h1 { font-weight: 900; color: var(--semsba-navy); text-align: center; }
h2 { font-weight: 800; text-align: center; }
.lato-light { font-weight: 300; }
.lato-black { font-weight: 900; }

/* ---------- footer ---------- */
#footerDiv {
  position: fixed; bottom: 0; left: 0; right: 0;
  background: #fff; color: #000; text-align: center;
  font-weight: 300; font-size: .875rem; padding: .5rem; z-index: 1020;
  border-top: 1px solid var(--bs-border-color);
}

/* ---------- connection / save status ---------- */
.status-dot { display: inline-block; width: .6rem; height: .6rem; border-radius: 50%; margin-right: .35rem; }
.status-online .status-dot { background: var(--bs-success); }
.status-offline .status-dot { background: var(--bs-warning); }

/* ---------- adjudicator queue ---------- */
.queue-row { cursor: pointer; }
.queue-row:hover { background: var(--bs-tertiary-bg); }
.audition-no { font-weight: 900; font-size: 1.25rem; font-variant-numeric: tabular-nums; }

/* ---------- score sheet ---------- */
.sheet-bar {
  position: sticky; top: var(--semsba-nav-height); z-index: 1010;
  background: #fff; border-bottom: 1px solid var(--bs-border-color);
  margin: 0 -.75rem 1rem; padding: .75rem;
}
.sheet-total { font-weight: 900; font-size: 2rem; line-height: 1; color: var(--semsba-navy); font-variant-numeric: tabular-nums; }
.sheet-total small { font-size: 1rem; font-weight: 400; color: var(--bs-secondary-color); }

.criterion { padding: .75rem 0; border-bottom: 1px solid var(--bs-border-color-translucent); }
.criterion:last-child { border-bottom: 0; }
.criterion-title { font-weight: 700; }
.criterion.missing .criterion-title::after { content: " •"; color: var(--bs-danger); }

/* Band levels: descriptor text with its point buttons (e.g. 10 | 9) */
.band-level { display: flex; align-items: center; gap: .75rem; padding: .25rem 0; }
.band-level .btn-group { flex: 0 0 auto; }
.band-level .level-text { font-size: .95rem; }

/* Big, touch-friendly score buttons */
.score-btn { min-width: 3rem; min-height: 2.75rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.rating-btn { min-height: 2.75rem; }
.rating-btn .rating-value { font-weight: 900; margin-right: .25rem; }


@media print {
  #mainNav, #footerDiv, .no-print, #toastHost, #staleBar { display: none !important; }
  body { padding-top: 0; padding-bottom: 0; }
  th.sortable::after { content: none !important; }
  .card { box-shadow: none !important; border: 0 !important; }
  .table { font-size: 11pt; }
}

/* ---------- registration table ---------- */
.school-list { max-height: calc(100vh - 16rem); overflow-y: auto; }
.school-list .list-group-item.active { background: var(--bs-primary-bg-subtle); color: inherit; border-color: var(--bs-border-color); }
.school-code { font-weight: 900; font-variant-numeric: tabular-nums; min-width: 3rem; display: inline-block; }
.incomplete-dot::after { content: " \2022"; color: var(--bs-danger); font-weight: 900; }
tr.row-noshow td { color: var(--bs-secondary-color); }
tr.row-flash { animation: flash 1.2s ease-out; }
@keyframes flash { from { background: var(--bs-warning-bg-subtle); } to { background: transparent; } }
th.sortable { cursor: pointer; user-select: none; white-space: nowrap; }
th.sortable::after { content: " \2195"; color: var(--bs-secondary-color); font-weight: 400; }
th.sortable.sort-asc::after { content: " \2191"; color: var(--bs-primary); }
th.sortable.sort-desc::after { content: " \2193"; color: var(--bs-primary); }
.judge-line + .judge-line { margin-top: .25rem; }
.stat-card .stat { font-size: 2rem; font-weight: 900; line-height: 1; color: var(--semsba-navy); font-variant-numeric: tabular-nums; }

/* ---------- director portal: principal / festival invoice ---------- */
.invoice-table { width: auto; min-width: 60%; }
.invoice-table th, .invoice-table td { padding: .3rem .75rem; }
.invoice-table thead th { border-bottom-width: 2px; }

/* ---------- admin: score-sheet editor ---------- */
#rbList .list-group-item.active .text-secondary { color: rgba(255, 255, 255, .85) !important; }
.rb-section textarea { field-sizing: content; min-height: 2rem; }

/* Score sheets: pitch scoring and scale technique side by side */
.criterion-row + .criterion-row { border-top: 1px solid var(--bs-border-color-translucent); }
@media (min-width: 768px) {
  .criterion-col-right { border-left: 1px solid var(--bs-border-color-translucent); }
}
@media (max-width: 767.98px) {
  .criterion-row .col-md-6:first-child .criterion:last-child { border-bottom: 1px solid var(--bs-border-color-translucent); }
}
