.bms-department-dashboard {
  --bms-ink: #0a3140;
  --bms-title: #1d2526;
  --bms-source-bg: #173f37;
  --bms-source-text: #ffffff;
  --bms-surface: #ffffff;
  --bms-border: #dfe5e3;
  --bms-muted: #71807d;
  --bms-divider: #9aaba6;
  --bms-metric-value: #173f37;
  --bms-metric-label: #949c99;
  --bms-panel-bg: #ffffff;
  --bms-panel-border: #dfe5e3;
  --bms-chart-title: #173f37;
  --bms-chart-grid: #d9e0de;
  --bms-chart-axis: #6d7976;
  --bms-chart-font-size: 10px;
  --bms-rating-line: #173f37;
  --bms-todo-line: #f2a340;
  --bms-tooltip-bg: #232323;
  --bms-tooltip-text: #ffffff;
  --bms-bar-low: #173f37;
  --bms-bar-middle: #f2a340;
  --bms-bar-high: #e55757;
  --bms-good-bg: #dcece5;
  --bms-good-text: #23654d;
  --bms-warning-bg: #fff0d4;
  --bms-warning-text: #9b6719;
  --bms-poor-bg: #fde1e1;
  --bms-poor-text: #a52f2f;
  --bms-neutral-bg: #eef1f0;
  --bms-neutral-text: #64706d;
  --bms-year-bg: #173f37;
  --bms-year-text: #ffffff;
  --bms-month-bg: #73a7e8;
  --bms-month-bg-alt: var(--bms-month-bg);
  --bms-month-text: #17343d;
  --bms-month-text-alt: var(--bms-month-text);
  --bms-table-header-bg: #f5f3ef;
  --bms-table-header-text: #34433f;
  --bms-table-bg: #ffffff;
  --bms-table-text: #0a3140;
  --bms-row-border: #e6ebe9;
  --bms-link: #0a3140;
  color: var(--bms-ink);
  font-family: inherit;
  max-width: 1180px;
  margin: 0 auto;
}

.bms-dashboard-heading {
  text-align: center;
  margin: 0 0 24px;
}

.bms-dashboard-heading h2 {
  color: var(--bms-title);
  font-size: clamp(24px, 2.4vw, 32px);
  font-weight: 500;
  letter-spacing: -0.03em;
  margin: 0;
}

.bms-dashboard-source {
  background: var(--bms-source-bg);
  border-radius: 8px 8px 0 0;
  color: var(--bms-source-text);
  font-size: 12px;
  font-weight: 600;
  padding: 18px 24px;
}

