@keyframes kc-kait-pulse {
  0%, 80%, 100% { opacity: 0.3; transform: scale(0.85); }
  40% { opacity: 1; transform: scale(1); }
}

/* Input area */
.kc-kait-input-wrap {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  padding: 14px 16px 16px;
  border-top: 1px solid rgba(160,120,32,0.12);
  flex-shrink: 0;
}
body[data-theme="light"] .kc-kait-input-wrap { border-top-color: rgba(60,100,145,0.15); }

.kc-kait-input {
  flex: 1;
  background: rgba(0,0,0,0.25);
  border: 1px solid rgba(160,120,32,0.20);
  border-radius: 6px;
  color: var(--smoke);
  padding: 10px 12px;
  font-family: var(--f-body);
  font-size: 13px;
  letter-spacing: 0.01em;
  line-height: 1.5;
  resize: none;
  min-height: 38px;
  max-height: 140px;
  transition: border-color 0.15s, background 0.15s;
}
.kc-kait-input::placeholder { color: var(--smoke4); }
.kc-kait-input:focus {
  outline: none;
  border-color: rgba(160,120,32,0.50);
  background: rgba(0,0,0,0.35);
}
body[data-theme="light"] .kc-kait-input {
  background: rgba(255,255,255,0.75);
  border-color: rgba(60,100,145,0.25);
}
body[data-theme="light"] .kc-kait-input:focus {
  background: rgba(255,255,255,0.95);
  border-color: rgba(60,100,145,0.55);
}

.kc-kait-send {
  width: 38px; height: 38px;
  flex-shrink: 0;
  background: linear-gradient(135deg, rgba(160,120,32,0.85) 0%, rgba(160,120,32,0.65) 100%);
  border: 1px solid rgba(160,120,32,0.60);
  border-radius: 6px;
  color: #0b0e18;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.15s;
  display: flex; align-items: center; justify-content: center;
}
.kc-kait-send:hover {
  background: linear-gradient(135deg, rgba(180,140,42,0.95) 0%, rgba(160,120,32,0.80) 100%);
  transform: translateY(-1px);
  box-shadow: 0 3px 10px rgba(160,120,32,0.30);
}
.kc-kait-send:active { transform: translateY(0); }

/* ── FAB (floating Ask Kait button on mobile / when collapsed) ───────── */
.kc-kait-fab {
  position: absolute;
  bottom: 24px;
  right: 24px;
  z-index: 8000;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 18px 12px 14px;
  background: linear-gradient(135deg, rgba(160,120,32,0.95) 0%, rgba(160,120,32,0.75) 100%);
  border: 1px solid rgba(160,120,32,0.70);
  border-radius: 28px;
  color: #0b0e18;
  font-family: var(--f-body);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.02em;
  cursor: pointer;
  box-shadow: 0 6px 20px rgba(0,0,0,0.40), 0 2px 6px rgba(160,120,32,0.30);
  transition: all 0.20s;
  opacity: 0;
  transform: scale(0.85) translateY(8px);
  pointer-events: none;
}
.kc-kait-fab-visible {
  opacity: 1;
  transform: scale(1) translateY(0);
  pointer-events: auto;
}
.kc-kait-fab:hover {
  transform: scale(1.05) translateY(-2px);
  box-shadow: 0 10px 28px rgba(0,0,0,0.50), 0 3px 10px rgba(160,120,32,0.40);
}

.kc-kait-fab-icon {
  width: 28px; height: 28px;
  border-radius: 50%;
  background: rgba(11,14,24,0.92);
  color: var(--gold-lt);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--f-display);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.kc-kait-fab-label {
  font-family: var(--f-body);
  letter-spacing: 0.04em;
}

/* ── Per-element Kait chips ──────────────────────────────────────────── */
.kc-kait-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}
.kc-kait-chip-row-row { margin-top: 4px; }
.kc-kait-chip-row-detail { margin-top: 6px; }

