/* ============================================================ */
/* AICRO Dashboards — shared shell                                */
/* Tokens lifted verbatim from campaign-qa-dashboard/mock.html    */
/* ============================================================ */
:root{
  --bg:#ffffff;
  --ink:#1d1d1f;
  --ink-2:#86868b;
  --ink-3:#b8b8bd;
  --rule:#e5e5e7;
  --rule-soft:#f2f2f4;
  --hover:#fafafa;
  --blue:#0071e3;
  --green:#30a46c;
  --amber:#e0a020;
  --red:#d93025;
  --indigo:#5a67d8;
  --body-font:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro","Helvetica Neue",Helvetica,Arial,sans-serif;
  --display-font:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro","Helvetica Neue",Helvetica,Arial,sans-serif;
  --mono-font:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Monaco,Consolas,monospace;
}
*{box-sizing:border-box}
html,body{
  margin:0;padding:0;background:var(--bg);color:var(--ink);
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  font-family:var(--body-font);font-size:13px;line-height:1.5;
  font-feature-settings:"tnum" on,"lnum" on;letter-spacing:-0.005em;
}
a{color:var(--blue);text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;letter-spacing:inherit;text-align:left}

.wrap{max-width:1440px;margin:0 auto;padding:48px 48px 120px}

/* --- Header --- */
.hd{display:flex;align-items:flex-end;justify-content:space-between;gap:48px;margin-bottom:32px}
.hd h1{font-family:var(--display-font);font-size:32px;line-height:1.05;font-weight:600;letter-spacing:-0.025em;margin:0 0 8px}
.hd .sub{color:var(--ink-2);font-size:13px;display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.hd .sub .dot{width:6px;height:6px;border-radius:50%;background:var(--green);display:inline-block;box-shadow:0 0 0 3px rgba(48,164,108,0.14);animation:pulse 2.4s ease-in-out infinite}
.hd .sub .sep{color:var(--ink-3)}
.hd .refresh{color:var(--blue);font-size:13px;font-weight:500;display:inline-flex;align-items:center;gap:8px}
.hd .refresh:hover{opacity:0.65}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.45}}

/* --- Tabs --- */
.tabs{display:flex;gap:0;border-bottom:0.5px solid var(--rule);margin-bottom:0}
.tab{
  font-family:var(--display-font);
  font-size:14px;font-weight:500;color:var(--ink-2);
  padding:16px 0;margin-right:32px;
  border-bottom:1.5px solid transparent;
  transition:color .15s,border-color .15s;
  letter-spacing:-0.005em;
}
.tab:hover{color:var(--ink)}
.tab.active{color:var(--ink);border-bottom-color:var(--ink)}

