/* ballot.css — "My ballot" page. Mobile-first: single column, 44px+ touch targets. */

.lookup{border:1px solid var(--rule);border-radius:6px;padding:14px;margin:16px 0}
.lookup label{display:block;font:700 13px var(--body);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}
.addrrow{display:flex;gap:8px}
.addrrow input{flex:1;min-width:0;font:400 16px var(--body);padding:0 12px;min-height:48px;border:1px solid var(--rule);border-radius:6px;background:var(--card);color:var(--ink)}
.addrrow .go{flex:none;font:700 15px var(--body);padding:0 16px;min-height:48px;border:0;border-radius:6px;background:var(--cta);color:#222;cursor:pointer;white-space:nowrap}
.altrow{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:12px}
.alt{display:inline-flex;align-items:center;min-height:44px;padding:0 6px;font:600 15px var(--body);color:var(--teal);background:none;border:0;cursor:pointer;text-decoration:none}
.alt:hover{text-decoration:underline}
.tapmap{margin-top:10px}
.tapmap summary{cursor:pointer;font:600 15px var(--body);color:var(--teal);padding:10px 0;min-height:44px}
.ballotmap{height:300px;border-radius:6px;border:1px solid var(--rule);margin-top:6px}
.districts{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 4px;min-height:0}
.districts:empty{display:none}
.dchip{display:inline-block;background:var(--tint);color:var(--ink);border-radius:999px;padding:4px 12px;font:600 13px/1.4 var(--body)}

.racecard{border:1px solid var(--rule);border-top:4px solid var(--teal);border-radius:6px;background:var(--card);margin:14px 0;overflow:hidden}
.racecard .rh{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 12px;padding:12px 14px;border-bottom:1px solid var(--rule)}
.racecard .rh h2{margin:0;font:700 18px/1.2 var(--disp);letter-spacing:.01em}
.racecard .seats{font:600 13px var(--body);color:var(--muted)}
.racecard .rnote{margin:0;padding:8px 14px;font:600 13px var(--body);color:var(--muted);border-top:1px solid var(--rule)}
ul.cands{list-style:none;margin:0;padding:0}
ul.cands li{display:flex;align-items:stretch;border-bottom:1px solid var(--rule)}
ul.cands li:last-child{border-bottom:0}
.pickbtn{flex:1;min-width:0;display:flex;align-items:center;gap:12px;padding:10px 14px;background:none;border:0;cursor:pointer;color:var(--ink);text-align:left;font:inherit}
.pickbtn .av{flex:none}
.pickbtn .nm{flex:1;min-width:0;font-weight:700;font-size:17px;line-height:1.2}
.pickbtn .nm .meta{display:block;font:400 13px/1.4 var(--body);color:var(--muted);margin-top:1px}
.pickbtn .chk{flex:none;width:26px;height:26px;border-radius:50%;border:2px solid var(--rule);background:var(--page);position:relative}
.pickbtn.picked{background:var(--tint)}
.pickbtn.picked .chk{background:var(--teal);border-color:var(--teal)}
.pickbtn.picked .chk::after{content:"";position:absolute;left:8px;top:4px;width:6px;height:12px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
a.pro{flex:none;display:flex;align-items:center;padding:0 12px;font:600 13px var(--body);color:var(--teal);text-decoration:none;white-space:nowrap}
a.pro:hover{text-decoration:underline}
a.cmp{display:flex;align-items:center;min-height:44px;padding:0 14px;font:600 14px var(--body);color:var(--teal);text-decoration:none}
a.cmp:hover{text-decoration:underline}
abbr.pb{margin-left:2px}

.picks{margin:26px 0}
.pickcard{border:1px solid var(--rule);border-top:4px solid var(--cta);border-radius:6px;background:var(--page);padding:14px 16px;margin:10px 0}
.pkhead{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 12px;border-bottom:1px solid var(--rule);padding-bottom:10px;margin-bottom:6px}
.pkhead b{font:700 16px var(--disp);letter-spacing:.02em;text-transform:uppercase}
.pkhead span{font-size:13px;color:var(--muted)}
#pickslist{list-style:none;margin:0;padding:0}
#pickslist li{padding:8px 0;border-bottom:1px solid var(--rule)}
#pickslist li:last-child{border-bottom:0}
#pickslist .po{display:block;font:700 12px var(--body);letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
#pickslist .pc{display:flex;flex-wrap:wrap;gap:2px 14px;font-size:16px}
#pickslist .pc b{font-weight:700}
.pickbtns{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.pickbtns .go{font:700 15px var(--body);padding:0 16px;min-height:48px;border:0;border-radius:6px;background:var(--cta);color:#222;cursor:pointer}
.pickbtns .alt{min-height:48px;padding:0 14px;border:1px solid var(--rule);border-radius:6px;background:var(--card);color:var(--ink)}

@media (max-width:399px){
  .addrrow{flex-direction:column}
  .addrrow .go{width:100%}
  .pickbtn{font-size:16px}
  .pkhead b{font-size:14px}
}
@media (min-width:520px){
  .ballotmap{height:360px}
}

/* Print: show only the pick card. */
@media print{
  body *{visibility:hidden}
  .pickcard,.pickcard *{visibility:visible}
  .pickcard{position:absolute;left:0;top:0;width:100%;border:none}
}