.kc-kait-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  background: rgba(160,120,32,0.06);
  border: 1px solid rgba(160,120,32,0.22);
  border-radius: 12px;
  color: var(--gold-lt);
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  cursor: pointer;
  transition: all 0.15s;
  white-space: nowrap;
}
.kc-kait-chip:hover {
  background: rgba(160,120,32,0.14);
  border-color: rgba(160,120,32,0.50);
  color: var(--smoke);
  transform: translateY(-1px);
}
body[data-theme="light"] .kc-kait-chip {
  background: rgba(60,100,145,0.06);
  border-color: rgba(60,100,145,0.25);
  color: var(--gold-lt);
}
body[data-theme="light"] .kc-kait-chip:hover {
  background: rgba(60,100,145,0.14);
  border-color: rgba(60,100,145,0.55);
}

.kc-kait-chip-more {
  position: relative;
  display: inline-block;
}

.kc-kait-chip-menu {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  min-width: 220px;
  background: linear-gradient(170deg,
    rgba(11,14,24,0.99) 0%,
    rgba(8,11,20,0.99) 100%);
  border: 1px solid rgba(160,120,32,0.30);
  border-radius: 6px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.45);
  padding: 6px;
  display: none;
  flex-direction: column;
  gap: 2px;
  z-index: 7500;
}
.kc-kait-chip-menu.kc-kait-chip-menu-open { display: flex; }
body[data-theme="light"] .kc-kait-chip-menu {
  background: rgba(252,251,247,0.99);
  border-color: rgba(60,100,145,0.30);
  box-shadow: 0 8px 24px rgba(60,100,145,0.15);
}

.kc-kait-menu-item {
  text-align: left;
  background: none;
  border: none;
  padding: 8px 10px;
  border-radius: 4px;
  font-family: var(--f-body);
  font-size: 12px;
  color: var(--smoke);
  letter-spacing: 0.01em;
  cursor: pointer;
  transition: background 0.12s;
}
.kc-kait-menu-item:hover {
  background: rgba(160,120,32,0.10);
  color: var(--gold-lt);
}
body[data-theme="light"] .kc-kait-menu-item:hover {
  background: rgba(60,100,145,0.10);
}

/* ── Responsive: collapse pane on tablet portrait & phone ────────────── */
@media (max-width: 1024px) {
  .kc-kait-pane {
    /* Below 1024px, the pane becomes a drawer style — slides from right
       when opened via the FAB, hides otherwise */
    position: absolute;
    top: 0;
    right: 0;
    flex: none;
    width: min(380px, 90vw);
    box-shadow: -8px 0 32px rgba(0,0,0,0.45);
    z-index: 8500;
    transform: translateX(100%);
  }
  .kc-kait-pane.kc-kait-open {
    transform: translateX(0);
  }
  .kc-kait-pane.kc-kait-closed {
    width: min(380px, 90vw);  /* keep size, just slide out */
    flex: none;
    opacity: 0;
    pointer-events: none;
    border-left-width: 1px;
    transform: translateX(100%);
  }
  /* On these screens, FAB shows whenever the pane isn't open */
  .kc-kait-fab {
    display: flex;
    opacity: 1;
    transform: scale(1) translateY(0);
    pointer-events: auto;
  }
  .kc-kait-pane.kc-kait-open ~ .kc-kait-fab {
    opacity: 0;
    pointer-events: none;
    transform: scale(0.85) translateY(8px);
  }
}

