/* =========================================================================
   AGENCY PRODUCTION — PRODUCTION BREAKDOWN
   =========================================================================
   Every colour is a token, so all six themes carry this for free. Nothing
   here is a status colour: these panels state shares, they do not judge them.
   ========================================================================= */

.pm-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:16px;
}
.pm-card{min-width:0;}

/* The two single-figure panels sit on one row with the bar panels beside
   them; auto-fit above already handles the reflow down to a phone. */
.pm-big{
  font-family:'Inter',system-ui,sans-serif;
  font-variant-numeric:tabular-nums;
  font-size:30px;font-weight:720;letter-spacing:-.035em;
  line-height:1.05;color:var(--text);
  margin-top:2px;
}
.pm-foot{
  margin-top:10px;font-size:11px;line-height:1.5;color:var(--text-muted);
}
.pm-note{
  font-size:12.5px;line-height:1.6;color:var(--text-muted);
  max-width:62ch;
}
.pm-note b{color:var(--text);}

/* ---- concentration ---------------------------------------------------- */
.pm-conc{display:flex;flex-direction:column;gap:14px;margin-top:4px;}
.pm-conc-row{display:grid;grid-template-columns:1fr auto;gap:2px 12px;align-items:baseline;}
.pm-conc-k{font-size:12.5px;color:var(--text-muted);}
.pm-conc-v{
  font-family:'Inter',system-ui,sans-serif;font-variant-numeric:tabular-nums;
  font-size:22px;font-weight:720;letter-spacing:-.03em;color:var(--text);
  justify-self:end;
}
.pm-conc-sub{grid-column:1 / -1;font-size:10.5px;color:var(--text-muted);}

/* ---- bar lists (agent / carrier / product) ---------------------------- */
.pm-bars{display:flex;flex-direction:column;gap:9px;margin-top:4px;}
.pm-bar-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) 96px auto;
  grid-template-areas:"k bar v" "k bar p";
  align-items:center;
  gap:0 12px;
}
.pm-bar-k{
  grid-area:k;font-size:12px;color:var(--text);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.pm-bar-track{
  grid-area:bar;grid-row:1 / -1;
  height:6px;border-radius:var(--r-pill,999px);
  background:var(--surface-2);overflow:hidden;
}
.pm-bar-track i{
  display:block;height:100%;border-radius:inherit;
  background:var(--gold);
}
.pm-bar-v{
  grid-area:v;justify-self:end;
  font-variant-numeric:tabular-nums;font-size:12px;color:var(--text);
}
.pm-bar-p{
  grid-area:p;justify-self:end;
  font-variant-numeric:tabular-nums;font-size:10.5px;color:var(--text-muted);
}

/* A MISSING VALUE IS A FACT, NOT A GAP. It keeps its share of the total and
   is drawn in the muted track colour so it reads as absence rather than as
   another carrier that happens to be called "Not recorded". */
.pm-bar-row.is-blank .pm-bar-k{color:var(--text-muted);font-style:italic;}
.pm-bar-row.is-blank .pm-bar-track i{background:var(--text-muted);opacity:.5;}

@media (min-width:1400px){
  .pm-grid{grid-template-columns:repeat(auto-fit,minmax(340px,1fr));}
  .pm-bar-row{grid-template-columns:minmax(0,1fr) 140px auto;}
}
@media (max-width:600px){
  .pm-grid{grid-template-columns:1fr;gap:12px;}
  .pm-big{font-size:26px;}
  .pm-bar-row{grid-template-columns:minmax(0,1fr) 72px auto;}
}
@media (prefers-reduced-motion:reduce){
  .pm-bar-track i{transition:none;}
}
