.colinha-shell { width: min(760px, 100%); margin: auto; padding: 24px 18px 40px; }
.colinha-header { display: flex; justify-content: space-between; gap: 16px; color: var(--muted); margin-bottom: 32px; }
.colinha-header a { color: var(--blue); text-decoration: none; font-weight: 700; }
.colinha-intro h1 { font-size: clamp(28px, 5vw, 40px); margin: 8px 0; }
.colinha-intro p, .colinha-share p { color: var(--muted); line-height: 1.6; }
.colinha-shell label { display: block; font-weight: 650; margin-bottom: 8px; }
.colinha-shell input, .colinha-shell select { border: 1px solid var(--line); border-radius: 10px; background: white; padding: 12px; color: var(--ink); max-width: 100%; }
.colinha-shell :focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
#colinhaUf { width: 100%; margin-bottom: 22px; }
.colinha-fields { display: grid; gap: 12px; }
.vote-card { display: grid; grid-template-columns: minmax(0, 1fr) 80px; gap: 18px; padding: 20px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); }
.vote-card input { width: 195px; font-size: 26px; font-weight: 750; letter-spacing: 5px; font-variant-numeric: tabular-nums; }
.vote-card input[aria-invalid="true"] { border-color: var(--red); }
.candidate-info { margin: 10px 0 0; font-size: 14px; color: var(--muted); line-height: 1.5; overflow-wrap: anywhere; }
.candidate-photo { width: 80px; height: 104px; border-radius: 12px; overflow: hidden; background: var(--bg); display: grid; place-items: center; align-self: center; color: var(--muted); text-align: center; font-size: 12px; }
.candidate-photo img { width: 100%; height: 100%; object-fit: cover; }
.colinha-share { margin-top: 26px; padding: 24px; border-radius: 16px; background: white; border: 1px solid var(--line); }
.colinha-share h2 { margin-top: 0; }
#shareUrl { width: 100%; font-size: 14px; }
.colinha-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.colinha-actions button { border: 0; border-radius: 10px; padding: 12px 18px; color: white; background: var(--blue); cursor: pointer; font-weight: 650; }
.colinha-actions .secondary { background: var(--bg); color: var(--ink); }
.colinha-shell footer { margin-top: 24px; font-size: 13px; color: var(--muted); line-height: 1.6; }
@media (max-width: 380px) { .vote-card { padding: 14px; gap: 10px; grid-template-columns: minmax(0, 1fr) 64px; } .candidate-photo { width: 64px; height: 88px; } .vote-card input { width: 100%; font-size: 23px; } }
@page { size: A4 portrait; margin: 12mm; }
@media print {
  body { min-height: auto; background: white; color: black; }
  .colinha-shell { width: 100%; margin: 0; padding: 0; }
  .colinha-share, .colinha-header a, .colinha-intro p, .colinha-shell footer { display: none; }
  .colinha-header { margin-bottom: 2mm; font-size: 9pt; }
  .colinha-intro { margin-bottom: 4mm; }
  .colinha-intro h1 { margin: 0 0 3mm; font-size: 20pt; line-height: 1.2; }
  .colinha-intro label { display: inline-block; margin: 0 2mm 0 0; font-size: 10pt; }
  #colinhaUf { width: auto; margin: 0; padding: 1mm 2mm; font-size: 10pt; appearance: none; }
  .colinha-fields { gap: 2mm; }
  .vote-card {
    grid-template-columns: minmax(0, 1fr) 18mm;
    gap: 3mm;
    padding: 2.5mm 3mm;
    border-color: #aaa;
    border-radius: 2mm;
    break-inside: avoid;
  }
  .vote-card label { margin-bottom: 1mm; font-size: 11pt; line-height: 1.2; }
  .vote-card input {
    width: 48mm;
    padding: 1mm 2mm;
    border-color: #aaa;
    border-radius: 1mm;
    font-size: 18pt;
    line-height: 1.1;
    letter-spacing: 1mm;
    color: black;
  }
  .candidate-info { margin: 1mm 0 0; font-size: 9pt; line-height: 1.2; color: #333; }
  .candidate-photo { width: 18mm; height: 23mm; border-radius: 2mm; font-size: 8pt; }
}
