/* ── Week table ──────────────────────────────────────────────────────────── */
.week-table th,
.week-table td {
  vertical-align: middle;
  font-size: 0.84rem;
}

.pos-col  { width: 160px; min-width: 130px; }
.day-col  { min-width: 105px; text-align: center; }

.today-col      { background-color: #e8f4ff !important; border-left: 2px solid #0d6efd !important; }
.weekend-col    { background-color: #fff9f0 !important; }
.weekend-header { background-color: #3d4349 !important; border-top: 3px solid #fd7e14 !important; }

.pos-label   { white-space: nowrap; }
.pos-name    { font-size: 0.72rem; margin-left: 4px; }

/* Position fill colors */
.filled-primary  { background-color: #cfe2ff !important; }
.filled-warning  { background-color: #fff3cd !important; }
.filled-success  { background-color: #d1e7dd !important; }
.filled-danger   { background-color: #f8d7da !important; }
.filled-info     { background-color: #cff4fc !important; }
.filled-secondary{ background-color: #e9ecef !important; }
.unfilled        { background-color: #fff    !important; }
.filled-substitute { background-color: #fff3cd !important; } /* pale yellow – substitute */

/* Person links */
.person-link {
  text-decoration: none;
  color: #212529;
  font-weight: 500;
  font-size: 0.82rem;
  white-space: nowrap;
}
.person-link:hover { color: #0d6efd; text-decoration: underline; }

/* ZBV row */
.zbv-row td { background-color: #f8f9fa !important; }
.zbv-name   { font-size: 0.78rem; line-height: 1.6; }
.zbv-promoted .person-link { font-weight: 600; }

/* Substitute indicator in position cells */
.person-link-sub { color: #856404 !important; font-weight: 600; }
.absent-orig {
  font-size: 0.68rem;
  color: #dc3545;
  text-decoration: line-through;
  white-space: nowrap;
}

/* Filter highlight/dim */
.highlighted { outline: 2px solid #0d6efd !important; background-color: #bbdefb !important; }
.dimmed      { opacity: 0.3; }

/* ── Badges ───────────────────────────────────────────────────────────────── */
.badge-pos {
  font-size: 0.65rem;
  padding: 2px 5px;
  min-width: 34px;
  text-align: center;
  flex-shrink: 0;
}
.qual-badge { font-size: 0.72rem; padding: 2px 6px; }

/* ── Stats table ─────────────────────────────────────────────────────────── */
.stats-table th,
.stats-table td { font-size: 0.82rem; vertical-align: middle; }

/* ── Day view ─────────────────────────────────────────────────────────────── */
.table-primary-subtle   { background-color: #cfe2ff !important; }
.table-warning-subtle   { background-color: #fff3cd !important; }
.table-success-subtle   { background-color: #d1e7dd !important; }
.table-danger-subtle    { background-color: #f8d7da !important; }
.table-info-subtle      { background-color: #cff4fc !important; }

/* ── Schichttyp-Farben ────────────────────────────────────────────────────── */
/* Schichttyp-Unterzeile */
.shift-subrow-f1  { background-color: #fff3cd !important; color: #664d03 !important; }  /* F1 gelb */
.shift-subrow-s1  { background-color: #d1e7dd !important; color: #0a3622 !important; }  /* S1 grün */
.shift-subrow-n1  { background-color: #cfe2ff !important; color: #052c65 !important; }  /* N1 blau */
.shift-subrow-d1  { background-color: #fff3cd !important; color: #664d03 !important; }  /* D1 gelb */
.shift-subrow-d2  { background-color: #cfe2ff !important; color: #052c65 !important; }  /* D2 blau */
.shift-subrow-gt,
.shift-subrow-bf,
.shift-subrow-zka,
.shift-subrow-ft,
.shift-subrow-vf  { background-color: #e9ecef !important; color: #6c757d !important; }  /* Frei grau */
/* Freie Tage – Zellen ausgrauen */
.frei-cell {
  background-color: #f4f4f4 !important;
  color: #adb5bd !important;
}

/* ── Misc ─────────────────────────────────────────────────────────────────── */
.navbar-brand { font-size: 1rem; letter-spacing: 0.5px; }

@media (max-width: 768px) {
  .week-table { font-size: 0.72rem; }
  .pos-col    { min-width: 90px; }
  .day-col    { min-width: 70px; }
  .pos-name   { display: none; }
}
