/*
 * CS Performance
 * Expandable per-period rows with per-course breakdown
 */

@layer components {
  .cs-perf {
    --cs-perf-columns: minmax(14rem, 2fr) repeat(5, minmax(6rem, 1fr));
  }

  .cs-perf__head,
  .cs-perf__summary,
  .cs-perf__foot {
    display: grid;
    grid-template-columns: var(--cs-perf-columns);
    align-items: center;
    gap: var(--inline-space);
    padding: var(--block-space-3quarter);
  }

  .cs-perf__head {
    font-size: var(--text-x-small);
    text-transform: uppercase;
    letter-spacing: var(--tracking-wider);
    color: var(--color-gray);
    border-bottom: var(--border-subtle);
  }

  .cs-perf__period {
    border-bottom: var(--border-subtle);

    &[open] {
      background-color: var(--color-gray-lightest);
    }
  }

  .cs-perf__summary {
    cursor: pointer;
    list-style: none;

    &::-webkit-details-marker { display: none; }

    @media (any-hover: hover) {
      &:hover { background-color: var(--color-gray-lightest); }
    }
  }

  .cs-perf__marker {
    display: inline-block;
    inline-size: 1ch;
    margin-inline-end: var(--inline-space-half);
    color: var(--color-gray);
    transition: transform 0.15s ease;
  }

  .cs-perf__period[open] .cs-perf__marker {
    transform: rotate(90deg);
  }

  .cs-perf__cell--num {
    text-align: end;
    font-variant-numeric: tabular-nums;
  }

  .cs-perf__amount {
    display: block;
    font-size: var(--text-x-small);
    color: var(--color-gray);
  }

  .cs-perf__detail {
    padding: var(--block-space-half) var(--block-space) var(--block-space);
    background-color: var(--color-white);
    border-block-start: var(--border-subtle);
  }

  .cs-perf__detail-heading {
    font-size: var(--text-x-small);
    text-transform: uppercase;
    letter-spacing: var(--tracking-wider);
    color: var(--color-gray);
    margin-block-end: var(--block-space-half);
  }

  .cs-perf__foot {
    border-block-start: 2px solid var(--color-gray-medium);
    font-weight: 600;
  }

  .cs-perf__empty {
    padding: var(--block-space-half);
    color: var(--color-gray);
  }
}
