:root { font-family: system-ui, sans-serif; color: #243340; background: #f5f7f9; line-height: 1.6; }
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; }
.container { max-width: 900px; margin: auto; padding: 1.5rem; }
header { background: #173e5c; color: white; }
header a { color: white; }
.institution { margin: 0; font-size: .9rem; }
.brand { font-size: 1.4rem; text-decoration: none; font-weight: 600; }
nav { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem; margin-top: 1rem; }
a { color: #135b87; }
h1, h2 { line-height: 1.3; }
main { min-height: 55vh; }
.card, main > form { padding: 1.5rem; background: white; border: 1px solid #d7e0e6; border-radius: .4rem; margin: 1rem 0; }
label { display: block; font-weight: 600; margin-top: .8rem; }
input { width: 100%; padding: .65rem; border: 1px solid #75838e; border-radius: .25rem; font: inherit; }
input[type=hidden] { display: none; }
button, input[type=submit] { display: inline-block; width: auto; cursor: pointer; padding: .6rem 1rem; background: #173e5c; color: white; border: 1px solid currentColor; border-radius: .25rem; font: inherit; margin-top: 1rem; }
.inline { display: inline; margin: 0; padding: 0; }
.inline button { margin: 0; }
.notice { padding: .8rem; background: #e4edf3; border-left: 4px solid #173e5c; }
.error, .errors { color: #a32222; }
footer { border-top: 1px solid #d7e0e6; font-size: .9rem; }
:focus-visible { outline: 3px solid #c5820c; outline-offset: 3px; }
input[type=checkbox] { width: auto; }
textarea, select { max-width: 100%; padding: .5rem; font: inherit; }
textarea { width: 100%; min-height: 8rem; }
.calendar-control { position: relative; }
.calendar-input { display: flex; gap: .4rem; align-items: stretch; }
.calendar-input > input { min-width: 0; flex: 1; }
.calendar-toggle { margin: 0; min-width: 48px; min-height: 48px; padding: .6rem; }
.calendar-toggle svg { display: block; width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.calendar-panel { position: absolute; top: 100%; left: 0; z-index: 5; width: min(100%, 360px); max-width: calc(100vw - 2rem); max-height: calc(100dvh - 2rem); overflow: auto; margin-top: .3rem; padding: .7rem; border: 1px solid #75838e; border-radius: .4rem; background: white; box-shadow: 0 .3rem 1rem #24334033; }
.calendar-navigation { display: flex; align-items: center; gap: .3rem; }
.calendar-navigation select { min-width: 0; flex: 1; }
.calendar-navigation input { width: 5.3rem; padding: .4rem; }
.calendar-navigation button { min-width: 44px; }
.calendar-panel button { margin: 0; min-height: 44px; padding: .35rem .5rem; }
.calendar-panel button:disabled { opacity: .45; cursor: default; }
.calendar-heading { margin: .3rem 0; font-weight: 600; text-align: center; }
.calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .15rem; text-align: center; }
.calendar-grid button { background: white; color: #173e5c; border-color: #d7e0e6; padding: .25rem; }
.calendar-grid button[aria-pressed=true] { background: #173e5c; color: white; font-weight: 700; }
.calendar-grid span { font-size: .85rem; }
.calendar-help { margin: .3rem 0; font-size: .8rem; line-height: 1.3; }
.calendar-time { display: flex; gap: .6rem; margin-bottom: .5rem; }
.calendar-time label { margin-top: .2rem; flex: 1; }
.calendar-time input { padding: .4rem; }
.calendar-panel > button + button { margin-left: .4rem; }
@media (max-width: 600px) { .calendar-panel { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); width: min(360px, calc(100vw - 2rem)); margin-top: 0; } }
table { width: 100%; border-collapse: collapse; background: white; }
th, td { padding: .6rem; border-bottom: 1px solid #d7e0e6; text-align: left; vertical-align: top; overflow-wrap: anywhere; }
.table-wrapper, .table-scroll { overflow-x: auto; }
dl dt { font-weight: 600; }
dl dd { margin: 0 0 .8rem; }
.instructions, .preserve-lines { white-space: pre-wrap; }
@media (max-width: 600px) { .container { padding: 1rem; } table { font-size: .9rem; } }

.operational-page header .container { padding: .65rem 1rem; }
.operational-page .institution { font-size: .75rem; }
.operational-page .brand { font-size: 1rem; line-height: 1.3; }
.operational-page nav { gap: .35rem .75rem; margin-top: .25rem; font-size: .9rem; }
.operational-page nav a { display: inline-flex; align-items: center; min-height: 44px; }
.operational-page nav button { min-height: 44px; padding: .4rem .65rem; }
.operational-page main { padding-top: .65rem; padding-bottom: .65rem; }
.operational-consultation { max-width: 640px; margin: auto; overflow-wrap: anywhere; }
.operational-consultation h1 { margin: 0; font-size: 1.2rem; }
.operational-consultation .election-name { margin: .15rem 0; font-size: .95rem; font-weight: 600; }
.operational-consultation .audit-notice { margin: .25rem 0 .5rem; font-size: .8rem; }
.operational-consultation .lookup-result { padding: .9rem; margin: .6rem 0; }
.operational-consultation .citizen-name { margin: 0; font-size: 1.3rem; line-height: 1.25; }
.operational-consultation .polling-assignment { display: flex; flex-wrap: wrap; align-items: center; gap: .15rem .45rem; margin: .65rem 0; padding: .45rem .6rem; border-radius: .25rem; background: #e4edf3; color: #173e5c; font-size: clamp(1.25rem, 5.4vw, 1.65rem); line-height: 1.25; }
.operational-consultation .polling-assignment strong { min-width: 0; max-width: 100%; font-weight: 800; }
.operational-consultation .polling-location p { margin: 0; font-size: 1.05rem; line-height: 1.35; }
.operational-consultation .polling-place { font-weight: 650; }
.operational-consultation .polling-location .polling-address { margin-top: .2rem; }
.operational-consultation .lookup-form { padding: .8rem .9rem; margin: .6rem 0; background: white; border: 1px solid #d7e0e6; border-radius: .4rem; }
.operational-consultation .lookup-field label { margin-top: 0; font-size: .95rem; }
.operational-consultation .lookup-field input { min-height: 48px; font-size: 1.1rem; }
.operational-consultation #identifier-help { margin: .35rem 0; font-size: .85rem; line-height: 1.35; }
.operational-consultation .lookup-submit input { width: 100%; min-height: 48px; margin-top: .3rem; font-weight: 600; }
@media (max-width: 600px) { .operational-page .container { padding-right: .75rem; padding-left: .75rem; } }
