/* Influencer Scout — ClickUp-flavoured UI tokens.
   Chrome uses the ClickUp palette (purple #7B68EE primary).
   Chart data marks deliberately use the validated data-viz palette instead —
   see templates/partials/charts.html. */

:root {
  color-scheme: light;

  --cu-purple: #7b68ee;
  --cu-purple-600: #6a55e8;
  --cu-purple-700: #5a45d6;
  --cu-purple-50: #f3f1ff;
  --cu-pink: #fd71af;
  --cu-blue: #49ccf9;
  --cu-yellow: #ffc800;
  --cu-green: #2ecd6f;
  --cu-red: #f8285a;

  --cu-sidebar: #1c1d2b;
  --cu-sidebar-hover: #2a2c3f;
  --cu-sidebar-text: #a9adc4;

  --cu-border: #e8eaed;
  --cu-surface: #ffffff;
  --cu-page: #fafbfc;
  --cu-row-hover: #f7f7fb;
  --cu-ink: #26282f;
  --cu-ink-muted: #7c828d;
}

body { background: var(--cu-page); }

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex; align-items: center; gap: .4rem;
  height: 2rem; padding: 0 .75rem;
  border-radius: .375rem; font-size: .8125rem; font-weight: 500;
  transition: background-color .12s ease, border-color .12s ease, color .12s ease;
  white-space: nowrap;
}
.btn-primary { background: var(--cu-purple); color: #fff; }
.btn-primary:hover { background: var(--cu-purple-600); }
.btn-secondary { background: #fff; color: var(--cu-ink); border: 1px solid var(--cu-border); }
.btn-secondary:hover { background: var(--cu-row-hover); border-color: #d7dae0; }
.btn-ghost { color: var(--cu-ink-muted); }
.btn-ghost:hover { background: var(--cu-row-hover); color: var(--cu-ink); }
.btn-danger { background: #fff; color: var(--cu-red); border: 1px solid #ffd7df; }
.btn-danger:hover { background: #fff1f4; }
.btn-sm { height: 1.75rem; padding: 0 .55rem; font-size: .75rem; }
.btn:disabled { opacity: .5; pointer-events: none; }

/* ---------- Inputs ---------- */
.field {
  width: 100%; border: 1px solid var(--cu-border); border-radius: .375rem;
  padding: .4rem .6rem; font-size: .8125rem; background: #fff; color: var(--cu-ink);
}
.field:focus { outline: none; border-color: var(--cu-purple); box-shadow: 0 0 0 3px rgba(123,104,238,.15); }
.field-label { display:block; margin-bottom:.25rem; font-size:.75rem; font-weight:600; color:#4b5058; }
.field-hint { margin-top:.2rem; font-size:.6875rem; color: var(--cu-ink-muted); }

/* ---------- Cards ---------- */
.card { background: var(--cu-surface); border: 1px solid var(--cu-border); border-radius: .625rem; }
.card-pad { padding: 1rem; }
.card-header {
  display:flex; align-items:center; justify-content:space-between; gap:.75rem;
  padding:.75rem 1rem; border-bottom:1px solid var(--cu-border);
}

/* ---------- Tabs ---------- */
.viewtabs { display:flex; align-items:center; gap:.25rem; }
.viewtab {
  display:inline-flex; align-items:center; gap:.35rem;
  padding:.35rem .6rem; border-radius:.375rem;
  font-size:.8125rem; color: var(--cu-ink-muted); font-weight:500;
}
.viewtab:hover { background: var(--cu-row-hover); color: var(--cu-ink); }
.viewtab.active { color: var(--cu-purple); background: var(--cu-purple-50); }

/* ---------- Status pills (dot + label) ---------- */
.pill {
  display:inline-flex; align-items:center; gap:.35rem;
  padding:.15rem .5rem; border-radius:999px;
  font-size:.6875rem; font-weight:600; letter-spacing:.01em; white-space:nowrap;
}
.pill .dot { width:.4rem; height:.4rem; border-radius:999px; background: currentColor; flex:none; }

/* ---------- Tag chips ---------- */
.chip {
  display:inline-flex; align-items:center; gap:.25rem;
  padding:.1rem .45rem; border-radius:999px;
  font-size:.6875rem; font-weight:500;
  background:#eef0f4; color:#4b5058;
}
.chip-purple { background: var(--cu-purple-50); color: var(--cu-purple-700); }

/* ---------- Dense tables ---------- */
.table-wrap { max-height: calc(100vh - 21rem); overflow: auto; }
.table-wrap table { border-collapse: separate; border-spacing: 0; width: 100%; }
.table-wrap thead th {
  position: sticky; top: 0; z-index: 10; background: #fbfbfd;
  font-size: .6875rem; font-weight: 600; text-transform: uppercase;
  letter-spacing: .04em; color: var(--cu-ink-muted);
  padding: .5rem .75rem; text-align: left; white-space: nowrap;
  box-shadow: inset 0 -1px 0 var(--cu-border);
}
.table-wrap tbody td {
  padding: .5rem .75rem; font-size: .8125rem; white-space: nowrap;
  border-bottom: 1px solid #f1f2f5; color: var(--cu-ink);
}
.table-wrap tbody tr:hover td { background: var(--cu-row-hover); }
.table-wrap tbody tr.selected td { background: var(--cu-purple-50); }
.table-wrap td.wrap, .table-wrap th.wrap { white-space: normal; }
.sticky-col { position: sticky; left: 0; background: inherit; z-index: 5; }
.table-wrap thead th.sticky-col { z-index: 15; background: #fbfbfd; }

/* ---------- Avatars ---------- */
.avatar {
  display:grid; place-items:center; border-radius:999px; flex:none;
  font-weight:600; color:#fff; font-size:.6875rem;
  background: linear-gradient(135deg, var(--cu-purple), var(--cu-pink));
}

/* ---------- Bulk action bar ---------- */
.bulkbar {
  position: sticky; bottom: 1rem; z-index: 30;
  display:flex; align-items:center; gap:.5rem; flex-wrap:wrap;
  background: var(--cu-sidebar); color:#fff;
  padding:.5rem .75rem; border-radius:.625rem;
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
}

/* ---------- Kanban ---------- */
.kanban { display:flex; gap:.75rem; overflow-x:auto; padding-bottom:.5rem; }
.kanban-col { width:17rem; flex:none; background:#f1f2f5; border-radius:.625rem; }
.kanban-col.drag-over { background: var(--cu-purple-50); outline:2px dashed var(--cu-purple); }
.kanban-card {
  background:#fff; border:1px solid var(--cu-border); border-radius:.5rem;
  padding:.6rem; cursor:grab;
}
.kanban-card:hover { border-color:#d7dae0; box-shadow:0 1px 3px rgba(0,0,0,.06); }
.kanban-card.dragging { opacity:.4; }

/* ---------- Progress ---------- */
.progress { height:.375rem; border-radius:999px; background:#eceef2; overflow:hidden; }
.progress > div { height:100%; border-radius:999px; background: var(--cu-purple); transition: width .4s ease; }

/* ---------- Skeletons ---------- */
.skeleton {
  background: linear-gradient(90deg,#eceef2 25%,#f6f7f9 37%,#eceef2 63%);
  background-size: 400% 100%; animation: skeleton 1.4s ease infinite; border-radius:.375rem;
}
@keyframes skeleton { 0% { background-position:100% 50% } 100% { background-position:0 50% } }

/* ---------- Focus ---------- */
a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible {
  outline: 2px solid var(--cu-purple); outline-offset: 2px; border-radius:.25rem;
}

@media print {
  aside, header, footer, .no-print { display:none !important; }
  main { padding:0 !important; }
}
@media (prefers-reduced-motion: reduce) {
  .skeleton { animation:none; }
  * { transition-duration:.01ms !important; }
}
