/* ════════════════════════════════════════════════════════
   CogniTuring Assure hero — "Evidence Ledger"
   An audit document that is independently judged, scrutinised,
   and STAMPED with a GRADED verdict. NOT a pipeline console
   (that's Velocity) — Assure is about judgment & evidence.
   Cycles through several real evaluation scenarios:
     · agentic tool-use  → HOLD   (red)
     · RAG / grounding    → REVIEW (amber)
     · red-team safety    → CLEARED (green)
   Verdict colour is driven by --vc, set per scenario (.k-*).
   ════════════════════════════════════════════════════════ */

/* give the figure column the wider share */
.pf-hero-grid { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr) !important; }

.aledger {
  --vc: var(--danger);              /* verdict colour, overridden per scenario */
  position: relative;
  border: 1px solid var(--border-subtle);
  border-radius: 18px;
  background: var(--bg-elevated);
  overflow: hidden;
  box-shadow: 0 1px 0 rgba(0,0,0,.02), 0 36px 80px -52px rgba(9,9,11,.30);
  font-feature-settings: "tnum" 1;
}
.aledger.k-hold   { --vc: var(--danger); }
.aledger.k-review { --vc: var(--warning); }
.aledger.k-pass   { --vc: var(--success); }

/* ── header ── */
.al-head { display: flex; align-items: center; gap: 9px; padding: 14px 18px; border-bottom: 1px solid var(--border-subtle); background: var(--bg-subtle); }
.al-dot { width: 8px; height: 8px; border-radius: 999px; background: var(--accent); box-shadow: 0 0 0 4px var(--accent-subtle); flex: 0 0 auto; }
.al-title { font-family: var(--font-mono); font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--text-primary); }
.al-run { font-family: var(--font-mono); font-size: 11px; color: var(--text-tertiary); letter-spacing: .04em; }
.al-seq { margin-left: auto; display: inline-flex; align-items: center; gap: 5px; }
.al-seq i { width: 5px; height: 5px; border-radius: 999px; background: var(--border-default); transition: background .3s ease, transform .3s ease; }
.al-seq i.on { background: var(--accent); transform: scale(1.18); }
.al-status { margin-left: 12px; display: inline-flex; align-items: center; gap: 6px; font-family: var(--font-mono); font-size: 10.5px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; padding: 4px 11px; border-radius: 999px; background: var(--accent-subtle); color: var(--accent); transition: background .3s ease, color .3s ease; white-space: nowrap; }
.al-status .sp { width: 11px; height: 11px; border: 2px solid currentColor; border-top-color: transparent; border-radius: 999px; animation: alSpin .8s linear infinite; }
@keyframes alSpin { to { transform: rotate(360deg); } }
.aledger.verdict .al-status { background: color-mix(in srgb, var(--vc) 12%, transparent); color: var(--vc); }
.aledger.verdict .al-status .sp { animation: none; border: none; width: 0; height: 0; }

/* ── body ── */
.al-body { padding: 16px 18px 2px; display: flex; flex-direction: column; gap: 15px; }
.al-lbl { font-family: var(--font-mono); font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--text-tertiary); display: flex; align-items: center; gap: 8px; margin-bottom: 9px; }
.al-lbl .meta { margin-left: auto; font-weight: 500; letter-spacing: .04em; text-transform: none; }

/* response under evaluation (the subject) */
.al-resp { position: relative; border: 1px solid var(--border-subtle); border-radius: 12px; background: var(--bg-subtle); padding: 13px 15px; overflow: hidden; }
.al-resp-text { font-size: 14.5px; line-height: 1.55; color: var(--text-primary); font-weight: 500; letter-spacing: -.01em; min-height: 1.5em; }
.al-resp-text .cur { display: inline-block; width: 2px; height: 1.05em; background: var(--accent); vertical-align: -3px; margin-left: 1px; border-radius: 1px; animation: alBlink 1s step-end infinite; }
@keyframes alBlink { 50% { opacity: 0; } }
.al-tool { margin-top: 10px; display: inline-flex; align-items: center; gap: 7px; font-family: var(--font-mono); font-size: 11.5px; color: var(--text-secondary); background: var(--bg-elevated); border: 1px solid var(--border-subtle); border-radius: 7px; padding: 4px 10px; opacity: 0; transform: translateY(4px); transition: opacity .32s ease, transform .32s ease; }
.al-tool-ic { opacity: .7; }
.al-tool-txt { color: var(--text-secondary); }
.al-tool.danger .al-tool-txt { color: var(--danger); font-weight: 600; }
.al-tool.show { opacity: 1; transform: none; }
/* scrutiny scan-line sweep */
.al-scan { position: absolute; left: 0; right: 0; top: -34%; height: 36px; background: linear-gradient(180deg, transparent, color-mix(in srgb, var(--accent) 24%, transparent), transparent); opacity: 0; pointer-events: none; }
.al-resp.scanning .al-scan { animation: alScan 1.5s ease-in-out; }
@keyframes alScan { 0% { top: -34%; opacity: 0; } 14% { opacity: 1; } 86% { opacity: 1; } 100% { top: 116%; opacity: 0; } }

