body { font-family: 'Inter', sans-serif; }
.table-scroll { max-height: calc(100vh - 240px); overflow-y: auto; }
::-webkit-scrollbar { width: 5px; height: 5px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #d1d5db; border-radius: 3px; }
input[type="checkbox"] { accent-color: #A855F7; }
select option { background: #fff; color: #111; }
@keyframes pulse { 0%,100% { opacity: 1; } 50% { opacity: 0.4; } }
.skeleton { animation: pulse 1.5s ease-in-out infinite; background-color: #e4e4e7; border-radius: 4px; }

/* ─── T2 grid table ────────────────────────────────────────────── */
.t2-card { background:#FFFFFF; border:1px solid #E4E4E7; border-radius:12px; overflow:hidden; }
.t2-row {
  display:grid;
  grid-template-columns: 36px minmax(0,2.4fr) 180px 120px 110px 140px 36px;
  column-gap:14px;
  align-items:center;
  padding:0 14px;
}
.t2-head { height:36px; background:#FAFAFA; border-bottom:1px solid #E4E4E7; position:sticky; top:0; z-index:10; }
.t2-th {
  font-family:'JetBrains Mono', monospace;
  font-size:10px; font-weight:500;
  letter-spacing:0.08em; text-transform:uppercase;
  color:#A1A1AA;
  white-space:nowrap;
  display:inline-flex; align-items:center; gap:4px;
  user-select:none;
}
.t2-th.sortable { cursor:pointer; }
.t2-th.sortable:hover { color:#52525B; }
.t2-th .sort-btn {
  background:transparent; border:0; padding:0; margin:0;
  font:inherit; letter-spacing:inherit; text-transform:inherit; color:inherit;
  display:inline-flex; align-items:center; gap:4px;
  white-space:nowrap; cursor:pointer;
}
.t2-th .sort-arrow { font-size:9px; color:#A855F7; }
.t2-body-row {
  min-height:68px; padding-top:8px; padding-bottom:8px;
  border-bottom:1px solid #F4F4F5;
  transition: background-color 100ms ease;
  cursor:pointer;
}
.t2-body-row:last-child { border-bottom:0; }
.t2-body-row:hover { background:#FAFAFA; }
.t2-body-row:hover .row-kebab,
.t2-body-row:focus-within .row-kebab { opacity:1; }
.row-kebab { opacity:0; transition: opacity 100ms ease; }
.row-kebab.is-open { opacity:1; }
.row-kebab-menu {
  position:absolute; top:calc(100% + 4px); right:0;
  min-width:200px; background:#fff; border:1px solid #E4E4E7;
  border-radius:8px; box-shadow:0 8px 24px rgba(0,0,0,0.10);
  padding:4px; z-index:60;
}
.row-kebab-menu button {
  display:flex; align-items:center; gap:8px;
  width:100%; padding:7px 10px; border-radius:6px;
  font-size:13px; color:#3F3F46; background:transparent; border:none;
  cursor:pointer; text-align:left;
}
.row-kebab-menu button:hover { background:#FAFAFA; }
.row-kebab-menu button.danger { color:#DC2626; }
.row-kebab-menu .menu-divider { height:1px; background:#F4F4F5; margin:4px 0; }

/* ─── B3 Bulk Actions Bar ──────────────────────────────────────── */
#action-bar { box-shadow: 0 -4px 12px rgba(0,0,0,0.04); }
.b3-bar-inner {
  display:flex; align-items:center; gap:10px;
  padding:10px 16px;
}
.b3-chip {
  display:inline-flex; align-items:center; gap:6px;
  padding:5px 4px 5px 10px;
  border-radius:8px;
  background:#FAF5FF; border:1px solid #E9D5FF;
  font-size:12px; color:#6B21A8; font-weight:600;
}
.b3-chip-count {
  font-family:'JetBrains Mono', monospace;
  font-variant-numeric: tabular-nums;
}
.b3-chip-label { font-weight:500; }
.b3-chip-clear {
  border:none; background:transparent;
  width:18px; height:18px; border-radius:999px;
  color:#9333EA; display:inline-flex;
  align-items:center; justify-content:center; cursor:pointer;
}
.b3-chip-clear:hover { background:#F3E8FF; }
.b3-spacer { flex:1; }
.b3-qbtn {
  display:inline-flex; align-items:center; gap:5px; justify-content:center;
  height:32px; padding:0 12px;
  border-radius:8px; border:1px solid #E4E4E7; background:white;
  color:#3F3F46; font-size:12px; font-weight:500; cursor:pointer;
  transition: background-color 80ms ease, border-color 80ms ease;
}
.b3-qbtn:hover { background:#FAFAFA; border-color:#D4D4D8; }
.b3-qbtn:disabled { opacity:0.5; cursor:not-allowed; }
.b3-primary {
  display:inline-flex; align-items:center; gap:6px;
  height:32px; padding:0 16px; border-radius:8px;
  border:none; background:#A855F7; color:white;
  font-size:12px; font-weight:600; cursor:pointer;
  transition: background-color 80ms ease;
}
.b3-primary:hover { background:#9333EA; }
.b3-primary:disabled { opacity:0.5; cursor:not-allowed; }
.b3-menu-wrap { position:relative; }
.b3-menu-trigger {
  display:inline-flex; align-items:center; gap:5px;
  height:32px; padding:0 12px; border-radius:8px;
  border:1px solid #E4E4E7; background:white;
  color:#3F3F46; font-size:12px; font-weight:600; cursor:pointer;
}
.b3-menu-trigger.is-open { background:#FAFAFA; }
.b3-menu-trigger:hover { background:#FAFAFA; }
.b3-menu {
  position:absolute; bottom:calc(100% + 6px); right:0;
  min-width:240px; background:white; border-radius:10px;
  border:1px solid #E4E4E7;
  box-shadow: 0 -8px 24px rgba(0,0,0,0.10), 0 2px 6px rgba(0,0,0,0.04);
  z-index:50; padding:4px 4px 6px;
}
.b3-menu-section { padding-top:6px; }
.b3-menu-section-title {
  padding:6px 12px 4px;
  font-family:'JetBrains Mono', monospace;
  font-size:9px; color:#A1A1AA;
  letter-spacing:0.08em; text-transform:uppercase;
}
.b3-menu-row {
  display:flex; align-items:center; gap:10px; width:100%;
  padding:7px 12px; border:none; background:transparent;
  border-radius:6px; cursor:pointer; text-align:left;
}
.b3-menu-row:hover { background:#FAFAFA; }
.b3-menu-row.danger .b3-menu-icon,
.b3-menu-row.danger .b3-menu-label { color:#DC2626; }
.b3-menu-icon {
  width:16px; color:#71717A;
  display:inline-flex; align-items:center;
}
.b3-menu-body { flex:1; min-width:0; }
.b3-menu-label {
  font-size:13px; color:#18181B; font-weight:500;
  display:flex; align-items:center; gap:6px;
}
.b3-menu-meta {
  font-family:'JetBrains Mono', monospace;
  font-size:9px; color:#A1A1AA; white-space:nowrap;
}
.b3-menu-divider { border-top:1px solid #F4F4F5; margin:6px 4px; }

/* Cross-page select banner */
.b3-select-banner {
  display:flex; align-items:center; justify-content:center;
  gap:8px; padding:8px 16px;
  background:#FAFAFA; border-bottom:1px solid #F4F4F5;
  font-size:12px; color:#52525B;
}
.b3-select-banner.is-across {
  background:#FAF5FF; border-bottom-color:#E9D5FF; color:#6B21A8;
}
.b3-select-banner-link {
  background:transparent; border:none; color:#A855F7;
  font-size:12px; cursor:pointer; font-weight:500;
}
.b3-select-banner-link:hover { text-decoration:underline; }

/* In-progress strip */
.b3-progress-pill {
  display:inline-flex; align-items:center; gap:8px;
  padding:4px 12px; border-radius:8px;
  background:#FAF5FF; border:1px solid #E9D5FF;
  font-size:12px; color:#6B21A8;
}
.b3-progress-dot {
  width:8px; height:8px; border-radius:999px;
  background:#A855F7;
  animation: b3-pulse 1.4s ease-in-out infinite;
}
.b3-progress-name { font-weight:600; }
.b3-progress-count {
  font-family:'JetBrains Mono', monospace;
  font-variant-numeric: tabular-nums;
}
.b3-progress-eta { font-size:11px; color:#71717A; }
@keyframes b3-pulse { 0%,100%{ opacity:1 } 50%{ opacity:0.3 } }
