/* Instructor Report Specific Styles */
table.data.instructor-report-table {
  width: 100%;
  min-width: 1200px;
  table-layout: fixed !important;
  border-collapse: collapse;
  margin: 0;
}

/* Base cell styles */
table.data.instructor-report-table th,
table.data.instructor-report-table td {
  padding: var(--spacing-xs) var(--spacing-sm);
  white-space: normal;
  vertical-align: middle;
  font-size: var(--text-sm);
  box-sizing: border-box;
}

/* Column group widths via colgroup classes */
table.data.instructor-report-table col.col-instructor { width: 6%; }
table.data.instructor-report-table col.col-taught { width: 3.5%; }
table.data.instructor-report-table col.col-opportunities { width: 3%; }
table.data.instructor-report-table col.col-sales { width: 4%; }
table.data.instructor-report-table col.col-totals { width: 7%; }

/* Group header row -- visually heavier than sub-headers */
table.data.instructor-report-table .group-header th {
  font-size: var(--text-sm);
  font-weight: var(--font-bold);
  color: var(--color-text);
  text-align: center;
  border-bottom: 2px solid #94A3B8;
  padding: var(--spacing-sm) var(--spacing-sm);
}

table.data.instructor-report-table .group-header th:first-child {
  text-align: left;
}

/* Column group borders -- left border on first column of each section */
table.data.instructor-report-table th:nth-child(4),
table.data.instructor-report-table td:nth-child(4),
table.data.instructor-report-table th:nth-child(8),
table.data.instructor-report-table td:nth-child(8),
table.data.instructor-report-table th:nth-child(20),
table.data.instructor-report-table td:nth-child(20) {
  border-left: 2px solid #CBD5E0;
}

/* Alternating column-group tint -- Opportunities and Totals get a wash */
table.data.instructor-report-table td:nth-child(n+4):nth-child(-n+7),
table.data.instructor-report-table td:nth-child(n+20):nth-child(-n+21) {
  background-color: #F8FAFC;
}

/* Totals columns (Sales, Cash) -- emphasized */
table.data.instructor-report-table td:nth-child(20),
table.data.instructor-report-table td:nth-child(21) {
  font-weight: var(--font-semibold);
  white-space: nowrap;
}

table.data.instructor-report-table tfoot td:nth-child(20),
table.data.instructor-report-table tfoot td:nth-child(21),
table.data.instructor-report-table tfoot th:nth-child(20),
table.data.instructor-report-table tfoot th:nth-child(21) {
  font-weight: var(--font-bold);
  white-space: nowrap;
}

/* All numeric/money cells right-aligned */
table.data.instructor-report-table td:nth-child(n+2) {
  text-align: right;
}

/* P/G rows styling */
table.data.instructor-report-table tr:nth-child(even) td {
  font-size: var(--text-xs);
  padding-bottom: var(--spacing-xs);
}

/* Header actions */
table.data.instructor-report-table th.header-actions {
  padding: var(--spacing-sm) var(--spacing-md);
  white-space: nowrap;
}

/* Progressive font scaling for narrower viewports */
@media screen and (max-width: 1500px) /* --breakpoint-xl */ {
  table.data.instructor-report-table,
  table.data.instructor-report-table tfoot tr td,
  table.data.instructor-report-table tfoot tr th,
  table.data.instructor-report-table td div {
    font-size: var(--text-xs);
  }

  table.data.instructor-report-table tr:nth-child(even) td,
  table.data.instructor-report-table tr:nth-child(even) td div,
  table.data.instructor-report-table tfoot tr:nth-child(even) td {
    font-size: calc(var(--text-xs) * 0.9);
  }
}