@media (max-width: 640px) {
  /* Hide module description text — frees space for content on small screens */
  .kc-module-subtitle { display: none !important; }
  .kc-module-head { padding: 14px 16px 12px !important; }
  .kc-module-eyebrow { margin-bottom: 2px !important; }
  .kc-module-title { font-size: 22px !important; margin-bottom: 0 !important; }

  .kc-kait-pane {
    width: 100%;
    max-width: 100%;
  }
  .kc-kait-fab {
    bottom: 18px;
    right: 18px;
    padding: 10px 16px 10px 12px;
  }
  .kc-kait-fab-label {
    display: none;  /* Just the icon on phone */
  }
  .kc-kait-fab {
    border-radius: 50%;
    width: 52px; height: 52px;
    padding: 0;
    justify-content: center;
  }
  .kc-kait-fab-icon {
    width: 32px; height: 32px;
    font-size: 13px;
  }

  /* ── Mobile: compress module chrome so findings list has room to scroll ── */

  /* Module header — cut padding drastically */
  .kc-module-head {
    padding: 12px 16px 10px !important;
  }
  .kc-module-eyebrow {
    font-size: 8px !important;
    margin-bottom: 2px !important;
  }
  .kc-module-title {
    font-size: 20px !important;
    line-height: 1.2 !important;
    margin-bottom: 4px !important;
  }
  .kc-module-subtitle {
    display: none !important;
  }

  /* Tabs — compact */
  .kc-tabs {
    padding: 0 16px !important;
    margin-bottom: 0 !important;
    gap: 0 !important;
    overflow-x: auto !important;
    flex-wrap: nowrap !important;
    scrollbar-width: none !important;
  }
  .kc-tab {
    padding: 8px 10px !important;
    font-size: 9px !important;
    white-space: nowrap !important;
    flex-shrink: 0 !important;
  }

  /* Toolbar — filter dropdowns in a single horizontal scroll row */
  .kc-toolbar {
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    padding: 8px 12px !important;
    gap: 6px !important;
    scrollbar-width: none !important;
  }
  .kc-toolbar::-webkit-scrollbar { display: none; }
  .kc-toolbar .kc-input,
  .kc-toolbar select {
    min-width: 120px !important;
    max-width: 140px !important;
    flex-shrink: 0 !important;
    font-size: 11px !important;
    padding: 6px 8px !important;
  }

  /* Module body — ensure it actually scrolls and fills remaining space */
  .kc-module-body {
    padding: 12px 14px 80px !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }

  /* State filter pills on subspace head — single scroll row */
  .kc-subspace-head {
    padding: 8px 12px !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    scrollbar-width: none !important;
  }
  .kc-subspace-head::-webkit-scrollbar { display: none; }
  .kc-state-btn {
    flex-shrink: 0 !important;
    white-space: nowrap !important;
  }
}

/* ═══════════════════════════════════════════════════════════════════════
   UI-6 COMPLIANCE LIBRARY — document rows, current-version block, requirements
   ═══════════════════════════════════════════════════════════════════════ */

.kc-cab-row {
  display: flex; align-items: center; gap: 14px;
  padding: 14px 18px;
  border-bottom: 1px solid rgba(160,120,32,0.06);
  cursor: pointer;
  transition: background 0.15s;
}
.kc-cab-row:last-child { border-bottom: none; }
.kc-cab-row:hover { background: rgba(160,120,32,0.04); }
body[data-theme="light"] .kc-cab-row:hover { background: rgba(60,100,145,0.04); }

.kc-cab-row-cat       { flex-shrink: 0; width: 160px; }
.kc-cab-row-main      { flex: 1; min-width: 0; }
.kc-cab-row-version   { flex-shrink: 0; width: 90px; text-align: right; }
.kc-cab-row-status    { flex-shrink: 0; width: 90px; text-align: right; }

