/* People × days: one load mark and one slack figure, with units named once. */
.capacity-toolbar { display: flex; align-items: end; justify-content: space-between; flex-wrap: wrap; gap: 16px; }
.capacity-controls { display: flex; align-items: end; flex-wrap: wrap; gap: 12px; }
.capacity-controls .field { flex: 1 1 140px; margin: 0; }
.capacity-controls .capacity-search { flex: 1.2 1 160px; }
.capacity-ranges { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.capacity-ranges button { min-height: 44px; }
.capacity-ranges [aria-pressed='true'] { border-color: var(--text); background: var(--raised); }
@media(min-width:1101px){
 .capacity-controls{flex:1 1 480px;justify-content:flex-end;flex-wrap:nowrap}
 .capacity-controls .capacity-search{flex:0 1 220px}
 .capacity-controls .field:not(.capacity-search){flex:0 1 160px}
 .capacity-filter-disclosure{flex:none}
}
.capacity-filter-disclosure { position: relative; }
.capacity-filter-disclosure > summary { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 8px 12px; border: 1px solid var(--control); border-radius: 6px; list-style: none; white-space: nowrap; }
.capacity-filter-disclosure > summary::-webkit-details-marker { display: none; }
.capacity-filter-dot { width: 5px; height: 5px; background: var(--text); border-radius: 50%; }
.capacity-filter-options { position: absolute; z-index: 4; right: 0; top: calc(100% + 8px); width: 260px; display: grid; gap: 16px; padding: 16px; background: var(--surface); border: 1px solid var(--control); border-radius: 6px; box-shadow: 0 4px 16px #0000000d; }
.capacity-filter-options .field { flex: none; }
.capacity-reading:empty { display: none; }
.capacity-scope { margin: 0; }
.capacity-summary { display: grid; grid-template-columns: 140px minmax(0,1fr); align-items: center; gap: 24px; }
.capacity-summary-number { display: grid; gap: 4px; }
.capacity-summary-number > span { color: var(--muted); font-size: 12px; }
.capacity-summary-number strong { font-size: 26px; font-weight: 400; font-variant-numeric: tabular-nums; }
.capacity-summary-number small { font-size: 12px; font-weight: 400; }
.capacity-summary-load { display: grid; gap: 10px; }
.capacity-summary-load > div { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 4px 16px; color: var(--muted); font-size: 12px; }
.capacity-summary-load strong { color: var(--text); font-weight: 500; font-variant-numeric: tabular-nums; }
.capacity-legend { display: flex; flex-wrap: wrap; gap: 8px 16px; margin: 0 0 16px; color: var(--muted); font-size: 12px; }
.capacity-legend > span { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }
.capacity-legend i { width: 10px; height: 8px; background: var(--accent); }
.capacity-legend .review { background: var(--text); }
.capacity-legend .capacity-mark { width: 14px; height: 14px; }
.capacity-number-key { margin-left: auto; }
.capacity-matrix-scroll { max-width: 100%; max-height: 580px; overflow: auto; border: 1px solid var(--border); border-radius: 6px; }
.capacity-matrix { width: 100%; min-width: 900px; border-spacing: 0; border-collapse: separate; table-layout: fixed; }
.capacity-matrix.is-fortnight { min-width: 1616px; }
.capacity-matrix th, .capacity-matrix td { padding: 8px; border-bottom: 1px solid var(--rule); vertical-align: middle; text-align: left; }
.capacity-matrix thead th { position: sticky; z-index: 2; top: 0; background: var(--surface); color: var(--muted); font-size: 12px; font-weight: 400; }
.capacity-matrix th:first-child { position: sticky; z-index: 1; left: 0; width: 160px; background: var(--surface); }
.capacity-matrix thead th:first-child { z-index: 3; }
.capacity-matrix tbody th { font-size: 14px; font-weight: 500; overflow-wrap: anywhere; }
.capacity-matrix small, .capacity-person small { display: block; margin-top: 4px; font-weight: 400; }
.capacity-matrix td { min-width: 100px; }
.capacity-matrix .is-focus { background: var(--ground); }
.capacity-cell, .capacity-mobile-cell { display: grid; justify-content: normal; width: 100%; min-height: 56px; gap: 8px; padding: 8px 6px; border-color: transparent; background: transparent; text-align: right; }
.capacity-cell:hover, .capacity-mobile-cell:hover { border-color: var(--control); background: var(--ground); }
.capacity-cell-state { display: flex; justify-content: flex-end; align-items: center; min-height: 20px; font-size: 16px; line-height: 20px; font-variant-numeric: tabular-nums; }
.capacity-cell-state.is-symbol { color: var(--muted); }
.capacity-mark { display: block; flex: none; width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.capacity-day-non_working { background: var(--ground); }
.capacity-day-held .capacity-cell-state, .capacity-day-overbooked .capacity-cell-state, .capacity-day-calendar_error .capacity-cell-state { color: var(--warning-ink); }
.capacity-bar { display: block; width: 100%; height: 8px; }
.capacity-track { fill: var(--rule); }
.capacity-execution { fill: var(--accent); }
.capacity-review { fill: var(--text); }
.capacity-limit { stroke: var(--text); vector-effect: non-scaling-stroke; }
.capacity-pagination { display: flex; justify-content: flex-end; align-items: center; gap: 12px; margin-top: 16px; }
.capacity-pagination button { min-height: 44px; }
.capacity-help { margin-top: 16px; color: var(--muted); font-size: 12px; }
.capacity-help summary { display: flex; align-items: center; min-height: 44px; width: fit-content; cursor: pointer; }
.capacity-help p { max-width: 72ch; }
.capacity-mobile { display: none; }
.capacity-detail-summary { display: grid; gap: 16px; margin: 20px 0 8px; }
.capacity-detail-summary dl { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; margin: 0; }
.capacity-detail-summary dt { color: var(--muted); font-size: 12px; }
.capacity-detail-summary dd { margin: 6px 0 0; font-variant-numeric: tabular-nums; }
@media (max-width: 1100px) {
  .capacity-toolbar { display: grid; gap: 12px; }
  .capacity-controls { flex-wrap: nowrap; }
}
@media (max-width: 640px) {
  .capacity-controls { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr) auto; gap: 8px; }
  .capacity-controls .field { min-width: 0; }
  .capacity-controls .field > span { font-size: 12px; }
  .capacity-filter-options { width: min(260px,calc(100vw - 64px)); }
  .capacity-summary { grid-template-columns: 80px minmax(0,1fr); gap: 16px; }
  .capacity-summary-load > div > span:first-child { display: none; }
  .capacity-summary-load > div { font-size: 12px; }
  .capacity-summary-number strong { font-size: 24px; }
  .capacity-legend { gap: 8px 12px; }
  .capacity-number-key { margin-left: 0; }
  .capacity-matrix-scroll { display: none; }
  .capacity-mobile { display: grid; }
  .capacity-person { display: grid; grid-template-columns: minmax(0,1fr) minmax(100px,1fr); align-items: center; gap: 16px; padding: 10px 0; border-bottom: 1px solid var(--rule); }
  .capacity-person > div { min-width: 0; overflow-wrap: anywhere; }
  .capacity-mobile-cell { min-height: 52px; }
  .capacity-pagination { justify-content: space-between; gap: 8px; font-size: 12px; }
  .capacity-panel { padding: 16px; }
  .capacity-detail-summary dl { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
