.bacs-dashboard {
  --bacs-ink:#122229;
  --bacs-ink-soft:#3d4f56;
  --bacs-paper-raised:#FFFFFF;
  --bacs-line:#D8D8CE;
  --bacs-gold:#B8862E;
  --bacs-teal:#2F6B63;
  --bacs-rust:#A8502F;

  font-family:'Inter',sans-serif;
  line-height:1.5;
  color:var(--bacs-ink);
  max-width:1180px;
  margin:0 auto;
}
.bacs-dashboard *{box-sizing:border-box;}
.bacs-dashboard h2,
.bacs-dashboard h3{
  font-family:'Spectral',serif;
  font-weight:600;
  margin:0;
  color:var(--bacs-ink);
}

.bacs-masthead{
  border-bottom:2px solid var(--bacs-ink);
  padding:8px 0 22px;
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  flex-wrap:wrap;
  gap:16px;
}
.bacs-title-block h2{ font-size:2.1rem; letter-spacing:-0.01em; }
.bacs-title-block p{ margin:6px 0 0; color:var(--bacs-ink-soft); font-size:0.95rem; max-width:52ch; }
.bacs-meta{ text-align:right; font-size:0.82rem; color:var(--bacs-ink-soft); font-variant-numeric:tabular-nums; }
.bacs-meta .bacs-refresh-badge{
  display:inline-flex; align-items:center; gap:6px; margin-top:6px;
  padding:4px 10px; border:1px solid var(--bacs-line); border-radius:100px;
  background:var(--bacs-paper-raised);
}
.bacs-meta .bacs-dot{ width:6px; height:6px; border-radius:50%; background:var(--bacs-teal); display:inline-block; }

.bacs-dash-tabs{
  display:flex;
  gap:4px;
  border-bottom:2px solid var(--bacs-line);
  margin-top:24px;
}
.bacs-dash-tab{
  background:none;
  border:none;
  padding:12px 20px;
  font-family:'Inter',sans-serif;
  font-size:0.92rem;
  font-weight:600;
  color:var(--bacs-ink-soft);
  cursor:pointer;
  border-bottom:2px solid transparent;
  margin-bottom:-2px;
}
.bacs-dash-tab.active{ color:var(--bacs-teal); border-bottom-color:var(--bacs-teal); }
.bacs-dash-panel{ display:none; }
.bacs-dash-panel.active{ display:block; }

.bacs-subfilter-row{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:16px 24px;
  background:var(--bacs-paper-raised);
  border:1px solid var(--bacs-line);
  padding:16px 20px;
  margin-top:24px;
  font-size:0.88rem;
}
.bacs-subfilter-row label{ display:flex; align-items:center; gap:8px; }
.bacs-subfilter-row select,
.bacs-subfilter-row input{
  font-family:'Inter',sans-serif;
  font-size:0.88rem;
  padding:6px 8px;
  border:1px solid var(--bacs-line);
  background:#fff;
  color:var(--bacs-ink);
}
.bacs-trend-year-checks{ display:flex; flex-wrap:wrap; gap:6px 16px; align-items:center; }
.bacs-trend-year-checks label{ display:flex; align-items:center; gap:6px; font-size:0.85rem; white-space:nowrap; }
.bacs-trend-range-row{
  display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  padding:6px 0;
}
.bacs-trend-range-row .bacs-trend-range-label{
  font-size:0.8rem; color:var(--bacs-ink-soft); min-width:64px;
}
.bacs-trend-range-remove{
  border:none; background:none; color:var(--bacs-rust);
  cursor:pointer; font-size:0.8rem; padding:2px 6px;
}
.bacs-kpi-delta{ font-size:0.75rem; color:var(--bacs-ink-soft); margin-top:6px; font-weight:600; }
.bacs-kpi-delta.bacs-up{ color:var(--bacs-teal); }
.bacs-kpi-delta.bacs-down{ color:var(--bacs-rust); }