.kc-cab-row-name {
  font-family: var(--f-body);
  font-size: 13px;
  color: var(--smoke);
  letter-spacing: 0.01em;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  margin-bottom: 4px;
}
.kc-cab-row-sub {
  font-family: var(--f-mono);
  font-size: 10px;
  color: var(--smoke3);
  letter-spacing: 0.06em;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

/* Current version block in detail drawer */
.kc-cab-current {
  background: rgba(160,120,32,0.05);
  border: 1px solid rgba(160,120,32,0.18);
  border-radius: 6px;
  padding: 12px 14px;
}
body[data-theme="light"] .kc-cab-current {
  background: rgba(60,100,145,0.05);
  border-color: rgba(60,100,145,0.20);
}

.kc-cab-current-name {
  font-family: var(--f-body);
  font-size: 13px;
  color: var(--smoke);
  letter-spacing: 0.01em;
  word-break: break-word;
  margin-bottom: 4px;
}

.kc-cab-current-meta {
  font-family: var(--f-mono);
  font-size: 10px;
  color: var(--smoke3);
  letter-spacing: 0.06em;
  margin-bottom: 10px;
}

.kc-cab-current-actions {
  display: flex; gap: 8px;
}

/* ═══════════════════════════════════════════════════════════════════════
   UI-7 + UI-8 SOPs + ANNOUNCEMENTS — markdown rendering, ack stats
   ═══════════════════════════════════════════════════════════════════════ */

/* General markdown rendering — used by SOP body, announcement body */
.kc-md {
  font-family: var(--f-body);
  font-size: 13px;
  color: var(--smoke);
  letter-spacing: 0.01em;
  line-height: 1.65;
}
.kc-md p { margin: 0 0 10px 0; }
.kc-md p:last-child { margin-bottom: 0; }
.kc-md h2.kc-md-h, .kc-md h3.kc-md-h, .kc-md h4.kc-md-h {
  font-family: var(--f-display);
  color: var(--smoke);
  letter-spacing: 0.01em;
  margin: 16px 0 8px 0;
  line-height: 1.3;
}
.kc-md h2.kc-md-h { font-size: 18px; }
.kc-md h3.kc-md-h { font-size: 15px; }
.kc-md h4.kc-md-h { font-size: 13px; text-transform: uppercase; letter-spacing: 0.10em; color: var(--gold-lt); }
.kc-md ul, .kc-md ol {
  margin: 6px 0 10px 18px;
  padding: 0;
}
.kc-md li { margin-bottom: 4px; }
.kc-md strong { color: var(--gold-lt); font-weight: 600; }
.kc-md em { font-style: italic; color: var(--smoke2); }
.kc-md code, .kc-md-inline-code {
  font-family: var(--f-mono);
  font-size: 11px;
  background: rgba(160,120,32,0.08);
  padding: 1px 5px;
  border-radius: 3px;
  color: var(--gold-lt);
}
.kc-md pre, .kc-md-code {
  font-family: var(--f-mono);
  font-size: 11px;
  background: rgba(0,0,0,0.30);
  padding: 10px 12px;
  border-radius: 4px;
  border: 1px solid rgba(160,120,32,0.15);
  color: var(--smoke);
  overflow-x: auto;
  white-space: pre-wrap;
  margin: 8px 0;
}

/* SOP / Announcement body wrapper for markdown content */
.kc-sop-body {
  background: rgba(160,120,32,0.03);
  border: 1px solid rgba(160,120,32,0.12);
  border-radius: 6px;
  padding: 14px 16px;
  max-height: 480px;
  overflow-y: auto;
}
body[data-theme="light"] .kc-sop-body {
  background: rgba(60,100,145,0.03);
  border-color: rgba(60,100,145,0.15);
}

/* Ack stats block */
.kc-sop-ack-stats {
  display: flex;
  gap: 16px;
  align-items: center;
  flex-wrap: wrap;
}
.kc-sop-ack-stat {
  display: flex;
  flex-direction: column;
  gap: 2px;
  align-items: flex-start;
}
.kc-sop-ack-stat .kc-mono-strong {
  font-family: var(--f-display);
  font-size: 22px;
  line-height: 1;
  font-weight: 400;
  letter-spacing: 0;
}

/* ═══════════════════════════════════════════════════════════════════════
   UI-10 REPORTS / BLOOMBERG VIEW
   ═══════════════════════════════════════════════════════════════════════ */

.kc-reports-wrap {
  padding: 24px 32px 48px;
  display: flex;
  flex-direction: column;
  gap: 28px;
}

/* Section card */
.kc-rep-section {
  background: rgba(160,120,32,0.02);
  border: 1px solid rgba(160,120,32,0.10);
  border-radius: 6px;
  padding: 20px 22px;
}
body[data-theme="light"] .kc-rep-section {
  background: rgba(60,100,145,0.02);
  border-color: rgba(60,100,145,0.10);
}

.kc-rep-section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 16px;
  gap: 16px;
  flex-wrap: wrap;
}

.kc-rep-section-title {
  font-family: var(--f-display);
  font-size: 18px;
  letter-spacing: 0.02em;
  color: var(--smoke);
  line-height: 1.2;
}

.kc-rep-section-meta {
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  color: var(--smoke4);
  text-transform: uppercase;
  flex: 1;
  margin-left: 14px;
}

.kc-rep-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
@media (max-width: 900px) {
  .kc-rep-grid-2 { grid-template-columns: 1fr; }
}

/* KPI cards */
.kc-rep-kpis {
  /* the wrapper around KPIs uses default section styling */
}

.kc-rep-kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 14px;
}

.kc-rep-kpi {
  background: rgba(0,0,0,0.20);
  border: 1px solid rgba(160,120,32,0.18);
  border-left-width: 3px;
  border-radius: 4px;
  padding: 14px 16px;
}
body[data-theme="light"] .kc-rep-kpi {
  background: rgba(60,100,145,0.04);
  border-color: rgba(60,100,145,0.20);
}