/* --- Shared filter chip system (Client + Owner share visual language) --- */
.filters{padding:20px 0 4px;margin-bottom:8px;border-bottom:0.5px solid var(--rule)}
.filter-row{display:flex;flex-direction:column;gap:10px}
.filter-row .flabel{font-size:10px;text-transform:uppercase;letter-spacing:0.1em;color:var(--ink-3);font-weight:600}
.chip-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.chip-group{display:flex;gap:6px;flex-wrap:wrap;flex:1}
.client-chip,
.tab-secondary .gtme-chip{
  display:inline-flex;align-items:center;gap:8px;
  font-size:12px;color:var(--ink-2);padding:6px 12px;border-radius:6px;
  border:0.5px solid var(--rule);background:#fff;
  transition:background .12s ease-out,border-color .12s ease-out,color .12s ease-out;
  white-space:nowrap;min-width:96px;justify-content:space-between;
  cursor:pointer;
}
.client-chip:hover,
.tab-secondary .gtme-chip:hover{color:var(--ink);border-color:var(--ink-3);background:var(--hover)}
.client-chip.on,
.tab-secondary .gtme-chip.on{color:var(--ink);background:#f2f2f4;border-color:var(--ink-3);font-weight:500}
.client-chip .nm{}
.client-chip .ct,
.tab-secondary .gtme-chip .ct{
  font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums;
  font-weight:500;letter-spacing:0;margin-left:0;
}
.client-chip.on .ct,
.tab-secondary .gtme-chip.on .ct{color:var(--ink-2)}
.chip-clear{
  font-size:11px;color:var(--ink-2);text-transform:uppercase;letter-spacing:0.08em;
  background:none;border:0;cursor:pointer;padding:6px 8px;font-weight:500;
  font-variant-numeric:tabular-nums;
}
.chip-clear:hover{color:var(--red)}
.chip-clear.chip-clear-empty{color:var(--ink-3);pointer-events:none}

/* --- Tab panels --- */
.panel{display:none;padding-top:32px}
.panel.active{display:block}

/* ============================================================ */
/* GTME Weekly tab                                                */
/* ============================================================ */
.tab-secondary{padding:20px 0;border-bottom:0.5px solid var(--rule-soft);margin-bottom:24px;display:flex;justify-content:space-between;align-items:flex-start;gap:32px;flex-wrap:wrap}
.tab-secondary .flabel{font-size:10px;text-transform:uppercase;letter-spacing:0.1em;color:var(--ink-3);font-weight:600}
.tab-secondary .filter-row{flex:0 1 auto}
.tab-secondary .filter-row-right{margin-left:auto}

/* Section header */
.sec{margin:0 0 40px}
.sec h2{font-family:var(--display-font);font-size:18px;font-weight:600;letter-spacing:-0.018em;margin:0 0 4px}
.sec .deck{color:var(--ink-2);font-size:13px;margin-bottom:16px}

/* Bench */
.bench{
  display:grid;
  /* minmax(0, 1fr) prevents columns with long content (link rows, brief URLs)
     from auto-sizing wider than their siblings — keeps all 5 columns equal. */
  grid-template-columns:repeat(5,minmax(0,1fr));
  border-top:0.5px solid var(--rule);
  border-bottom:0.5px solid var(--rule);
}
.bench-col{
  padding:0;
  border-right:0.5px solid var(--rule-soft);
  min-height:420px;
  cursor:pointer;
  transition:background .12s;
  display:flex;flex-direction:column;
}
.bench-col:last-child{border-right:none}
.bench-col:hover{background:var(--hover)}
.bench-col.active{background:#f2f2f4}
.bench-col.unassigned .bench-name{color:var(--ink-2)}

.bench-head{padding:16px;border-bottom:0.5px solid var(--rule-soft)}
.bench-name{font-family:var(--display-font);font-size:18px;font-weight:600;letter-spacing:-0.015em;color:var(--ink);line-height:1}
.bench-role{font-size:10px;color:var(--ink-3);text-transform:uppercase;letter-spacing:0.06em;margin-top:6px;font-weight:500}
.bench-counts{display:flex;gap:12px;margin-top:8px;font-size:12px;color:var(--ink-2);font-variant-numeric:tabular-nums}
.bench-counts span b{color:var(--ink);font-weight:600}
.bench-counts .over b{color:var(--red)}
.bench-counts .sep{color:var(--ink-3)}

.hd-week{font-weight:500;color:var(--ink)}

/* Capacity bar */
.cap{margin-top:12px}
.cap-label{display:flex;justify-content:space-between;align-items:baseline;font-size:12px;color:var(--ink-2);font-variant-numeric:tabular-nums;margin-bottom:4px}
.cap-label .cap-pct{font-weight:600;color:var(--ink)}
.cap-track{height:6px;background:var(--rule-soft);border-radius:3px;overflow:hidden;position:relative}
.cap-fill{height:100%;border-radius:3px;transition:width .25s ease;background:var(--green)}
.cap-fill.amber{background:var(--amber)}
.cap-fill.red{background:var(--red)}
.cap-sub{font-size:12px;color:var(--ink-3);margin-top:4px;font-variant-numeric:tabular-nums}

/* Methodology details panel */
.methodology{margin:0 0 16px;font-size:12px}
.methodology summary{
  list-style:none;cursor:pointer;color:var(--ink-3);font-size:12px;
  display:inline-flex;align-items:center;gap:8px;padding:4px 0;
  user-select:none;
}
.methodology summary::-webkit-details-marker{display:none}
.methodology summary::before{content:"ⓘ";font-size:12px}
.methodology summary:hover{color:var(--blue)}
.methodology[open] summary{color:var(--ink-2)}
.methodology .methodology-body{
  margin-top:12px;padding:16px;
  background:var(--rule-soft);border-radius:6px;
  color:var(--ink-2);line-height:1.55;
}
.methodology .methodology-body h4{
  margin:0 0 4px;font-size:10px;text-transform:uppercase;letter-spacing:0.07em;
  color:var(--ink-3);font-weight:600;
}
.methodology .methodology-body h4:not(:first-child){margin-top:16px}
.methodology .methodology-body code{
  font-family:var(--mono-font);font-size:12px;
  background:#fff;padding:1px 6px;border-radius:3px;border:0.5px solid var(--rule);
}
.methodology .methodology-body p{margin:0 0 4px}

.bench-tasks{padding:8px 12px 16px;display:flex;flex-direction:column;gap:8px;flex:1}
.bench-empty{padding:16px;color:var(--ink-3);font-size:12px;font-style:italic}

.task-card{
  background:transparent;
  border:0.5px solid var(--rule);
  border-radius:6px;
  padding:12px;
  position:relative;
  transition:background .12s,border-color .12s;
  min-width:0;          /* let card shrink below content; prevents column overflow */
  overflow:hidden;
}
.task-card .t-name{overflow-wrap:anywhere;word-break:break-word}
.task-card .t-link{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.task-card:hover{background:var(--hover);border-color:var(--ink-3)}
.task-card.overdue{border-left:2px solid var(--red);padding-left:11px}
.task-card.next2w{border-left:2px solid var(--amber);padding-left:11px}
.task-card.week3{border-left:2px solid var(--green);padding-left:11px}
.task-card .t-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:4px}
.task-card .t-client{font-size:10px;color:var(--ink);text-transform:uppercase;letter-spacing:0.06em;font-weight:700}
.task-card .t-due{font-size:12px;color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap}
.task-card.overdue .t-due{color:var(--red);font-weight:500}
.task-card .t-name{font-size:14px;color:var(--ink);line-height:1.35;letter-spacing:-0.005em}
.task-card .t-meta{display:flex;gap:12px;align-items:center;margin-top:8px;font-size:12px;color:var(--ink-2);flex-wrap:wrap}
.task-card .t-status{display:inline-flex;gap:6px;align-items:center}
.task-card .t-status .d{width:6px;height:6px;border-radius:50%;display:inline-block;background:var(--ink-3)}
.task-card .t-status.ip .d{background:var(--amber)}
.task-card .t-status.na .d{background:var(--blue)}
.task-card .t-status.na{color:var(--blue);font-weight:500}
.task-card .t-brief{display:inline-flex;gap:6px;align-items:center;font-variant-numeric:tabular-nums}
.task-card .t-brief .b-dot{width:6px;height:6px;border-radius:50%;display:inline-block;background:var(--ink-3)}
.task-card .t-brief.has .b-dot{background:var(--green)}
.task-card .t-brief.miss .b-dot{background:var(--red)}
.task-card .t-brief a{color:inherit;text-decoration:none}
.task-card .t-brief a:hover{color:var(--blue)}
.task-card .t-expand{margin-left:auto;color:var(--ink-3);font-size:12px;cursor:pointer;user-select:none;padding:2px 4px;border-radius:3px}
.task-card .t-expand:hover{color:var(--blue);background:var(--hover)}
.task-card .t-summary{display:none;margin-top:8px;padding-top:8px;border-top:0.5px dashed var(--rule);font-size:12px;color:var(--ink-2);line-height:1.45}
.task-card.open .t-summary{display:block}
.task-card .t-summary.loading{font-style:italic;color:var(--ink-3)}

/* Priority Tier pills — mirror portfolio-health PriorityTierBadge.tsx palette */
.task-card .t-tier{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:3px;font-size:10px;font-weight:700;line-height:1;letter-spacing:0;margin-right:8px;vertical-align:1px;font-variant-numeric:tabular-nums}
.task-card .t-tier.tier-a{background:#047857;color:#fff;box-shadow:inset 0 0 0 1px #065f46}
.task-card .t-tier.tier-b{background:#bbf7d0;color:#14532d;box-shadow:inset 0 0 0 1px #86efac}
.task-card .t-tier.tier-c{background:#fff;color:#18181b;box-shadow:inset 0 0 0 1px #a1a1aa}

/* Task Type pill — neutral so it sits behind Priority Tier visually. */
.task-card .t-type{display:inline-block;font-size:9px;font-weight:600;line-height:1;letter-spacing:0.04em;text-transform:uppercase;padding:2px 5px;border-radius:3px;margin-left:8px;color:var(--ink-2);background:var(--rule-soft);box-shadow:inset 0 0 0 0.5px var(--rule);vertical-align:1px}

/* Days-overdue chip */
.task-card .t-overdue{display:inline-block;font-size:10px;font-weight:700;color:#fff;background:var(--red);padding:2px 6px;border-radius:3px;margin-right:8px;letter-spacing:0;font-variant-numeric:tabular-nums}

/* Client-highlight states (5-column bench mode when a client is selected) */
.task-card.dim{opacity:0.32}
.task-card.dim:hover{opacity:0.7}
.task-card.match{background:#eff6ff;border-color:var(--blue)}
.task-card.match:hover{background:#dbeafe}

/* Focused-bench mode: single-column, richer cards */
.bench.focused{display:block}
.focused-col{border:0.5px solid var(--rule);border-radius:8px;background:#fff;overflow:hidden}
.focused-head{padding:16px 24px;border-bottom:0.5px solid var(--rule);background:var(--hover);display:flex;justify-content:space-between;align-items:flex-start;gap:24px;flex-wrap:wrap}
.focused-title{font-size:18px;font-weight:700;color:var(--ink);letter-spacing:-0.01em}
.focused-sub{font-size:10px;color:var(--ink-3);text-transform:uppercase;letter-spacing:0.08em;margin-top:4px}
.focused-cap{min-width:260px}
.focused-counts{font-size:13px;color:var(--ink-2)}
.focused-grid{padding:16px 24px;display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:12px}
.task-card.focused{padding:12px}
.task-card.focused .t-name{font-size:14px;margin-top:4px}
.task-card.focused .t-fxmeta{display:flex;gap:16px;flex-wrap:wrap;margin-top:8px;font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums}
.task-card.focused .t-fxmeta .fx-meta{letter-spacing:0.01em}
.task-card.focused .t-fxdesc{margin-top:8px;padding-top:8px;border-top:0.5px dashed var(--rule);font-size:12px;color:var(--ink-2);line-height:1.45}

/* Companion link row — Brief / AT / Camp, only for populated URLs */
.task-card .t-links{display:flex;gap:6px;align-items:center;margin-top:8px;padding-top:8px;border-top:0.5px dashed var(--rule);flex-wrap:wrap}
.task-card .t-link{font-size:11px;line-height:1;padding:4px 8px;border-radius:3px;background:var(--hover);color:var(--ink-2);text-decoration:none;border:0.5px solid var(--rule);font-weight:500;letter-spacing:0.01em}
.task-card .t-link:hover{background:var(--blue);color:#fff;border-color:var(--blue)}

/* Section collapse toggle (used on The Bench) */
.sec h2{display:flex;align-items:center;gap:10px}
.sec-toggle{background:transparent;border:0.5px solid var(--rule);width:24px;height:24px;border-radius:4px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:var(--ink-2);padding:0;line-height:1;transition:background .12s,border-color .12s}
.sec-toggle:hover{background:var(--hover);border-color:var(--ink-3);color:var(--ink)}
.sec-toggle .chev{display:inline-block;font-size:14px;transition:transform .15s ease}
.sec.collapsed .sec-toggle .chev{transform:rotate(-90deg)}
.sec-body{display:block}
.sec.collapsed .sec-body{display:none}

/* Calendar tier marker on pills */
.ct-item .ct-tier{display:inline-block;font-size:10px;font-weight:700;margin-right:6px;letter-spacing:0;padding:0 4px;border-radius:2px;line-height:1.5}
.ct-item .ct-tier.ct-tier-a{background:#047857;color:#fff}
.ct-item .ct-tier.ct-tier-b{background:#bbf7d0;color:#14532d}
.ct-item .ct-tier.ct-tier-c{background:#fff;color:#18181b;box-shadow:inset 0 0 0 0.5px #a1a1aa}

/* Calendar — daily grid. Cells hold capacity-scheduled tasks (2/operator/
   weekday in priority order). Due date drives queue priority, not grid
   placement. Weeks + Needs Assignment are collapsible. Cells cap at
   CAL_CELL_CAP (5) cards before a "+N more" affordance reveals the rest. */
.cal{border-top:0.5px solid var(--rule);border-bottom:0.5px solid var(--rule)}
.cal-week{display:block}
.cal-week-body{display:block;overflow:hidden}
.cal-week.collapsed .cal-week-body{display:none}
.cal-week-label.cal-toggle,
.cal-needs-head.cal-toggle{
  display:flex;justify-content:space-between;align-items:baseline;
  width:100%;padding:14px 16px;
  font-size:10px;text-transform:uppercase;letter-spacing:0.09em;color:var(--ink-3);font-weight:600;
  border:0;background:transparent;cursor:pointer;
  border-bottom:0.5px solid var(--rule-soft);
  transition:background .12s,color .12s;
}
.cal-week-label.cal-toggle:hover,
.cal-needs-head.cal-toggle:hover{background:var(--hover);color:var(--ink-2)}
.cal-week-title{display:inline-flex;align-items:center;gap:8px;color:var(--ink);font-size:12px;letter-spacing:0.06em}
.cal-week-title .chev,
.cal-needs-title .chev{display:inline-block;font-size:12px;color:var(--ink-2);transition:transform .15s ease}
.cal-week.collapsed .cal-week-title .chev,
.cal-needs.collapsed .cal-needs-title .chev{transform:rotate(-90deg)}
.cal-week-meta{display:inline-flex;align-items:baseline;gap:14px;font-weight:400}
.cal-week-meta .rng{color:var(--ink-2);letter-spacing:0;text-transform:none;font-size:12px}
.cal-week-count{font-size:11px;color:var(--ink-3);letter-spacing:0;text-transform:none;font-variant-numeric:tabular-nums}
.cal-week-count b{color:var(--ink);font-weight:600}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr)}
.cal-day{
  border-right:0.5px solid var(--rule-soft);
  border-bottom:0.5px solid var(--rule-soft);
  padding:12px;
  min-height:140px;
  display:flex;flex-direction:column;
}
.cal-day:nth-child(7n){border-right:none}
.cal-day.weekend{background:#fafafb}
.cal-day.today{background:rgba(0,113,227,0.04)}
.cal-day.weekend .cal-head,
.cal-day.past .cal-head{opacity:0.5}
.cal-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}
.cal-dow{font-size:10px;color:var(--ink-3);text-transform:uppercase;letter-spacing:0.09em;font-weight:500}
.cal-num{font-family:var(--display-font);font-size:18px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-0.02em}
.cal-day.today .cal-num{color:var(--blue)}
.cal-tasks{display:flex;flex-direction:column;gap:4px}
/* "+N more" / "Show less" affordance — kicks in when a cell exceeds the cap.
   Sits at the bottom of the cell so all 7 cells in a row stay vertically
   uniform regardless of which one is expanded. */
.cal-more{
  margin-top:6px;align-self:flex-start;
  font-size:11px;font-weight:500;color:var(--ink-2);
  background:none;border:0;padding:2px 0;cursor:pointer;
  letter-spacing:0;
}
.cal-more:hover{color:var(--blue)}

/* Needs Assignment — sits at the bottom of the calendar (below Week 2).
   Collapsible, amber-accented to signal "action required" without competing
   with overdue red. */
.cal-needs{
  border-top:1px dashed var(--amber);
  background:#fff8ed;
}
.cal-needs.collapsed .cal-needs-body{display:none}
.cal-needs-head.cal-toggle{
  background:transparent;border-bottom:0.5px dashed rgba(224,160,32,0.5);
  color:var(--ink-2);
}
.cal-needs-head.cal-toggle:hover{background:rgba(224,160,32,0.06);color:var(--ink)}
.cal-needs-title{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--ink);text-transform:uppercase;letter-spacing:0.08em}
.cal-needs-count{font-size:11px;color:var(--ink-2);font-variant-numeric:tabular-nums;letter-spacing:0;text-transform:none;font-weight:400}
.cal-needs-count b{color:var(--amber);font-weight:700}
.cal-needs-body{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:6px;
  padding:14px 16px;
}
.cal-needs-body .ct-item{background:#fff;border-left-color:var(--amber)}

.ct-item{
  font-size:12px;line-height:1.3;
  padding:6px 8px;
  border-radius:4px;
  background:var(--hover);
  border-left:2px solid var(--ink-3);
}
.ct-item:hover{background:#f2f2f4}
.ct-item.david{border-left-color:var(--blue)}
.ct-item.soham{border-left-color:var(--red)}
.ct-item.jawad{border-left-color:var(--green)}
.ct-item.bilal{border-left-color:var(--amber)}
.ct-item.josh{border-left-color:var(--indigo)}
.ct-item.unassigned{border-left-color:var(--ink-3);background:repeating-linear-gradient(45deg,var(--hover) 0,var(--hover) 4px,#f2f2f4 4px,#f2f2f4 5px)}
/* Client-highlight states for calendar pills (mirror bench card pattern) */
.ct-item.dim{opacity:0.32}
.ct-item.dim:hover{opacity:0.7}
.ct-item.match{background:#eff6ff;box-shadow:inset 0 0 0 1px var(--blue)}
.ct-item.match:hover{background:#dbeafe}
.ct-item .own{font-size:10px;color:var(--ink-3);text-transform:uppercase;letter-spacing:0.09em;font-weight:600}
.ct-item .nm{display:block;color:var(--ink);font-size:12px;line-height:1.3;margin-top:2px}

/* Clients tab — per-client planned vs unassigned table */
.clients-table{margin-top:16px;border:0.5px solid var(--rule);border-radius:8px;overflow:hidden}
.ct-table{width:100%;border-collapse:collapse;font-size:13px;background:#fff}
.ct-table thead th{
  background:var(--hover);
  font-weight:600;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:0.06em;
  color:var(--ink-2);
  padding:10px 12px;
  border-bottom:0.5px solid var(--rule);
  cursor:pointer;
  user-select:none;
  white-space:nowrap;
}
.ct-table thead th:hover{color:var(--ink)}
.ct-table .al-left{text-align:left}
.ct-table .al-right{text-align:right;font-variant-numeric:tabular-nums}
.ct-table tbody tr{border-bottom:0.5px solid var(--rule);transition:background 0.1s}
.ct-table tbody tr:last-child{border-bottom:0}
.ct-table tbody tr:hover{background:var(--hover);cursor:pointer}
.ct-table tbody tr.match{background:#dbeafe}
.ct-table tbody tr.match:hover{background:#bfdbfe}
.ct-table tbody tr.dim{opacity:0.4}
.ct-table tbody td{padding:10px 12px;color:var(--ink)}
.ct-table .ct-name{font-weight:500}
.ct-table .ct-unassigned-warn{color:#b45309}
.ct-table .ct-unassigned-warn b{color:#b45309}
.ct-table .t-tier{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:3px;font-size:10px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}
.ct-table .t-tier.tier-a{background:#047857;color:#fff;box-shadow:inset 0 0 0 1px #065f46}
.ct-table .t-tier.tier-b{background:#bbf7d0;color:#14532d;box-shadow:inset 0 0 0 1px #86efac}
.ct-table .t-tier.tier-c{background:#fff;color:#18181b;box-shadow:inset 0 0 0 1px #a1a1aa}

/* Bench column "+N more" affordance — used to cap tall columns (esp. Unassigned) */
.bench-tasks .bench-more{
  display:block;
  width:100%;
  margin-top:8px;
  padding:8px 12px;
  font-size:12px;
  font-weight:500;
  color:var(--ink-2);
  background:var(--hover);
  border:0.5px dashed var(--rule);
  border-radius:6px;
  cursor:pointer;
  text-align:center;
  transition:background 0.1s, color 0.1s;
}
.bench-tasks .bench-more:hover{background:#e5e7eb;color:var(--ink)}

/* QA tab placeholder until other session lands their handler */
.qa-placeholder{
  border:0.5px dashed var(--rule);
  border-radius:8px;
  padding:48px;
  text-align:center;
  color:var(--ink-2);
  font-size:14px;
  background:var(--hover);
}
.qa-placeholder b{color:var(--ink);font-weight:600}

/* Loading + empty states */
.loading{display:inline-block;width:12px;height:12px;border:1.5px solid var(--rule);border-top-color:var(--ink-2);border-radius:50%;animation:spin 0.7s linear infinite;vertical-align:-2px;margin-left:10px}
@keyframes spin{to{transform:rotate(360deg)}}
.muted{color:var(--ink-3)}