@media screen and (max-width: 1200px) /* --breakpoint-lg */ {
  table.data.instructor-report-table,
  table.data.instructor-report-table tfoot tr td,
  table.data.instructor-report-table tfoot tr th,
  table.data.instructor-report-table td div {
    font-size: calc(var(--text-xs) * 0.8);
  }

  table.data.instructor-report-table tr:nth-child(even) td,
  table.data.instructor-report-table tr:nth-child(even) td div,
  table.data.instructor-report-table tfoot tr:nth-child(even) td {
    font-size: calc(var(--text-xs) * 0.7);
  }

  table.data.instructor-report-table th,
  table.data.instructor-report-table td,
  table.data.instructor-report-table tfoot tr th,
  table.data.instructor-report-table tfoot tr td {
    padding: var(--spacing-xxs) var(--spacing-xs);
  }

  #content:has(.instructor-report-table) {
    overflow-x: auto;
  }
}

/* Print styles */
@media print {
  table.data.instructor-report-table {
    font-size: var(--text-xs);
    width: 100%;
    min-width: 100%;
  }

  table.data.instructor-report-table th,
  table.data.instructor-report-table td {
    padding: var(--spacing-xxs) var(--spacing-xs);
    vertical-align: middle;
  }
}

/* Instructor Report V2 -- merged # + Amount columns */
table.data.instructor-report-v2 {
  width: 100%;
  min-width: 1100px;
  table-layout: fixed !important;
  border-collapse: collapse;
  margin: 0;
}

/* Column widths: narrow for small numbers, wide for merged sales */
table.data.instructor-report-v2 col.col-name { width: 7%; }
table.data.instructor-report-v2 col.col-taught { width: 4.5%; }
table.data.instructor-report-v2 col.col-opp { width: 3%; }
table.data.instructor-report-v2 col.col-sale { width: 8.5%; }
table.data.instructor-report-v2 col.col-total { width: 7%; }

table.data.instructor-report-v2 th,
table.data.instructor-report-v2 td {
  padding: var(--spacing-xs) var(--spacing-sm);
  white-space: normal;
  vertical-align: middle;
  font-size: var(--text-sm);
}

table.data.instructor-report-v2 .split-cell,
table.data.instructor-report-v2 .col-total {
  white-space: nowrap;
}

table.data.instructor-report-v2 td {
  text-align: right;
}

table.data.instructor-report-v2 .group-header th {
  font-size: var(--text-sm);
  font-weight: var(--font-bold);
  color: var(--color-text);
  text-align: center;
  border-bottom: 2px solid #94A3B8;
  padding: var(--spacing-sm);
}

table.data.instructor-report-v2 .group-header th:first-child,
table.data.instructor-report-v2 td:first-child {
  text-align: left;
}

/* Center sub-headers for Opportunities and Sales (cols 4-13) */
table.data.instructor-report-v2 thead tr:not(.group-header) th:nth-child(n+4):nth-child(-n+13) {
  text-align: center;
}

/* Column group borders -- exclude group header row */
table.data.instructor-report-v2 thead tr:not(.group-header) th:nth-child(4),
table.data.instructor-report-v2 tbody td:nth-child(4),
table.data.instructor-report-v2 tfoot td:nth-child(4) {
  border-left: 2px solid #CBD5E0;
}

table.data.instructor-report-v2 thead tr:not(.group-header) th:nth-child(8),
table.data.instructor-report-v2 tbody td:nth-child(8),
table.data.instructor-report-v2 tfoot td:nth-child(8) {
  border-left: 2px solid #CBD5E0;
}

table.data.instructor-report-v2 thead tr:not(.group-header) th:nth-child(14),
table.data.instructor-report-v2 tbody td:nth-child(14),
table.data.instructor-report-v2 tfoot td:nth-child(14) {
  border-left: 2px solid #CBD5E0;
}

/* Column group tint */
table.data.instructor-report-v2 td:nth-child(n+4):nth-child(-n+7),
table.data.instructor-report-v2 td:nth-child(n+14):nth-child(-n+15) {
  background-color: #F8FAFC;
}

/* Split cells: count left, amount right */
table.data.instructor-report-v2 .split-cell {
  display: table-cell;
  padding: var(--spacing-xs) var(--spacing-sm);
}

