/* /aipac/ (tools/aipac.py): state map, seat charts, lists. Money bins use the theme's sequential scale (--q0..--q4); $0 is a faint green as on
   recipient cards; no data and vacant are hatched grey. Party is the dot's outline. Never brown. */
.trk-aip { background: #241848; }
html.paper .trk-aip, html.gloss .trk-aip { background: transparent; }
html.paper .trk-aip > .wrap { background: radial-gradient(700px 500px at 20% 40%, #ece6fb, transparent 65%), #fff; border: 1px solid rgba(27,18,48,.07);
  box-shadow: inset 0 1px 0 #fff, 0 50px 90px -50px rgba(40,20,90,.3); border-radius: 28px; padding: 40px 44px; }
html.gloss .trk-aip > .wrap { background: radial-gradient(700px 500px at 20% 40%, rgba(198,180,255,.10), transparent 60%), linear-gradient(180deg, #1c1438, #120c26);
  border: 1px solid rgba(237,243,234,.10); border-radius: 28px; padding: 40px 44px; }
@media (max-width: 600px) { html.paper .trk-aip > .wrap, html.gloss .trk-aip > .wrap { padding: 22px 16px; } }
html.paper .trk-aip .trk-eye { color: #8a3fd2; } html.gloss .trk-aip .trk-eye { color: var(--lime); }
.trk-aip .trk-dek { max-width: 720px; }
.aip-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin: 22px 0 18px; }
@media (max-width: 900px) { .aip-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 420px) { .aip-stats { grid-template-columns: 1fr; } }
.aip-stats > div { border: 1px solid var(--line); border-radius: 16px; padding: 14px 16px; background: var(--panel); }
.aip-stats b { display: block; font-size: 26px; letter-spacing: -0.02em; line-height: 1.1; color: var(--ink); }
.aip-stats span { display: block; font-size: 13px; color: var(--muted); margin-top: 4px; }
.aip-mode { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 4px; }
.aip-mode .cv-lab { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: var(--muted); margin-right: 4px; }
.aip-mnote { margin: 8px 0 0; max-width: 760px; }

.aip-box { border: 1px solid var(--line); border-left: 4px solid var(--accent); border-radius: 14px; padding: 16px 20px; margin: 28px 0 8px; background: var(--panel); }
.aip-box h2 { margin-top: 0; }
.aip-box p { margin: 6px 0; }

/* money bins: states and seats */
.aip-us .mm-st path, .hc-s circle { transition: fill .15s; }
.aip-us .mm-st path { stroke: var(--panel); stroke-width: .9; }
.aip-us .mm-st.aq0 path, .hc-s.aq0 circle, .aip-leg i.aq0 { fill: #d6efe2; background: #d6efe2; }
.aip-us .mm-st.aq1 path, .hc-s.aq1 circle, .aip-leg i.aq1 { fill: var(--q0); background: var(--q0); }
.aip-us .mm-st.aq2 path, .hc-s.aq2 circle, .aip-leg i.aq2 { fill: var(--q1); background: var(--q1); }
.aip-us .mm-st.aq3 path, .hc-s.aq3 circle, .aip-leg i.aq3 { fill: var(--q2); background: var(--q2); }
.aip-us .mm-st.aq4 path, .hc-s.aq4 circle, .aip-leg i.aq4 { fill: var(--q4); background: var(--q4); }
html.gloss .aip-us .mm-st.aq0 path, html.gloss .hc-s.aq0 circle, html.gloss .aip-leg i.aq0 { fill: #1d4a3b; background: #1d4a3b; }
.aip-us .mm-st.aqx path, .hc-s.aqx circle, .hc-vac circle, .aip-leg i.aqx, .aip-leg i.hc-vac-k { fill: var(--line); background: repeating-linear-gradient(45deg, var(--line) 0 2px, transparent 2px 4px); }
.hc-s.aqx circle, .hc-vac circle { fill: var(--line); }
.aip-us .mm-st:hover path, .aip-us .mm-st:focus-visible path { stroke: var(--ink); stroke-width: 1.6; }
.aip-lbl text { font-size: 11px; font-weight: 700; fill: var(--ink); stroke: var(--panel); stroke-width: 3px; paint-order: stroke; stroke-linejoin: round; pointer-events: none; text-anchor: middle; }
.aip-leg { color: var(--muted) !important; }
.aip-leg i { border-radius: 3px !important; border: 1px solid var(--line); }
.aip-leg .aip-pk i { background: transparent !important; border: 2px solid; border-radius: 50% !important; }

/* seat charts */
.aip-two { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 28px; align-items: start; }
@media (max-width: 900px) { .aip-two { grid-template-columns: minmax(0, 1fr); } }
.aip-two figure { margin: 0; }
.aip-two figcaption { margin-bottom: 4px; }
.hc-s circle { stroke-width: .55; }
.hc-s.p-D circle, .aip-pk i.p-D { stroke: #2457f5; border-color: #2457f5 !important; }
.hc-s.p-R circle, .aip-pk i.p-R { stroke: #d1344f; border-color: #d1344f !important; }
.hc-s.p-I circle, .aip-pk i.p-I { stroke: #8a3fd2; border-color: #8a3fd2 !important; }
.hc-vac circle { stroke: var(--line-strong); stroke-width: .4; }
.hc-s:hover circle, .hc-s:focus-visible circle { stroke: var(--ink); stroke-width: 1.2; }
.hc-s:focus { outline: none; }
.hc-n { font-size: 15px; font-weight: 800; fill: var(--ink); }
.hc-l { font-size: 4.2px; fill: var(--muted); }

/* lists */
.aip-zero-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
@media (max-width: 800px) { .aip-zero-grid { grid-template-columns: minmax(0, 1fr); } }
.aip-zero { list-style: none; padding: 0; margin: 0; font-size: 14px; columns: 1; }
.aip-zero li { padding: 3px 0; border-bottom: 1px dashed var(--line); }
.aip-ta, .aip-ag { font-size: 11px; font-weight: 700; padding: 1px 6px; border-radius: 999px; background: var(--chip); color: var(--muted); white-space: nowrap; }
.aip-ag { background: color-mix(in srgb, #d1344f 14%, transparent); color: var(--ink); }
.aip-st-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.aip-st { border: 1px solid var(--line); border-radius: 14px; padding: 12px 14px; background: var(--panel); scroll-margin-top: 80px; }
.aip-st:target { border-color: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 25%, transparent); }
.aip-st h3 { margin: 0 0 6px; font-size: 16px; }
.aip-st ul { list-style: none; margin: 0; padding: 0; font-size: 13.5px; }
.aip-st li { display: flex; justify-content: space-between; gap: 10px; padding: 3px 0 3px 8px; border-left: 3px solid transparent; }
.aip-st li.aip-y { border-left-color: var(--q2); }
.aip-st li.aip-n { border-left-color: #8fd1b0; }
.aip-st li b { white-space: nowrap; font-weight: 600; }
.aip-r { font-size: 11px; font-weight: 700; padding: 1px 7px; border-radius: 999px; background: var(--chip); }
.aip-r-red::before, .aip-r-amber::before, .aip-r-green::before, .aip-r-grey::before { content: ""; display: inline-block; width: 7px; height: 7px; border-radius: 50%; margin-right: 5px; vertical-align: 0; }
.aip-r-red::before { background: #d1344f; } .aip-r-amber::before { background: #e3a21a; } .aip-r-green::before { background: #2f9d6d; } .aip-r-grey::before { background: #9a93a8; }
@media (max-width: 600px) { .aip-lbl { display: none; } }
