/* --------------------------------------------------------------------------
   People & Entities: directory grid + individual profile ("dossier") pages
   Extends global.css tokens. One added accent — see note below.
   -------------------------------------------------------------------------- */

/* --signal and --purple, plus .glow-rust/.glow-amber/.glow-signal, now live as
   shared site-wide tokens/utilities in global.css — this page just uses them. */

/* category color mapping — reused across directory cards and profile header */
.category-person{color:var(--sage);}
.category-entity{color:var(--amber);}
.category-institution{color:var(--signal);}

/* role qualifier within a category tag, e.g. "Person — Public Official" —
   the qualifier flags an institutional tie, so it borrows the institution color */
.role-qualifier{color:var(--signal);}

/* connection pills colored by the linked profile's own category */
.connection-pill.cat-person .rel{color:var(--sage);}
.connection-pill.cat-person:hover{border-color:var(--sage);color:var(--sage);}
.connection-pill.cat-entity .rel{color:var(--amber);}
.connection-pill.cat-entity:hover{border-color:var(--amber);color:var(--amber);}
.connection-pill.cat-institution .rel{color:var(--signal);}
.connection-pill.cat-institution:hover{border-color:var(--signal);color:var(--signal);}

/* profile-page timeline: dated record markers get their own accent, separate
   from rust's primary/flag/link duty elsewhere on the same page */
.profile-page .timeline{border-left-color:var(--purple);}
.profile-page .timeline-item::before{background:var(--purple);}
.profile-page .timeline-date{color:var(--purple);}

/* ---------- directory (body.people-page) ---------- */
.people-toolbar{max-width:var(--maxw);margin:0 auto;padding:34px 30px 0;
  display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;}
.people-filters{display:flex;flex-wrap:wrap;gap:1px;}
.people-sort{display:flex;align-items:center;gap:10px;}
.people-sort select{background:var(--bg-raise);color:var(--text);border:1px solid var(--line);
  padding:9px 12px;font:11px "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.06em;}
.people-count{color:var(--muted-2);font:11px "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.08em;}

.people-grid{max-width:var(--maxw);margin:0 auto;padding:26px 30px 64px;
  display:grid;grid-template-columns:repeat(auto-fill,minmax(266px,1fr));gap:16px;}

.person-card{display:flex;flex-direction:column;gap:14px;padding:22px;
  border:1px solid var(--line);background:var(--bg-raise);text-decoration:none;color:inherit;transition:.15s;}
.person-card:hover{background:var(--bg-raise-2);border-color:#3a343a;transform:translateY(-2px);}
.person-card:hover .person-go{color:var(--rust);}
.person-card[hidden]{display:none;}

.person-top{display:flex;align-items:center;gap:14px;}
.person-avatar{width:52px;height:52px;flex:none;border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;font:900 15px "Archivo",sans-serif;
  color:var(--muted);background:var(--bg);transition:.15s;overflow:hidden;}
.person-avatar img{width:100%;height:100%;object-fit:cover;display:block;}
.person-card:hover .person-avatar{border-color:var(--rust);color:var(--rust);}
.person-id{min-width:0;}
.person-name{font-family:"Archivo",sans-serif;font-weight:800;text-transform:uppercase;
  font-size:1.02rem;line-height:1.2;margin:0 0 6px;letter-spacing:-.005em;}
.person-category{font:10px "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.08em;}

.person-summary{margin:0;color:var(--muted);font-size:13px;line-height:1.55;}

.person-counts{display:flex;flex-wrap:wrap;gap:6px 16px;font:10.5px "IBM Plex Mono",monospace;
  color:var(--muted-2);text-transform:uppercase;letter-spacing:.04em;}
.person-counts b{color:var(--text);font-weight:600;}

.person-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin-top:auto;padding-top:14px;border-top:1px dashed var(--line-soft);}
.person-status{font:10px "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.08em;
  padding:2px 7px;border:1px solid currentColor;}
.person-status.posted{color:var(--sage);}
.person-status.pending{color:var(--muted-2);}
.person-go{font:11px "IBM Plex Mono",monospace;letter-spacing:.08em;text-transform:uppercase;
  color:var(--muted);transition:.15s;}
.person-go::after{content:" →";}

/* ---------- profile / dossier (body.profile-page) ---------- */
.profile-header{max-width:var(--maxw);margin:0 auto;padding:56px 30px 40px;border-bottom:1px solid var(--line);
  display:grid;grid-template-columns:auto 1fr;gap:26px;align-items:start;}
.profile-avatar{width:100px;height:100px;flex:none;border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;font:900 32px "Archivo",sans-serif;
  color:var(--muted);background:var(--bg-raise);overflow:hidden;}
.profile-avatar img{width:100%;height:100%;object-fit:cover;display:block;}
.profile-id .person-category{display:inline-block;margin-bottom:12px;}
.profile-name{font-family:"Archivo",sans-serif;font-weight:900;text-transform:uppercase;
  font-size:clamp(2rem,4.4vw,3.1rem);line-height:.98;letter-spacing:-.02em;margin:0 0 12px;}
.profile-role{color:var(--muted);font-size:16px;max-width:64ch;margin:0;}
.profile-role strong{color:var(--text);}

.profile-stats{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);
  border:1px solid var(--line);border-top:0;}

.claims-list{margin:22px 0 0;padding:0;list-style:none;border:1px solid var(--line);}
.claim-item{padding:18px 20px;border-bottom:1px solid var(--line-soft);display:flex;flex-direction:column;gap:8px;}
.claim-item:last-child{border-bottom:0;}
.claim-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.claim-tag{font:10px "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.08em;
  padding:2px 7px;border:1px solid currentColor;}
.claim-tag.documented{color:var(--sage);}
.claim-tag.alleged{color:var(--signal);}
.claim-text{margin:0;color:var(--text);font-size:14.5px;line-height:1.6;}
.claim-source{font:11px "IBM Plex Mono",monospace;color:var(--rust);text-decoration:none;
  text-transform:uppercase;letter-spacing:.05em;}

.connections-list{margin:22px 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px;}
.connection-pill{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--bg-raise);
  padding:8px 14px;text-decoration:none;color:inherit;font:12px "IBM Plex Mono",monospace;
  text-transform:uppercase;letter-spacing:.04em;transition:.15s;}
.connection-pill:hover{border-color:var(--rust);color:var(--rust);}
.connection-pill .rel{color:var(--muted-2);}

.appears-in{display:flex;justify-content:space-between;gap:20px;align-items:center;flex-wrap:wrap;
  padding:16px 18px;border:1px solid var(--line);background:var(--bg-raise);margin-top:22px;}
.appears-in a{color:var(--rust);text-decoration:none;font:600 12px "IBM Plex Mono",monospace;
  text-transform:uppercase;letter-spacing:.05em;}

@media(max-width:860px){
  .people-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));}
  .profile-header{grid-template-columns:1fr;}
  .profile-stats{grid-template-columns:1fr 1fr;}
}
@media(max-width:600px){
  .people-toolbar,.people-grid{padding-left:20px;padding-right:20px;}
  .profile-stats{grid-template-columns:1fr;}
}
