/* =============================================================================
   ENTITY PROFILE — dossier subject card: person / institution / company.
   Reads design tokens; theme-aware. Load after kit.css (shares prov chips, btn).
   Variants: .ep--full (dossier) · .ep--compact · .ep--header · .ep-chip (inline)
   ========================================================================== */
.ep{font-family:var(--font-data);color:var(--ink);background:var(--surface);border:1px solid var(--rule);display:flex;flex-direction:column;height:100%;}
.ep--full{border:2px solid var(--ink);}
/* Uniform per row via grid stretch (no fixed px → no overflow). Footer pins to bottom. */
.ep--full .ep-foot{margin-top:auto;}
.ep .ep-spacer{flex:1;}

/* head: monogram tile + identity */
.ep-head{display:flex;gap:13px;align-items:flex-start;padding:15px 16px;flex-wrap:wrap;}
.ep-mono{width:52px;height:52px;flex:none;border:2px solid var(--ink);display:flex;align-items:center;justify-content:center;
  font:700 20px/1 var(--font-display);color:var(--ink);background:var(--bg);position:relative;}
.ep-mono i{font-size:24px;color:var(--accent);}
.ep--compact .ep-mono{width:40px;height:40px;font-size:15px;}
.ep--compact .ep-mono i{font-size:18px;}
.ep-id{flex:1;min-width:0;}
.ep-type{display:inline-flex;align-items:center;gap:5px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:700 10px/1 var(--font-data);letter-spacing:.07em;
  text-transform:uppercase;color:var(--accent);border:1px solid var(--accent);padding:4px 8px;}
.ep-type i{font-size:12px;}
.ep-type--inst{color:var(--link);border-color:var(--link);}
.ep-type--firm{color:var(--pu);border-color:var(--pu);}
.ep-type--party{color:var(--accent);border-color:var(--accent);}
.ep-ref{font:400 11px/1.3 var(--font-data);color:var(--muted);margin-top:7px;}
.ep-name{font:700 19px/1.12 var(--font-head);color:var(--ink);margin:5px 0 2px;letter-spacing:-.01em;
  overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere;}
/* compact list card: stack identity as an even-rhythm column (type tag → name → role); the ref/slug
   is hidden here, so reset the per-element margins and let one gap own the spacing. */
.ep--compact .ep-id{display:flex;flex-direction:column;align-items:flex-start;gap:8px;}
.ep--compact .ep-type{margin:0;}
.ep--compact .ep-name{font-size:16px;margin:0;}
.ep--compact .ep-role{margin:0;}
.ep--header .ep-name{font-size:25px;}
.ep-role{font:400 13px/1.4 var(--font-body);color:var(--ink2);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.ep-flag{margin-left:auto;flex:none;}

/* status pills row */
.ep-tags{display:flex;flex-wrap:wrap;gap:6px;padding:0 16px 13px;}
.ep-prov{display:inline-flex;align-items:center;gap:5px;font:700 9px/1 var(--font-data);letter-spacing:.04em;
  border:1px solid currentColor;padding:4px 7px;}
.ep-prov.pv{color:var(--pv);}.ep-prov.pu{color:var(--pu);}.ep-prov.pd{color:var(--pd);}.ep-prov.pr{color:var(--pr);}

/* facts grid */
.ep-facts{border-top:1px solid var(--rule);padding:13px 16px;display:grid;
  grid-template-columns:repeat(2,1fr);gap:11px 18px;}
.ep--header .ep-facts{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));}
.ep-fact{display:flex;flex-direction:column;gap:3px;min-width:0;}
.ep-fact .k{font:400 9px/1 var(--font-display);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);}
.ep-fact .v{font:400 13px/1.35 var(--font-data);color:var(--ink);overflow-wrap:anywhere;}
.ep-fact a.ep-vlink{color:var(--link);text-decoration:none;}
.ep-fact a.ep-vlink:hover{text-decoration:underline;}
.ep-fact .v.redact{display:inline-block;background:var(--redact);border:1px solid var(--muted);height:.9em;width:80px;}

/* metrics row (connections / dossiers) */
.ep-metrics{display:flex;border-top:1px solid var(--rule);}
.ep-metric{flex:1;padding:11px 14px;text-align:center;}
.ep-metric:not(:last-child){border-right:1px solid var(--rule);}
.ep-metric .n{font:700 20px/1 var(--font-data);color:var(--ink);}
.ep-metric .n.acc{color:var(--accent);}
.ep-metric .l{font:400 9px/1.2 var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:5px;}

/* footer actions */
.ep-foot{display:flex;gap:8px;border-top:1px solid var(--rule);padding:11px 14px;flex-wrap:wrap;}

/* header variant: horizontal banner */
.ep--header{border:2px solid var(--ink);}
.ep--header .ep-head{padding:18px 20px;align-items:center;}
.ep--header .ep-mono{width:64px;height:64px;font-size:26px;}
.ep--header .ep-mono i{font-size:30px;}

/* inline chip */
.ep-chip{display:inline-flex;align-items:center;gap:7px;font:700 11px/1 var(--font-data);
  border:1px solid var(--rule);background:var(--surface);padding:5px 9px 5px 5px;color:var(--ink);text-decoration:none;
  vertical-align:1px;cursor:pointer;}
.ep-chip:hover{border-color:var(--ink);}
.ep-chip .ec-mono{width:22px;height:22px;border:1px solid var(--ink);display:inline-flex;align-items:center;justify-content:center;
  font:700 10px/1 var(--font-display);color:var(--ink);flex:none;}
.ep-chip .ec-mono i{font-size:12px;color:var(--accent);}
.ep-chip .ec-type{font:400 8px/1 var(--font-display);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);}
.ep-chip .ec-name{font-weight:700;}

/* timeline / related dossiers (full variant) */
.ep-timeline{border-top:1px solid var(--rule);padding:13px 16px;}
.ep-tl-head{font:400 9px/1 var(--font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:9px;}
.ep-tl{list-style:none;margin:0;padding:0;}
.ep-tl li{display:flex;align-items:center;gap:11px;padding:8px 0;border-bottom:1px solid var(--rule);cursor:pointer;}
.ep-tl li:last-child{border-bottom:none;}
.ep-tl li:hover{background:color-mix(in srgb,var(--accent) 5%,transparent);}
.ep-tl time{font:700 10px/1 var(--font-data);color:var(--muted);white-space:nowrap;min-width:62px;}
.ep-tl .ref{font:400 10px/1 var(--font-data);color:var(--faint);white-space:nowrap;}
.ep-tl .ttl{font:400 13px/1.3 var(--font-body);color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ep-tl .ep-prov{padding:3px 5px;}

.ep-risk{display:inline-flex;align-items:center;gap:6px;font:700 9px/1 var(--font-data);letter-spacing:.05em;text-transform:uppercase;
  border:1px solid currentColor;padding:4px 7px;}
.ep-risk .dot{width:8px;height:8px;background:currentColor;}
.ep-risk--high{color:var(--pd);}.ep-risk--med{color:var(--pu);}.ep-risk--low{color:var(--muted);}