.bacs-course-layout{
  display:grid;
  grid-template-columns:1.3fr 1fr;
  gap:32px;
  align-items:start;
}
.bacs-course-table-col table tbody tr{ cursor:pointer; }
.bacs-course-table-col table tbody tr:hover{ background:#f6f5f0; }
.bacs-course-table-col table tbody tr.bacs-row-selected{ background:#eef3f1; }
@media (max-width:900px){
  .bacs-course-layout{ grid-template-columns:1fr; }
}

.bacs-status-pill{
  display:inline-block;
  padding:2px 10px;
  border-radius:100px;
  font-size:0.78rem;
  font-weight:600;
}
.bacs-status-pill.bacs-active{ background:rgba(47,107,99,0.14); color:var(--bacs-teal); }
.bacs-status-pill.bacs-inactive{ background:rgba(168,80,47,0.12); color:var(--bacs-rust); }
.bacs-status-pill.bacs-unknown{ background:var(--bacs-line); color:var(--bacs-ink-soft); }

.bacs-inactive-badge{
  display:inline-block;
  font-size:0.7rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.03em;
  padding:1px 7px;
  border-radius:100px;
  background:rgba(168,80,47,0.12);
  color:var(--bacs-rust);
  vertical-align:middle;
  margin-left:6px;
}

.bacs-filter-bar{
  display:flex;
  flex-wrap:wrap;
  gap:16px 20px;
  align-items:flex-end;
  background:var(--bacs-paper-raised);
  border:1px solid var(--bacs-line);
  padding:18px 20px;
  margin-top:24px;
}
.bacs-filter-field{ display:flex; flex-direction:column; gap:5px; min-width:150px; flex:1; }
.bacs-filter-field label{ font-size:0.75rem; color:var(--bacs-ink-soft); }
.bacs-filter-field select,
.bacs-filter-field input{
  font-family:'Inter',sans-serif;
  font-size:0.88rem;
  padding:7px 9px;
  border:1px solid var(--bacs-line);
  background:#fff;
  color:var(--bacs-ink);
  width:100%;
}
.bacs-filter-checkbox{ flex-direction:row; align-items:center; gap:8px; min-width:auto; }
.bacs-filter-checkbox label{ display:flex; align-items:center; gap:7px; font-size:0.85rem; color:var(--bacs-ink); white-space:nowrap; }
.bacs-filter-checkbox input[type="checkbox"]{ width:auto; }
.bacs-filter-checkbox-group{ min-width:auto; }
.bacs-filter-group-label{ font-size:0.75rem; color:var(--bacs-ink-soft); margin-bottom:5px; display:block; }
.bacs-filter-checkbox-row{ display:flex; gap:14px; align-items:center; }
.bacs-filter-checkbox-row label{ display:flex; align-items:center; gap:6px; font-size:0.85rem; color:var(--bacs-ink); white-space:nowrap; }
.bacs-filter-checkbox-row input[type="checkbox"]{ width:auto; }
.bacs-filter-actions{ display:flex; gap:10px; }

.bacs-course-search-wrap{ position:relative; }
.bacs-course-dropdown{
  position:absolute;
  top:100%;
  left:0;
  right:0;
  z-index:40;
  max-height:280px;
  overflow-y:auto;
  background:#fff;
  border:1px solid var(--bacs-ink);
  border-top:none;
  box-shadow:0 6px 14px rgba(18,34,41,0.12);
}
.bacs-course-option{
  padding:8px 10px;
  font-size:0.85rem;
  cursor:pointer;
  border-bottom:1px solid var(--bacs-line);
}
.bacs-course-option:last-child{ border-bottom:none; }
.bacs-course-option:hover{ background:#f2f1ec; }
.bacs-course-option-empty{ color:var(--bacs-ink-soft); font-style:italic; cursor:default; }
.bacs-course-option-empty:hover{ background:none; }
.bacs-btn{
  font-family:'Inter',sans-serif;
  font-size:0.85rem;
  padding:8px 16px;
  border:1px solid var(--bacs-ink);
  background:#fff;
  color:var(--bacs-ink);
  cursor:pointer;
}
.bacs-btn:hover{ background:#f2f1ec; }
.bacs-btn:disabled{ opacity:0.45; cursor:not-allowed; }
.bacs-btn-primary{ background:var(--bacs-ink); color:#fff; }
.bacs-btn-primary:hover{ background:#1c3542; }

.bacs-kpi-row{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-bottom:1px solid var(--bacs-line);
  margin-top:28px;
}
.bacs-kpi{ padding:26px 24px; border-right:1px solid var(--bacs-line); }
.bacs-kpi:last-child{ border-right:none; }
.bacs-kpi .bacs-num{
  font-family:'Spectral',serif; font-size:2.5rem; font-weight:600;
  font-variant-numeric:tabular-nums; line-height:1;
}
.bacs-kpi .bacs-label{ margin-top:8px; font-size:0.82rem; color:var(--bacs-ink-soft); }
.bacs-kpi.bacs-accent-teal .bacs-num{ color:var(--bacs-teal); }
.bacs-kpi.bacs-accent-gold .bacs-num{ color:var(--bacs-gold); }

.bacs-dashboard section{ margin-top:52px; }
.bacs-dashboard .bacs-section-head{
  display:flex; justify-content:space-between; align-items:baseline;
  border-bottom:1px solid var(--bacs-line); padding-bottom:10px; margin-bottom:22px;
  flex-wrap:wrap; gap:8px;
}
.bacs-section-head h3{ font-size:1.2rem; }
.bacs-section-head .bacs-note{ font-size:0.82rem; color:var(--bacs-ink-soft); }

.bacs-grid-2{ display:grid; grid-template-columns:1.15fr 0.85fr; gap:40px; }
.bacs-panel{ background:var(--bacs-paper-raised); border:1px solid var(--bacs-line); padding:22px 24px; }
.bacs-chart-box{ position:relative; height:290px; }

.bacs-status-bar{
  display:flex; width:100%; height:34px; border:1px solid var(--bacs-ink);
  overflow:hidden; margin-bottom:16px;
}
.bacs-status-bar span{ height:100%; }
.bacs-status-legend{ display:flex; flex-wrap:wrap; gap:14px 22px; font-size:0.82rem; }
.bacs-status-legend div{ display:flex; align-items:center; gap:7px; }
.bacs-swatch{ width:10px; height:10px; display:inline-block; border-radius:2px; }

.bacs-table{ width:100%; border-collapse:collapse; font-size:0.9rem; }
.bacs-table thead th{
  text-align:left; font-weight:600; color:var(--bacs-ink-soft); font-size:0.78rem;
  padding:0 10px 10px; border-bottom:1px solid var(--bacs-ink);
}
.bacs-table thead th.bacs-num-col,
.bacs-table tbody td.bacs-num-col{ text-align:right; font-variant-numeric:tabular-nums; }
.bacs-table tbody td{ padding:12px 10px; border-bottom:1px solid var(--bacs-line); vertical-align:middle; }
.bacs-table tbody tr:last-child td{ border-bottom:none; }
.bacs-course-name{ max-width:340px; }
.bacs-bar-cell{ width:140px; }
.bacs-bar-track{ height:8px; background:var(--bacs-line); border-radius:4px; overflow:hidden; }
.bacs-bar-fill{ height:100%; background:var(--bacs-teal); }
.bacs-bar-fill.bacs-low{ background:var(--bacs-rust); }

.bacs-pagination{
  display:flex; align-items:center; gap:14px; margin-top:16px;
  font-size:0.85rem; color:var(--bacs-ink-soft);
}

@media (max-width:860px){
  .bacs-kpi-row{ grid-template-columns:repeat(2,1fr); }
  .bacs-kpi:nth-child(2){ border-right:none; }
  .bacs-kpi{ border-bottom:1px solid var(--bacs-line); }
  .bacs-grid-2{ grid-template-columns:1fr; }
  .bacs-masthead{ flex-direction:column; align-items:flex-start; }
  .bacs-meta{ text-align:left; }
}
