/* ============================================================================
   audit.css — tweaks specific to the Audit Log module ONLY.
   No fonts/colors/global styles here — core.css owns all tokens. Everything
   leans on documented .card/.kpi/.tag/.avatar/.progress classes; this file
   adds the event-stream rows, filter chips, actor leaderboard, action-mix
   legend, the entity timeline spine and the AI note. Zero hardcoded hex —
   every value resolves to a var(--...) token.
   ========================================================================== */

/* ── KPI ROW ─────────────────────────────────────────────────────────────── */
.audit-kpi{display:flex;flex-direction:column;gap:4px}
.audit-kpi .kpi-sub{font-size:11px;color:var(--text-faint);margin-top:2px}
.audit-integrity-val{font-family:var(--font-display);font-size:21px;font-weight:600;
  letter-spacing:-.3px;color:var(--text);display:flex;align-items:center;gap:8px;line-height:1.05}
.audit-chain-ok{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:7px;
  font-size:12px;color:var(--success);background:color-mix(in srgb, var(--success) 12%, transparent);
  box-shadow:0 0 12px var(--glow);animation:auditPulse 2.6s var(--ease) infinite}
@keyframes auditPulse{0%,100%{box-shadow:0 0 8px var(--glow)}50%{box-shadow:0 0 18px var(--glow)}}
.audit-integrity{position:relative;overflow:hidden}
.audit-integrity::after{content:'';position:absolute;inset:0;border-radius:var(--radius);
  box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent1) 14%, transparent);pointer-events:none}

/* ── STREAM CARD ─────────────────────────────────────────────────────────── */
.audit-streamcard{display:flex;flex-direction:column}

/* filter rails */
.audit-filters{display:flex;flex-direction:column;gap:7px;padding:2px 16px 13px;
  border-bottom:1px solid var(--border)}
.audit-frail{display:grid;grid-template-columns:62px 1fr;align-items:start;gap:10px}
.audit-frail-k{font-family:var(--font-mono);font-size:9px;letter-spacing:2px;text-transform:uppercase;
  color:var(--text-faint);padding-top:7px;white-space:nowrap}
.audit-chips{display:flex;flex-wrap:wrap;gap:6px;min-width:0}
.audit-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:20px;
  font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.5px;
  border:1px solid var(--border);background:var(--panel);color:var(--text-muted);
  transition:all .15s var(--ease);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.audit-chip i{font-style:normal;font-size:11px;line-height:1}
.audit-chip:hover{border-color:var(--border-hi);color:var(--text)}
.audit-chip.active{color:var(--accent1);border-color:color-mix(in srgb, var(--accent1) 40%, transparent);
  background:color-mix(in srgb, var(--accent1) 8%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent1) 18%, transparent)}

/* the stream itself */
.audit-stream{flex:1;overflow-y:auto;max-height:560px;padding:4px 4px 6px}
.audit-row{display:flex;align-items:flex-start;gap:12px;padding:13px 12px;
  border-bottom:1px solid var(--border);border-left:2px solid transparent;
  transition:background .14s var(--ease),border-color .14s var(--ease)}
.audit-row:last-child{border-bottom:none}
.audit-row:hover{background:var(--panel);border-left-color:var(--border-hi)}
.audit-avatar{width:34px;height:34px;font-size:12px;flex:none;margin-top:1px}
.audit-avatar.sm{width:28px;height:28px;font-size:11px}
.audit-body{flex:1;min-width:0}

.audit-line1{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.audit-actor{font-size:13px;font-weight:700;color:var(--text);white-space:nowrap}
.audit-action{display:inline-flex;align-items:center;gap:5px;border-radius:6px}
.audit-action i{font-style:normal;font-size:11px;line-height:1}
.audit-amount{font-family:var(--font-mono);font-size:12px;font-weight:700;letter-spacing:.3px;
  color:var(--accent1);background:color-mix(in srgb, var(--accent1) 8%, transparent);border:1px solid color-mix(in srgb, var(--accent1) 22%, transparent);
  padding:1px 8px;border-radius:6px;font-variant-numeric:tabular-nums}
.audit-time{margin-left:auto;font-family:var(--font-mono);font-size:10px;letter-spacing:1px;
  color:var(--text-faint);white-space:nowrap;flex:none}

.audit-summary{font-size:12.5px;color:var(--text-muted);line-height:1.45;margin:5px 0 7px}

.audit-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.audit-link{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);
  font-size:10px;letter-spacing:.5px;color:var(--text-muted);background:var(--bg2);
  border:1px solid var(--border);border-radius:6px;padding:2px 8px;cursor:pointer;
  transition:all .14s var(--ease)}
.audit-link i{font-style:normal;font-size:11px}
.audit-link:hover{border-color:var(--border-hi);color:var(--text)}
.audit-modchip{font-family:var(--font-mono);font-size:9.5px;letter-spacing:1px;text-transform:uppercase;
  color:var(--accent2);background:color-mix(in srgb, var(--accent2) 7%, transparent);border:1px solid color-mix(in srgb, var(--accent2) 25%, transparent);
  border-radius:6px;padding:2px 8px;transition:all .14s var(--ease)}
.audit-modchip:hover{background:color-mix(in srgb, var(--accent2) 14%, transparent);color:var(--text)}
.audit-hash{display:inline-flex;align-items:center;gap:4px;margin-left:auto;cursor:pointer;
  font-family:var(--font-mono);font-size:9.5px;letter-spacing:1px;color:var(--text-faint);
  border:1px dashed var(--border-hi);border-radius:6px;padding:2px 7px;
  transition:all .14s var(--ease);flex:none}
