/* ============================================================
   ProjectTelemetry — Enterprise Collaborators
   assets/collab-enterprise.css   ·   .cbe-* classes

   Mirrors two existing, passing conventions rather than inventing new
   geometry: the toolbar search/select box from directory.css (.dir-search/
   .dir-select), and the sortable-table shell from wip.css (.wip-table).
   Reuses .clb-pill/.clb-active/.clb-invited from app.css for status pills
   so a collaborator reads identically here and on the per-project tab.
   ============================================================ */

/* ── Stat tiles ───────────────────────────────────────────── */
.cbe-stats { display:flex; gap:12px; flex-wrap:wrap; margin:2px 0 14px; }
.cbe-stat { flex:1 1 140px; border:1px solid var(--bd); border-radius:10px; background:var(--white); padding:12px 14px; }
.cbe-stat-v { font-size:22px; font-weight:800; color:var(--ink); font-variant-numeric:tabular-nums; letter-spacing:-.01em; }
.cbe-stat-l { font-size:11px; color:var(--ink-faint); text-transform:uppercase; letter-spacing:.04em; margin-top:2px; }

/* ── Toolbar (same shape as directory.css's .dir-search/.dir-select) ── */
.cbe-search { position:relative; flex:1; min-width:220px; }
.cbe-search i { position:absolute; left:11px; top:50%; transform:translateY(-50%); color:var(--ink-faint); font-size:15px; }
.cbe-search input {
  width:100%; padding:9px 12px 9px 34px; border:1px solid var(--bd); border-radius:8px;
  background:var(--white); color:var(--ink); font-size:13px; outline:none;
}
.cbe-search input:focus { border-color:var(--accent); }
.cbe-select {
  padding:9px 12px; border:1px solid var(--bd); border-radius:8px; background:var(--white);
  color:var(--ink); font-size:13px; outline:none; cursor:pointer; min-width:150px;
}
.cbe-select:focus { border-color:var(--accent); }

/* ── Table (same shell as wip.css's .wip-table) ──────────────── */
.cbe-tbl { width:100%; border-collapse:collapse; font-size:13px; min-width:920px; }
.cbe-tbl thead th { text-align:left; padding:10px 12px; font-size:11px; font-weight:600; letter-spacing:.03em;
  text-transform:uppercase; color:var(--ink-faint); border-bottom:1px solid var(--bd); cursor:pointer;
  white-space:nowrap; user-select:none; }
.cbe-tbl thead th:hover { color:var(--ink); }
.cbe-tbl td { padding:10px 12px; border-bottom:1px solid var(--bd); vertical-align:middle; }
.cbe-r { text-align:right; }
.cbe-tbl th.cbe-r { text-align:right; }
.cbe-trow { transition:background .1s; }
.cbe-trow:hover { background:var(--bg2); }
.cbe-trow.cbe-dim { opacity:.55; }

.cbe-who-name { font-weight:650; color:var(--ink); }
.cbe-who-sub { font-size:11.5px; color:var(--ink-soft); margin-top:1px; }
.cbe-mut { color:var(--ink-faint); }
.cbe-date { font-variant-numeric:tabular-nums; white-space:nowrap; }
.cbe-proj { color:var(--accent); text-decoration:none; font-weight:600; }
.cbe-proj:hover { text-decoration:underline; }

/* Revoked pill — a third state alongside .clb-active/.clb-invited (app.css). */
.cbe-revoked { background:rgba(220,38,38,.10); color:#DC2626; }

/* Per-row manage controls (Permissions + Remove), right-aligned in their cell. */
.cbe-actions { white-space:nowrap; }
.cbe-actions > * { vertical-align:middle; }
.cbe-actions .btn-sm { margin-right:4px; }

@media (max-width:760px) {
  .cbe-stats { flex-direction:column; }
}
