/* =============================================================================
   PARTY PROFILE — political party component. Reads tokens; theme-aware.
   A party gets a colored identity stripe (its own brand color, used sparingly
   as a left rule + abbreviation tile), not the brick accent — so multiple
   parties read distinctly. Square corners, hairline borders, mono furniture.
   ========================================================================== */
.pp{font-family:var(--font-data);color:var(--ink);background:var(--surface);border:1px solid var(--rule);
  border-left:4px solid var(--p-color,var(--accent));display:flex;flex-direction:column;height:100%;}
.pp--full{border-top:1px solid var(--rule);border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);}

.pp-head{display:flex;gap:13px;align-items:center;padding:15px 16px;border-bottom:1px solid var(--rule);}
.pp-abbr{width:52px;height:52px;flex:none;display:flex;align-items:center;justify-content:center;
  background:var(--p-color,var(--accent));color:#fff;font:700 15px/1 var(--font-data);letter-spacing:.02em;text-align:center;}
.pp-id{flex:1;min-width:0;}
.pp-kick{font:400 9px/1 var(--font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--p-color,var(--accent));}
.pp-name{font:700 18px/1.18 var(--font-head);color:var(--ink);margin:5px 0 2px;letter-spacing:-.01em;}
.pp-meta{font:400 12px/1.4 var(--font-data);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pp-spec{display:inline-flex;align-items:center;gap:5px;font:700 9px/1 var(--font-data);letter-spacing:.05em;
  text-transform:uppercase;border:1px solid currentColor;padding:4px 7px;flex:none;}
.pp-spec--gov{color:var(--pv);}.pp-spec--opp{color:var(--pu);}

/* seats bar */
.pp-sec{padding:14px 16px;border-bottom:1px solid var(--rule);}
.pp-sec:last-child{border-bottom:none;}
.pp-sec-h{font:400 9px/1 var(--font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);
  margin-bottom:11px;display:flex;justify-content:space-between;align-items:baseline;gap:10px;}
.pp-sec-h .meta{color:var(--faint);letter-spacing:0;text-transform:none;}
.pp-seatbar{display:flex;height:16px;border:1px solid var(--ink);background:var(--chip);overflow:hidden;}
.pp-seatbar i{display:block;height:100%;background:var(--p-color,var(--accent));}
.pp-seatnums{display:flex;justify-content:space-between;font:400 11px/1 var(--font-data);color:var(--muted);margin-top:7px;}
.pp-seatnums b{color:var(--ink);font-weight:700;}

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

/* key-value facts */
.pp-facts{padding:13px 16px;display:grid;grid-template-columns:repeat(2,1fr);gap:10px 18px;border-bottom:1px solid var(--rule);}
.pp-fact{display:flex;flex-direction:column;gap:3px;min-width:0;}
.pp-fact .k{font:400 9px/1 var(--font-display);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);}
.pp-fact .v{font:400 13px/1.35 var(--font-data);color:var(--ink);overflow-wrap:anywhere;}

/* people row (leadership) */
.pp-people{display:flex;flex-wrap:wrap;gap:8px;}
.pp-person{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--rule);background:var(--bg);padding:5px 9px 5px 5px;font:700 11px/1 var(--font-data);color:var(--ink);}
.pp-person .av{width:22px;height:22px;border:1px solid var(--ink);display:inline-flex;align-items:center;justify-content:center;font:700 9px/1 var(--font-data);color:var(--p-color,var(--accent));flex:none;}
.pp-person .role{font-weight:400;color:var(--muted);}

/* dossiers/links footer */
.pp-foot{display:flex;gap:8px;padding:11px 16px;flex-wrap:wrap;margin-top:auto;}

/* compact chip */
.pp-chip{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--rule);border-left:3px solid var(--p-color,var(--accent));
  background:var(--surface);padding:6px 11px 6px 8px;font:700 12px/1 var(--font-data);color:var(--ink);vertical-align:1px;}
.pp-chip .ab{font:700 10px/1 var(--font-data);color:var(--p-color,var(--accent));}
.pp-chip .role{font-weight:400;color:var(--muted);font-size:11px;}