.bms-dashboard-metrics {
  background: var(--bms-surface);
  border: 1px solid var(--bms-border);
  border-top: 0;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.bms-dashboard-metric {
  align-items: center;
  border-right: 1px solid var(--bms-divider);
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 92px;
  padding: 14px 10px;
  text-align: center;
}

.bms-dashboard-metric:last-child {
  border-right: 0;
}

.bms-dashboard-metric strong {
  color: var(--bms-metric-value);
  font-size: clamp(24px, 3vw, 36px);
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}

.bms-dashboard-metric span {
  color: var(--bms-metric-label);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  margin-top: 8px;
  text-transform: uppercase;
}

.bms-dashboard-charts {
  display: grid;
  gap: 16px;
  grid-template-columns: minmax(0, 2fr) minmax(300px, 1fr);
  margin-top: 18px;
}

.bms-dashboard-panel {
  background: var(--bms-panel-bg);
  border: 1px solid var(--bms-panel-border);
  border-radius: 9px;
  min-width: 0;
  padding: 18px 18px 8px;
}

.bms-dashboard-panel h3 {
  color: var(--bms-chart-title);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.025em;
  margin: 0 0 8px;
  text-transform: uppercase;
}

.bms-chart-canvas-wrap {
  height: 270px;
  position: relative;
  width: 100%;
}

.bms-chart-canvas-wrap .bms-chart {
  display: block;
  height: 100% !important;
  max-height: none;
  width: 100% !important;
}

.bms-dashboard-key {
  align-items: center;
  background: var(--bms-surface);
  border: 1px solid var(--bms-border);
  border-radius: 8px;
  display: flex;
  flex-wrap: wrap;
  font-size: 10px;
  gap: 9px 16px;
  margin: 16px 0;
  padding: 12px 16px;
}

.bms-dashboard-key strong {
  font-size: 11px;
  text-transform: uppercase;
}

.bms-key-item::before {
  border-radius: 50%;
  content: "";
  display: inline-block;
  height: 8px;
  margin-right: 6px;
  width: 8px;
}

.bms-key-good::before,
.bms-status-good {
  background: var(--bms-good-bg);
  color: var(--bms-good-text);
}

.bms-key-warning::before,
.bms-status-warning {
  background: var(--bms-warning-bg);
  color: var(--bms-warning-text);
}

.bms-key-poor::before,
.bms-status-poor {
  background: var(--bms-poor-bg);
  color: var(--bms-poor-text);
}

.bms-status-neutral {
  background: var(--bms-neutral-bg);
  color: var(--bms-neutral-text);
}

.bms-dashboard-history {
  background: var(--bms-table-bg);
  border: 1px solid var(--bms-border);
  border-radius: 8px;
  overflow: hidden;
}

.bms-dashboard-year {
  background: var(--bms-year-bg);
  color: var(--bms-year-text);
  font-size: 17px;
  font-weight: 700;
  padding: 11px 16px;
}

.bms-dashboard-month header {
  align-items: center;
  color: var(--bms-month-text);
  display: flex;
  font-size: 12px;
  justify-content: space-between;
  padding: 9px 16px;
}

.bms-dashboard-month header strong {
  font-size: 13px;
}

.bms-month-even header {
  background: var(--bms-month-bg);
}

.bms-month-odd header {
  background: var(--bms-month-bg-alt);
  color: var(--bms-month-text-alt);
}

.bms-dashboard-table-wrap {
  overflow-x: auto;
}

.bms-dashboard-month table {
  background: var(--bms-table-bg);
  color: var(--bms-table-text);
  border-collapse: collapse;
  font-size: 12px;
  margin: 0;
  min-width: 700px;
  table-layout: fixed;
  width: 100%;
}

.bms-dashboard-month th,
.bms-dashboard-month td {
  border-bottom: 1px solid var(--bms-row-border);
  padding: 8px 12px;
  text-align: left;
  vertical-align: middle;
}

.bms-dashboard-month th {
  background: var(--bms-table-header-bg);
  color: var(--bms-table-header-text);
  font-size: 10px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.bms-dashboard-month th:last-child,
.bms-dashboard-month td:last-child {
  width: 30%;
}

.bms-dashboard-month tr:last-child td {
  border-bottom: 0;
}

.bms-dashboard-month a {
  color: var(--bms-link);
  font-weight: 600;
  text-decoration: none;
}

.bms-dashboard-month a:hover,
.bms-dashboard-month a:focus {
  text-decoration: underline;
}

.bms-status {
  border-radius: 999px;
  display: inline-block;
  font-weight: 700;
  line-height: 1;
  min-width: 44px;
  padding: 5px 8px;
  text-align: center;
}

.bms-dashboard-empty,
.bms-dashboard-notice {
  background: var(--bms-surface);
  border: 1px solid var(--bms-border);
  border-radius: 0 0 8px 8px;
  color: var(--bms-muted);
  padding: 28px;
  text-align: center;
}

@media (max-width: 820px) {
  .bms-dashboard-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bms-dashboard-metric {
    border-bottom: 1px solid var(--bms-border);
  }

  .bms-dashboard-metric:nth-child(2n) {
    border-right: 0;
  }

  .bms-dashboard-metric:last-child {
    grid-column: 1 / -1;
  }

  .bms-dashboard-charts {
    grid-template-columns: 1fr;
  }

  .bms-dashboard-month header {
    align-items: flex-start;
    flex-direction: column;
    gap: 3px;
  }
}

@media (max-width: 520px) {
  .bms-dashboard-source {
    padding: 14px 16px;
  }

  .bms-dashboard-panel {
    padding: 14px 10px 4px;
  }

  .bms-chart-date {
    display: none;
  }

  .bms-dashboard-key {
    align-items: flex-start;
    flex-direction: column;
  }
}
