/* Sniffer Scan — austere, dense, in the AMLBot design system (tokens from amlbot-design-system). */
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 400 800; font-display: swap; src: url("fonts/inter-latin.woff2") format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 400 800; font-display: swap; src: url("fonts/inter-latin-ext.woff2") format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 400; font-display: swap; src: url("fonts/plex-mono-400-latin.woff2") format('woff2'); }
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 500; font-display: swap; src: url("fonts/plex-mono-500-latin.woff2") format('woff2'); }

:root {
  --amlb-blue-500: #0057FF; --amlb-blue-600: #0042A5; --amlb-blue-200: #B8CFFF; --amlb-blue-active-bg: #E9F3FF;
  --amlb-navy-800: #060663; --amlb-navy-500: #14286E; --amlb-violet-500: #9A3FD5; --amlb-violet-700: #300060;
  --amlb-ink-900: #000; --amlb-ink-700: #272770; --amlb-ink-500: #4E677D; --amlb-ink-400: #77869E; --amlb-ink-100: #C6D0E0;
  --amlb-ui-body-text: #637381; --amlb-ui-ink-hard: #141822; --amlb-ui-stroke: #E5E8EC; --amlb-ui-stroke-soft: #F0F3F6;
  --amlb-ui-surface-card: #F4F6F8; --amlb-gray-050: #F7FAFE; --amlb-white: #fff;
  --amlb-risk-safe: #00AD50; --amlb-risk-medium: #B07F00; --amlb-risk-risky: #ED274B;
  --amlb-risk-low-bg: rgba(0,173,80,.08); --amlb-risk-medium-bg: rgba(255,184,0,.12); --amlb-risk-high-bg: rgba(237,39,75,.06);
  --amlb-font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --amlb-font-mono: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  --amlb-radius-sm: 6px; --amlb-radius-md: 10px; --amlb-radius-card: 12px; --amlb-radius-pill-sm: 15px; --amlb-radius-pill: 999px;
  --amlb-shadow-sm: 0 2px 8px rgba(10,20,40,.06), 0 1px 2px rgba(10,20,40,.04);
  --focus: 0 0 0 3px rgba(200,59,208,.15);
  --page: 1120px;
}
* { box-sizing: border-box; }
html { color-scheme: light; }
body { margin: 0; font-family: var(--amlb-font-sans); font-size: 14px; line-height: 1.5; color: var(--amlb-ui-ink-hard); background: var(--amlb-white); }
a { color: var(--amlb-blue-600); text-decoration: underline; text-decoration-color: var(--amlb-blue-200); text-underline-offset: 3px; }
a:hover { color: var(--amlb-blue-500); }
:focus-visible { outline: 2px solid var(--amlb-violet-500); outline-offset: 2px; box-shadow: var(--focus); }
.skip { position: absolute; left: -999px; top: 8px; background: var(--amlb-navy-800); color: #fff; padding: 8px 12px; border-radius: var(--amlb-radius-sm); z-index: 10; }
.skip:focus { left: 8px; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Header: every page the same */
.hdr { border-bottom: 1px solid var(--amlb-ui-stroke); background: var(--amlb-white); }
.hdr .in { max-width: var(--page); margin: 0 auto; padding: 10px 16px; display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.brand { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--amlb-ink-900); }
.nav { display: flex; gap: 16px; margin-left: auto; font-size: 13px; }
.nav a { color: var(--amlb-ink-500); text-decoration: none; }
.nav a[aria-current="page"] { color: var(--amlb-ink-900); font-weight: 600; }
.hdr form { display: flex; flex: 1 1 320px; max-width: 560px; }
.hdr input { flex: 1; font: 13px var(--amlb-font-mono); padding: 8px 10px; border: 1px solid rgba(10,20,40,.16); border-radius: var(--amlb-radius-md) 0 0 var(--amlb-radius-md); min-width: 0; }
.hdr button, .btn { font: 500 13px var(--amlb-font-sans); padding: 8px 14px; border: 1px solid var(--amlb-navy-800); background: var(--amlb-navy-800); color: #fff; border-radius: 0 var(--amlb-radius-md) var(--amlb-radius-md) 0; cursor: pointer; }
.hdr button:hover, .btn:hover { background: var(--amlb-navy-500); }
.btn { border-radius: var(--amlb-radius-md); }
.btn.sec { background: var(--amlb-white); color: var(--amlb-blue-600); border-color: var(--amlb-blue-200); }

main { max-width: var(--page); margin: 0 auto; padding: 20px 16px 48px; }
h1 { font-size: 22px; font-weight: 700; letter-spacing: -.02em; line-height: 1.1; margin: 0 0 4px; }
h2 { font-size: 15px; font-weight: 600; letter-spacing: -.01em; margin: 0; }
h3 { font-size: 13px; font-weight: 600; margin: 0 0 6px; }
.lede { color: var(--amlb-ui-body-text); margin: 0 0 20px; max-width: 760px; }
p { margin: 0 0 10px; }
.muted { color: var(--amlb-ink-400); }
td.na, td.na * { color: var(--amlb-ink-400); font-weight: 400; font-family: var(--amlb-font-sans); text-decoration: none; }
.mono { font-family: var(--amlb-font-mono); font-size: 13px; }
.cap { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: var(--amlb-ink-400); }
.addr { font-family: var(--amlb-font-mono); font-size: 13px; white-space: nowrap; }
.addr.full { white-space: normal; word-break: break-all; }
.num { font-variant-numeric: tabular-nums; text-align: right; }
.full { word-break: break-all; }

/* Home search */
.search { background: var(--amlb-gray-050); border: 1px solid var(--amlb-ui-stroke); border-radius: var(--amlb-radius-card); padding: 20px; margin: 0 0 20px; }
.search form { display: flex; max-width: 760px; }
.search input { flex: 1; font: 14px var(--amlb-font-mono); padding: 11px 12px; border: 1px solid rgba(10,20,40,.16); border-radius: var(--amlb-radius-md) 0 0 var(--amlb-radius-md); min-width: 0; }
.search button { font: 500 14px var(--amlb-font-sans); padding: 11px 18px; border: 1px solid var(--amlb-navy-800); background: var(--amlb-navy-800); color: #fff; border-radius: 0 var(--amlb-radius-md) var(--amlb-radius-md) 0; cursor: pointer; }
.search .hint { margin: 8px 0 0; font-size: 12px; color: var(--amlb-ink-400); }
.search .result { margin: 10px 0 0; font-size: 13px; }

/* Figures */
.figs { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 1px; background: var(--amlb-ui-stroke); border: 1px solid var(--amlb-ui-stroke); border-radius: var(--amlb-radius-card); overflow: hidden; margin: 0 0 20px; }
.fig { background: #fff; padding: 12px 14px; display: block; position: relative; color: inherit; text-decoration: none; }
a.fig:hover { background: var(--amlb-gray-050); }
a.fig:hover .k { color: var(--amlb-blue-600); text-decoration: underline; text-decoration-color: var(--amlb-blue-200); text-underline-offset: 3px; }
.fig .v { display: block; font-size: 22px; font-weight: 700; letter-spacing: -.02em; line-height: 1.1; font-variant-numeric: tabular-nums; }
.fig .k { display: block; font-size: 12px; color: var(--amlb-ink-400); margin-top: 2px; }
.fig .s { display: block; font-size: 12px; color: var(--amlb-ui-body-text); margin-top: 4px; }
.fig .go { position: absolute; right: 12px; top: 10px; color: var(--amlb-ink-100); font-size: 14px; }
a.fig:hover .go { color: var(--amlb-blue-500); }
.pager { display: flex; gap: 16px; align-items: center; padding: 10px 14px; font-size: 13px; color: var(--amlb-ink-400); border-top: 1px solid var(--amlb-ui-stroke); }

/* Panels + tables */
.cols { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
@media (max-width: 860px) { .cols { grid-template-columns: 1fr; } }
.panel { border: 1px solid var(--amlb-ui-stroke); border-radius: var(--amlb-radius-card); overflow: hidden; margin: 0 0 20px; background: #fff; }
.panel > .ph { display: flex; align-items: baseline; gap: 10px; padding: 10px 14px; border-bottom: 1px solid var(--amlb-ui-stroke); background: var(--amlb-gray-050); }
.panel > .ph .r { margin-left: auto; font-size: 12px; color: var(--amlb-ink-400); }
.tw { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: 13px; }
caption { text-align: left; padding: 8px 14px; font-weight: 600; }
th, td { padding: 7px 10px; border-bottom: 1px solid var(--amlb-ui-stroke-soft); vertical-align: top; text-align: left; }
th { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--amlb-ink-400); white-space: nowrap; background: #fff; }
tbody tr:hover { background: var(--amlb-gray-050); }
td.num, th.num { text-align: right; white-space: nowrap; }
td.t { white-space: nowrap; font-variant-numeric: tabular-nums; width: 1%; }
td.t time { display: inline-flex; flex-direction: column; line-height: 1.2; }
td.t time .h { font-size: 12px; color: var(--amlb-ink-400); }
.empty { padding: 14px; color: var(--amlb-ink-400); }

/* Pills: risk colours mean risk and nothing else */
.pill { display: inline-block; font-size: 12px; font-weight: 600; padding: 2px 8px; border-radius: var(--amlb-radius-pill-sm); white-space: nowrap; }
.pill.bad { color: var(--amlb-risk-risky); background: var(--amlb-risk-high-bg); }
.pill.ok { color: var(--amlb-risk-safe); background: var(--amlb-risk-low-bg); }
.pill.warn { color: var(--amlb-risk-medium); background: var(--amlb-risk-medium-bg); }
.pill.neutral { color: var(--amlb-ink-700); background: var(--amlb-ui-surface-card); }
.tag { display: inline-block; font-size: 11px; font-weight: 600; padding: 1px 6px; border-radius: var(--amlb-radius-sm); background: var(--amlb-blue-active-bg); color: var(--amlb-blue-600); text-transform: uppercase; letter-spacing: .04em; }
.late { color: var(--amlb-risk-risky); font-weight: 600; }
.lead-ok { color: var(--amlb-risk-safe); }

/* Verdict block */
.verdict { border: 1px solid var(--amlb-ui-stroke); border-left: 4px solid var(--amlb-ink-100); border-radius: var(--amlb-radius-card); padding: 14px 16px; margin: 0 0 20px; }
.verdict.bad { border-left-color: var(--amlb-risk-risky); }
.verdict.warn { border-left-color: var(--amlb-risk-medium); }
.verdict.ok { border-left-color: var(--amlb-risk-safe); }
.verdict .v { font-size: 18px; font-weight: 700; letter-spacing: -.01em; }
.kv { display: grid; grid-template-columns: max-content 1fr; gap: 4px 16px; margin: 8px 0 0; font-size: 13px; }
.kv dt { color: var(--amlb-ink-400); }
.kv dd { margin: 0; }

/* Path */
.path { list-style: none; margin: 0; padding: 0; }
.path li { display: grid; grid-template-columns: 56px 1fr; gap: 10px; padding: 8px 14px; border-bottom: 1px solid var(--amlb-ui-stroke-soft); }
.path .hop { font-family: var(--amlb-font-mono); color: var(--amlb-violet-500); font-weight: 500; }
.path .row { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 13px; }
.path .here { background: var(--amlb-blue-active-bg); }

/* Graph */
.graph { padding: 10px 14px; }
.graph svg { width: 100%; height: auto; display: block; font-family: var(--amlb-font-mono); font-size: 11px; }
.graph .node a { cursor: pointer; }
.graph .node circle { fill: var(--amlb-risk-risky); stroke: #fff; stroke-width: 1.5; }
.graph .node.seed circle { fill: var(--amlb-navy-800); }
.graph .node.service circle { fill: var(--amlb-blue-500); }
.graph .node.withdrawn circle { fill: #fff; stroke: var(--amlb-ink-400); stroke-dasharray: 2 2; }
.graph .node.future { opacity: .18; }
.graph .edge { fill: none; stroke: var(--amlb-ink-100); stroke-width: 1.2; }
.graph .edge.future { opacity: .15; }
.graph .edge.late { stroke: var(--amlb-risk-risky); }
.graph text { fill: var(--amlb-ink-500); }
.graph .lbl { fill: var(--amlb-ink-400); font-family: var(--amlb-font-sans); font-size: 11px; text-transform: uppercase; letter-spacing: .06em; }
.replay { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 8px 14px 4px; font-size: 13px; }
.replay input[type=range] { flex: 1 1 240px; accent-color: var(--amlb-blue-500); }
.replay output { font-family: var(--amlb-font-mono); font-size: 12px; min-width: 160px; }
.legend { display: flex; gap: 14px; flex-wrap: wrap; padding: 4px 14px 10px; font-size: 12px; color: var(--amlb-ink-500); }
.legend i { display: inline-block; width: 10px; height: 10px; border-radius: 50%; vertical-align: -1px; margin-right: 4px; }

/* Notes and footer */
.note { background: var(--amlb-blue-active-bg); border-radius: var(--amlb-radius-card); padding: 12px 16px; margin: 0 0 20px; font-size: 13px; color: var(--amlb-ink-700); }
.note b { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--amlb-blue-600); margin-bottom: 4px; }
.warnbox { background: var(--amlb-risk-medium-bg); color: #5b4200; border-radius: var(--amlb-radius-card); padding: 10px 16px; margin: 0 0 20px; font-size: 13px; }
.ftr { max-width: var(--page); margin: 0 auto; padding: 16px; border-top: 1px solid var(--amlb-ui-stroke); font-size: 12px; color: var(--amlb-ink-400); display: flex; gap: 16px; flex-wrap: wrap; }
.ftr a { color: inherit; }
.about { max-width: 760px; }
.about h2 { font-size: 18px; margin: 24px 0 8px; }
.about p, .about li { color: var(--amlb-ink-500); font-size: 15px; line-height: 1.6; }
.about table { max-width: 560px; }

/* Incident cell: one line, cropped */
/* Table cells ignore max-width, so the crop lives on a block inside the cell. */
td.inc .crop { max-width: 300px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
td.inc .tag { margin-right: 4px; vertical-align: 1px; }

/* Search inputs: no focus ring; a thin shadow on hover, a slightly darker border while typing. */
.search input, .hdr input { outline: none; transition: box-shadow .15s ease, border-color .15s ease; }
.search input:hover, .hdr input:hover { box-shadow: 0 1px 4px rgba(10,20,40,.08); }
.search input:focus, .search input:focus-visible, .hdr input:focus, .hdr input:focus-visible { outline: none; box-shadow: 0 1px 4px rgba(10,20,40,.08); border-color: rgba(10,20,40,.32); }

/* Polytrop's header mark: the Sniffer icon, the name, "by AMLBot" */
.brand svg { width: 26px; height: 26px; display: block; flex: none; }
.brand b { font-size: 16px; font-weight: 700; letter-spacing: -.02em; }
.brand .by { font-size: 12px; color: var(--amlb-ink-400); margin-left: 2px; white-space: nowrap; }

/* Breadcrumbs: the way back, on every page but the home */
.crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 13px; color: var(--amlb-ink-400); margin: 2px 0 14px; }
.crumbs:empty { display: none; }
.crumbs a { color: var(--amlb-blue-600); text-decoration: none; }
.crumbs a:hover { color: var(--amlb-blue-500); text-decoration: underline; text-decoration-color: var(--amlb-blue-200); text-underline-offset: 3px; }
.crumbs .sep { color: var(--amlb-ink-100); }
.crumbs .cur { color: var(--amlb-ui-ink-hard); font-weight: 500; }
.crumbs .mono { font-family: var(--amlb-font-mono); font-weight: 400; font-size: 12px; }

/* The case page (incident.html) in AMLBot Promo: a light hero with the trail drawn in 3D, section heads with the ghost
   numeral, three feature cards of where the money is, four stat cards of when Sniffer knew, then the tables. */
.hero { background: var(--grad-light-hero, radial-gradient(rgba(0,87,255,.15) 0%, rgba(176,227,255,0) 100%), radial-gradient(rgba(97,57,255,.15) 0%, rgba(243,100,255,0) 100%), linear-gradient(rgb(220,241,254) 0%, rgb(235,242,246) 70%, rgba(255,255,255,0) 100%)); border-radius: 40px; padding: 44px 48px 40px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, .95fr); gap: 40px; align-items: center; margin: 0 0 8px; }
.hero .tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; }
.hero .tag { display: inline-block; font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; line-height: 1; padding: 6px 10px; border-radius: 6px; background: rgba(255,255,255,.7); color: var(--amlb-ink-700); border: 1px solid rgba(10,20,40,.08); }
.hero .tag.soft { background: transparent; color: var(--amlb-ink-500); border-color: transparent; }
.hero .tag.warn { background: var(--amlb-risk-medium-bg); color: var(--amlb-risk-medium); border-color: transparent; }
.hero h1 { font-size: 48px; line-height: 1.1; letter-spacing: -.03em; color: #000; margin: 0 0 16px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.hero .lead { font-size: 18px; line-height: 1.55; color: var(--amlb-ink-500); margin: 0 0 28px; max-width: 520px; text-wrap: pretty; }
.big { display: flex; flex-direction: column; gap: 4px; }
.big .cap { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .1em; color: var(--amlb-ink-700); }
.big b { font-size: 64px; font-weight: 800; letter-spacing: -.04em; line-height: 1; color: #000; font-variant-numeric: tabular-nums; }
.big .sub { font-size: 14px; color: var(--amlb-ink-500); margin-top: 4px; }
.hero-fig { min-width: 0; }
.hero-fig canvas { display: block; width: 100%; height: auto; }

.sec { margin: 0 0 8px; }
.amlb-sec-head { margin: 40px 0 16px; }
.amlb-sec-head h2 { margin: 0; font-size: 26px; line-height: 1.1; letter-spacing: -.03em; color: #000; }
.sec .panel { margin: 0; }
.sec .panel > .ph { padding: 8px 14px; }

.where { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.wcard { position: relative; border-radius: 16px; padding: 22px 24px 20px; background: #fff; border: 1px solid var(--amlb-ui-stroke); display: flex; flex-direction: column; gap: 6px; }
.wcard .k { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .1em; color: var(--amlb-ink-400); padding-left: 16px; position: relative; }
.wcard .k::before { content: ""; position: absolute; left: 0; top: 4px; width: 8px; height: 8px; border-radius: 50%; background: var(--amlb-ink-100); }
.wcard .v { font-size: 36px; font-weight: 700; letter-spacing: -.03em; line-height: 1.05; font-variant-numeric: tabular-nums; color: #000; }
.wcard .v small { font-size: 15px; font-weight: 500; letter-spacing: 0; margin-left: 8px; color: var(--amlb-ink-400); }
.wcard .d { font-size: 14px; line-height: 1.5; color: var(--amlb-ui-body-text); margin-top: 4px; }
.wcard.svc .k::before { background: var(--amlb-blue-500); }
.wcard.exit .k::before { background: var(--amlb-violet-500); }
.wcard.still .k::before { background: var(--amlb-risk-risky); }
.bar-wrap { margin-top: 20px; }
.bar { display: flex; height: 8px; border-radius: 999px; overflow: hidden; gap: 3px; background: var(--amlb-ui-stroke-soft); }
.bar .seg { display: block; height: 100%; border-radius: 999px; }
.seg.svc { background: var(--amlb-blue-500); } .seg.exit { background: var(--amlb-violet-500); } .seg.still { background: var(--amlb-risk-risky); }
.bar-note { font-size: 13px; color: var(--amlb-ink-400); margin: 10px 0 0; }

.when { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.tile { background: #fff; border: 2px solid var(--amlb-ui-stroke-soft); border-radius: 16px; padding: 22px 24px 20px; display: flex; flex-direction: column; gap: 6px; }
.tile .tk { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .1em; color: var(--amlb-ink-400); }
.tile .tv { font-size: 36px; font-weight: 700; letter-spacing: -.03em; line-height: 1.05; color: #000; font-variant-numeric: tabular-nums; }
.tile.late .tv { color: var(--amlb-risk-risky); }
.tile .ts { font-size: 14px; line-height: 1.45; color: var(--amlb-ui-body-text); }
.facts { padding: 10px 14px 14px; }

@media (max-width: 900px) {
  .hero { grid-template-columns: 1fr; padding: 28px 22px 26px; border-radius: 24px; gap: 20px; }
  .hero h1 { font-size: 34px; }
  .big b { font-size: 48px; }
  .amlb-sec-head { margin-top: 28px; }
  .amlb-sec-head h2 { font-size: 22px; }
  .where, .when { grid-template-columns: 1fr; }
  .when { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* The home page's map of cases: tiles in the design system's pale fills, one hue per incident type */
.map-head { display: flex; align-items: baseline; gap: 10px; margin: 0 0 10px; }
.map-head h2 { margin: 0; font-size: 16px; font-weight: 700; letter-spacing: -.01em; }
.map-head .r { margin-left: auto; font-size: 12px; color: var(--amlb-ink-400); }
.map { position: relative; width: 100%; border-radius: 16px; overflow: hidden; background: #fff; }
.tt { position: absolute; box-sizing: border-box; display: flex; flex-direction: column; justify-content: flex-start; gap: 0; padding: .5em .6em; overflow: hidden; text-decoration: none; color: var(--amlb-ui-ink-hard); border: 2px solid #fff; border-radius: 10px; line-height: 1.2; font-weight: 400; transition: filter .12s ease; }
.tt:hover { filter: brightness(.96); z-index: 1; }
.tt .n { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere; letter-spacing: -.01em; }
.tt.l1 .n { -webkit-line-clamp: 1; }
.tt .a { font-weight: 500; font-size: 1.15em; letter-spacing: -.02em; line-height: 1.2; white-space: nowrap; font-variant-numeric: tabular-nums; }
.tt .s { font-size: .8em; opacity: .75; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin-top: .15em; }
.tt .s em { font-style: normal; color: var(--amlb-risk-risky); opacity: 1; }
.tt.blue { background: #E9F3FF; color: #0042A5; }
.tt.pink { background: #F9E6F6; color: #7A1E72; }
.tt.yellow { background: #FFF3D1; color: #6B4E00; }
.tt.green { background: #E4F6EC; color: #0B6B3A; }
.tt.cyan { background: #DCF1FE; color: #084C8C; }
.tt.violet { background: #EEEAFF; color: #3A1E9E; }
.tt.rose { background: #FDE8EC; color: #8E1630; }
.tt.mint { background: #E0FBF2; color: #0A5C45; }
.map-foot { margin: 10px 0 0; font-size: 13px; color: var(--amlb-ink-400); }
/* the graph legend's swatches (classes, not inline styles: the CSP allows none) */
.legend .lg-src { background: #060663; } .legend .lg-bad { background: #ED274B; } .legend .lg-svc { background: #0057FF; }
.legend .lg-wd { border: 1px dashed #77869E; background: #fff; } .legend .lg-late { background: #ED274B; border-radius: 0; height: 2px; vertical-align: 3px; }

/* the case's sources: a quiet disclosure under the hero that opens a compact table */
.seedbox { margin: 12px 0 0; border: 1px solid var(--amlb-ui-stroke); border-radius: 12px; background: #fff; }
.seedbox > summary { cursor: pointer; list-style: none; padding: 10px 14px; font-size: 13px; display: flex; align-items: baseline; gap: 8px; }
.seedbox > summary::-webkit-details-marker { display: none; }
.seedbox > summary::before { content: "›"; display: inline-block; width: 10px; color: var(--amlb-ink-400); transition: transform .15s ease; }
.seedbox[open] > summary::before { transform: rotate(90deg); }
.seedbox > summary .sk { font-weight: 600; color: var(--amlb-ui-ink-hard); }
.seedbox > summary:hover .sk { color: var(--amlb-blue-600); }
table.compact { font-size: 12px; }
table.compact th, table.compact td { padding: 5px 10px; }
