/* ── captain-roster.css ────────────────────────────────────────*/

  /* ── ROSTER ───────────────────────────────────────────────────────────────── */
  .roster-toolbar {
    display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
    margin-bottom: 14px;
  }
  .roster-search {
    flex: 1; min-width: 160px; padding: 7px 12px;
    border: 0.5px solid var(--border-strong); border-radius: var(--radius-sm);
    font-size: 13px; font-family: inherit; background: var(--surface);
    color: var(--text); outline: none;
  }
  .roster-search:focus { border-color: var(--navy-mid); }
  .roster-filter-group { display: flex; gap: 4px; flex-wrap: wrap; }
  .roster-filter-btn {
    padding: 5px 11px; border-radius: 20px; font-size: 12px; font-weight: 500;
    border: 0.5px solid var(--border-strong); background: var(--surface);
    color: var(--text-secondary); cursor: pointer; font-family: inherit;
    transition: all 0.12s; white-space: nowrap;
  }
  .roster-filter-btn:hover { background: var(--bg); }
  .roster-filter-btn.active { background: var(--nav-navy); color: white; border-color: transparent; }
  .roster-filter-btn.warn { background: #fef9c3; color: #713f12; border-color: #d97706; }
  .roster-actions { display: flex; gap: 6px; margin-left: auto; }
  .roster-action-btn {
    padding: 6px 14px; border-radius: var(--radius-sm); font-size: 12px; font-weight: 500;
    border: 0.5px solid var(--border-strong); background: var(--surface);
    color: var(--text-secondary); cursor: pointer; font-family: inherit;
    transition: all 0.12s; white-space: nowrap;
  }
  .roster-action-btn:hover { background: var(--navy-light); color: var(--navy-dark); border-color: var(--navy-mid); }
  .roster-add-btn {
    padding: 6px 14px; border-radius: var(--radius-sm); font-size: 12px; font-weight: 500;
    border: none; background: var(--nav-navy); color: white;
    cursor: pointer; font-family: inherit; transition: background 0.12s;
  }
  .roster-add-btn:hover { background: var(--navy-mid); }
  .roster-add-btn.copied { background: #dcfce7; color: #14532d; }

  /* Stats bar */
  .roster-stats {
    display: flex; gap: 16px; flex-wrap: wrap;
    background: var(--surface); border: 0.5px solid var(--border-strong);
    border-radius: var(--radius); padding: 10px 16px; margin-bottom: 14px;
  }
  .roster-stat { display: flex; flex-direction: column; gap: 1px; }
  .roster-stat-val { font-family: 'DM Serif Display', serif; font-size: 20px; color: var(--text); }
  .roster-stat-lbl { font-size: 10px; font-weight: 600; color: var(--text-tertiary); text-transform: uppercase; letter-spacing: 0.06em; }
  .roster-stat-divider { width: 0.5px; background: var(--border); align-self: stretch; }

  /* Section header */
  .roster-section-hdr {
    font-size: 11px; font-weight: 600; color: var(--text-tertiary);
    text-transform: uppercase; letter-spacing: 0.07em;
    padding: 10px 0 6px; margin-top: 4px;
    display: flex; align-items: center; gap: 8px;
  }
  .roster-section-hdr::after { content: ''; flex: 1; height: 0.5px; background: var(--border); }
  .roster-section-count {
    font-size: 10px; font-weight: 600; padding: 1px 7px;
    border-radius: 20px; background: var(--bg);
    color: var(--text-tertiary); border: 0.5px solid var(--border);
  }

  /* Table */
  .roster-table { width: 100%; border-collapse: collapse; }
  .roster-table th {
    text-align: left; font-size: 10px; font-weight: 600;
    color: var(--text-tertiary); text-transform: uppercase; letter-spacing: 0.06em;
    padding: 6px 10px; border-bottom: 0.5px solid var(--border-strong);
    cursor: pointer; user-select: none; white-space: nowrap;
    background: #fafaf8;
  }
  [data-theme="dark"] .roster-table th { background: var(--surface); }
  .roster-table th:hover { color: var(--text); }
  .roster-table th.sort-asc::after { content: ' ↑'; }
  .roster-table th.sort-desc::after { content: ' ↓'; }
  .roster-table td {
    padding: 8px 10px; font-size: 13px; border-bottom: 0.5px solid var(--border);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 180px;
  }
  .roster-row { cursor: pointer; transition: background 0.1s; }
  .roster-row:hover { background: var(--navy-light); }
  .roster-row:last-child td { border-bottom: none; }
  .roster-table-wrap {
    background: var(--surface); border: 0.5px solid var(--border-strong);
    border-radius: var(--radius); overflow: hidden; margin-bottom: 6px;
  }

  /* Chips in table */
  .r-chip {
    display: inline-block; padding: 2px 8px; border-radius: 20px;
    font-size: 11px; font-weight: 500; white-space: nowrap;
  }
  .r-chip.swim-pass  { background: #dcfce7; color: #14532d; }
  .r-chip.swim-none  { background: #fee2e2; color: #991b1b; }
  .r-chip.swim-due   { background: #fef9c3; color: #713f12; }
  .r-chip.cap-done   { background: #dcfce7; color: #14532d; }
  .r-chip.cap-none   { background: #f3f4f6; color: #6b7280; }
  .r-chip.subs-full  { background: #dcfce7; color: #14532d; }
  .r-chip.subs-term  { background: #dbeafe; color: #1e3a5f; }
  .r-chip.subs-none  { background: #fee2e2; color: #991b1b; }
  .r-chip.ourc-nov   { background: #dbeafe; color: #1e40af; }
  .r-chip.ourc-exp   { background: #ede9fe; color: #6d28d9; }
  .r-chip.ourc-sen   { background: #fef3c7; color: #b45309; }
  .r-chip.cox-lev-n  { background: #dbeafe; color: #1e40af; }
  .r-chip.cox-lev-x  { background: #ede9fe; color: #6d28d9; }
  .r-chip.cox-lev-s  { background: #fef3c7; color: #b45309; }
  [data-theme="dark"] .r-chip.swim-pass  { background: rgba(22,163,74,0.18); color: #86efac; }
  [data-theme="dark"] .r-chip.swim-none  { background: rgba(239,68,68,0.2); color: #fca5a5; }
  [data-theme="dark"] .r-chip.swim-due   { background: rgba(202,138,4,0.18); color: #fde047; }
  [data-theme="dark"] .r-chip.cap-done   { background: rgba(22,163,74,0.18); color: #86efac; }
  [data-theme="dark"] .r-chip.cap-none   { background: rgba(255,255,255,0.08); color: #8a8479; }
  [data-theme="dark"] .r-chip.subs-full  { background: rgba(22,163,74,0.18); color: #86efac; }
  [data-theme="dark"] .r-chip.subs-term  { background: rgba(59,130,246,0.18); color: #93c5fd; }
  [data-theme="dark"] .r-chip.subs-none  { background: rgba(239,68,68,0.2); color: #fca5a5; }
  [data-theme="dark"] .r-chip.ourc-nov   { background: rgba(59,130,246,0.18); color: #93c5fd; }
  [data-theme="dark"] .r-chip.ourc-exp   { background: rgba(124,58,237,0.18); color: #c4b5fd; }
  [data-theme="dark"] .r-chip.ourc-sen   { background: rgba(202,138,4,0.18); color: #fde047; }
  [data-theme="dark"] .r-chip.cox-lev-n  { background: rgba(59,130,246,0.18); color: #93c5fd; }
  [data-theme="dark"] .r-chip.cox-lev-x  { background: rgba(124,58,237,0.18); color: #c4b5fd; }
  [data-theme="dark"] .r-chip.cox-lev-s  { background: rgba(202,138,4,0.18); color: #fde047; }

  /* Mailing list copy bar */
  .roster-mail-bar {
    background: var(--surface); border: 0.5px solid var(--border-strong);
    border-radius: var(--radius); padding: 12px 16px; margin-bottom: 14px;
    display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  }
  .roster-mail-label { font-size: 12px; font-weight: 600; color: var(--text-secondary); margin-right: 4px; }
  .roster-mail-btn {
    padding: 5px 13px; border-radius: 20px; font-size: 12px; font-weight: 500;
    border: 0.5px solid var(--border-strong); background: var(--bg);
    color: var(--text-secondary); cursor: pointer; font-family: inherit;
    transition: all 0.12s;
  }
  .roster-mail-btn:hover { background: var(--navy-light); color: var(--navy-dark); border-color: var(--navy-mid); }
  .roster-mail-btn.copied { background: #dcfce7; color: #14532d; border-color: #86efac; }
  .roster-mail-divider { width: 0.5px; height: 20px; background: var(--border); }


  /* ── ROSTER TOOLBAR TWO-ROW WRAPPER ── */
  .roster-toolbar-wrap {
    display: flex; align-items: center; gap: 8px; margin-bottom: 14px;
  }
  .roster-toolbar-r1, .roster-toolbar-r2 { display: contents; }
  .roster-filters-toggle { display: none; }
  /* Desktop order: search(1) → sort(2) → add-button(3) */
  #roster-search { order: 1; flex: 1; }
  #roster-sort-select { order: 2; flex: 0 1 auto; min-width: 160px; cursor: pointer; }
  .roster-toolbar-wrap .roster-actions { order: 3; }


/* ── Roster inner tabs ───────────────────────────────────────────────────── */
.roster-inner-tabs {
  display: flex; gap: 0; margin-bottom: 18px;
  border-bottom: 1px solid var(--border);
}
.roster-inner-tab {
  background: none; border: none; border-bottom: 2px solid transparent;
  padding: 7px 14px; margin-bottom: -1px;
  font-size: 13px; font-weight: 500; font-family: inherit;
  color: var(--text-secondary); cursor: pointer;
  transition: color 0.15s;
}
.roster-inner-tab:hover { color: var(--text); }
.roster-inner-tab.active { color: var(--navy-dark); border-bottom-color: var(--navy-dark); }