.kc-rep-kpi-red    { border-left-color: var(--red-lt); }
.kc-rep-kpi-amber  { border-left-color: var(--amber-lt); }
.kc-rep-kpi-ok     { border-left-color: var(--ok-lt); }
.kc-rep-kpi-gold   { border-left-color: var(--gold-lt); }

.kc-rep-kpi-label {
  font-family: var(--f-mono);
  font-size: 9px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--smoke4);
  margin-bottom: 8px;
}

.kc-rep-kpi-big {
  font-family: var(--f-display);
  font-size: 32px;
  line-height: 1;
  color: var(--smoke);
  letter-spacing: 0.01em;
  margin-bottom: 6px;
}

.kc-rep-kpi-sub {
  font-family: var(--f-mono);
  font-size: 10px;
  color: var(--smoke3);
  letter-spacing: 0.06em;
}

/* Heatmap */
.kc-rep-heatmap-wrap {
  overflow-x: auto;
}

.kc-rep-heatmap {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--f-mono);
  font-size: 11px;
}

.kc-rep-heatmap th {
  text-align: center;
  padding: 8px 10px;
  font-size: 9px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--smoke4);
  font-weight: 500;
  border-bottom: 1px solid rgba(160,120,32,0.20);
}

.kc-rep-heatmap th.kc-rep-heatmap-loc {
  text-align: left;
}

.kc-rep-heatmap td {
  text-align: center;
  padding: 0;
  border: 1px solid rgba(160,120,32,0.06);
}

.kc-rep-heatmap td.kc-rep-heatmap-loc {
  text-align: left;
  padding: 8px 10px;
  font-family: var(--f-body);
  font-size: 12px;
  color: var(--smoke);
  letter-spacing: 0.01em;
  border-right: 1px solid rgba(160,120,32,0.18);
  white-space: nowrap;
}

.kc-rep-heatmap-cell {
  padding: 0 !important;
  position: relative;
}
.kc-rep-heatmap-cell span {
  display: block;
  padding: 12px 10px;
  font-family: var(--f-display);
  font-size: 16px;
  letter-spacing: 0.01em;
}

.kc-rep-heatmap-cell.kc-rep-sev-ok    { background: rgba(0,138,82,0.10);  color: var(--ok-lt); }
.kc-rep-heatmap-cell.kc-rep-sev-amber { background: rgba(204,144,0,0.16); color: var(--amber-lt); }
.kc-rep-heatmap-cell.kc-rep-sev-red   { background: rgba(192,57,43,0.18); color: var(--red-lt); }

/* Bars */
.kc-rep-bars {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.kc-rep-bar-row {
  display: flex;
  align-items: center;
  gap: 12px;
}
.kc-rep-bar-label {
  flex-shrink: 0;
  width: 90px;
  font-family: var(--f-mono);
  font-size: 10px;
  color: var(--smoke3);
  letter-spacing: 0.10em;
  text-transform: uppercase;
}
.kc-rep-bar-track {
  flex: 1;
  height: 16px;
  background: rgba(160,120,32,0.06);
  border-radius: 2px;
  position: relative;
  overflow: hidden;
}
body[data-theme="light"] .kc-rep-bar-track {
  background: rgba(60,100,145,0.06);
}
.kc-rep-bar-fill {
  height: 100%;
  border-radius: 2px;
  transition: width 0.3s;
}
.kc-rep-bar-value {
  flex-shrink: 0;
  min-width: 40px;
  text-align: right;
  font-family: var(--f-mono);
  font-size: 12px;
  color: var(--smoke);
  letter-spacing: 0.06em;
}

.kc-rep-totals {
  display: flex;
  gap: 24px;
  margin-top: 12px;
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--smoke3);
}
.kc-rep-totals strong {
  font-family: var(--f-display);
  font-size: 14px;
  color: var(--smoke);
  font-weight: 400;
  margin-right: 4px;
}

/* Timeline (license + activity bar charts) */
.kc-rep-timeline svg, .kc-rep-activity svg {
  display: block;
}

.kc-rep-timeline-sub {
  margin-top: 10px;
  font-family: var(--f-mono);
  font-size: 10px;
  color: var(--smoke4);
  letter-spacing: 0.10em;
  text-transform: uppercase;
  text-align: center;
}