.audit-hash:hover{color:var(--accent1);border-color:color-mix(in srgb, var(--accent1) 40%, transparent)}

/* empty state */
.audit-empty{display:grid;place-items:center;gap:8px;padding:40px 20px;text-align:center;
  color:var(--text-faint);font-size:13px}
.audit-empty .big{font-size:34px;opacity:.5}

/* ── SIDE: ACTOR LEADERBOARD ─────────────────────────────────────────────── */
.audit-actorlist{display:flex;flex-direction:column;gap:3px}
.audit-actorrow{display:flex;align-items:center;gap:11px;width:100%;text-align:left;
  padding:7px 6px;border-radius:9px;border:1px solid transparent;transition:.14s var(--ease)}
.audit-actorrow:hover{background:var(--panel);border-color:var(--border)}
.audit-arow-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.audit-arow-name{font-size:12.5px;font-weight:600;color:var(--text);white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.audit-arow-bar{height:5px}
.audit-arow-n{font-family:var(--font-mono);font-size:13px;font-weight:700;color:var(--text);
  font-variant-numeric:tabular-nums;min-width:24px;text-align:right;flex:none}

/* ── SIDE: ACTION MIX ────────────────────────────────────────────────────── */
.audit-mixdonut{display:grid;place-items:center}
.audit-mixdonut svg{max-width:168px;margin:0 auto}
.audit-mixlegend{display:flex;flex-direction:column;gap:6px;margin-top:12px}
.audit-mixrow{display:grid;grid-template-columns:12px 1fr auto;align-items:center;gap:9px;
  font-size:12px;padding:3px 0;border-bottom:1px solid var(--border)}
.audit-mixrow:last-child{border-bottom:none}
.audit-mixdot{width:9px;height:9px;border-radius:3px;box-shadow:0 0 7px currentColor}
.audit-mixname{color:var(--text-muted)}
.audit-mixval{font-family:var(--font-mono);font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}

/* ── ENTITY TIMELINE ─────────────────────────────────────────────────────── */
.audit-tl-picker{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}
.audit-tl-chip i{font-style:normal;margin-right:1px}
.audit-timeline{display:flex;flex-direction:column}
.audit-tl-item{display:flex;gap:14px;align-items:stretch}
.audit-tl-spine{position:relative;width:14px;flex:none;display:flex;justify-content:center}
.audit-tl-spine::before{content:'';position:absolute;top:0;bottom:0;width:2px;
  background:var(--border);left:50%;transform:translateX(-50%)}
.audit-tl-item:first-child .audit-tl-spine::before{top:14px}
.audit-tl-item:last-child .audit-tl-spine::before{bottom:auto;height:14px}
.audit-tl-dot{position:relative;z-index:1;width:11px;height:11px;border-radius:50%;margin-top:13px;
  background:var(--accent1);box-shadow:0 0 8px var(--accent1);border:2px solid var(--panel)}
.audit-tl-dot.ok{background:var(--success);box-shadow:0 0 8px var(--success)}
.audit-tl-dot.warn{background:var(--warn);box-shadow:0 0 8px var(--warn)}
.audit-tl-dot.bad{background:var(--danger);box-shadow:0 0 8px var(--danger)}
.audit-tl-dot.info{background:var(--accent2);box-shadow:0 0 8px var(--accent2)}
.audit-tl-content{flex:1;min-width:0;padding:9px 0 14px;border-bottom:1px solid var(--border)}
.audit-tl-item:last-child .audit-tl-content{border-bottom:none}
.audit-tl-top{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.audit-tl-by{font-size:11px;color:var(--text-faint);margin-top:6px;display:flex;align-items:center;gap:7px}
.audit-tl-by .audit-hash{margin-left:0;cursor:default}

/* ── AI NOTE ─────────────────────────────────────────────────────────────── */
.audit-ainote{display:flex;align-items:center;gap:16px}
.audit-ainote::before{content:'';position:absolute;inset:0;border-radius:var(--radius);
  background:var(--accent-grad);opacity:.04;pointer-events:none}
.audit-ainote-ico{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;
  font-size:22px;background:var(--panel-hi);border:1px solid var(--border-hi);flex:none;
  box-shadow:0 0 22px var(--weather);position:relative}
.audit-ainote-body{flex:1;min-width:0;position:relative}
.audit-ainote-title{font-family:var(--font-display);font-size:15px;font-weight:600;
  letter-spacing:-.2px;margin-bottom:3px}
.audit-ainote-body p{font-size:12.5px;line-height:1.55}
.audit-ainote-btn{flex:none;position:relative}

/* ── RESPONSIVE NUDGES ───────────────────────────────────────────────────── */
@media (max-width:1180px){
  .audit-stream{max-height:480px}
}
@media (max-width:820px){
  .audit-frail{grid-template-columns:1fr}
  .audit-frail-k{padding-top:0;margin-bottom:2px}
  .audit-stream{max-height:none}
  .audit-time{margin-left:0}
  .audit-hash{margin-left:0}
  .audit-ainote{flex-direction:column;align-items:flex-start;gap:12px}
  .audit-ainote-btn{width:100%}
}
@media (max-width:560px){
  .audit-line1{gap:7px}
  .audit-amount{order:3}
}
