/* Politician Tier List — blueprint design language (standalone, full-bleed) */
:root{
  --paper:#f5f2ec;--paper2:#ede9e0;--card:#fffdf8;--ink:#1c1917;--ink2:#44403c;--ink3:#78716c;
  --line:rgba(28,25,23,.14);--serif:"Fraunces",serif;--sans:"DM Sans",sans-serif;--mono:"DM Mono",monospace;
  --teal:#0d9488;--orange:#c2410c;--blue:#1d4ed8;--green:#15803d;--purple:#7c3aed;--stone:#57534e;--amber:#b45309;--red:#b91c1c;
}
*{box-sizing:border-box;margin:0}
body{font-family:var(--sans);font-weight:300;color:var(--ink);background:var(--paper);line-height:1.5;
  background-image:linear-gradient(90deg,rgba(28,25,23,.025) 1px,transparent 1px),linear-gradient(rgba(28,25,23,.02) 1px,transparent 1px);
  background-size:26px 26px;padding:clamp(1rem,3vw,2.4rem)}
.sheet{max-width:1500px;margin:0 auto}
a{color:inherit}
.backbar{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);margin-bottom:1rem;display:inline-block;text-decoration:none}
.backbar:hover{color:var(--teal)}

header{border-bottom:2px solid var(--ink);padding-bottom:1rem;margin-bottom:1.2rem;display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--teal)}
h1{font-family:var(--serif);font-weight:600;font-size:clamp(1.8rem,5vw,3rem);line-height:1;letter-spacing:-.02em;margin:.25rem 0}
.lead{color:var(--ink2);font-size:.9rem;max-width:64ch}
.stamp{font-family:var(--mono);font-size:9.5px;color:var(--ink3);text-align:right;line-height:1.7}

.note{border:1px solid var(--line);border-left:3px solid var(--amber);border-radius:5px;background:var(--paper2);
  padding:.8rem 1rem;margin-bottom:1rem;font-size:12px;line-height:1.7;color:var(--ink2)}
.note b{font-family:var(--serif);font-weight:600;color:var(--ink)}

.sectlabel{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);
  margin:1.3rem 0 .5rem;display:flex;align-items:center;gap:.6rem}
.sectlabel::after{content:"";flex:1;height:1px;background:var(--line)}

/* ── controls ── */
.pt-controls{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;
  border:1px solid var(--line);border-left:3px solid var(--teal);border-radius:5px;background:var(--card);padding:.9rem 1rem}
.pt-field{display:flex;flex-direction:column;gap:.3rem}
.pt-field>span{font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3)}
.pt-field input,.pt-field select{font-family:var(--sans);font-size:12px;color:var(--ink);background:var(--paper);
  border:1px solid var(--line);border-radius:4px;padding:.45rem .55rem;width:100%}
.pt-field input:focus,.pt-field select:focus{outline:none;border-color:var(--teal)}
.pt-slider-stack{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);gap:8px 14px;margin-top:.2rem}
.pt-slider-stack label{display:grid;grid-template-columns:1fr auto;align-items:center;gap:.2rem .4rem}
.pt-slider-stack label span{font-family:var(--mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2)}
.pt-slider-stack label b{font-family:var(--mono);font-size:12px;color:var(--teal);justify-self:end}
.pt-slider-stack input[type=range]{grid-column:1/-1;width:100%;accent-color:var(--teal);height:4px;margin:.15rem 0}
.pt-controls-foot{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  border-top:1px solid var(--line);padding-top:.7rem;margin-top:.2rem}
.pt-method-card{font-size:10.5px;line-height:1.6;color:var(--ink2);max-width:70ch}
.pt-method-card span{font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--amber);display:block;margin-bottom:.15rem}
.pt-ghost-button{font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2);
  background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:.5rem .8rem;cursor:pointer;white-space:nowrap}
.pt-ghost-button:hover{border-color:var(--ink);color:var(--ink)}

/* ── summary KPI strip ── */
.pt-summary-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.pt-summary-strip>div{border:1px solid var(--line);border-radius:5px;background:var(--card);padding:.55rem .7rem}
.pt-summary-strip b{font-family:var(--mono);font-size:1.3rem;font-weight:500;color:var(--ink);display:block;line-height:1}
.pt-summary-strip span{font-family:var(--mono);font-size:8.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink3)}

/* ── tier board ── */
.pt-tier-board{display:flex;flex-direction:column;gap:6px}
.pt-tier-row{display:grid;grid-template-columns:58px 1fr;gap:6px;align-items:stretch}
.pt-tier-label{display:flex;align-items:center;justify-content:center;border-radius:5px;color:#fff;
  font-family:var(--serif);font-weight:600;font-size:1.4rem;letter-spacing:.02em;background:var(--stone)}
.pt-tier-label[data-tier="S"]{background:var(--green)}
.pt-tier-label[data-tier="A"]{background:var(--blue)}
.pt-tier-label[data-tier="B"]{background:var(--orange)}
.pt-tier-label[data-tier="C"]{background:var(--stone)}
.pt-tier-label[data-tier="Review"]{background:var(--amber);font-size:.7rem;font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em}
.pt-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:6px}
.pt-card{text-align:left;border:1px solid var(--line);border-radius:5px;background:var(--card);padding:.6rem .7rem;
  cursor:pointer;display:grid;grid-template-columns:1fr auto;gap:.15rem .5rem;font-family:var(--sans);transition:border-color .12s}