.kc-rep-activity .kc-rep-breakdown {
  margin-top: 18px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.kc-rep-breakdown-label {
  font-family: var(--f-mono);
  font-size: 9px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--smoke4);
  margin-bottom: 4px;
}

/* Tables (SOP ack, audit completion) */
.kc-rep-table-wrap {
  overflow-x: auto;
}

.kc-rep-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}

.kc-rep-table th {
  text-align: left;
  padding: 8px 10px;
  font-family: var(--f-mono);
  font-size: 9px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--smoke4);
  font-weight: 500;
  border-bottom: 1px solid rgba(160,120,32,0.20);
}
.kc-rep-table th.kc-rep-table-num { text-align: right; }

.kc-rep-table td {
  padding: 10px;
  border-bottom: 1px solid rgba(160,120,32,0.06);
  font-family: var(--f-body);
  color: var(--smoke);
  letter-spacing: 0.01em;
}
.kc-rep-table td.kc-rep-table-num {
  text-align: right;
  font-family: var(--f-mono);
  font-size: 11px;
}

.kc-rep-table tbody tr:hover { background: rgba(160,120,32,0.04); }
body[data-theme="light"] .kc-rep-table tbody tr:hover { background: rgba(60,100,145,0.04); }

/* Percentage bar (for SOP ack rates) */
.kc-rep-pct-bar {
  display: flex;
  align-items: center;
  gap: 10px;
}
.kc-rep-pct-track {
  flex: 1;
  height: 8px;
  background: rgba(160,120,32,0.10);
  border-radius: 2px;
  overflow: hidden;
}
.kc-rep-pct-fill {
  height: 100%;
  border-radius: 2px;
  transition: width 0.3s;
}
.kc-rep-pct-label {
  flex-shrink: 0;
  min-width: 40px;
  text-align: right;
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.06em;
}

.kc-rep-sev-ok    { color: var(--ok-lt); }
.kc-rep-sev-amber { color: var(--amber-lt); }
.kc-rep-sev-red   { color: var(--red-lt); }

/* Empty state for sections */
.kc-rep-empty {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.10em;
  color: var(--smoke4);
  text-align: center;
  padding: 28px 16px;
  border: 1px dashed rgba(160,120,32,0.15);
  border-radius: 4px;
}

/* Print styles */
@media print {
  .kc-kait-pane, .kc-kait-fab,
  .kc-tabs, .tools-back-btn,
  #kc-rep-tr, #kc-rep-print,
  .kc-kait-chip-row {
    display: none !important;
  }
  .kc-workspace {
    overflow: visible !important;
    width: 100% !important;
  }
  .kc-reports-wrap {
    padding: 0 !important;
  }
  .kc-rep-section {
    page-break-inside: avoid;
    background: white !important;
    border: 1px solid #ccc !important;
    color: black !important;
  }
  .kc-rep-section-title,
  .kc-rep-kpi-big,
  .kc-rep-table td {
    color: black !important;
  }
  body { background: white !important; color: black !important; }
}

/* ═══════════════════════════════════════════════════════════════════════
   UI-11 POLISH — toasts, skeletons, notifications, attention, chips, roles
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Toast host (top-right corner) ─────────────────────────────────── */
.kc-toast-host {
  position: fixed;
  top: 18px;
  right: 18px;
  z-index: 12000;
  display: flex;
  flex-direction: column;
  gap: 10px;
  pointer-events: none;
  max-width: 380px;
}

.kc-toast {
  pointer-events: auto;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 16px;
  background: linear-gradient(170deg,
    rgba(11,14,24,0.97) 0%,
    rgba(8,11,20,0.97) 50%,
    rgba(6,8,16,0.97) 100%);
  border: 1px solid rgba(160,120,32,0.30);
  border-left-width: 3px;
  border-radius: 6px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.40);
  opacity: 0;
  transform: translateX(20px);
  transition: opacity 0.25s, transform 0.25s;
  backdrop-filter: blur(8px);
}
body[data-theme="light"] .kc-toast {
  background: rgba(252,251,247,0.99);
  border-color: rgba(60,100,145,0.30);
  box-shadow: 0 8px 24px rgba(60,100,145,0.15);
}