table.data.instructor-report-v2 .split-count {
  float: left;
  font-weight: var(--font-normal);
}

table.data.instructor-report-v2 .split-amount {
  float: right;
  font-weight: var(--font-semibold);
}

/* Totals columns emphasized */
table.data.instructor-report-v2 .col-total {
  font-weight: var(--font-semibold);
}

table.data.instructor-report-v2 tfoot .col-total {
  font-weight: var(--font-bold);
}

/* P/G sub-rows */
table.data.instructor-report-v2 .pg-row td {
  font-size: var(--text-xs);
  padding-top: 0;
  padding-bottom: var(--spacing-xs);
  border-bottom: 1px solid #E2E8F0;
}

table.data.instructor-report-v2 .pg-label {
  float: left;
  width: 30%;
  font-weight: var(--font-bold);
  color: var(--color-disabled-text);
}

table.data.instructor-report-v2 .pg-val {
  float: right;
  width: 70%;
  text-align: right;
}

/* Hide bottom border on data rows before P/G rows */
table.data.instructor-report-v2 tbody tr:not(.pg-row) + .pg-row {
  /* P/G row gets the border, not the data row above */
}

table.data.instructor-report-v2 tbody tr:not(.pg-row) {
  border-bottom: none;
}

table.data.instructor-report-v2 tbody tr:not(.pg-row) td {
  border-bottom: none;
}

@media screen and (max-width: 1500px) {
  table.data.instructor-report-v2,
  table.data.instructor-report-v2 td,
  table.data.instructor-report-v2 th {
    font-size: var(--text-xs);
  }

  table.data.instructor-report-v2 .pg-row td {
    font-size: calc(var(--text-xs) * 0.9);
  }
}

@media screen and (max-width: 1200px) {
  table.data.instructor-report-v2 {
    font-size: calc(var(--text-xs) * 0.8);
  }

  table.data.instructor-report-v2 th,
  table.data.instructor-report-v2 td {
    padding: var(--spacing-xxs) var(--spacing-xs);
  }
}

/* V2 summary cards -- matches status-card pattern */
.ir-summary-card {
  display: flex;
  gap: var(--spacing-md);
  margin-bottom: var(--spacing-lg);
  max-width: 650px;
}

.ir-summary-section {
  flex: 1;
  padding: var(--spacing-md);
  border: 1px solid var(--color-border);
  border-left: 4px solid var(--color-primary);
  border-radius: 4px;
  background: var(--color-background);
  box-shadow: var(--shadow-sm);
  min-width: 0;
}

.ir-summary-heading {
  font-size: var(--text-xs);
  font-weight: var(--font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-disabled-text);
  margin-bottom: var(--spacing-sm);
  padding-bottom: var(--spacing-xs);
  border-bottom: 1px solid var(--color-border);
}

.ir-summary-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: var(--spacing-xxs) 0;
  font-size: var(--text-sm);
}

.ir-summary-label {
  color: var(--color-disabled-text);
  font-weight: var(--font-medium);
}

.ir-summary-value {
  font-weight: var(--font-semibold);
  color: var(--color-text);
}

#id_date {
  width: var(--input-width-md);
}

/* Instructor Inventory toolbar */
.header-actions .toolbar {
  display: flex;
  align-items: center;
  gap: var(--spacing-base);
  flex-wrap: wrap;
}

.header-actions .toolbar label {
  display: flex;
  align-items: center;
  gap: var(--spacing-xs);
}

.header-actions .toolbar .print-button {
  margin-left: auto;
}

.header-actions .inventory-summary {
  text-align: center;
  background-color: var(--color-disabled);
  font-size: var(--text-base);
}

/* Inventory status colors */
.days-warning {
  color: orange;
}

.days-danger {
  color: red;
}

.balance-danger {
  color: red;
  font-weight: var(--font-bold);
}

.inventory-note {
  font-size: var(--text-sm);
  color: var(--color-disabled-text);
}