/* shared typography — every element inside the widget, so nothing inherits the theme's font */
.pmd{font-family:"Lexend",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-weight:400;letter-spacing:-.05em}
.pmd *{font-family:inherit;letter-spacing:inherit}
.pmd input,.pmd select,.pmd textarea,.pmd button,.pmd a{font-family:inherit;letter-spacing:inherit}

.pmd{font-family:"Lexend",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-weight:400;letter-spacing:-.05em}
.pmd input,.pmd select,.pmd textarea,.pmd button{
  font-family:inherit;letter-spacing:inherit}

.pmd{--pmd-accent:#6F00FF;--pmd-rule:#DEDEDE;--pmd-head-bg:#f6f7f9;--pmd-hover:#f4f7fb;
  --pmd-sidebar:260px;--pmd-photo:40px;--pmd-ink:#1a1a1a;--pmd-muted:#6b6b6b;color:var(--pmd-ink)}
.pmd *,.pmd *::before,.pmd *::after{box-sizing:border-box}

.pmd-toprow{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
.pmd .pmd-search{flex:1 1 280px;min-width:0;padding:11px 14px;border:1px solid var(--pmd-rule);
  border-radius:8px;font:inherit;background:#fff;color:var(--pmd-ink);height:auto;margin:0;box-shadow:none}
.pmd .pmd-sort{flex:0 0 auto;padding:11px 12px;border:1px solid var(--pmd-rule);border-radius:8px;
  font:inherit;background:#fff;color:var(--pmd-ink);height:auto;margin:0;width:auto;max-width:none}
.pmd .pmd-mobile-filters{display:none;padding:11px 16px;border:1px solid var(--pmd-rule);border-radius:8px;
  background:#fff!important;color:var(--pmd-ink)!important;font:inherit;font-weight:600;cursor:pointer;
  text-transform:none;letter-spacing:normal;box-shadow:none;appearance:none;margin:0}
.pmd-chip-count:not(:empty){display:inline-block;margin-left:6px;background:var(--pmd-accent);color:#fff;
  border-radius:99px;padding:1px 7px;font-size:.75rem}

.pmd-layout{display:grid;grid-template-columns:var(--pmd-sidebar) minmax(0,1fr);gap:28px;align-items:start}
.pmd-side-right .pmd-layout{grid-template-columns:minmax(0,1fr) var(--pmd-sidebar)}
.pmd-side-right .pmd-sidebar{order:2}
.pmd-side-hidden .pmd-layout{grid-template-columns:minmax(0,1fr)}
.pmd-side-hidden .pmd-sidebar{display:none}
.pmd-side-hidden .pmd-mobile-filters{display:inline-block}

/* sidebar */
.pmd-sidebar{position:sticky;top:20px;max-height:calc(100vh - 40px);overflow-y:auto;
  border:1px solid var(--pmd-rule);border-radius:10px;background:#fff}
.pmd-sidebar-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;
  border-bottom:1px solid var(--pmd-rule);font-weight:700;font-size:.85rem;
  text-transform:uppercase;letter-spacing:.06em;position:sticky;top:0;background:#fff;z-index:2}
.pmd .pmd-reset{background:none!important;border:0;color:var(--pmd-accent)!important;font:inherit;
  font-size:.78rem;text-transform:none;letter-spacing:normal;cursor:pointer;padding:0;box-shadow:none}
.pmd-group{border-bottom:1px solid var(--pmd-rule)}
.pmd-group:last-child{border-bottom:0}
.pmd .pmd-group-head{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;
  padding:11px 14px;background:none!important;border:0;font:inherit;font-weight:600;font-size:.9rem;
  text-align:left;cursor:pointer;color:var(--pmd-ink)!important;text-transform:none;letter-spacing:normal;
  box-shadow:none;appearance:none;margin:0}
.pmd-group-head:hover{background:none!important;color:var(--ps-purple,#6F00FF)!important}
.pmd-caret{flex:0 0 auto;transition:transform .15s;color:var(--pmd-muted);font-size:.8rem}
.pmd-group.is-open>.pmd-group-head .pmd-caret{transform:rotate(90deg)}
.pmd-group-body{display:none;padding:0 8px 10px}
.pmd-group.is-open>.pmd-group-body{display:block}

.pmd-node{margin-left:0}
.pmd-node .pmd-node{margin-left:14px;border-left:1px solid var(--pmd-rule);padding-left:8px}
.pmd-opt{display:flex;align-items:flex-start;gap:8px;padding:4px 6px;border-radius:6px;
  font-size:.85rem;line-height:1.35;cursor:pointer}
/* Hover recolours the text rather than the row. A purple wash behind text that
   also turns purple leaves it unreadable. */
.pmd .pmd-opt:hover,
.pmd .pmd-opt:focus-within{background:none!important}
.pmd .pmd-opt:hover .pmd-opt-label,
.pmd .pmd-opt:focus-within .pmd-opt-label{color:var(--pmd-accent)!important}
.pmd-opt input{margin:2px 0 0;flex:0 0 auto}
.pmd-opt-label{flex:1;min-width:0}
.pmd-opt-count{color:var(--pmd-muted);font-size:.76rem;flex:0 0 auto}
.pmd .pmd-twist{background:none!important;border:0;padding:0 2px;cursor:pointer;color:var(--pmd-muted)!important;
  font-size:.7rem;line-height:1;box-shadow:none;appearance:none;margin:0;min-height:0}

/* active chips */
.pmd-active{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.pmd-chip{display:inline-flex;align-items:center;gap:6px;background:var(--pmd-head-bg);
  border:1px solid var(--pmd-rule);border-radius:99px;padding:4px 10px;font-size:.8rem}
.pmd .pmd-chip button{background:none!important;border:0;cursor:pointer;color:var(--pmd-muted)!important;
  font-size:1rem;line-height:1;padding:0;box-shadow:none;appearance:none;margin:0;min-height:0}

.pmd-count{font-size:.85rem;color:var(--pmd-muted);margin-bottom:10px}
.pmd-loading{padding:30px;text-align:center;color:var(--pmd-muted)}
.pmd-loading[hidden]{display:none}

/* table */
.pmd-table-wrap{overflow-x:auto;border:1px solid var(--pmd-rule);border-radius:10px;background:#fff;
  box-shadow:none!important;filter:none}
.pmd .pmd-table{width:100%;border-collapse:collapse;font-size:.9rem;margin:0}
.pmd .pmd-table th,.pmd .pmd-table td{padding:10px 12px;text-align:left;vertical-align:middle;
  border-bottom:1px solid var(--pmd-rule)}
.pmd .pmd-table thead th{background:var(--pmd-head-bg);font-size:.74rem;text-transform:uppercase;
  letter-spacing:.06em;color:var(--pmd-muted);font-weight:700;white-space:nowrap;position:sticky;top:0;z-index:1}
.pmd .pmd-table tbody tr:hover{background:var(--pmd-hover)}
.pmd .pmd-table tbody tr:last-child td{border-bottom:0}
.pmd-th-sort{cursor:pointer;user-select:none}
.pmd-th-sort::after{content:"⇅";margin-left:5px;opacity:.45;font-size:.85em}
.pmd-th-sort.is-asc::after{content:"↑";opacity:1}
.pmd-th-sort.is-desc::after{content:"↓";opacity:1}

.pmd-person{display:flex;align-items:center;gap:10px;min-width:0}
.pmd-photo{flex:0 0 auto;width:var(--pmd-photo);height:var(--pmd-photo);border-radius:50%;overflow:hidden;
  background:var(--pmd-party,#eee)}
.pmd-photo img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}
.pmd-photo-empty{display:flex;width:100%;height:100%;align-items:center;justify-content:center;
  color:#fff;font-size:.75rem;font-weight:700}
.pmd .pmd-name{font-weight:700;color:var(--pmd-ink);text-decoration:none;display:block;line-height:1.25}
.pmd .pmd-name:hover{color:var(--pmd-accent);text-decoration:underline}
.pmd-const{font-size:.78rem;color:var(--pmd-muted);line-height:1.25}
.pmd-party{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.pmd-dot{width:10px;height:10px;border-radius:50%;background:var(--pmd-party,#ccc);flex:0 0 auto}
.pmd-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.pmd-empty{padding:40px 20px;text-align:center;color:var(--pmd-muted)}
.pmd-more-wrap{text-align:center;margin-top:16px}
.pmd .pmd-more{padding:10px 22px;border:1px solid var(--pmd-rule);border-radius:8px;background:#fff!important;
  color:var(--pmd-ink)!important;font:inherit;font-weight:600;cursor:pointer;text-transform:none;
  letter-spacing:normal;box-shadow:none;appearance:none}
.pmd .pmd-more:hover{border-color:var(--pmd-accent)}
.pmd-more-wrap[hidden]{display:none}

@media(max-width:900px){
  .pmd-layout,.pmd-side-right .pmd-layout{grid-template-columns:minmax(0,1fr)}
  .pmd-sidebar{display:none;position:fixed;inset:0;max-height:none;border-radius:0;z-index:99999;overflow-y:auto}
  .pmd.is-filters-open .pmd-sidebar{display:block}
  .pmd .pmd-mobile-filters{display:inline-block}
  .pmd-sidebar-head{padding:16px 14px}
}

/* view switcher */
.pmd-views{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.pmd .pmd-view-btn{padding:8px 16px;border:1px solid var(--pmd-rule);border-radius:99px;
  background:#fff!important;color:var(--pmd-ink)!important;font:inherit;font-weight:600;font-size:.85rem;
  cursor:pointer;text-transform:none;letter-spacing:normal;box-shadow:none;appearance:none;margin:0}
.pmd .pmd-view-btn.is-active{background:var(--pmd-accent)!important;color:#fff!important;border-color:var(--pmd-accent)}

/* government / opposition benches */
.pmd-benches[hidden]{display:none}
.pmd-benches{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:34px;align-items:start}
.pmd-bench h3{margin:0 0 4px;font-size:1.4rem;font-weight:800;letter-spacing:-.01em}
.pmd-bench-gov h3{color:#d3121a}
.pmd-bench-opp h3{color:#0087dc}
.pmd-bench-role{font-style:italic;color:var(--pmd-muted);font-size:.86rem;margin:16px 0 8px}
.pmd-bench-role:first-of-type{margin-top:10px}
.pmd-avatars{display:flex;flex-wrap:wrap;gap:6px}
.pmd-av{position:relative;width:44px;height:44px;border-radius:50%;overflow:hidden;flex:0 0 auto;
  background:var(--pmd-party,#888);display:flex;align-items:center;justify-content:center;
  text-decoration:none;transition:transform .12s}
.pmd-av:hover{transform:scale(1.12);z-index:2}
.pmd-av img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}
.pmd-av span{color:#fff;font-size:.72rem;font-weight:700;letter-spacing:.02em}
.pmd-bench-empty{color:var(--pmd-muted);font-size:.85rem;padding:6px 0}
@media(max-width:820px){.pmd-benches{grid-template-columns:minmax(0,1fr);gap:26px}}

.pmd-sub{font-size:.62rem;color:var(--pmd-muted);margin-left:3px;font-weight:600;cursor:help}

/* ---------------------------------------------------------------- headshots
   One treatment everywhere: circular, party colour behind, no border.
   The party colour shows through where a photo is missing or transparent.
   Deliberately NOT applied to the Politicle autocomplete, where the colour
   would give the answer away. */
.pmd-photo,.pfc-avatar,.pfc-person-pic,.pfl-headshot,.politicle-mp-avatar{
  border-radius:50%;overflow:hidden;border:0!important;box-shadow:none!important;
  background:var(--pmd-party,var(--party-colour,#e8e8e8));
  display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.pmd-photo img,.pfc-avatar img,.pfc-person-pic img,.pfl-headshot img,.politicle-mp-avatar img{
  width:100%;height:100%;object-fit:cover;object-position:center top;display:block}

/* the bench view is two columns on desktop; one is the only readable option on a phone */
@media(max-width:620px){
  .pmd-benches{grid-template-columns:minmax(0,1fr)!important}
  .pmd-av{width:36px;height:36px}
}

/* ------------------------------------------------------- MPs in this party */
.ppm2{--ppm-face:40px;--ppm-gap:8px;--ppm-ink:#1a1a1a;--ppm-muted:#6b6b6b;--ppm-rule:var(--ps-rule,#DEDEDE);
  color:var(--ppm-ink);display:block}
.ppm2-block + .ppm2-block{margin-top:18px;padding-top:18px;border-top:1px solid var(--ppm-rule)}
.ppm2-head{font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;
  color:var(--ppm-muted);margin-bottom:11px}

.ppm2-people{display:flex;flex-wrap:wrap;gap:var(--ppm-gap)}
.ppm2-list{flex-direction:column;gap:calc(var(--ppm-gap) + 2px)}

.ppm2 .ppm2-person{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit;
  min-width:0;transition:transform .12s,opacity .12s}
.ppm2-faces .ppm2-person:hover{transform:translateY(-2px)}
.ppm2-list .ppm2-person:hover{opacity:.72}

.ppm2-face{flex:0 0 auto;width:var(--ppm-face);height:var(--ppm-face);border-radius:50%;
  overflow:hidden;background:var(--party-colour,#e8e8e8);
  display:flex;align-items:center;justify-content:center}
.ppm2-face img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}
.ppm2-ini{color:#fff;font-size:.72rem;font-weight:700;letter-spacing:.02em}
.ppm2-name{font-size:.9rem;font-weight:600;line-height:1.3;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ppm2-list .ppm2-person:hover .ppm2-name{text-decoration:underline;text-underline-offset:2px}

@media(max-width:520px){
  .ppm2{--ppm-face:36px;--ppm-gap:7px}
  .ppm2-name{font-size:.86rem}
}


/* A branch in the filter tree is a heading, not an option — it opens and closes
   rather than filtering, so it must not look like a checkbox row. */
/* A button, so the theme paints it — every one of these is pinned. */
.pmd .pmd-branch,
.pmd .pmd-branch:hover,
.pmd .pmd-branch:focus,
.pmd .pmd-branch:active,
.pmd .pmd-branch:focus-visible{
  display:flex;align-items:flex-start;gap:8px;width:100%;
  background:none!important;background-image:none!important;
  border:0!important;border-radius:0!important;
  padding:6px 2px!important;margin:0;min-height:0;
  font:inherit;font-size:.86rem;font-weight:600;
  text-align:left;cursor:pointer;text-transform:none;letter-spacing:inherit;
  appearance:none;box-shadow:none!important;outline:none
}
.pmd .pmd-branch{color:var(--pmd-ink,#111)!important}
.pmd .pmd-branch:hover,
.pmd .pmd-branch:focus-visible,
.pmd .pmd-branch.is-open{color:var(--pmd-accent)!important}
.pmd .pmd-branch .pmd-twist{flex:0 0 auto;font-size:.65em;opacity:.7}
.pmd .pmd-kids{margin-left:14px;padding-left:10px;border-left:1px solid var(--pmd-rule,#DEDEDE)}


/* Ex-MPs and everyone who is not a sitting member sit below the two benches,
   full width, so the government/opposition comparison stays a clean pair. */
.pmd .pmd-bench-rest{grid-column:1 / -1;border-top:1px solid var(--pmd-rule);padding-top:14px}
.pmd .pmd-bench-rest h3{color:var(--pmd-muted)}


/* ── Deep filter trees ──
   Four and five levels in, the column is narrow. Long vote names must wrap on
   word boundaries rather than mid-word, and the indent has to stop growing. */
.pmd-opt-label,
.pmd .pmd-branch .pmd-opt-label{
  overflow-wrap:break-word;
  word-break:normal;
  hyphens:auto;
  min-width:0;
}
.pmd-node .pmd-node,
.pmd .pmd-kids{margin-left:10px;padding-left:8px}
.pmd .pmd-kids .pmd-kids{margin-left:6px;padding-left:6px}
.pmd .pmd-kids .pmd-kids .pmd-kids{margin-left:0;padding-left:6px;border-left-style:dotted}
.pmd .pmd-branch{white-space:normal;align-items:flex-start}
.pmd .pmd-branch .pmd-twist{margin-top:.28em}
.pmd-opt input{margin-top:.22em}

/* the close button only exists for the phone panel */
.pmd .pmd-close-filters{
  display:none;background:none!important;border:0;padding:0 2px;margin-left:8px;
  font-size:1.4rem;line-height:1;color:var(--pmd-muted)!important;cursor:pointer;
  appearance:none;box-shadow:none;min-height:0
}
.pmd .pmd-close-filters:hover{color:var(--pmd-accent)!important}
@media(max-width:900px){
  .pmd.is-filters-open .pmd-close-filters{display:block}
  .pmd-sidebar-head{position:sticky;top:0;background:#fff;z-index:2;padding-bottom:8px}
}


/* ── Match all / any ──
   A two-up switch above the groups. Buttons again, so every state is pinned
   against the theme. */
/* Spacing sits around the control, not inside it, so the two halves still meet
   and the track keeps a clean edge. */
.pmd .pmd-match{
  display:flex;gap:0;margin:10px 12px 16px;padding:0;
  border:1px solid var(--pmd-rule);border-radius:99px;background:#fff;overflow:hidden
}
.pmd .pmd-match button,
.pmd .pmd-match button:hover,
.pmd .pmd-match button:focus,
.pmd .pmd-match button:active{
  flex:1 1 50%;
  background:none!important;background-image:none!important;
  border:0!important;
  padding:8px 10px!important;margin:0;min-height:0;
  border-radius:0!important;
  font:inherit;font-size:.76rem;font-weight:600;text-transform:none;letter-spacing:inherit;
  color:var(--pmd-muted)!important;cursor:pointer;appearance:none;box-shadow:none!important;
  transition:background .15s ease,color .15s ease
}
.pmd .pmd-match button:hover{color:var(--pmd-accent)!important}
.pmd .pmd-match button.is-on,
.pmd .pmd-match button.is-on:hover{
  background:var(--pmd-accent)!important;color:#fff!important
}


/* An option that would return nobody is dimmed rather than hidden, so the tree
   does not jump about as filters are ticked. */
.pmd .pmd-node.is-empty > .pmd-opt{opacity:.45}
.pmd .pmd-node.is-empty > .pmd-opt:hover .pmd-opt-label{color:var(--pmd-muted)!important}


/* A chip can now carry a whole branch, so it wraps rather than running off. */
.pmd .pmd-chip{max-width:min(100%,520px);white-space:normal;text-align:left;line-height:1.35;align-items:flex-start}
.pmd .pmd-chip button{flex:0 0 auto;margin-top:.1em}


/* The theme drops a shadow on tables; the border and radius are enough here. */
.pmd .pmd-table,
.pmd .pmd-table thead,
.pmd .pmd-table tbody,
.pmd .pmd-table tr,
.pmd .pmd-table th,
.pmd .pmd-table td{box-shadow:none!important}


/* Belt and braces on the shadow — some themes put it on the container. */
.pmd .pmd-table-wrap,
.pmd .pmd-main > .pmd-table-wrap{box-shadow:none!important;-webkit-box-shadow:none!important;filter:none!important}