.kc-toast.kc-toast-in {
  opacity: 1;
  transform: translateX(0);
}
.kc-toast.kc-toast-out {
  opacity: 0;
  transform: translateX(20px);
}

.kc-toast-success { border-left-color: var(--ok-lt); }
.kc-toast-error   { border-left-color: var(--red-lt); }
.kc-toast-warn    { border-left-color: var(--amber-lt); }
.kc-toast-info    { border-left-color: var(--gold-lt); }

.kc-toast-body {
  flex: 1;
  min-width: 0;
}

.kc-toast-title {
  font-family: var(--f-mono);
  font-size: 9px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--smoke4);
  margin-bottom: 4px;
}

.kc-toast-message {
  font-family: var(--f-body);
  font-size: 13px;
  letter-spacing: 0.01em;
  color: var(--smoke);
  line-height: 1.5;
  word-wrap: break-word;
}

.kc-toast-close {
  background: none;
  border: none;
  color: var(--smoke4);
  font-size: 18px;
  cursor: pointer;
  padding: 0;
  width: 22px;
  height: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border-radius: 3px;
  transition: all 0.15s;
}
.kc-toast-close:hover {
  background: rgba(160,120,32,0.10);
  color: var(--smoke);
}

/* ── Loading skeletons ─────────────────────────────────────────────── */
.kc-skeleton-list {
  display: flex;
  flex-direction: column;
  padding: 6px 0;
}

.kc-skeleton-row {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 18px;
  border-bottom: 1px solid rgba(160,120,32,0.06);
}
.kc-skeleton-row:last-child { border-bottom: none; }

.kc-skeleton-content {
  flex: 1;
  min-width: 0;
}

.kc-skeleton-bar {
  height: 12px;
  border-radius: 3px;
  background: linear-gradient(
    90deg,
    rgba(160,120,32,0.05) 0%,
    rgba(160,120,32,0.12) 50%,
    rgba(160,120,32,0.05) 100%
  );
  background-size: 200% 100%;
  animation: kc-skeleton-shimmer 1.4s ease-in-out infinite;
}
body[data-theme="light"] .kc-skeleton-bar {
  background: linear-gradient(
    90deg,
    rgba(60,100,145,0.06) 0%,
    rgba(60,100,145,0.14) 50%,
    rgba(60,100,145,0.06) 100%
  );
  background-size: 200% 100%;
}

@keyframes kc-skeleton-shimmer {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

.kc-skeleton-block {
  padding: 18px;
}

.kc-skeleton-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 14px;
  padding: 18px;
}

.kc-skeleton-card {
  background: rgba(0,0,0,0.10);
  border: 1px solid rgba(160,120,32,0.10);
  border-radius: 4px;
  padding: 16px;
}
body[data-theme="light"] .kc-skeleton-card {
  background: rgba(60,100,145,0.03);
  border-color: rgba(60,100,145,0.12);
}

/* ── Notification bell + badge ─────────────────────────────────────── */
.kc-notif-bell {
  position: relative;
  background: rgba(160,120,32,0.06);
  border: 1px solid rgba(160,120,32,0.18);
  border-radius: 4px;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--smoke);
  cursor: pointer;
  transition: all 0.15s;
}
.kc-notif-bell:hover {
  background: rgba(160,120,32,0.14);
  border-color: rgba(160,120,32,0.40);
}
body[data-theme="light"] .kc-notif-bell {
  background: rgba(60,100,145,0.06);
  border-color: rgba(60,100,145,0.20);
}
body[data-theme="light"] .kc-notif-bell:hover {
  background: rgba(60,100,145,0.14);
  border-color: rgba(60,100,145,0.45);
}

.kc-notif-badge {
  position: absolute;
  top: -6px;
  right: -6px;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 9px;
  font-family: var(--f-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0;
  color: #0b0e18;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1.5px solid rgba(11,14,24,0.98);
}
body[data-theme="light"] .kc-notif-badge {
  border-color: rgba(252,251,247,0.99);
}

.kc-notif-badge-red    { background: var(--red-lt); color: #fff; }
.kc-notif-badge-amber  { background: var(--amber-lt); color: #0b0e18; }
.kc-notif-badge-info   { background: var(--gold-lt); color: #0b0e18; }

/* Notif panel (dropdown from bell) */