.pt-card:hover{border-color:var(--ink3)}
.pt-card.is-selected{border-color:var(--teal);box-shadow:inset 0 0 0 1px var(--teal)}
.pt-card h3{font-family:var(--serif);font-weight:600;font-size:.92rem;color:var(--ink);line-height:1.1}
.pt-card small{grid-column:1;font-family:var(--mono);font-size:8px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink3)}
.pt-card .pt-score{grid-column:2;grid-row:1/3;align-self:start;font-family:var(--mono);font-size:1.5rem;font-weight:500;color:var(--ink)}
.pt-card p{grid-column:1/-1;font-size:10px;line-height:1.5;color:var(--ink2);margin:.2rem 0}
.pt-card-metrics{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:.3rem}
.pt-card-metrics span{font-family:var(--mono);font-size:8px;letter-spacing:.03em;color:var(--ink3);border:1px solid var(--line);border-radius:3px;padding:.1rem .3rem}
.pt-empty-card{grid-column:1/-1;font-family:var(--mono);font-size:10px;color:var(--ink3);border:1px dashed var(--line);background:transparent;padding:.6rem .7rem;display:block}

/* ── lower grid: compare + detail ── */
.pt-lower{display:grid;grid-template-columns:1fr 1.3fr;gap:14px;align-items:start}
.pt-compare-list{display:flex;flex-direction:column;gap:6px}
.pt-compare-item{border:1px solid var(--line);border-left:3px solid var(--teal);border-radius:5px;background:var(--card);padding:.6rem .8rem;
  display:grid;grid-template-columns:1fr auto;gap:.1rem .5rem}
.pt-compare-item h3{font-family:var(--serif);font-weight:600;font-size:1rem}
.pt-compare-item strong{font-family:var(--mono);font-size:11px;color:var(--teal);justify-self:end}
.pt-compare-item p{grid-column:1/-1;font-size:10.5px;line-height:1.55;color:var(--ink2)}

.pt-detail{border:1px solid var(--line);border-top:3px solid var(--purple);border-radius:5px;background:var(--card);padding:.9rem 1rem}
.pt-detail .pt-eyebrow{font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--purple)}
.pt-detail h2{font-family:var(--serif);font-weight:600;font-size:1.4rem;line-height:1.05;margin:.15rem 0}
.pt-detail-meta{font-family:var(--mono);font-size:10px;color:var(--ink3);margin-bottom:.6rem}
.pt-detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:.7rem}
.pt-detail-grid div{border:1px solid var(--line);border-radius:4px;background:var(--paper);padding:.4rem .5rem;text-align:center}
.pt-detail-grid b{font-family:var(--mono);font-size:1.2rem;font-weight:500;display:block;line-height:1}
.pt-detail-grid span{font-family:var(--mono);font-size:8px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink3)}
.pt-source-list{display:flex;flex-direction:column;gap:5px}
.pt-source{border:1px solid var(--line);border-left:3px solid var(--stone);border-radius:4px;background:var(--paper);padding:.5rem .7rem}
.pt-source b{font-family:var(--serif);font-weight:600;font-size:.9rem;display:block}
.pt-source span,.pt-source small{font-family:var(--mono);font-size:8.5px;letter-spacing:.03em;color:var(--ink3);display:block;margin:.1rem 0}
.pt-source p{font-size:10.5px;line-height:1.55;color:var(--ink2);margin-top:.2rem}
.pt-empty-detail{color:var(--ink3);font-size:11px}
.pt-empty-detail span{font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;display:block;margin-bottom:.3rem}

/* ── issue-fit ── */
.pt-fit-grid{display:grid;grid-template-columns:1fr 1fr 2fr;gap:8px;align-items:end;
  border:1px solid var(--line);border-left:3px solid var(--blue);border-radius:5px;background:var(--card);padding:.9rem 1rem}
.pt-fit-result{border:1px solid var(--line);border-radius:4px;background:var(--paper);padding:.6rem .8rem;min-height:100%}
.pt-fit-result b{font-family:var(--mono);font-size:12px;color:var(--blue);display:block;margin-bottom:.25rem}
.pt-fit-result p{font-size:10.5px;line-height:1.55;color:var(--ink2)}

footer{margin-top:1.6rem;border-top:1px solid var(--line);padding-top:.8rem;font-family:var(--mono);font-size:9.5px;color:var(--ink3);
  line-height:1.8;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}

@media(max-width:1100px){
  .pt-controls{grid-template-columns:repeat(2,1fr)}
  .pt-slider-stack{grid-template-columns:repeat(2,1fr)}
  .pt-summary-strip{grid-template-columns:repeat(2,1fr)}
  .pt-lower{grid-template-columns:1fr}
  .pt-fit-grid{grid-template-columns:1fr 1fr}
  .pt-fit-result{grid-column:1/-1}
}
@media(max-width:640px){
  .pt-controls,.pt-slider-stack{grid-template-columns:1fr}
  .pt-tier-row{grid-template-columns:44px 1fr}
  .pt-card-grid{grid-template-columns:1fr}
  .pt-detail-grid{grid-template-columns:repeat(2,1fr)}
  .pt-fit-grid{grid-template-columns:1fr}
}
