/* 내 당 칸 · 창당 카드 · 결산 줄(js/party-panel.js) */
.mp-panel { border-top: 4px solid var(--mpc, var(--ink)); }
.mp-head { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.mp-head h3 { margin: 0; }
.mp-head small { color: var(--muted); font-size: 12px; }
.mp-head .mp-ic { width: 34px; height: 34px; flex: none; }
.mp-ladder { list-style: none; margin: 0 0 12px; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 4px; }
.mp-ladder li { display: grid; justify-items: center; gap: 3px; min-width: 0; }
.mp-ladder li i { display: block; width: 100%; height: 6px; border-radius: 999px; background: var(--soft); }
.mp-ladder li.done i { background: color-mix(in srgb, var(--mpc, var(--ink)) 55%, var(--soft)); }
.mp-ladder li.now i { background: var(--mpc, var(--ink)); }
.mp-ladder li small { font-size: 10.5px; color: var(--muted); text-align: center; word-break: keep-all; line-height: 1.25; }
.mp-ladder li.now small { color: var(--ink); font-weight: 800; }
.mp-goal { display: grid; gap: 4px; padding: 10px; border-radius: 10px; background: var(--soft); margin-bottom: 12px; }
.mp-goal small { font-size: 11.5px; color: var(--muted); font-weight: 700; }
.mp-goal b { font-size: 13.5px; word-break: keep-all; }
.mp-bar { display: block; height: 7px; border-radius: 999px; background: var(--card); overflow: hidden; }
.mp-bar i { display: block; height: 100%; background: var(--mpc, var(--ink)); border-radius: inherit; }
.mp-stats { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 8px; margin-bottom: 10px; }
.mp-stats > div { display: grid; gap: 2px; min-width: 0; }
.mp-stats small { font-size: 11.5px; color: var(--muted); }
.mp-stats b { font: var(--hw) 18px var(--head); white-space: nowrap; }
.mp-stats .sr-spark { width: 100%; max-width: 110px; height: 22px; color: var(--mpc, var(--ink)); }
.mp-mapwrap { display: grid; grid-template-columns: 96px 1fr; gap: 10px; align-items: center; margin-bottom: 10px; }
.mp-map { width: 96px; height: auto; }
.mp-orgs { margin: 0 0 10px; font-size: 13px; }
.mp-mapwrap .mp-orgs { margin: 0; display: grid; gap: 2px; }
.mp-orgs small { font-size: 11.5px; color: var(--muted); }
.mp-people { margin-bottom: 8px; }
.mp-people > small { font-size: 11.5px; color: var(--muted); font-weight: 700; }
.mp-people ul { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 4px; }
.mp-people li { display: flex; justify-content: space-between; gap: 8px; font-size: 13px; min-width: 0; }
.mp-people li em { font-style: normal; color: var(--muted); font-size: 12px; text-align: right; word-break: keep-all; }
.mp-led, .mp-recap { margin: 0; font-size: 12.5px; color: var(--muted); }
.mp-led b.up, .mp-recap b.up { color: var(--good); } .mp-led b.down { color: var(--bad); }
.mp-recap { display: flex; align-items: center; gap: 6px; margin-top: 6px; color: var(--ink); }
.mp-recap .mp-ic { width: 18px; height: 18px; }
.mp-new .mp-req { list-style: none; margin: 8px 0 12px; padding: 0; display: grid; gap: 4px; font-size: 13px; }
.mp-new .mp-req li::before { content: '○ '; color: var(--muted); }
.mp-new .mp-req li.ok::before { content: '● '; color: var(--good); }
.mp-new .mp-req small { color: var(--muted); margin-left: 4px; }
.mp-new .mp-found { width: 100%; }
@media (max-width: 759px) { .col-right > .mp-panel { order: 3; } }
/* 선거 성적표(js/party-election.js) */
.mpr { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 8px; margin: 4px 0 12px; }
.mpr-row { display: grid; gap: 2px; padding: 10px 12px; border-radius: 12px; background: var(--soft); }
.mpr-row small { font-size: 12px; color: var(--muted); font-weight: 700; }
.mpr-row b { font: var(--hw) 30px var(--head); } .mpr-row b em { font-style: normal; }
.mpr-row i { font-style: normal; font-weight: 800; font-size: 13px; } .mpr-row i.up { color: var(--good); } .mpr-row i.down { color: var(--bad); }