/* independent judges + consensus */
.al-judges-row { display: grid; grid-template-columns: 1fr auto; gap: 16px; align-items: center; }
.al-judges { display: flex; gap: 10px; }
.al-judge { display: flex; flex-direction: column; align-items: center; gap: 4px; opacity: 0; transform: translateY(8px) scale(.88); }
.al-judge.in { animation: alPop .42s cubic-bezier(.2,.8,.3,1.25) forwards; }
@keyframes alPop { to { opacity: 1; transform: none; } }
.al-jmark { width: 32px; height: 32px; border-radius: 9px; border: 1.5px solid var(--accent); background: var(--accent-subtle); display: grid; place-items: center; color: var(--accent); font-family: var(--font-mono); font-size: 11px; font-weight: 700; }
.al-jscore { font-family: var(--font-mono); font-size: 12.5px; font-weight: 700; color: var(--text-primary); }
.al-jname { font-family: var(--font-mono); font-size: 8px; color: var(--text-tertiary); letter-spacing: .02em; }
.al-consensus { text-align: right; }
.al-cons-lbl { font-family: var(--font-mono); font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--text-tertiary); }
.al-cons-val { font-family: var(--font-mono); font-size: 30px; font-weight: 700; color: var(--success); letter-spacing: -.02em; line-height: 1.1; }
.al-cons-val .mx { font-size: 14px; color: var(--text-tertiary); font-weight: 600; }
.al-cons-tag { font-family: var(--font-mono); font-size: 9.5px; font-weight: 600; color: var(--success); letter-spacing: .02em; }

/* evidence checks */
.al-checks { display: flex; flex-wrap: wrap; gap: 7px; }
.al-check { display: inline-flex; align-items: center; gap: 7px; border: 1px solid var(--border-subtle); border-radius: 8px; padding: 6px 10px; background: var(--bg-elevated); font-size: 12px; color: var(--text-secondary); letter-spacing: -.005em; opacity: 0; transform: translateY(6px); transition: border-color .35s ease, background .35s ease, color .35s ease; }
.al-check.in { animation: alPop .36s cubic-bezier(.2,.8,.3,1.12) forwards; }
.al-check .mk { width: 15px; height: 15px; border-radius: 999px; background: var(--success); display: grid; place-items: center; flex: 0 0 auto; transition: background .3s ease; }
.al-check .mk::after { content: ""; width: 7px; height: 4px; border-left: 2px solid #fff; border-bottom: 2px solid #fff; transform: rotate(-45deg) translateY(-1px); }
.al-check .flag { margin-left: auto; font-family: var(--font-mono); font-size: 9px; font-weight: 700; letter-spacing: .05em; color: var(--vc); background: color-mix(in srgb, var(--vc) 10%, transparent); border: 1px solid color-mix(in srgb, var(--vc) 25%, transparent); border-radius: 999px; padding: 2px 8px; opacity: 0; transition: opacity .3s ease; }
.al-check.fail { width: 100%; }
.al-check.fail.flip { border-color: color-mix(in srgb, var(--vc) 40%, transparent); background: color-mix(in srgb, var(--vc) 6%, transparent); color: var(--text-primary); }
.al-check.fail.flip .mk { background: var(--vc); }
.al-check.fail.flip .mk::after { content: "\00d7"; color: #fff; font-family: var(--font-mono); font-size: 12px; font-weight: 700; line-height: 1; width: auto; height: auto; border: none; transform: none; }
.al-check.fail.flip .flag { opacity: 1; }

/* the thesis line — appears with the verdict */
.al-note { text-align: center; font-size: 13px; color: var(--text-secondary); font-weight: 500; letter-spacing: -.01em; opacity: 0; transform: translateY(5px); transition: opacity .45s ease, transform .45s ease; }
.al-note b { color: var(--vc); font-weight: 700; }
.aledger.verdict .al-note { opacity: 1; transform: none; }

/* ── verdict band + the stamp ── */
.al-foot { margin-top: 15px; position: relative; display: flex; align-items: center; gap: 14px; padding: 15px 18px; border-top: 1px solid var(--border-subtle); background: var(--bg-subtle); min-height: 60px; }
.al-stamp {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--font-mono); font-size: 15px; font-weight: 800; letter-spacing: .07em;
  color: var(--vc); border: 2.5px solid var(--vc); border-radius: 9px; padding: 7px 15px;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--vc) 22%, transparent);
  transform: rotate(-7deg) scale(1.5); opacity: 0; white-space: nowrap;
}
.aledger.verdict .al-stamp { animation: alStamp .52s cubic-bezier(.3,1.5,.5,1) forwards; }
@keyframes alStamp {
  0%   { opacity: 0; transform: rotate(-7deg) scale(1.55); }
  55%  { opacity: 1; transform: rotate(-7deg) scale(.9); }
  100% { opacity: 1; transform: rotate(-7deg) scale(1); }
}
.al-attest { margin-left: auto; display: flex; flex-direction: column; gap: 5px; align-items: flex-end; text-align: right; }
.al-std { font-family: var(--font-mono); font-size: 10px; color: var(--text-tertiary); letter-spacing: .03em; }
.al-fmts { display: flex; gap: 5px; }
.al-fmt { font-family: var(--font-mono); font-size: 9.5px; font-weight: 600; color: var(--accent); background: var(--accent-subtle); border-radius: 5px; padding: 2px 8px; }

@media (max-width: 1040px) {
  .pf-hero-grid { grid-template-columns: 1fr !important; }
  .aledger { max-width: 560px; }
}
@media (prefers-reduced-motion: reduce) {
  .al-status .sp { animation: none; }
  .al-resp-text .cur { animation: none; }
  .al-judge, .al-check { opacity: 1; transform: none; }
  .al-tool { opacity: 1; transform: none; }
  .aledger.verdict .al-stamp { animation: none; opacity: 1; transform: rotate(-7deg); }
}
